プログラミングの修得を目指してこれから勉強を始める人や、勉強を始めた初心者の人にとって気になってしまうのが、自分に合う効率のいい勉強方法。
新しいことにチャレンジしよう・勉強しよう・行動しようと考えたときに、
遠回りな勉強はできるだけしたくない。
どうしたら自分に合った方法で効率よく勉強できるか?
というのは誰しもが気になってしまうことですよね。
こんにちは、@codeship_techです。
今回は、上記にもあるように勉強方法に迷うプログラミング初心者向けに、プログラミング教育のプロが考える勉強方法の選び方と考え方を順を追ってご紹介します。
また、実際に学習計画を練るために簡単な自己分析シートなど用意したので、ぜひ後ほど実践してみてください。
- どんな勉強方法があるのか知りたい
- いろんな勉強方法があるけどどうやって選べばいいの?
- 独学と人に教えてもらうのってどれくらい違うの?
この記事はこのような人に向けて書きました!
目次
なぜプログラミングを勉強するの?
皆さんはどのような理由でプログラミングを勉強していますか?
プログラミングを勉強する目的は人それぞれですが、1ヶ月や2ヶ月といった短期間で終わるものではなく、今後継続していくものですよね。
その目的意識によってモチベーションや継続力、学習進捗に大きく影響してくるため勉強に対する自己分析は優先度が高い項目だということをまずお伝えしておきます。
上の画像は、「プログラミングを勉強する理由は何か?」という内容でネット調査を行った結果を基に興味があることほど大きく表示した結果です(調査:2019年5月)。
現在プログラミングを学ぶ人の多くがフリーランスという働き方や、転職や就活に興味を持ったことがきっかけで勉強し始めていることが分かりますね。
同じように、就活や転職、フリーランス転向を目指す人は同じ目的のライバルが多いということを認識しておきましょう。
その中でスキルレベルや経験・知識などの情報を基に競争していくことになるわけですから。
5年ほど前、もしくはそれより前はまだまだプログラミング=オタクというイメージもあり今ほどエンジニアを志望する数も多くなく、趣味だったり興味があり勉強しているという人も多くいました。
それが今こうして修得を目指している人が増えている理由は、できるエンジニアが不足しているという職業需要、多くの業界や分野でプログラミングを掛け合わせたソリューションやイノベーションが生まれ新たな価値創造や人材価値につながっていることに他ならないでしょう。
今皆さんが目指しているエンジニアやプログラミングスキルを活かした専門性の高い仕事はどの企業や業界にとっても重要な人材ですから、今後はもっと同じ道に進む人が増えていくのは間違いありません。
プログラミングに限らず、全ての経済活動とそれに係る勉強は「競争」です。
もしプログラミングを仕事に活かしたいと思うのであれば、中途半端な趣味止まりの学習ではなくこれからしっかりと目的意識を持って学習と継続をしましょう。
そうすれば、あなたが考えるプログラミングスキルが身に付けられるはずです。
どんな勉強方法があるの?
さて、それではプログラミングを勉強しようというところです。
- Progate
- ドットインストール
- スクール
- 参考書
- 知り合い
- メンター
- 検索しながら
- 研修
皆さんは効率良くプログラミングの勉強を始めようと考えたときにどんな選択肢が浮かびますか?
おそらく、上の3つの選択肢は知っていたり調べたりして簡単に思い浮かんだのではないでしょうか?
パッと思い浮かぶものだけでもこれだけ多くの勉強方法が思いつくのですが、この時点では仮に「どんな勉強方法を選べばいいですか?」と聞かれてもお答えできません。
というのも勉強方法自体はこのように様々なものがありますが、それぞれメリットやデメリットがあり提供者ごとに効果を発揮しやすいターゲット設定も異なっているからです。
例えばProgateは無料〜低価格で、まずはプログラミングに対する苦手意識を持たせないような超初心者向けの良心的なカリキュラム設計だったりという風に。
ですのでまずは自分自身について、次にお話しする勉強目標を考えていく必要があります。
専門知識の不足や経験の不足から、現状は深く考えても分からないことが多いと思いますのでそこまで考えすぎなくて結構です。
自分に合った勉強方法を選ぶためにまず決めるポイント
これの前にお話しした勉強目標についてですが、まずは上の画像を見てください。
プログラミング初心者がよく陥っているケースです。
Progateの無料範囲をすこしでも触ったことがある肌感を想定しています。
さらに自己分析を深めていくのですが、具体的には画像にもあるとおり勉強方法を選ぶポイントは3点、「いつまでに」「どれくらいのレベルに」「何のためにやるのか」を明確にしましょう。
ここで大事なのは「現在から未来を計画」するのではなく、「未来から現在を計画」することです。
学生なら、
行きたいと思っているWEB系企業の就活を有利に進めるためにインターンで実務経験を積みたい!
だからまずは実務経験が積めるインターンの選考で実力を示すために、選考までにポートフォリオ(サイト,アプリ,サービス,etc…)を作ろう!
…といった具合です。
社会人の場合は、
例えば半年・1年後の転職・独立を見据えてそれまでに…、また数ヶ月〜半年後に予定されている新規事業発足のメンバー選出までにアプリやサービスのポートフォリオを開発!、もしくは〇〇機能を実装できるようにする!
となるわけですね。
現在から未来を計画してもゴール自体は同じですが、ゴールまでのスピードは圧倒的に違いが出てきます。
(筆者含め)大抵の人はそこまでストイックになり続けるのは難しいもので、だらだらと勉強時間だけが伸びていきます。
先ほども言いましたが「競争」です。
前提としてそれを理解していれば、わざわざゴールまで時間がかかる遠回りの道を教える必要なんてありません。
なので、まずは勉強方法を選ぶ3つのポイント「いつまでに」「どれくらいのレベルに」「何のためにやるのか」を明確にしてみましょう。
プログラミングの勉強は受験勉強と一緒
プログラミングの勉強は受験勉強と=(イコール)です。
なにが=(イコール)かというと、数ある勉強方法の中からどんな方法を選択するかは時間とお金のかけ方のバランスで変わるということです。
高校受験や大学受験を例にします。
- 行きたい高校や大学は人によってまちまちで、求められる学力もそれぞれ違います。
- 皆が自分の選択によって勉強に割けるリソースは「時間とお金」の2つです。
- 放課後の自由時間は皆一律ですが、部活動に積極的な人と帰宅部の人では普段から勉強に割ける時間は違います。
- 帰宅部の人は勉強に割ける時間が多いので、長い時間をかけてゆっくりと勉強していく人もいれば、時短して塾に通いより高いレベルの志望校を目指す人もいます。
- 部活をやっている人は普段から勉強時間をたくさん確保することはできません。なので夏の大会が終わると多くの生徒が残された少ない時間でたくさん学習するために塾に通う人が多いです。
こうしてみると方法的に違うのは、かけている時間とお金の量だけだということが分かるかと思います。
あとは志望校のレベルに合わせて、必要な能力(即ち勉強量)や必要な勉強時間に対して自分の割ける勉強時間は足りていそうか?ということが違うくらいですね。
どちらを多くかけるか、もしくはどちらもかけるかという話なのです。
お金も時間もかけない!それでもできる!という人も世の中にいなくはありませんが、そういう人はそもそもこの記事にたどり着かないので仮に当てはまっているという人は他の記事を読むことをオススメします。
この天秤のバランスは、誰かが決めるのではなく「あなた」が自分で決めるものだということを覚えておいていただければ結構です。
独学VSスクール(メリットデメリット)
どんな勉強方法があるの?でもお話しした通りいろいろな勉強方法がありメリットデメリットがあります。
画像では分かりやすく独学とスクールという構図にしましたが、誰かに教わる環境かどうかの違いだと思っていただければ問題ありません。
メリットデメリットをそれぞれ出し比較したところ、先にも話した通りどちらにもメリットがありデメリットがありますね。
お互いのデメリットがメリットに変わるので、基本的にはお金がかかるというデメリットは時間で解決できて、時間がかかるというデメリットはお金で解決できます。
独学とスクールのスキルレベル推移
次の画像は、独学とスクールの成長曲線を比較したものです。
一応先に言っておくと、スクールに通わないと習得できないスキルなんてものはないです。
なのでグラフを見て分かる通り、時間軸が伸びていけば挫折さえしなければ独学でもスクールでたどり着いた地点には確実にたどり着きます。
これが先ほどまでのメリットデメリットを踏まえた、勉強方法による時間とお金のバランスの違いです。
なぜスクールが急成長しているかというのは、正しい教育をしているところであれば「解答」ではなく、
- 解法
- 考え方
- 調べ方(ググり力)
を教えているはずだからです。
スクールといっても毎日6時間も10時間もずっと誰かに教えてもらっているわけではありません。
1週間毎日しっかり勉強していれば、自分で勉強している時間が最も長くなるはずです。
要は一人で勉強しているときにどれだけ効率よく知識をインプット・アウトプットし勉強できるかが成長スピードの鍵になるわけです。
それが現役のエンジニアから「解法」「考え方」「調べ方(ググり力)」というエンジニア脳の下地も教われる環境で勉強していると勉強効率に差が出てくるということです。
これがあれば独学でも大丈夫!
今度は独学でも問題なくある程度の期間で修得していける人の特徴を教えます。
想定としては先ほどのグラフのように時間軸を無限に伸ばして、「いつかできるようになる」という無意味な指標ではありません。
現実的に「時間はかかるけどしっかりスキルとして修得して採用現場でも戦えるようになる」という指標で考えて、その人が持っている能力を教えます。
その能力というのは上の画像にもありますが、基本的にこの4つです。
- 検索能力
- 読解力
- 問題発見能力
- 問題解決能力
4つありますが、解法、考え方、調べ方(ググり力)と一緒です。
そして実はこの能力は、エンジニアとして1人前にやっていくために必要なスキルです。
この4つの能力があるという人は、独学でもかなり効率よく勉強していけるはずなので安心してそのままペースを落とさず勉強を続けてください。
特に「検索能力」に関しては、優秀なエンジニアであるほど高い能力を持っていると言われています。
アルゴリズムやコードの書き方を全て暗記しているエンジニアはいません。
どんなエンジニアであっても勉強や実際の開発現場の中では検索をします。
なのでこの検索能力の高さが実際の開発においても勉強においても猛威を振るいます。
簡易自己分析:キャリア設計をする(実践)
ここまでくると、あとは簡単にキャリア設計をするだけで自分がどういった勉強方法を選ぶのがいいのか見えてきます。
ここまででお話ししてきた、「なんのために」「どれくらいのレベルに」「いつまでに」というポイントを自分で理解するために可視化しましょう。
あくまで例のため分かりやすい数字などで書いていますが、上の画像のように幻想から予定として落とし込めるまで考えてみてください。
この中でも特に重要なのは目的→目標となるところで、ここがプログラミングの具体的な学習計画となる部分です。
漠然といつまでに何をできるようになる!と決めても、何と何と何を勉強してどうやって?というふうに具体的な計画がブラックボックスになるので計画の意味がありません。
これを表のように落とし込むとこのようになります。
こちらに白紙のシートを用意しておきますので、ぜひ皆さんも考えて真似して書いてみてください。
このキャリア設計を書いて見てみると、自分が何をどれくらいのペースで勉強する予定なのかがダイレクトに分かるので、「時間とお金のかけ方」のバランスが分かってくるのではないでしょうか?
ぜひ自分に合った勉強方法をキャリア設計から分析してみてください!
まとめ
勉強方法の選び方で重要なのは、以下のことだと分かりました。
- 「なんのために」「どれくらいのレベルに」「いつまでに」を明確にする
- この3つのポイントを使ってキャリアを設計する
- 学習計画から「時間とお金のかけ方」のバランスを考える
勉強方法の選び方だけでなく、この先の就職・転職、昇進、独立の計画を再認識するきっかけにもなります。
ぜひ他のことにもこのやり方を活用してみてください。
キャリアや勉強方法についてプロに相談する
頭の中でモヤモヤと構想が練れているつもりでも、いざ可視化してみると意外にも書けないものです。
その書けなさにキャリアや学習計画が大雑把になってしまいがちですが、面倒な下準備に見えるこのキャリア設計も競争の中で自分を上手に成長させていくためには大切なものです。
ぜひCodeShipの無料相談会にてお気軽にご相談ください。
プロのキャリアカウンセラーが丁寧にキャリアや勉強方法についてお話をお聞きし、アドバイス致します。
プログラミングスクールはあくまで勉強方法の選択肢の一つでしかありません。
CodeShipの無料相談会では、毎月何人もの方がキャリアや勉強方法について「あくまで相談」にいらっしゃいます。
最も価値があることは「キャリア設計や勉強方法の選び方についての成功体験をCodeShipが与える」ことです。
お気軽にご相談ください。