【3倍速メソッド!】プロエンジニアの学習法を初心者向けに応用・プログラミング爆速学習法 〜みんなのプログラミングチャンネル Vol.6~

プログラミングに基礎知識が必要なのはもちろんですが、実は実戦形式での練習をどの段階で、どのように行うかというのが成長につながる差別化ポイントです。

プログラミングにもインプットとアウトプットがあるということです。

このあたりを踏まえて、今回は「王道のルート」と「伸びるための推奨ルート」を説明します。

王道ルート「公式チュートリアルをなぞる→作りたいものを作る」

インプット、アウトプットで言うと、チュートリアルがインプット部分にあたります。

チュートリアルとは一言でいうと参考書です。とりあえず一通りこれをやっておこうねというものです。

このような教科書をやった後で徐々に制作に入ってそのレベルを上げる、というやり方をとるスクールが多いのではないかと思います。この王道のやり方も悪くはないですが、「時間がかかる」「地道でつまらない」と感じる方が多いです。

ゴール設定のない積み上げ式の勉強って、なんか「作る人」ってかんじがしないのでエンジニアらしくないですよね。実際のエンジニアの新技術の学習方法はこんな感じです。

例えばRailsの場合、公式チュートリアルを、できるだけ早く1週し、すぐに制作にとりかかる。制作は自分でできそうなものでOK。

プロエンジニアの新技術習得は、まず作りたいものを設定し、8割型できそうだというところまで学習したら制作にとりかかります。

→これは作りたいもの、つまりゴール設定があるからできるアプローチですが、これを初心者である自分向けにどうアレンジするかがポイントです。

一番おすすめなのは、兎にも角にも現役エンジニアに相談することです。
お題を出してもらって、開発してみて、後でコードを見てもらうが基本形。

1週間に一度、1時間でもいいので、先輩エンジニアとの時間をとってもらいます。1週間で開発したもののコードレビューと、学習時間中に貯めていた質問、最後には、次の課題を出してもらうというのを3ヶ月ぐらいやるとだいぶ成長してくると思います。

そのうちに、やりたいことが見えてくるので、先輩エンジニアと相談しながら作るものを設定していきます。

王道の形でも、プロが入ることで成長を加速させることができます。

「独学よりもプロに甘えろ!」が鉄則です。

推奨ルート「難しめのレベルのものを実践的に何度も繰り返す。わからなかったらプロに聞く」

これは、インプットなしのアウトプット学習法です。チュートリアルはどうしても網羅的で丁寧なつくりをしているので、単調で覚える作業になりがちです。

推奨するのは、興味を持ったサンプルをダウンロードして、仕様変更を繰り返すという流れです。つまり教科書がなくても学ぶことができるということです。

例えば、教科書がなくても、

  1. 動いているソースから推測する
  2. 予想して書いてみる。
  3. エラーから問題を抽出する。
  4. 仕様変更で新たな課題を得る。

ということを通じて、学ぶことができるのです。暗記すべきところも何回もやることで勝手に覚えてしまいます。

これが、アウトプットしながらインプットも勝手についてくる超実践的な学習法です。

というかこれが、新技術案件の開発現場の現実です。ベテランエンジニアはこんなことを常にやっているので益々強くなっていくわけです。

仕様変更の内容については、自分で設定と余計な回り道をすることもあるので、プロのエンジニアにちょうど良い難しさのお題を出してもらい、5回復習する。「1回作ったら終わり」では技術や記憶が定着しませんので5回復習してください。

最初はコードをなぞるだけでもいいが、かならずお手本のコードは伏せて書くがポイントです。

3回目の復習でなんとなく自力で解けたというのがちょうどいい難易度です。

4回、5回目でさまざまな気づきを得られるし短時間でできるので自信にもつながる。

3回目でできたからOKと思ってやらない人は経験的に伸びない人です。

ようやくできたで終わらせず、もう楽勝だから何回でもやれるぜ、っていう感覚がポイント。ここを億劫がってやらないとスキル習得に結びつきません。世の中の人が面倒がることをサクッとやれるのが仕事なのだから、やれってことです。

 ということで、推奨ルートの方では高めのゴール設定をして、そこに向けて、写経や暗記の要素というのが適度に含まれた状態で繰り返しアプローチをする。という感じです。

 

プロのエンジニアはゴールに必要な知識をピックアップして勉強して、全体像が見えたら手を動かして制作に入る。

プログラミングの勉強にもアウトプットがとても重要です。

野球で言えば、用語の名前とか、ルールとか覚える前に、先ず打席に立ってみろ!ってなると思うんですけど、プログラミングもそれに劣らないくらい実戦重視のフィールドです。