こんにちは、ケニーです。
プログラミング中の人「プログラミングができない、辞めたい。できないから辞めたい、辞めたい…。」
こんな悩みにプログラミング歴20年以上の僕が答えます。
プログラミングができない→辞めたい、と思うのは自然なことです。プログラミングでも、英語でも、とにかく最初は、学ぶことが大量にあるため、最初は投げ出したくなる気持ちがよくわかります。
ただ、今、プログラミングを始めたい、と思った方の判断は正しい。正しすぎます。
プログラマやソフトウェア技術者は、常に不足している状態が続いており、経済産業省による発表では、日本におけるIT人材は、2030年には最大で約79万人不足するといわれています。プログラミングができれば、可能性は無限大といっていいほど広がりますので、あきらめない方が将来が明るい感じになります。
本記事では、あくまでもプログラミングを続けることができる様、今直面している問題の分析とその問題への対策を立てる方法を説明します。プログラミングができない→辞めたい、もう辞める!のは、本記事の内容を実践してからでも遅くないと思いますので、僕に3分だけ時間をください。
この記事は、こんな人向けです
・プログラミングができないので、辞めたい人
・プログラミングができる様になりたいけど、課題が多くて悩んでいる人
プログラミングができない→やめたいの思考
プログラミングは、難しいです。最初でつまずくと、思考は「分からない分からない分からない」となり、最後はプログラミングをやめたい、という考えになってしまいます。まだプログラミングを始めていない方は、プログラミングの始め方が重要になるため、こちらの記事を読むとつまずくことなく、プログラミングを勉強できると思います:
では、プログラミングをすでに始めてしまっている方はどうするのか。答えは、課題を明確にすることです。
課題を明確にする
プログラミングに限らず、何かうまくいかない時(今回は、プログラミングができない→やめたい)は、なぜそうなっているのかを明確にする必要があります。
まずは分析
プログラミングができない場合は、まずは、なぜできないかを分析することが大切です。できない理由があるはずです。例えば、そもそも、プログラミングが面白くない→ではなぜ面白くないのか→参考書をベースに、アルゴリズムばかり組んでいて、黒い画面とにらめっこの毎日で面白くない、等です。そうやって、なぜプログラミングができないのか、分析を重ねて、課題を明らかにしていきます。
プログラミングを始めたばかりの方がつまずきやすい原因は、似ているものが多く、大まかには以下になるのではないでしょうか:
- 学ぼうとしているプログラミング言語に関する情報が少ない
- プログラミングの概念が理解できない(オブジェクト指向、ポインタ、変数等)
- プログラミング以外のところでどうすればよいか分からない(フレームワークの動かし方、データベースなど)
- 専門用語が理解できない
課題を書いていく
課題をテキストエディタやエクセルなどに書いていきます。おすすめは、エクセルの様な表計算ソフトを使うこと。以下は、LibreOffice Calc(無料)で作った課題管理表です:
上記の様な感じで、課題と課題への対応経緯が分かればOKです。対応期限(いつまでに対応するか)も感覚でよいので設定しておきましょう(課題への対応経緯の内容がコメントなどであれば、対応期限は「-」でOK)。なお、主な課題への解決策は以下の通りです:
参考書の内容が分からず先に進めない場合
参考書は、1度読むだけでは、内容を完全に理解することはできません。最低でも、3回は、同じ参考書を読みなおすことをおすすめします。僕の経験上、以下の様な感じで読み進めるとよいです:
1回目:まずはざっと読む。
2回目:参考書にあるサンプルコードを動かしてみる。
3回目:2回目で理解できなかった点を中心に確認を進める。
用語や概念などが分からず、先に進めない場合
何が分からないかを明確にして、人に聞くかネット上の掲示板(Stackoverflow、redditやteratail)で聞いてみましょう。この場合、なんとなく分からない状態で確認するのではなく、例えば、「tomcatを起動しようとすると、ログにXXXというエラーがでて動かない」、という様に、投稿を見た人に必要な情報を予め提供しておくと、解決できる確率がぐっと上がります。
また、エラー内容が分からない場合は、関連するソースコードとエラーが出ているログをすべて貼り付けて確認することも重要です。中途半端にログやコードの一部だけを見せても、それだけでは、エラー原因を特定することは難しいです。
課題に対処していく
何を、いつまでに対処するのか
課題をテキストエディタに書いた後は、毎日、課題表を開いて、対応を考える→実行、結果を課題表に書く、を課題が解決するまで、繰り返します。
こうすることで、課題を一つ一つ対応していくと、プログラミングで詰まっている箇所も解決でき、先に進める様になります。ちょっと面倒ですが、テキストエディタに課題と日々の対応内容を書いていくだけで、課題の全体量と進み具合がわかる様になります。
また、こうやって、課題を整理していれば、ネット上の掲示板などで、人の力を借りようとした時も、課題管理表を見せて話をすることができるので、相談を受けている方もアドバイスがしやすくなります。プログラミングスクールの無料相談でも、予めこんな悩みがあるのです、と見せれば、その場で回答してくれるかもしれません。
どう対処するのか
課題によりますが、まずは、自分の中で仮説を持つことが大切です:
- プログラミングの概念だったら、こういうものかな、という仮説
- フレームワークなどの動かし方だったら、解説サイトを読んでこうやったら動くと思う、という仮説
- エラーであれば、こういう理由でエラーになっている、という仮説
を立てて、その仮説が正しいかを検証していくことで、課題へ対処できる様になります。仮説が間違っていて、行き詰まった場合は、ネット上の掲示板で自分の仮説を述べて意見を聞いてみる、ということを続けていき、課題に対処していきます。
自分で設定した期限までに時間が足りない→期限延長
課題に対して、解決を「いつまでにするか」期限を決めることは重要です。しかし、期限を設定しても、その期限までに目標が達成できるかはわかりません。さくっと解決できないから課題管理表に入っているはずなので(笑)。
そのため、いつまでに解決・対応するか期限を設定した後、期限までに解決・対応できない、と思った場合は、遠慮なく期限を延ばしましょう(笑)。これで心の負担がだいぶ軽くなります。また、自己嫌悪に陥ることもないと思います。
まとめ:課題を明確にする→対処すれば、プログラミングは怖くない
本記事の内容をまとめます。プログラミングができなくて辞めたい時でも、きちんと課題を明確にして、それぞれに対処することを続ければ、できる様になります。具体的には、以下を繰り返していく形になります:
- 現状を分析する
なぜプログラミングができないのか、どこで詰まっているのかを把握。 - 課題を整理して、テキストエディタやエクセルに書いていく
- それぞれの課題に対処していく
詰まったら、ネット上の掲示板で確認。
これでプログラミングを進めていく中で出てくる課題に対処をしていけば、詰まるところも少なくなり、プログラミングができない→辞めたい、という状況を回避できる様になります。
以上です。