ユーニックス総合研究所

  • home
  • archives
  • programming-dokugaku-muzukashi

プログラミングの独学は難しい。2度挫折しました

プログラミングの独学は難しいです

プログラミングの独学は簡単?
いいえ、私は難しいと思います。

たまにいますよね。
プログラミングなんて簡単だよ」っていう人。

それはその人にプログラミングの才能があるからそういうことが言えるんですね。
大多数の人はプログラミングの才能なんて持っていません。
ですので大多数の人にとってプログラミングの独学は難しいわけです。

この記事ではこのテーマについて深く掘り下げて考えてみたいと思います。

関連記事

魔法の壺、プログラミングのライブラリ(Library)とは
頭悪い人にプログラミングは可能か?可能です
開発を3倍速にするプログラミングの考え方4つ
英語できないけどプログラミングはしたい。そんな人はこの方法がおすすめです
独学してプログラマーになるには?元独学Webエンジニアが解説

C言語で2度挫折した私

突然ですが私はC言語からプログラミングを始めました。
それでC言語の独学で2度挫折した経験を持っています。

  • C言語の独学で2度挫折した

C言語はプログラミング言語の中では比較的に難しい言語です。
私はそのことを知らずにC言語を選び、そして挫折しました。

挫折したときのあの敗北感……。
手元からC言語が離れていく感覚……。

いやー、今ではC言語の記事を書くようになりましたが、あの頃の経験は忘れられないですね。

プログラミングのどこが難しいか?

プログラミングの独学はどこらへんが難しいのでしょうか?
これは面白いテーマです。
どこが難しいか把握すればその問題に対処もできるというものです。

私が思うにプログラミングの難しさは↓です。

  • エラーが解決できない
  • バグが解決できない
  • 公用語が英語
  • 相手がパソコン

エラーが解決できない

エラー
プログラミングをすると必ず出ます。エラーが。
もはやプログラミングを続けることはエラーと向き合っていくということです。

しかし! 初心者の人はエラーを解決できません。。
「エラーメッセージの存在を知らない」のが初心者です。

  • 初心者はエラーを解決できる確率が低い

エラーが出て問題を解決できずによくわからない文字列をただ眺める。
それが続くとモチベーションも下がっていくわけですね。。

🦝 < 胸が痛むぜ

バグが解決できない

そしてバグ

バグとはプログラムに埋め込まれた不具合のことを言います。
バグがあるプログラムはちゃんと働いてくれないことがあります。

このバグは他人に聞いてもわからないことが多いです。
エラーは他人に聞けば解決できることもあります。
しかしバグというのはプログラム固有の問題です。

  • バグはプログラムごとに違う

ですのでバグが出るともう初心者はお手上げです。
解決できない!
となってプログラミングが難しくなるわけですね。

公用語が英語

プログラミングの世界では公用語が英語です。
英語が苦手な日本人にとってこれは脅威と言えます。

え!? みんな英語使ってんの?!

  • みんな英語使ってます
  • (日本人は日本語使うことも多い)

となったらプログラミングにも苦手意識が生まれそうですよね。

しかし世の中は残酷です。
プログラミングの母国はアメリカ。
そしてアメリカは英語(アメリカ英語)が公用語です。

英語に苦手意識がある人はプログラミングの独学も難しく感じてしまう。
ということですね。

相手がパソコン

プログラミングの独学では向き合う相手がパソコンです。

パソコンは素直で、言われた通りのことしかやりません。
人間のように気を使うということもしません。

ですので人間に相対するように接するとかなりストレスを感じます。
パソコンは自分を映す鏡。

  • パソコンはあなたを映す鏡

その鏡が作るエラーやバグは自分から出たもの。

つまりエラーやバグの解決は自分と向き合うことになるわけですが。。
そのことに気づいていないとなかなか難しいですよね。プログラミングの独学。

英語とプログラミング言語はどっちの方が難しい?

英語とプログラミング言語はどちらの方が難しいか。
ということですが、これは英語の方が難しいです。

英語は自然言語。
つまり自然の中で育った言語です。

いっぽうプログラミング言語は人工言語。
人間の手で作られた言語です。

当然、自然言語の方が複雑なので英語の方が難しいわけですね。
その英語とさらにプログラミング言語をやらなきゃいけないのがプログラミングの独学。

🦝 < そりゃー難しいわな

🐭 < ダブルパンチ

プログラミングの独学はなぜ難しいのか?

プログラミングの独学はなぜ難しいか?
これについて改めて考えてみましょう。

私が思うにプログラミングの独学の難しさは↓にあります。

  • 勉強方法の確立がむずかしい
  • 初心者はエラーやバグを解決できない
  • プログラミング文化について無知

勉強方法の確立がむずかしい

プログラミングの独学の初心者は勉強方法が確立していません。
ですので試行錯誤する必要があります。

プログラミングの独学は定番の勉強方法が存在します。
それは

  • トライ&エラー
  • 自分で考えダメだったら他人に聞く

というものです。
つまり反復学習ですね。

初心者の人はこの勉強方法、独学方法を知らないのでプログラミングの独学が難しく感じてしまうんですね。

初心者はエラーやバグを解決できない

プログラミング初心者の多くはエラーやバグを解決できません。
これは実は普通のことです。

  • エラーやバグを解決できないのは普通のこと

