【ビジネスマンに役立つ、明日を1%良くするこばなし】やってはいけないプログラミング3つの学習法

はじめに

今日のこばなしは「やってはいけないプログラミング3つの学習法」と題してお話したいと思います。

今までプログラミングを習得する方法や、おすすめのプログラミング言語の選び方などを動画で紹介してきましたが、今日はおすすめのプログラミング学習法ではなく、逆に「やってはいけないプログラミング学習方法」について紹介したいと思います。

私はプログラミングについては完全に独学ではありますが、実際に今フリーランスとしてプログラミングを書いていますし、サラリーマン時代はプログラミングを使って仕事をしていました。独学でもプログラミングを習得できたので、その経験からやってはいけない学習方法についてお話したいと思います。

やってはいけない1「コードを書かない勉強法」

まず、やってはいけない学習方法の1つめとしては「コードを書かない」という勉強法です。
例えば受験勉強などで、自分ではわかったつもりになっているのに実際に問題集や過去問を解いてみると解けなかった…という経験はありませんか?
それと全く同じです。

プログラミングの本や動画を見て学習を進めてわかった気になっていたとしても、それがコードを書けるようになっているかと言えばそうではない可能性が大いにあります。
ですから“どんどんコードを書いてみる”というのがプログラミング学習の一つの王道です。

僕自身もサラリーマン時代、通勤時間の合間にある程度プログラミングを学んではいたのですが、実際にコードを書いてみると書けない、という経験がありました。
そうはいっても通勤の移動中にコードを書くのは難しい。
そこで、会社の近くに引越しをして、今まで移動に費やしていた時間を利用して、プログラミング学習をしながらどんどんコードを書いてみるようにしていきました。
すると、実際にみるみる上達したのです。
それくらいコードを書くということが大切なことと言えます。

やってはいけない2「暗記をする学習法」

2つめの「やってはいけないプログラミング学習方法」。
それは暗記をするという学習方法です。プログラミングにおいては、「基本構文」と呼ばれるものがいくつもあり、それは例えば“for文”とか“if文”などを書くための決まりのことです。
他にもクラスや関数の書き方などのルールがあるので、それを全部覚えるのは非常に大変です。

もしそれらの基本構文を全部覚えてから学習を進めるとなると、膨大な時間がかかってしまいます。
しかし、プログラミングのゴールは「書き方を覚えること」ではありません。
ゴールは、プロダクトなどの「成果物を作れるようになること」です。
基本構文を覚えたからと言って、成果物をたくさん作れるようになるかと言えばそうではありません。
ですからプログラミングを暗記する方法は、おすすめできない学習方法だと感じます。

それからきれいにノートをまとめるのも、よいとは言えません。
なぜなら、実際にきれいにノートをまとめたところで後から見返すかわからないですし、特にプログラミング初心者の段階で使うかどうかわからないノートをきれいにまとめることに時間をかけるのは非常に時間がもったいないことです。
ただ、ある程度プログラミングの学習が進んで、できることが少し増えた段階で、それを簡単に引き出せるためのメモのようなものであれば役に立つと思います。
例えば僕はGoogleのスプレッドシートに、検索しやすいように項目ごとにサンプルコードを貼り付けていつでも見られるようにしています。
そのように、一通り学習が終った段階でサンプルコードを簡単に引き出せるためのメモをつくることは良いと思います。
あるいは成果物を作る段階で、必要だと感じるサンプルコードをどこかに貼っておくのも良いと思います。
ですが暗記や、ノートをきれいにまとめことに時間を使うのはもったいなし、そんなことをしていたらいつまでたっても成果物が作れませんから、避けた方がいいと思います。

やってはいけない3「成果物を決めずにはじめる学習法」

それから最後の3つめは、「成果物を決めずにプログラミング学習をはじめる」ことです。それがダメな理由としては、成果物を決めずにプログラミング学習を行うと基礎学習だけで終わってしまう可能性があるからです。
先ほどと重複しますが、プログラミング学習のゴールは「成果物を作ること」。
基礎学習だけにとどまり、成果物を作ることなくプログラミング学習を終わってしまっては元も子もありませんよね。

一方で、成果物を作ってしまえば自分の自信にもつながるし、何よりも得てして成果物を作っている途中で次に作りたいものが出てくるものです。
次々に成果物を作ると経験にもなるし、就職や転職を目指している方にとっては自分のポートフォリオが増える、という形で良い循環ができてきます。
ですから作りたい成果物を決めて、それを作れるプログラミング言語を勉強し、とっとと成果物を作ってしまうことが重要です。
基礎学習がざっくり終わったら実践をしてみる。
そして実践でわからないことがあれば基礎学習に立ち返ってみる。
そのように“基礎学習と実践との行ったり来たり”を繰り返すと効果的に学習を進められると思います。

成果物については、作りたいものを作りましょう。WEBサイトを作りたいのであれば、(プログラミング言語ではありませんが)htmlとCSSを、それに加えてJavaScriptやPHPなどのプログラミング言語を学習すれば良いですし、データ分析であればPython、ゲームを作りたい人はC#、iPhoneアプリを作りたいならSwiftだし、アンドロイドアプリを作りたいならJavaやKotlinだし、IoTをやりたいのならC言語…といった感じです。

『簡単、人気だからPythonをやる』『高収入だからGoをやる』というのもそれはそれで良いと思います。ですが、それは本当にあなたが実際に作りたいものかどうかを、もう一度自分自身に質問をしてみることをおすすめします。

まとめ

「やってはいけないプログラミング学習方法」をまとめると、
1つめは「実際にコードを書かない勉強法」
2つめは「暗記をする学習法」
3つめは「成果物を決めずにはじめる学習法」です。
一方で、おすすめの学習法はもう皆さんおわかりですね。
「作りたいものを決めて作りたいものを作る」ことです。
そうすればコードを書かないということもないし、暗記する必要がないということもわかります。

作りたいものを完成させれば自信にもなるし、作っている過程で次に作りたいものが出てきて、成果物が増えるという結果になります。
やってはいけない学習方法。その裏を返せば、「作りたいものをとっとと作ってしまいましょう」という結論に至るのです。