【必読】そのプログラミング勉強、間違ってない?【全部覚えても無駄】
プログラミング大好きなそらいろです。
今まさにプログラミングを勉強しているという人向けにおすすめの勉強法を紹介します。
これから勉強しようと思っている人にも役に立つ情報になるので、初心者さんでも覚えておいて損はないはずです。
僕も以前は間違った勉強方法で時間を浪費していました。
その根底にあるのは小学校、中学校とやってきた勉強のやり方にあると思います。
是非参考にしてください。
全部覚えても無駄
例えばプログラミングの参考書で勉強しようとしていたとします。
プログラミングの参考書を買ってきて、隅々まで覚えようとしてはいないでしょうか?
「&&」「||」「>=」「+=」のような演算子だったり、「substring」「isEmpty」のような標準メソッドやプロパティ、「if文」や「for文」の構文をすべて暗記するというのは無駄です。
僕自身、仕事でプログラミングをしていますが、過去やった言語の内容はほとんど忘れてしまっているので、上記に挙げたようなものはほぼ調べなおさないとプログラミングできません。
中には何回もやっていく中で覚えてしまったものもありますが、大抵覚えていないです。
じゃあ毎回ゼロからスタートしているのか?と思うかもしれませんが、それはノーです。
流石に毎回ゼロからでは仕事になりません。
大事なことは、「何ができるかを知っている」ということです。
条件分岐をさせたいと思ったら「if文」のようなものがあるんだろうなと思って組み立てるし、文字列の一部だけ抜き取りたいんだよなと思ったら「substring」を探します。
第一引数には文字列をセットして、第二引数には切り取る開始位置指定して、というのを覚えても価値はないです。
今はネットで調べればなんでもすぐ出てきますよね。
もう一度言いますが、大事なことは「何ができるかを知っている」ことです。
義務教育でやったような勉強ではダメ
義務教育の勉強は暗記が中心でした。
漢字を覚えて、数式を覚えてというのを散々やってきたかと思います。
一つにはテストでカンニングできないから覚えるしかなかったということがあるかもしれません。
でも実際の生活の中で、カンニングできないことってそう多くないと思いませんか?
試験などでも教科書持ち込みOKで今までやってきたとしたら、すべて暗記しようなんて考えようとすら思わないのではないかと思います。
学校の試験は、記憶力を試すもので理解力を試すものではないのです。
これをプログラミングの勉強にまで持ってきてしまうのは問題です。
覚えるのではなく理解するようにしましょう。
おすすめの勉強方法
参考書で勉強する際のポイントをお話します。
何ができるのかを知る
まずは各見出しがあると思いますので、そこで言いたいことは何なのかということを理解するようにしましょう。
例として「if文」であれば、条件の分岐を行えることを理解します。
たとえば「管理者であれば編集権限を与えて、管理者でなければ編集権限を与えない」といったような条件の分岐を表現できます。
「if文」で他に重要なポイントでいうと、and条件or条件で複雑な条件を設定できることとelseのようなそれ以外という考え方があることですね。
構文を覚えたり、省略形の形を覚えるというのはあまり意味がないです。
参考のコードを書いて理解する
書き方を覚える必要がないと言っても、手を動かすことは大切です。
実際に一つずつコードを書いていき、どういった意味合いで記述されているのかを理解していきましょう。
分からないところが出たら戻って確認するようにします。
書いてあるコードの意味が理解できたら合格です。
ロジックを考えてみる
参考書を一冊読み終えたら、ロジックを考えてみることが上達に繋がると思います。
例えば、0~9の数字がランダムにいくつか交じり合った数字の羅列があるとします。
例:「9437430495」
これを各数字がいくつか含まれているか表示させようとします。
例:「0:1つ」「3:2つ」「4:3つ」「5:1つ」…
ロジックだけでやるとしたらどうやってやりますでしょうか。
僕だったら下記のようなものを思い浮かべます。
- 0~9のカウンタを変数宣言する。
- 1文字ずつに分割して配列にする。
- 配列をループする。
- 0~9の条件分岐でカウンタを加算していく。
- ループが終了したらカウンタの数字を表示する。
上記のイメージがすぐ思い浮かべば、初心者卒業です。
この後は、文字列分割するとしたらsplitが使えるかなとかループはfor文で条件分岐はif文かなとイメージできると思うので実際にコーディングしていきます。
トレーニング方法は「fizzbuzz」のようなロジック問題をこなすことです。
あれとあれが必要だなというのがイメージできるようになるかと思います。
おすすめ参考書
おすすめの参考書を貼っておきますのでもしよろしければ確認してみてください。
実際買うとなったら書店に行って、中身が納得できるか見て購入した方がよいです。
下記では参考書以外の勉強方法も紹介していますので、ぜひ参考にしてみてください。
まとめ
数学の公式は覚える必要あったけど、プログラミングの構文は覚える必要なし。
定番どころはやってくうちに体に染み込んでくるので問題ありません。
それよりもその言語で何ができるかを知っておくほうが大事です。
何ができるかを理解していれば、あとは調べるだけ。
それでは、勉強頑張っていきましょう!