やってはいけないプログラミング学習法を教えてほしい!
プログラミング学習はむやみやたらに突き進んでいくと非効率ですし、どこかで大きな壁にぶつかりやすいです。
しかし、当記事で紹介する5つのことをしっかり意識ですることで爆速で成長できるので、ぜひとも参考にしていただきたいです。
①暗記する

プログラミング学習で最もやってはいけないことは暗記することです。
理由は・・・
人間の記憶よりも公式リファレンスの方が正しいので、暗記するよりも調べたほうが圧倒的に効率的なんですよね。
暗記ではなく考え方を学ぼう
大事なのは、暗記することではなく考え方を学ぶことです。
例えば、プログラミングのアルゴリズムにはfor文というものがあります。プログラミングをやっていると下記の様ばソースコードを見たことがあるのではないでしょうか?
for($i = 0; $i < 10; $i++) {
文
}
意外と、これをそのまま暗記してしまおうと思いがちなのですが、それだと少し難しい処理が入ってしまうと応用が利かなくなります。
具体的には少し抽象度を上げて考えてみましょう!
for (<初期化式> ; <条件式> ; <ステップを進める式>){
文
}
プログラミングを勉強するときは、文法をそのまま覚えるのではなく、
- これは指定回数まで条件を繰り返す文法である。
- 初期値と条件とステップを進める式を設定する必要がある
と考え方を覚えることが大切です。
実際に現場でコードを書くときにfor文が何かさえ分かっていれば、後は調べれば使うことが出来ます。
結果として暗記してるのはOK
僕は暗記に関して下記のツイートをしました。
プログラミングには暗記は不要ってよく言われますよね。
確かに事実ではあるのですが、少し変えていいなら✅暗記しようという意識が不要
と言いたい。
何度も書いて忘れてを繰り返し、自然と手が覚えてる状態にもっていくのが理想。— やすお@30代からエンジニア🤩元営業&人事 (@freelance_yasuo) 2020年5月29日
これは、「まぁ結果的に暗記してしまうのはいいよね!」って話です。
暗記しようと思って暗記する必要はなく、繰り返し勉強するうちに暗記してしまっている状態になっているのが理想的な形です。
なぜならそれは何度も繰り返し勉強した証にだからです。
②難しい技術書を買う

難しい技術書を買って満足して放置するみたいな人も良くいますが、(昔の自分です)かなりもったいない事なのでやめましょう。
難しい本は進まないので挫折しやすい
何故難しい技術書を買ってはいけないかというと、プログラミングに対してマイナスのイメージを持ち、結果として挫折してしまいやすいからです。
例えば、数学を勉強するのに専門書から入ると挫折しやすいのは想像にかたくないですよね?
逆に、「中学3年間の学習を復習する○○」みたいな本だと「自分にもできそう!誰もが思うはずです。(数学が苦手でなければ)

新しい分野は入門書からはじめる
新しい分野の学習を始めるのに一番の方法は「やさしい入門書から入る」ことです。
具体的には下記のような特徴がある本です。
- サルでもわかる○○などの入門書
- イラストがたくさん入っている。
- 図がたくさん入っている。
- 漫画
下記では分野ごとに入門書を紹介しているので、興味のある方はご参照ください。

③完璧に理解する

プログラミングは漆塗りの勉強法

例えば、語学学習って何度も繰り返しながら覚えていきますよね?
反対に数学などは、1次方程式が分からなければ2次方程式を理解することが出来ないように、一つ一つ完璧に理解しなければ次へ進めません。
プログラミングは漆塗りの勉強法に相性が良く、何度も繰り返し理解しながら勉強するのが最も効率が良いので、初めから完璧に理解する必要はありません。
一週目の理解度が低くても2週目に理解が深まることがあるので、完璧に理解する必要はないです。分からなければガンガン飛ばしていきましょう!
④インプットを重視する

プログラミングを勉強している方を見るとインプットをメインに学習している方が散見されます。
実はインプット重視の学習は非効率です。
重視すべきはアウトプット
プログラミングの学習は、アウトプット8、インプット2くらいがオススメ。
とりあえずアルゴリズムとデータ構造の基礎、制御構文などをざっくり学んだらひたすら課題をする。
わからんとこ調べる。
まとめる。
課題する…このサイクルを高速回転したら誰でも爆速で成長できる。
— やすお@30代からエンジニア🤩元営業&人事 (@freelance_yasuo) 2020年4月21日
上のツイートでも述べている通り、アウトプット8、インプット2くらいの割合でやった方が圧倒的に成長できるんですよね。
何故かというと、プログラミングはインプットよりもアウトプットから得るれるものの方が多いからです。
プログラミングの本質は「問題解決」です。
実際に、本のコードを写して動かすことも大事ですが、それだけだと自分で考えてコードを書くといった作業ではないので、問題解決能力が上がりません。(エラーも起こりませんよね)
また、実践で使わないと忘れてしまいますし、外部に公開しないと批評される機会がないのでフィードバックを受けて成長することもできません。
Qiitaやブログ、Githubでアウトプットしよう
アウトプット重視で学習するために、実際にアプリを作ったりQiitaやブログを開設して記事を書いたりなどのアウトプットを行うことをおススメします。
人の目にさらされる緊張感があると集中して勉強できますし、成長も早いです。

⑤目標を決めない

目標を決めずにダラダラ勉強するのが最も効率が悪いですし、時間が無駄になってしまいます。
やるからには何か具体的な目標を決めましょう。
プログラミング学習の目標を決めよう
プログラミング学習をするときには何か目標を設定するとモチベーションを維持しやすくなります。
- エンジニア職に転職するため
- フリーランスエンジニアになるため
- 自分のアプリを作るため
- 現職でスキルアップをするため
- 競技プログラミングを始めるため
人それぞれ色々な思惑があると思いますが、なんとなくやるより全然前向きですよね。
プログラミング学習には終わりがないので、目標を持たないと永遠に勉強してしまうことになります。
学校の勉強だって高校受験や大学受験という目標があったから続いていたと思います。(僕はしませんでしたが…)
終わりに

以上5つがプログラミング学習をするときにやってはいけないことでした。
まとめておきます。
- 暗記する
- 難しい技術書を買う
- 完璧に理解する
- インプットを重視する
- 目標を決めない
最近プログラミング学習で伸び悩んでるな~と思う方は、ぜひこちらの逆を意識してみてください。

僕は元々Fラン大学出身で、ブラック企業の社畜だったのですが、30代前半でWEBエンジニアとしてIT企業に転職して人生が大きく変わりました。
WEBエンジニアは実務経験1年程度あれば月収50万円は稼ぐことが出来ますし、実務経験2~3年程度あれば年収1000万円稼ぐことも可能です。
もちろん稼ぐためには努力は必要です。しかし、逆を言えば「努力が必ず報われるのがエンジニア」という職業です。
エンジニアになって稼ぎたい!理想の働き方をしたい!と思っている方は「未経験からエンジニアになる方法」を読んで、ぜひ挑戦してみてください。