こんにちは。元営業で現在はフリーランスエンジニアをやっているハジメです。
本記事ではプログラミング未経験が独学で挫折する理由の解説と挫折しないための行動を僕自身の経験をもとに述べさせていただきます。
本記事を通して
- 挫折してしまう間違った独学方法
- 挫折せずにするするとプログラミングができるようになる行動
をお伝えしていきます。
プログラミングの独学が挫折率90%の言われる理由とは?
挫折の理由はさまざまですが、多くが下記の理由に集約されます。
- プログラミングが難しい
- プログラムのエラーや問題が解決しない/解決方法がわからない
- 本や動画の内容が理解できない
- プログラミングがおもしろくない
- 時間がない
- 何がわからないのかがわからない
僕もプログラミングの学習中はよく上記のような問題にぶつかってました。
別にプログラミングが好きなわけじゃないし、英語ばかりで意味がわからないし、もはや何がわからないのかもわかってないという状態でした。
普通にむずかしいですよねプログラミングって。
プログラミングの独学で挫折してしまう理由はズバリ「勉強するゴール地点を間違っているから」です。
というのも、ゴールが地点が間違っているので「勉強する道筋も間違っている」のです。
これを営業で例えてみます。
営業のテレアポで「アポイントメントの件数を1ヵ月の間に10件取る」といったゴール(地獄のノルマともいう)があったとします。
それでは目標達成のために営業マンはなにをするべきでしょうか?
「話す練習をする」「電話をかけるリストをたくさん準備する」「アポイントメントが取りやすい業界/人を中心に電話をかける」
うんうん、いい感じですね。
「身だしなみを整える」「筋トレをする」
あれ、おかしくないですか? それらをやってもアポの件数が伸びるわけなくない?
このような例は極端ですが、「目標達成に対して道筋が間違っているとムダに時間がかかり、技術力も伸びることなく挫折してしまう」ということです。
プログラミングも同様で「おしゃれなウェブサイトをデザインしたい」という目標があったとします。
それなのにいくらRubyやPHPといったプログラミング言語を勉強しようが意味がありません。
また、いきなりむずかしいウェブサイトのデザイン方法をを学んでも結局理解することができずに挫折します。
このような目標達成の道筋を飛ばしてすすめてしまうのも同様なのです。
大切なのは「自分に合ったレベルでの学習を続ける」ということです。
挫折しない10%になるための目標設定とは?
「目標、ゴール地点を決めるということが大事」というのがここまでで理解できたと思います。
それではプログラミング学習の目標はどのように設定すればいいでしょうか?
ここで大事なのはまず自分のレベルを判断するところからです。
生まれたばかりの赤ちゃんの目標を「ウォール街でバリバリ活躍する金融マン」に設定するなんて鬼畜なことはしないですよね?(世の中には生まれる前から子供を東大に入れるのを決めちゃう教育ママがいますが笑)
それでは目標を決めていきましょう。
- Uberみたいな配達アプリをつくりたい!
- 大学生専用のマッチングアプリをつくりたい!
- メルカリのようなマーケットをつくりたい!
いいですね!
この目標をもっと細かく切り分けていきましょう。例えばメルカリであれば大きく4つに分けられますね。
- IOSアプリ
- Androidアプリ
- ウェブアプリ
- インフラ
さてここからまずはどこから作っていくか。1番つくりやすいのはウェブアプリですね。そのウェブアプリをされに切り分けていくと
- デザイン(HTML, CSS, JS)
- サーバーシステム(Ruby, PHP, Python)
このようになります。
これをさらに習得難易度で切り分けていくと「HTML < CSS < JS < Ruby, PHP < Python」といったように分けられます。
あとは習得が簡単なものから必要なスキルだけ学んでいくだけで、どんどんと目標から近づいてくれますよ。
また、もっと抽象的な目標だとどうでしょうか?
「ただプログラミングで稼ぎたいだけですけど。。」
すばらしい! プログラミングは今の時代では稼ぎやすい職業No1ですからね!(当方の主観です)
そんな時はなにを学べば稼げるか調べてみましょう。
エンジニア求人サイトを見て「どのプログラミング言語が年収が高いか」「どのプログラミング言語の求人が多いか」「どの業界のエンジニアの年収が高いか」を調べて見るのをおすすめします。
そこから学ぶべき道筋をつくっていきましょう。(求人の結果は調べる時勢によって変わるのでちょくちょく確認を推奨します)
プログラミング独学のまとめ
プログラミング学習では最初から大きな目標を設定するのは悪いことではありませんが、自分のモチベーションやレベルに合わせて学ぶものを決めていくと挫折しないですすめることができます。
もしも学習中につまづいた場合は「今の学習内容は自分に合っているのか?」「目標に向かって進めているか?」を疑うといいでしょう。
わからないのであれば無理に勉強したって逆効果です。
勉強内容や環境を変えるか、もしくは休むのも選択肢のひとつですよ。
余談
ちなみにプログラミング学習で1番効率的なのは「未経験採用の会社で働く」です。
身もふたもないですが、逃げられないので笑。
2番目はプログラミングスクールですね。
僕がエンジニアに転職した時はそこまでスクールはありませんでしたが今ではかなりの数が乱立してます。正直うらやましい。。
自分に合ったスクールを探すのは手間だと思いますが独学より学習効率ははるかに高いでしょうね。
挫折したけどどうしてもエンジニアになりたいって人は上記のような選択肢を心に留めておきましょう。
みなさんがエンジニアになって自由になれますように。