未経験の状態からプログラミングを勉強してエンジニアを目指す場合、
「どれだけ暗記することがあるんだろう・・・」
と心配になる方もいるかと思われます。
結論から言いますと、プログラミングの勉強に暗記はほとんど必要ありません。
プログラムを学習する際には、暗記よりももっと大事なことがあります。
この記事では、
■なぜプログラミングの勉強に暗記が不要なのか?
■プログラムを学ぶ際、暗記が必要ないならば何が必要となるのか?
について解説していきます。
プログラミングの勉強に暗記が必要ない理由
何も知らない状態からエンジニアになろうとする場合、個人差があるとはいえ、プログラミングの勉強には大体1,000時間程度が必要となります。
では、「個人差」とは何か?
当然、吸収力の違いという部分もありますが、それよりも大きいのが「学習方法の違い」です。
間違った勉強の仕方をしていると、とても1,000時間では足りません。
その間違った勉強方法の代表格が「暗記に頼る」というものです。
なぜプログラミングの学習に暗記が必要ないのかについては以下の通りです。
そもそも丸暗記は無理
プログラムのコードをすべて暗記しようとしても、量が膨大すぎてとてもじゃないですが覚えきれません。
最低限覚えておくべき基礎知識などは当然あるものの、コードごと丸暗記していくことは到底不可能ですし、やる必要もないと言えます。
もし仮にそこそこの量のコードを覚えたとしても、エンジニアの現場において暗記したコードをそのまま使える場面などほとんどありません。
従って、現役バリバリのエンジニアでも、いちいちコードを丸暗記しているなどという人はまずいません。
自由に調べられる
開発の仕事は、学校のテストや受験などとは異なり、カンニングし放題です。
わからないことが出てきたら、ネットでも本でも自由に使っていくらでも調べることができます。
エンジニア関連の情報はネット上に溢れ返っているので大抵の問題は解決できますし、仮に解決できなければ、エンジニア同士で質問し合うことのできるサイトも存在します。
人間、歳を重ねるごとに記憶力は段々と落ちていくものですが、経験によって身に付いた「調べる力」・「解決する力」は衰えません。
すぐに役に立たなくなる可能性がある
エンジニアの世界では頻繁に技術革新が起こっており、それまで記憶していた情報が使えなくなっているということも多々あります。
技術や規格が刷新されるたびに、そのすべてを一つ一つ律儀に覚えていこうとしていたのではキリがありません。
必要になった時に都度調べ、使えるようになれればそれで充分なのです。
「考え方」を身に付けることが重要
プログラミングを学ぶ際は、何かを丸暗記しようとするのではなく、「こういう時はどういう処理をすればいいのか」という考え方を身に付けることが重要です。
例えば計算もそう。
85×37の答えを暗記している人などほとんどいないでしょう。
しかし計算方法を知っていれば、いつでも答えを導き出せます。
プログラミングも同じです。
わからないことが出てきた時に、どう対応すればいいのかを理解していれば何も問題はありません。
プログラミングの正しい勉強法
ひたすらアウトプットする
「何も知らないから、とりあえず分厚い本を一冊読んでみてからプログラムを組み始めてみよう」
完全な未経験者の場合、こういった考えを持つ方もいらっしゃいます。
しかしその方法は、あまり効率が良いとは言えません。
机上の勉強だけでは、プログラミングは身に付きません。
プログラムを書くための最低限の知識を得たら、あとはがむしゃらにプログラミングに励むのがベストだと言えるでしょう。
プログラミングの能力は、インプットよりもアウトプットによって磨かれていくものです。
「必要は発明の母」という言葉がありますが、プログラミングも同様に、知る必要が生じてから情報を求めるというスタイルが好ましいです。
なお、書くプログラムは何でも構いません。
■ネット上で見つけたお題
■本に載っていた課題
■「こんなサービスを作ってみよう」と自分で思い付いたもの
何でもいいので、とにかくアウトプットを優先するということを意識してください。
アウトプットを続ける中で出来の良い成果物が生まれれば、それをポートフォリオとしても使えるので一石二鳥です。
自己解決力を育てる
わからないことが出てきたら、安易に誰かに聞こうとせず、ネットや本を使って徹底的に調べて自分一人で解決できるよう努めてください。
最初は時間がかかるでしょうし、非効率的に思えるかもしれません。
「誰かに聞いてしまった方が早いんじゃないか」、そう考えてしまうこともあるでしょう。
しかしすぐに誰かに聞く癖がついてしまうと、エンジニアにとって最も必要な能力である「自己解決力」が育ちません。
開発現場では、疑問や意味不明なエラーに出くわすことなど日常茶飯事です。
その都度周囲の人に質問していては迷惑をかけますし、自分一人じゃ何もできない人間だと判断されてしまいます。
そんなことにならないよう、勉強段階で何かに躓いた場合は、できる限り他人に頼らずネットや本を駆使して自力で乗り越えるようにしてください。
これを繰り返していくことで、ググる力も上達していきますし、どんな場面でどんな本が参考になるのかもわかってくるようになり、自己解決のスピードも上がっていきます。
そして身に付けた自己解決力は、いざエンジニアの現場に出た時に必ず役立ちます。
なお、さすがに一つの躓きに対して5時間も6時間もかけていては先へ進まないので、
「わからないことが出てきたら、1時間は誰にも聞かずに自分だけで調べる」
といった自分なりのルールを作っておくとよいでしょう。
考える力を養う
■なぜこのコードでこういった処理が行われるのか
■どうしてこういう動きをするのか
プログラミングの際は、常に上記を意識しておいてください。
ただ本に載っているプログラムを書き写して動かしても、何の勉強にもなりません。
プログラミング能力の向上のためには、処理一つ一つが持つ意味をじっくり考えながらプログラムを書いていく必要があります。
躓いた部分をブログに綴る
勉強を進める中で乗り越えた問題やトラブルについては、備忘録としてブログに残しておくのがおすすめです。
勉強の成果や乗り越えた問題を日々綴っていくことで、いつの間にか自分専用の参考書が出来上がり、今後同じところで長々と躓くことがなくなるため非常に有益です。
せっかく時間をかけて自己解決した問題なのですから、なんら記録に残さないのはもったいなさすぎます。
なおブログを書く際は、「はてなブログ」での執筆がよいのではないかと思います。
はてなブログはエンジニアにも多く利用されているため、自分が綴った内容を閲覧にきたエンジニアが補足的な意見を書き込んでくれるかもしれません。
ブログではなくノートに残しておくのもよいのですが、常に持ち歩く手間や失くしてしまうリスクを考えると、ブログに残すのがベストでしょう。
まとめ
以上、プログラミングの勉強に関しては暗記の必要はほとんどない、ということについて解説させていただきました。
不要な暗記に時間を割くのならば、「プログラミングの考え方」について学ぶ方が遥かに役に立ちます。
「暗記に頼るなと言われても、じゃあどうやって勉強すればいいかわからない!」
という場合は「開発会社が監修!初心者がプログラミングの最も効率的な勉強法を徹底解説!」の記事で勉強法を具体的に解説しています。
ぜひこちらも参考にしてみてください。