※このページにはPRリンクが含まれています
こんにちは!子育てキャリアナビ編集長のしぶたく(@shibutaku_024)です。
今日はこんな疑問にお答えしていきます。
実は私自身が過去に2回独学でプログラミング学習に挫折しているんですが、3度目の正直で『テックキャンプ』というプログラミングスクールに通って学び直ししています。
今回の学び直しでようやく簡単なWebアプリケーションを1人で実装できる程度の技術レベルを身につけることが出来ました。
ちなみにこれはプログラミング学習を始めて1ヶ月半くらい経った時に、自分1人で開発したミニブログです。
やっと、やっとテックキャンプの基礎編終わった🔥
育児と平行なので、思ったより学習時間取れず、予定より時間かかってしまった…。
基礎編終了レベルでも作れるというミニブログを開発してみたよ!動くもの出来るとやっぱり嬉しいね✌️
次は、このミニブログに会員登録機能を実装してみます! pic.twitter.com/4iEkOdvzLC
実際に、プログラミングスクールに数ヶ月通ってみたら、何故過去に自分が2回も独学で挫折したかを理解できました。
その経験を踏まえてこの記事では、プログラミング初心者向けに
・プログラミング学習で挫折する原因
・プログラミング学習する時に何から手をつければいいのか
・プログラミング学習で挫折しないためのコツ
を詳しく解説していきます。
この記事を最後まで読んで頂ければ、失敗しにくいプログラミング学習方法で勉強を始めることができます。
それでは、さっそく見ていきましょう。
プログラミングの勉強をテスト勉強や受験と混同すると挫折する確率が上がります
大手プログラミングスクールのアンケートによると、プログラミングの独学は90%の方が挫折するというデータがあるそうです。
挫折する理由は人それぞれですが、プログラミング学習においては根本的な勉強方法を間違えている人が多いです。
私も過去に2回挫折していますが、プログラミングスクールに通って初めて勉強法が間違っていたのだと気が付きました。
誰から言われたわけでもないのですが、学校や受験などのテスト勉強のようなスタイルで勉強していたのです。
プログラミングとテスト勉強は別物です。この違いを理解しておくことはプログラミング学習において非常に重要です。
では、プログラミングとテスト勉強の違いって何でしょう?
・テスト前に一生懸命に暗記
・カンニングがバレると即退場
・テストは一発勝負
・暗記する必要なし
・カンニングし放題
・失敗しても何度でもやり直し可能
まったく違いますね(笑)
この違いを理解することがプログラミング学習の第一歩です。
私が通っているプログラミングスクール『テックキャンプ』の社長であるマコなり社長(@mako_yukinari)も、
『プログラミングは勉強ではなくスポーツと同じです!』
と言っていました。
スポーツは身体で覚える的なところがあると思いますが、私自身プログラミングも非常に近い性質があると考えています。
机に向かってテキストを読んで一生懸命暗記しているだけでは、なかなか上達しません。
もちろん基礎理解は重要ですが、ある程度基礎が身についてきたらコードを書く実践的な訓練が上達するためには必要です。
なかなかプログラミングが出来るようにならない方は、コードを書くことより暗記することに重きをおく従来の受験勉強スタイルから抜け出せていないケースがほとんどです。
勉強を始める前に知っておきたいプログラミング学習の手順
プログラミングの勉強を始める前に、学習手順・始め方は必ず抑えておきましょう。
別の記事で詳しく解説していますが、概要だけ再掲しおきます。
手順① : プログラミングを学習する目的を明確にする
手順② : プログラミングを始めるのに必要な環境を準備する
手順③ : 最初に学習するプログラミング言語を決める
手順④ : プログラミング学習の方法を決める
手順⑤ : ハードルが低い教材を使ってプログラミングの基礎を学習する
手順⑥ : Webアプリケーションを2つ以上開発する
手順①〜④まではプログラミング学習を始める前の準備なので、この記事では手順⑤⑥をさらに深堀りしていきます。
2回挫折した僕が教えるプログラミング学習で挫折しないためのコツ5選
プログラミング学習では暗記しようとしないことが最も重要
もしプログラミング学習において、暗記しようと一生懸命綺麗にノート取ったりしている人がいたら、考え方を変えましょう。
プログラミングに暗記は必要ありません。
プログラミングはカンニングし放題なので、覚えていない事があってもググって調べれいいだけです。
意外かもしれませんが、エンジニアも全ての文法を覚えているわけではなく、ググって調べながらコーディングしているケースが少なくありません。
暗記をする必要がないのに、一生懸命暗記するのはとても効率が悪いです。
こういうスタイルで勉強してると、すごく時間かけて勉強したのに全然プログラムが書けるようになってない…となりがちです。
暗記するより『概念』や『考え方』を理解する事に時間を使いましょう。
『概念』や『考え方』さえしっかり身につけておけば、細かいことを暗記していなくても調べながらコーディングができるようになります。
『概念』や『考え方』を理解したあとは、コードを書きまくる以外に上達する方法はありません。
プログラミングで暗記するのって、サッカー上手くなりたいのにグラウンドで練習せず、サッカーのDVDを繰り返し見てシュートフォームを覚えるみたいな感じです。
DVDを見てるだけでサッカーは上手くなりませんよね?
DVDを見て要点を抑えたら、グラウンドに出てシュート練習することでしかサッカーは上達しません。
プログラミングも同じで、暗記するよりも実際にコードを書く練習をするほうが重要なのです。
テキストの1ページ目から勉強しようとしない『遅延評価勉強法』がおすすめ
『よし!プログラミングの勉強するぞ!』と思い立ったほとんどの方がテキストなりカリキュラムなりの1ページ目から最後のページに向かって勉強すると思います。
実はこの勉強の仕方は非常に効率が悪いです。
プログラミング学習においては『必要な技術を必要になった時に学ぶ』という考え方がとても重要で、このような学習スタイルを【遅延評価勉強法】と言います。
有名な起業家であるけんすうさん(@kensuu)が【遅延評価勉強法】をこんな風に表現しています。
おいらの言葉で言いなおすと「必要になったら、必要なところだけ勉強する」です。
たとえばプログラムを勉強するときに、「書籍を1ページ目からやる」のではなく「2ch型掲示板が作りたいから必要なところを勉強する」のが遅延評価勉強法になります。
通常の勉強法と比べて、モチベーションが高く保てます。また、インプットとアウトプットがほぼ同時になされるので理解度、定着率がダントツに違います。
プログラミングには学ぶことが無限にあるため、網羅的に勉強しようとすると特に失敗しやすいです。
プログラミングの初心者は、基本文法を全て覚えようとしますが、概念や考え方が理解できたら次に進みましょう。
詳しい内容や具体的な記述方法などは必要になったときに学べば良いのです。
この学習スタイルは非常に有効で、学習している時に『これって本当に必要?』と自問自答しながら進めることになるため、多くの無駄を省けるので学習効率が爆上がりします。
インプットはほどほどに、何でもいいので開発してアウトプットする
プログラミング学習においてインプット過多にならないことはとても重要です。
学習を始める手順の記事でも紹介した『Progate』というプログラミング学習サービスを5周した!レベル100超えた!!という人がよくいますが、その時間と情熱をインプットではなくアウトプットに向けるとより成長が早くなります。
基礎学習用のカリキュラムは多くても2周までとしましょう。
2周で完璧に理解できるようにはなっていないと思いますが、解らなかったらその時にググればOKです。
解らなくてコードが書けなくなる事を恐れずに、とにかくコードを書いてアウトプットすることが重要です。
基礎学習をしただけで、スラスラとコードが書けるようになる人は稀です。
実際にアウトプットしようとすると、まったく書けなかったり何していいか解らなくなったりしますが、それは普通のことです。
解らなくなったらググる。ググっても解らなかければエンジニアに質問して解決する。
その繰り返しこそがあなたを成長させ、技術力アップにつながっていきます。
なお開発するものは何でも良いです。たくさんの人に使われるようなWebサービスである必要はありません。
開発するものに拘って壮大な企画を考える人もいますが、目的はプログラミング技術の習得だったはずです。
たくさんの人に使われるようなWebサービスは少し未来に開発するとして、学習段階ではお気に入りサービスのコピーとか、自分だけが使うためのちょっとしたツールなどを開発してみましょう。(コピーサービスを開発する事は問題ないですが、公開するのはNGです)
解らない事はまずググる。メモを取るのは何度もググってしまうことなど必要最低限に
これは僕自身も最初の頃ずっとやっていた失敗ですが、後で見返すためにノートやメモを綺麗にまとめるのは効果的ではありません。
ノートに綺麗にまとめると勉強した気になりますが、実は全然頭に入ってないということが多いからです。
プログラミング技術における多くのことはググれば参照することが出来ます。
ググれば参照できる内容をわざわざノートにまとめるのはとても非効率です。
ノートに綺麗にまとめるのは結構時間がかかります。その時間を別のプログラミング知識を得ることに使ったり、実際にコードを書いたりすることに充てるほうが有用です。
メモを取るのは何度もググってしまう内容やググるのに時間がかかってしまうような内容だけで良いです。
メモを取るのは必要最低限として、効率的に学習を進めましょう。
番外編 : プログラミング学習の仲間を見つけるとモチベーションコントロールしやすい
プログラミング学習は1人でやると挫折する可能性が高くなると個人的には感じます。
できれば誰かと一緒に学習し、時々情報交換や意見交換をしながら進めるのがおすすめです。
プログラミング学習は途中詰まったり、何時間調べてもまったく進めないということが頻繁に発生するので心が折れやすいです。
そういう時に相談したりガス抜き相手になってくれる人が近くにいるだけで挫折率が下がります。
ただし、同時期にプログラミング学習を始める友達を見つける難易度が高いことも事実です。
そういう観点でプログラミングスクールを活用するのも1つの手だと思います。
僕自身もは『テックキャンプ』というプログラミングスクールに通ってますが、学習仲間を作ることも1つの目的でした。
それ以外の方法だと、Twitterでプログラミング初学者をフォローしたりリプで絡んだりするのもおすすめです。
Twitter界隈にはプログラミング学習クラスタが実は結構いるので『#駆け出しエンジニア』とか『#プログラミング初心者』などのハッシュタグを覗いてみると良いかもしれません。
以上、少し長くなりましたが、2回の挫折で見つけた失敗しないプログラミング学習のコツ5選でした。
最後にこの記事を読んで頂いた方に役立ちそうなプログラミングをテーマにした記事を2つ載せておくので是非読んで下さい。
もし僕が今大学生や第二新卒だったら迷わずプログラミングを勉強する
テックキャンプの評判は?学習開始から2ヶ月経ったのでレビュー記事書いたよ