それ間違ってるかも
筆者はプログラミング初学者の方の学習相談に乗ることが度々あります。間違った勉強法でプログラミング習得に挫折している人が多いこと多いこと。
これ受験勉強の弊害です。受験勉強と同じやり方でプログラミングの勉強をして失敗してるんですよね。
実際、大学受験の勉強に成功した人ほどプログラミング学習に失敗している傾向が強いように思います。
大学受験は暗記でなんとかなっちゃうところありますよね。でもプログラミングは暗記だけでは習得できません。
私も独学でプログラミングの勉強を開始した当初は受験勉強と同じノリでひたすら暗記しようとして失敗しました。なので皆さんには二の轍を踏んでほしくないと思ってます。
プログラミングって英会話と近い所があるかなと。英会話は「話せるようになる」のが目的ですよね。
文法学習やリスニングも重要ですがそれだけで外国人と話せるようにはなれないです。
文法や発音を習得したら実際に外国人(または講師)と話しながらフィードバックを得ながら「足りない点」を学習していく。
ネイティブにはマクドナルドの発音が全然伝わらなかったな。マクドナルドってマッダーナゥズって発音しないと駄目なのか…
英会話では実際にアウトプットしなければ上達につながる学びを得られません。単語や文法を暗記ばかりしても、いつまで経っても上達しません。
これプログラミングも同じことが言えます。
プログラミングでは最低限の文法やルールを覚えたら後はTwitterのクローンアプリを実際に開発したり既存のアプリに機能を追加してみたり手を動かしてアウトプットしていくことが大切です。
アウトプットをする中では間違いなく壁にぶち当たります。
ただその壁にぶち当たるのが重要。「自分に足りていない」技術・知識を認識でき、その技術・知識を勉強し直すことで「使える」知識が定着します。
正しいプログラミングの勉強法を採用
これだけで間違いなく学習効率は5倍は変わってきます。
今回はプログラミングの勉強で絶対に知っておきたい原則とプログラミングスキルを習得する方法をお伝えしますね。
当メディア『ノースキルの逆襲』編集部(須賀)より
当メディア『ノースキルの逆襲』編集部の須賀です。当メディアではこれまで20社以上のプログラミングスクールと受講生を取材してきました。
各スクールの教材や講師についても授業を受講し、チェックした上でおすすめスクールをこちらの記事「本当に力のつくおすすめプログラミングスクールまとめ」で掲載しています。参考にしてくださいね。
【超効率的になる】プログラミング学習3つのルール
プログラミング学習では以下を意識しましょう。
1.教材を暗記しようとしないこと
2.インプットよりアウトプットを意識すること
3.短期集中で学び切ること
1.教材を丸暗記しようとしないこと
無茶苦茶非効率なのが「教材を丸暗記しようとすること」です。
たとえばオンライン教材のProgateばっかり何週もグルグル回って勉強することなど。
これは”逃げ”なんですよね。教材をグルグル回ってる方が考える必要もなく負荷が少なくて楽なんですよ。
プログラミングを勉強してる感はあるんですが実践的なプログラミングスキルはついていないです。
Progateを1周して基礎を学習すればすぐに応用的な学習、つまりアウトプットに移行すべきです。
2.インプットより「手を動かすアウトプット」を意識すること
インプットばかりしていても「使える知識」はつきません。もちろんインプットも重要ですがアウトプットを意識したインプットを心がけましょう。
たとえばですが英会話でprimary cns lymphoma(中枢神経系原発リンパ腫)なんて単語使わないですよね。こんな実践で使えない知識をいくらインプットしても無駄です。
でもプログラミング学習はこういう無駄なインプットをひたすらしていまいがちなのです。
Progateを一周してプログラミングの全体像を掴んだ後はすぐに実践(アウトプット)に移るべきです。
たとえばTwitterのクローンアプリ開発に取り組むと「この機能どうやって実装すればいいんだろう」と分からないことだらけです。
分からないことがあればまた教材に立ち返って1つ1つの機能の実装の仕方を調べて分からない点を解消していきます。
アウトプット先行のインプットは遥かに効率が良いです。
3.短期集中で学び切ること
可能なら1か月間勉強に集中する期間を確保しましょう。
1か月間は趣味や誘いを断りプログラミングの勉強のみにコミットするのです。
この1か月で一定レベルのプログラミングスキルをつけられると9割がたプログラミング習得に成功したと言っても良いです。
勉強時間・期間 | スキル(できること) |
---|---|
100~200時間(1か月) | シンプルなWebアプリの開発やTwitterやメルカリなどのクローンアプリの開発 |
300~500時間(2~3か月) | オリジナルWebアプリを助けを借りて開発できる |
600~800時間(4~5か月) | オリジナルWebアプリを自力である程度開発できる |
1000時間(6~9か月) | 高度な機能を搭載したオリジナルWebアプリを自力で開発できる |
1か月間で100~200時間は勉強時間を確保できるでしょう。
この勉強時間を確保できればシンプルなWebアプリの開発やTwitterやメルカリのクローンアプリの開発など一定のアウトプットができるようになります。
短期集中が大事です。ダラダラと時間をかけてプログラミングを勉強するのは本当に良くないです。
今週やって来週はやらなかったりと時間があるがゆえに勉強が断続的になってしまいがち。
勉強が断続的になると以前学習した内容を忘れてしまい、また教材で復習し直さなければなりません。
こうなると教材をクルクル回ってインプットしてるだけで何も力がつかない悪循環に陥ってしまいます。
なので1か月勉強にコミットする期間を取って短期集中で一定レベルのプログラミングスキルを習得してしまいましょう。
Twitterやメルカリなどのクローンアプリを開発したり自分でアウトプットできるようになるとそこからプログラミングは俄然楽しくなってきます。挫折もしにくいです。
【挫折しない】プログラミングスキルを伸ばす5つのステップ
以降では具体的にどのように勉強すれば良いか5つのステップをお伝えします。
1.開発したいものを考える
2.開発に必要な技術・知識について調べる
3.教材で学ぶ
4.開発していく
5.開発したものを改良したりさらに別のものを開発する
1.開発したいものを考える
仮でもいいので作りたい、開発したいアプリやWebサービスについて考えてみましょう。
たとえばですが以下のWebアプリ「靴のシェアリングサービス」の様に作りたいものがあるとベターですね。
特に作りたいものないんだけど…
そういう人もいるでしょう。
わたし自身もプログラミングの勉強を始めた当初は明確に作りたいものがなかったのでその気持ち分かります。
おすすめなのがTwitterやメルカリのクローンアプリを作るのを目標にすることです。
クローンアプリを作っているうちに自分で考えたオリジナルな機能を付け足したくなったり、自分風にカスタマイズしたくなってきます。
最初は作りたいものがなくてもクローンアプリを作るために勉強し始めるといろいろやりたいことが出てくるんです。
肝心なのはまずは手を動かしてみることです。
クローンアプリをいくつか開発すると「クローンアプリ同士を組み合わせて新しいアプリが作れるかも?」と発想が広がってきます。
2.開発に必要な技術・知識について調べる
開発したいものを作るにはどのような技術が必要なのか調べましょう。
たとえばTwitterのクローンアプリであれば以下の技術・知識は必須となります。
HTML/CSS:Webページ構造を作るマークアップ言語
Ruby/Ruby on Rails:Webサービス開発に人気のプログラミング言語
MySQL:データベースを操作するためのプログラミング言語
Git/GitHub:ソースコードの変更履歴を記録・追跡するための分散型バージョン管理システム
Bootstrap:デザインが整ったサイトを開発できるフロントエンドツール
Heroku:サービスを公開するためのPaaSと呼ばれるWebアプリケーションの置き場所
開発したいものを作るのに必要な技術・知識のリストを作っておきましょう。
もしどんな技術・知識を使えばよいか分からない場合はTechAcademyの無料体験レッスンを利用するのがおすすめです。
レッスンでは現役エンジニアの講師に何でも質問可能です。事前に質問事項を準備しておいて質問しまくりましょう。
3.教材で学ぶ
開発に必要な技術・知識は何か把握したら次は基礎を学習していきましょう。
おすすめなのがProgateです。月額980円と格安でプログラミング基礎を習得できます。
Progateでは月額980円でHTML/CSS、Ruby、PHP、JavaScript、Python、Javaなど多種多様なプログラミング言語を学習できます。またGitやMySQLの学習も可能。
特筆したいのがProgateは開発環境を準備する必要がない点です。
つまりWebブラウザ上でコードを打ち込み、さらにその打ち込んだ結果も出力できます。アウトプットをビジュアルで確認できるので楽しいんんですね。
隙間時間に手軽に学習できるので初学者にぴったりです。
4.開発していく
プログラミング基礎を習得したら実際に開発に取り組みましょう。
「この機能どう実装すればいいのか全く分からない」
「Progateで学んだ内容が全然身に着いていなかった」
開発する中で壁にぶち当たりまくるでしょう。
諦めたくなることもあるかもしれません。
しかしそれこそが良い兆候です。それだけ伸びしろがあるということですからね。
壁にぶち当たるたびにググって調べたり、教材で調べ直して機能を1つ1つ実装していきましょう。
すると何だかんだで動くアプリを完成させることができます。不完全なところはその都度修正して完成度を高めていきます。
この際には現役エンジニア講師の力を借りるのがおすすめです。独学は全くおすすめしません。
講師が身近にいれば機能をどうやって実現すれば良いか、どんな技術を学べば良いのか、プロ視点での的確なヒントをもらえるので学習効率が上がります。
おすすめなのがTechAcademyですね。
受講1か月だけなら12万9000円~とかなり安いです。Progateで1、2週間で基礎学習を済ませておいていざ開発に取り組むフェーズでTechAcademyにお世話になるのがベストです。
5.開発したものを改良したりさらに別のものを開発する
開発したいものを作れたら次は新たにオリジナルな機能を追加したり、さらに別のものを開発するのも良いでしょう。
たとえばTwitterのクローンアプリを開発したのであれば自分オリジナルの機能を追加していきます。その機能を追加するにはどんな技術が必要なのかまた勉強していきます。
Twitterではなくメルカリのアプリを開発していくなど別のアプリを開発していくのでも良いですね。
こうやってどんどんアウトプットしていくことでインプットの量も劇的に増えていきます。最終的には相当に実力がついていることでしょう。
まとめ
本記事で紹介した効率的なプログラミング勉強法についてまとめます。
まず以下のルールを厳守しましょう。
1.教材を暗記しようとしないこと
2.インプットよりアウトプットを意識すること
3.短期集中で学び切ること
一言で言うと開発したいもの、作りたいものを明確にしてアウトプット重視で勉強していくことが重要です。
具体的にどうやって勉強を進めれば良いかは以下のステップに従いましょう。
1.開発したいものを考える
2.開発に必要な技術・知識について調べる
3.教材で学ぶ
4.開発していく
5.開発したものを改良したりさらに別のものを開発する
実際に勉強を進める上では3の教材で学ぶところまでは割と簡単です。
そこから4の開発していく段階になると難易度が増してきます。
この段階ではTechAcademyを利用して現役エンジニア講師から適切なフィードバックやヒントをもらいながら勉強を進めていくのがより効率的です。
コメント