プログラミング勉強法の決定版
プログラミングの勉強って何をすれば良いか迷いますよね。
何せ今までやってきた学校の勉強とは勝手が違い過ぎるので。
なので今回は、プログラミングに特化した勉強法について書いていこうと思います。
僕は何事においても効率やコスパを重視するので、同じ考え方の人には参考になるかと。
異論もあるかもですが、「まーそんな考え方もあるよね。」と思ってください。
ざっくり概要を説明すると、主に9つの考え方に沿って勉強を進めていく方法になります。
それは以下の通りです。
1.大事な20%だけをやる
2.本当に必要なことだけ学ぶ
3.メンターをつけて評価してもらう
4.基礎学習をしっかりやる
5.人に教えるつもりで学習する
6.上手くいっている人のやり方をパクって自分用にカスタマイズする
7.テストなどの想起学習を取り入れる
8.アウトプット前提で勉強する
9.勉強仲間を作る
そして、必要な学習方法は主に3つあると思っており、それは以下の通りです。
1.基礎学習
2.最新技術へのキャッチアップ
3.仕事駆動学習
では、それぞれ具体的に説明していきます。
プログラミング学習において大事な考え方
僕の勉強法は以下の9つのことを念頭に置いてます。
1、大事な20%だけをやる
有名なパレートの法則というものがあります。
要は、
成果の80%は全体の重要な20%から生み出されている
ということです。
つまりは、
「何かを学ぶ時は、常に大事な20%はどこだろうかを考えて勉強しよう」
ということです。
そうすることで、勉強時間を大幅に短縮させることができます。
2、本当に必要なことだけ学ぶ
人間は使わない知識を勉強してもどうせ忘れます。
例えば、仕事で機械学習を触る機会がないのに機械学習の学習をしてもどうせ忘れます。
なので、本当に使う予定のあるもの以外を勉強するのは時間の無駄になる可能性が高いです。
3、メンターをつけて評価してもらう
可能であればメンターをつけましょう。
独学するよりも、優秀なメンターをつけた方が格段に効率が良いです。
なぜなら、フィードバックを得られるから。
メンターをつけることで、間違った学習をしなくてすみますし、コードレビューなどもしてもらえます。
4、基礎学習をしっかりやる
基礎学習はしっかりやりましょう。
Webとは何か、インターネットとは何か、等をきちんと理解せずにWebアプリを開発していても質の良いコードは書けません。
なので、コンピュータサイエンスを学ぶのがオススメです。
5、人に教えるつもりで学習する
人間は教えるつもりで勉強した方が頭に残りやすいです。
これは、プログラマーの世界でも言われていることで、ラバーダック法というものもあります。
例えば、学んだことをZennで発信するというのもかなりオススメです。
6、上手くいっている人のやり方をパクって自分用にカスタマイズする
結局はうまくいっている人のやり方をパクるのが一番手っ取り早いです。
優秀なエンジニアがお勧めしている本や教材を買ったり、エディタや仕事の仕方をパクったりすると良いです。
とりあえず試して上手くいったものは採用して、上手くいかなかったものは切り捨てるか自分用にカスタマイズするかしましょう。
7、テストなどの想起学習を取り入れる
人間は一度覚えた知識を繰り返し思い出すごとに記憶が強化されていきます。
なので、覚えたい知識は積極的にテストすると良いです。
例えば、
- 新しく学んだ概念をフラッシュカードにしたり
- 1度作ったプログラムをもう一度ヒントなしで作れるか試したり
ただ、プログラミング学習においてググれば出てくることを覚える必要はありません。
なので、どうしても覚えたい核となる考え方や概念、よく使う文法などを覚えれば充分かと。
8、アウトプット前提で勉強する
- 使うものだけを学ぶ
- 人に教えるつもりで学ぶ
- 想起学習を取り入れる
と根本の考え方としては同じです。
人はアウトプットしない知識は基本的に記憶に残りません。
なので何かを学ぶ時は、出口となるアウトプットの方法を決めてから勉強すると効率的です。
9、勉強仲間を作る
人はライバルや仲間がいた方がパフォーマンスが上がります。
なので、コミュニティに入ったり勉強会に参加したりなどして、勉強仲間を作るのがオススメです。
仲間がいた方がモチベーションも保ちやすいですし。
具体的な学習法
それでは、先ほど紹介した9つの考え方を元に、どんな学習をしていけば良いのかを具体的に解説していきます。
1、基礎学習
先ほども触れた通り、やはり基礎学習は大事です。
手順としては、
基礎的な学習をする
↓
アウトプット
をすると良いかと。
基礎学習の教材としては、Progate, Recursion, Udemy, 書籍, 面接の質問などがオススメですね。
2、最新技術へのキャッチアップ
プログラマーは常に最新の技術にある程度キャッチアップしておく必要があります。
手順としては、
ニュース記事を読む
↓
気になったところをメモしておく
↓
ある程度内容がたまったらアウトプット
という手順が良いかと。
オススメサイトは、はてブのテクノロジーカテゴリ、TECHFEED、TechCrunchあたりですかね。
3、仕事駆動学習
先ほど解説したように、使う技術に絞って勉強するのはとても大事です。
なので、この仕事駆動学習がとてもオススメです。
手順としては、
仕事に使える技術を特定する
↓
最も優秀な教材をやる
↓
仕事で使う
↓
レビューをもらう
↓
学びをアウトプット
という感じ。
おわりに
最後まで読んでいただきありがとうございます。
賛否両論あるかと思いますが、良いと思ったものだけを取り入れていただければと。
また、学んだことは後で見返しやすいように、どこかにまとめてメモしておくのがとてもオススメです。
最後に宣伝です。
0からエンジニアになるためのノウハウをブログで発信しています。
また、YouTubeでの動画解説も始めました。
YouTubeのvideoIDが不正ですインスタの発信も細々とやっています。
興味がある方は、ぜひリンクをクリックして確認してみてください!
おわり
Discussion