- progate2周してるけど、もう一周したほうがいいかな?
- もっと効果的な学習法はあるの?
- progate完了したら何すればいいの?
という疑問を解決したいと思います。
つまり連続して3周以上やる必要はありません。
上記のようなお悩みをお持ちの方は読み進めください。

私は2012年から未経験からWeb業界に入り、Webデザイナーを経てフリーランスのフロントエンドエンジニアになりました。最近はバックエンドも学習中です^^
そんな自分の経験から効果的なプログラミングの学習方法について書いていきます。
progateの教材を何周もすることについて
自分としては初学者の頃(2012年)から今まで教材を何周かするという発想自体なく、周りでも何周した〜とか聞いたことなかったですね。
が、現代の若い人たち特有のものかなと、頑張ってる様子を感じたのであまり気にしてなかったんですよね。
ただ下記勝又さんの指摘で、やっぱりそうだよな~と思わされました。
※ちなみにここからこの記事では教材を何周もすることを勝手にラウンド学習法と名づけます。
勝又さんの指摘
今サロンの方で「Progateの色々な教材を2周した後Railsチュートリアルに取り掛かりました」という方からご質問頂いたのですが、「教材を何周もするのはただの逃避。手を動かして実際に成果物を作らなければ理解は深まらない」という事実を根気よく広めていかねばですねw😵💦https://t.co/7UqB7XPYui
— 勝又健太|雑食系エンジニア|参加者数ランキング日本第10位のオンラインサロン主催 (@poly_soft) May 29, 2019
今サロンの方で「Progateの色々な教材を2周した後Railsチュートリアルに取り掛かりました」という方からご質問頂いたのですが、「教材を何周もするのはただの逃避。手を動かして実際に成果物を作らなければ理解は深まらない」という事実を根気よく広めていかねばですねw😵
勝又さんの意見への反論
それに対しての反論もあげておきます。
教材を何周かすることで基礎を基礎として定着させるのは大事。基礎をマスターしていないのに何か作っても「なんだか動くものができたけど、なんでできたかわかんない」ってなる。基礎の徹底は王道。イチローが素振りを重視した話はみんな知っているはず。 https://t.co/tHvj2o14NU
— くりこ@人生を味わい尽くす人😋 (@kuriko828) May 31, 2019
こちらの方にも多くいいねがついており、同じように考えてるまたは実践してる人が一定数いることがわかります。
ラウンド学習法をしている人の割合
実際どのくらいの人がラウンド学習法をしているのかアンケートを取りました。
progateとかドットインストールとかの学習法として「2周した、3周した」ってありますが、それを
— hoshi@駆け出しエンジニアLaravel (@funclur_01) May 31, 2019
結果は19人中14人がしない、5人がするということで割合としてはしないが大半でした。
よくTwitterで目にしているのですが割合としてはしない方が多いようです。
ラウンド学習法のメリット、デメリット
デメリット
- 〜周するのが目的となってしまう
- 思考停止でも進められる
- 実践での技術力がつかない
- 覚えてることも再度復習してるため効率が悪い
- 暗記する必要はない
メリット
- 2周目は全体を見通した上での理解ができる
- 見落としに気づける
つまり理解するための2周目です。
なぜなら2周でわからなかった場合3周目もわからない確率が非常に高いです。
学校の勉強や筋トレと違って何周もしたからってプログラミングができるようにはならないんですね。
ラウンド学習法が効果的な場合とは?
しかし今は、初学者に合わせて教材がかなりわかりやすくなっています。
どうしても理解できなかったという時は、
- 集中できなかった
- 頭を働かせず、コピペで進めた
場合がほとんどだと思います。
そのため、2回目は集中して頭を働かせましょう。
progateを何周もするより効果的な学習とは?
何周もするより効果的な学習は以下です。
4つありますが、プログラミングを学ぶ上でどれも非常に重要です。
- 能動的に学ぶ
- 自分なりにまとめる
- 似てるけどちょっと違うものを作る
- アウトプットする
1.能動的に学ぶ
アクティブラーニングという言葉を聞いたことがある人もいるかと思いますが、プログラミングはまさにそれが大事です。
つまり受け身で頭を働かせず言われた通りのことだけやっていては絶対に身につきません。
ではどうやって能動的にやるかというと、以下です。
- 書いてあること以外も試してみる
- 展開が予測出来たら教材を見ずにやってみる
ちょっとわかりにくいですが、progateを進めてる人ならわかってくれると思います。
書いてあること以外も試してみる
例えばですが、JSの関数に引数を渡すとします。
その引数ってどんな文字列かは任意なのでもし以下のような記述があれば
function add(a, b){
return a + b;
}console.log(add(3, 5)); // 8
以下を試してみる↓
function add(c, d){
return c + d;
}console.log(add(3, 5)); // 8
そうするとどんな文字列かが重要なのではなく、関数内の文字列と同じであれば実行される仕組みなんだということがわかりますよね。
上記はあくまで一例ですが、プログラミングはこれ系がかなり多いです。
ここは制約がある、ここは自由などです。
展開が予測出来たら教材を見ずにやってみる
プログラミングの手順として1,2,3→1,2,3→1,2,3と進める場面に直面します。(これもなかなか伝わりづらくて申し訳ありませんが)
たとえばLaravelなどでMVCのCRUD作成する手順で
Mを作った後は、ルーティングを通して、コントローラー→ビュー→コントローラー→ビュー→コントローラー→ビュー→…という順序で作成していきます。
そうするとなんとなく予見できる瞬間が来ます。
ということは次はこうかな?って感じに予見してやってみるのです。
そしてもしそれが合ってなくても全然OKです。
その後、正解を見ることでより脳に定着することができます。
こういったアクティブラーニングは効果的な学習法となるのでぜひ取り入れましょう。
2.自分なりにまとめる
1周しても記憶に定着しない時があります。
そういった場合は、ぜひ自分でまとめてみてください。
SlackでもいいですしEvernoteでも構いません。
使い慣れてるメモ帳アプリに手順や特に理解したいところ、理解できてないところを映していきます。
progateは優秀な教材ですが、1か所だけを見たいときにあまり適してないですよね。
そして、一度躓いたところは、もう一度躓くのが人間です。
そういった時に自分なりにまとめたものを見ることで記憶の定着にもなりますし、探す手間も省けます。
3.似てるけどちょっと違うものを作る
例えば、TODOのチュートリアルを1回やった後は、もう一度同じことをするのではなく少しだけ変えてみてください。
例えばclass名を変える、DB名を変える、要素の数を変える、機能を追加してみるなど何でもOKです。
変えれば変えるほどそれが応用になります。
そして新たな発見や、理解できていなかったところが分かると思います。
そうなれば同じことをするより効率的だということがわかりますよね。
では、何周もせずにより効果的な学習法は何かというとアウトプットです。
プログラミング学習法に関しては以下にも記事を書いています。
4.アウトプットする
- Twitterの投稿
- ブログの投稿
最大のアウトプットはオリジナル制作
最大のアウトプットはオリジナル制作です。
つまりWebサービスやWebサイトを制作しましょう。
オリジナル制作は、チュートリアルの模写のようなものではなく完全にオリジナルな題材でなければいけません。
progateを学んだ後どうしたらいい?
progateを学習した後に、プログラミングスクールに入る人は実はとても多いです。
理由は以下です。
- ほとんどのプログラミングスクールは転職が前提
- 基礎を学ぶで終わらず、オリジナル制作を作ることが主目的
- 現役エンジニアから教えてもらえる
といっても、プログラミングスクールって高いんですよね。。
80万くらいする高額なところもあります。
Webエンジニアの年収が高いのは事実ですし、数十万なら転職すれば2~3か月で元が取れちゃいます。
何より今の現状が嫌で踏み出した一歩なら、お金以上にやりたいことを仕事にできることの満足感が大きいと思います。
さらに今の時代、就職したら無料という神スクールもありますので、気になる方は参照してみてください。



まとめ
結論を繰り返すと以下です。
- 能動的に学ぶ
- 自分なりにまとめる
- 似てるけどちょっと違うものを作る
- アウトプットする
成果物作成でわからなくなったらくぐって、それでもわからなかったら教材に戻ってみてください。
コメント