解決できないのが普通なんてすごい世界ですよね。
しかしプログラミング初心者にとってエラーやバグの解決はそれぐらい難しいことです。

私もC言語の難解なエラーやバグに何度も泣きを見ました。。
(´;ω;`)ウッ…

そしてそれは今でも続いています(笑

初心者の人ならなおさらですよね。

プログラミング文化について無知

あとプログラミングの文化について無知なのも難易度を上げる要因です。
プログラミング文化では

  • わからない問題があったら他人に聞いてもいい

という文化がありそしてその文化の中でみんな生活しています。
だから「自分1人で解決するぞ!」というような人だと苦労します。

わからない問題は最初に自分で考えて、それでもわからなければ他人に聞く。
このことを知っておかないと難易度がぐーんと上がります。

プログラミングを簡単にすることは可能か?

プログラミングの独学を簡単にすることは可能でしょうか?
これは……けっこう難しい話です……。

初心者である以上、やはりハードルは高いです。
そのハードルを下げられるかというのは重要な問題です。

難しい問題を小さい問題に分割して、小さい問題を解決する。
というのが定石ではあります。

あと考えられるのは↓ですね。

  • 経験値が上がれば簡単だと思える
  • 他人に聞きまくれば簡単?

経験値が上がれば簡単だと思える

やはり経験値
これに勝るものはありません。

プログラミングの独学を続けて経験値が上がれば独学も簡単に思える。
そういう日が来ます。

  • 経験値の爆上げを目指そう

私は15年以上プログラミングをやっていますが、初心者の人が苦労するような課題は楽に解決できます。
しかしそれでもやはり難しい課題というのは多くあります。

ようは経験値が上がれば簡単な問題も増える。
ということですね。

他人に聞きまくれば簡単?

あとは他人に聞きまくるというのも問題を簡単にするかもしれません。
わからない問題があったらとにかく他人に聞く。
質問サイトで質問する。

ただしこれは副作用があります。。

  • この方法には副作用がある

というのも「自分で考える」というプロセスをすっ飛ばして他人に聞いていると、どうなるか。
ということですが、これは自己解決能力が育ちません。

ですので最初から他人に聞きまくるのではなく、ある程度は自分で考えた方がいいです。

たまにいる「プログラミング楽勝!」という人

たまにいるんですよね。
プログラミングなんて楽勝!」という人。

これはその人が才能があるからそう言えるんです。
ほとんどの人は才能なんて持っていませんよね。
ですからプログラミングの独学は難しく感じるのが普通です。

こういうことを言う人は地頭が良いかプログラミング以上に難解なものに取り組んだ経験がある人です。
ですので大多数の凡人にとってはあまり参考になりません。

プログラミングは向き不向きがある

プログラミングは向き不向きが強く出るジャンルです。

向いている人にとってはプログラミングの独学も簡単です。
しかし向いていない人にはプログラミングの独学は難しくてひどいもんです。

  • 向いていない人には地獄

C言語なんて最初に始めた日には挫折する可能性も高い!
実際に私は2度も挫折しましたしね。。

プログラミングには向き不向きがある。
ですので向いていない人にとっては独学はいばらの道です。

脳を最適化する

難しいプログラミングの独学を攻略する手段。
それは何でしょうか?

これは脳みそを最適化することです。

プログラミング用に脳みそを最適化して環境に適応するんですね。
偉い学者はこれを「進化」といいます。

  • 脳みそを最適化して進化しよう

プログラミングが難しいなら自分が進化して取り組めばいい!
ということになります。

プログラミングのエラーやバグに打たれて覚醒する

進化するにはまずプログラミングで発生するエラーやバグを浴びるように経験しなければいけません。
最初は体が拒絶反応を示します。

しかし長い年月をかけてそういった経験を続けると、不思議とエラーやバグにも慣れてしまうんですね。
慣れるともはやエラーやバグに何の感情もわきません。

  • 習うより慣れる

エラー? ああ、出たんだね。
ぐらいのものです。

バグ? どれぐらいの難易度かな?
ぐらいのもの。

悟りを得る

そして最終的には悟りを得ましょう。
プログラミングについての1つの悟り。

それは「プログラムなんて適当に作ればいい」ということです。

完璧主義者にとってプログラミングはしんどいものです。
エラー結構! バグ結構!
の精神でプログラムを作ってリリース!

これです!
これが悟りです!

完璧じゃなくていいんですね。

難しすぎて頭が沸騰する

プログラミングが難しすぎて頭が沸騰してしまう。
これもあるあるです。

沸騰とはつまり頭がオーバーヒートすることですね。
これは危険な状態です。
この状態が長く続くと病気とかにもなったりします。

ですのでできるだけこの状態は避けた方がいいです。

  • 自分の健康を守ろう

クールダウンしよう

頭がオーバーヒートしそうになったらクールダウンしましょう。
パソコンから離れて横になって体を休める。

休憩は超重要です。

難しいプログラミングの独学、かならず休憩を取るようにしてください。

おわりに

今回はプログラミングの独学は難しいという問題を解説しました。
プログラミングの独学は難しいですがそれはみんな通る道。
がんばって勉強しましょう。

🦝 < ごく一部の天才を除く

🐭 < 苦労するんだよぉ!