こんにちは、ケニーです。
初心者プログラマ「プログラミングができない、辛いです。何も理解できないし、何が分からないかも分からなくなってきた…。」
こんな悩みにプログラミング歴20年以上の僕が答えます。
この記事は、こんな人向けです
・プログラミングができなくて辛い人
・プログラミングを始めたけど、挫折しそうな人
・周りと比べて、自分だけが遅れていると感じる人
プログラミングができない理由
プログラミングができない、辛い、その理由は、色々あると思います。プログラミング歴20年以上で、仕事でもプログラミングをしている僕も、最初は悩みながら学習を進めました。よく聞く代表的なものを以下に示します:
プログラミングが楽しくない
プログラミングの参考書を購入して、勉強してみたものの、ソースコードを書く→ビルド→実行…の繰り返し。表示されるのは、コマンドプロンプト(黒い画面)と処理結果のみ…。
最初のうちは、書いた通りにコードが動くものを見て、面白いと感じるかもしれませんが、だんだんとコマンドプロンプトに表示されるだけでは、つまらなくなってきます:
意図した通りに動かない
プログラミングをする上での永遠の課題…。それは、意図した通りに動かない。理由は、バグであったり、ロジックに誤りがあったり、ですが、とにかく動いて欲しい様に動かず、その原因を探すために力尽きてしまいます。
学ぶことが多すぎる
プログラミング言語には、変数、関数、クラス、オブジェクトなどの用語や概念等、学ぶ必要があるものが多くあります。これらをインターネットや学習本を通して学ぼうとするも、学ぶことが多く、消化もうまくできず、プログラミングができる前に挫折してしまいます。
プログラムを組む順序が分からない(ロジックが分からない)
実際に動かしてみたいプログラムの組み方が分からない、ロジックを実装する方法が分からず、実現したいことが実現できないことが多くあります。また、デザインパターンという、よく使うロジックをまとめたものを学ぼうとするも、いつ、どの様にして使うものか分からない、ということも多くあります。
プログラムが動く仕組みが分からない
プログラムがどの様にして動作するのかが分からない。コンパイル型とは、インタープリタ型とは、それぞれの特徴や使うメリット等が分からず、悩んでしまい、先に進めなくなってしまいます。
学ぶ期間が不適切
プログラミングを習得しようとしている期間が適切でない場合(短すぎる場合)、プログラミングができず、挫折してしまいます。こちらは、入社後の社員研修での研修期間で、すべてを学ぼうとする場合に見られる傾向です。
「プログラミングができなくて辛い」場合の対策→休む
ではどうするのか。
プログラミングができなくて辛い、と感じる時に取るべき対策、それは「休む」ことです。
プログラミングは、頭でロジックを考えて、それをプログラムに落とし込んでいく、デバッグ(バグ取り)するといった作業になります。これらの作業には、体力と集中力を必要とします。プログラミングを学習中は、プログラミング→寝る、の繰り返しの毎日になると思いますが、分からない用語や概念を延々と調べていると、疲れます(笑)。
そんな時は、プログラミングから離れます。
何が分からないかも置いておいて、休みます。そして、まずは3日休み、まだ疲れている場合は、更に3日休む…を続けます。一旦、体力が回復したところで、これまでは何が悪かったのかを考え、対策を打ちます。
例えば、目的を設定せずに、ひたすらプログラミング言語の仕様ばかりを覚えようとしていた場合であれば、目的を設定して、目的を到達するまでのスケジュールを作成する…などです。
僕がおすすめのプログラミングの始め方は、別の記事にしてあるので、こちらを参考にしてみてください:
番外編:職場ではどうするのか:周りに迷惑をかけていて辛い
職場でプログラミングをしないといけない場合もあります。この場合は、個人でプログラミングを始める場合と比較して、いやでも他の同期と比較されてしまいます。自分一人ができないと落ち込んでしまいますが、その場合でも対処法はあります:
先輩に迷惑をかけていて辛い
入社1年目で、先輩や研修の先生に迷惑をかけていて辛かったり、周りと比較して、自分だけついていけない、という場合があると思います。
大丈夫です。
入社1年目は、周りに迷惑をかけるものです(僕は20年近く社会人していますが、周りにまだ迷惑をかけていますw)。
迷惑をかけている分、教えてもらった内容を必ず自分のものにしていけば、先輩や研修の先生も教えている価値があったことになります。そのため、ちょっとでもいいので、教えてもらった内容を消化する様にしていけばOKです。
毎日20:00や21:00まで残業しているのであれば、働きすぎです。その場合は環境を変えるか、先輩や研修の先生に頼んで、もう少し勤務時間を短くできないか相談してみてください。
10年は泥の様に働け:泥の様に働く必要はありません
10年は泥の様に働け、という方も多くいます。2008年頃に、大手SIerの元役員の方がそう発言して、IT業界では大きなニュースになりました。
IT業界に20年近くいますが、その様に働く必要はありません。みんなが苦労しないスケジュールを組めば、泥の様に働く必要もありません。そんな仕事を取ってしまうことやそんな進め方をすることが悪いのです。
一人の作業量には限界があるので、毎日朝から深夜まで働く様な現場は異常です。そういう状況が続いている場合は、何とかできないか先輩や上司と調整してみて、それでもだめな場合は、一旦お休みをいただき、その間に次の職場を探しましょう。
結論:プログラミングができる様になるには
最近では、プログラミングスクールやプログラミング学習の環境が揃っているため、プログラミングをずいぶんと身近に感じる様になりました。
しかし、プログラミングは、3日で覚えられる様な簡単なものではありません。しかし、正しく進めれば、必ず、誰にでもできる様になると、僕は考えています。
ですので、プログラミングができなくて辛い人は、まずは一休みしましょう。
後、以下3点を試してみてください。すぐには効果が出ないと思いますが、徐々にプログラミングができる様になります:
まずは自分を褒めてあげて、落ち着く
プログラミング学習が思う様に進まない方は、落ち込まずに、まずは頑張った自分を褒めてあげましょう。そして、休みましょう。繰り返しになりますが、まずは、3日休み、それでも、疲れが取れなかったり、まだ休みが必要な場合は、もう3日休みましょう。
誰かと比較している場合は、それもやめましょう。プログラミングは競争ではないので、日本語と同じ様に、使える様になればOKです。
何が分からないかを理解する
プログラミング学習で重要なことは、用語や概念など、分からないものを特定することにあります。分からない部分を特定し、それを理解するためにはどうしたらよいかを考え、行動します。最も安く理解するには、インターネット上のコミュニティ(Stack Overflow、Reddit、teratail)に聞いてみることをおすすめします。
理解できなければ、先に進めてみる
矛盾するかもしれませんが、一通り調べたり、聞いても分からなければ、一旦は、そのままプログラミングを進めることも重要です。先に進めることにより、後から分かることも多々あります。例えば、データベースの概念を理解しようと努力しても、使ったことがなければ、なかなか理解は進みません。それよりも、実際にデータベースを使ってみて、その後にデータベースの概念を学んだ方が、理解度は進みます。
スケジュールを作る・更新する
用語や概念の理解も重要ですが、それ以上に大切なことは、スケジュールを立てて、いつまでに、何をするのかを明確にすることです。スケジュールの作り方の詳細は、以下の別記事で書いていますが、メモ帳にやることを書き、いつまでにするかを書くだけのシンプルなものでOKです。スケジュールが遅れそうになれば、予定日を変更して遅らせます。急ぐ必要はありません(笑)。
3か月間、半年間、1年間のスパンで頑張ってみる
プログラミングが一通りできる様になるために必要な時間は、200時間だということをご存じでしょうか。最低でも、200時間はプログラミングをしてみることをおすすめします。
まずは、自分のペースで、3か月~6か月で、200時間をかけて、プログラミングを継続してみてください。その後、自分ができる様になっている感覚があれば、1年間続けてみてください。
プログラミングでも、英語でも同じことがいえるのですが、実際に時間をかけないことには、使える様にはなりません。まずは、200時間を目指して進めてみてはいかがでしょうか。
以上です。少しでも、プログラミングを継続できる方が増えれば幸いです。
仕事を辞めようとしている方は、その前にこちらの記事を読んでみてください: