最近は、動画教材やオンラインサービスの普及もあり、プログラミングの学習コストはどんどん下がっています。
その中でも、
- またエラーで詰まった
- プログラミング理解できない
- 何も進まないまま2時間経過した
など、「プログラミング難しすぎる!進まない!」と感じる人は少なくありません。
事実、プログラミングの挫折率は9割にもなるというデータもあります。
» 「プログラミングの挫折率は9割近く」⇒理由と挫折しにくい学習方法を紹介
そこで今回は、仕事上で未経験からエンジニアになったばかりの教育担当もする僕が、
- プログラミングを難しいと感じる理由
- プログラミングを習得するために必要なこと
- 挫折しないための学習方法
について解説していきます。
プログラミングを難しすぎると感じる理由
プログラミングを難しいと感じる理由には、様々な理由がありますが、大きく以下の6つに分かれるかと思います。
- 覚えることが多い
- エラーが解決できない
- 周りに聞ける人がいない
- ネットで調べても正解が出てこない
- プログラミングは難しいという先入観がある
- 結果を求めるのが早すぎる
覚えることが多い
まず、始めにプログラミングを学習するにあたって覚えることが多いと思われるのではないでしょうか。
ありがちなのが、よくわからない単語を調べてみると、また意味のわからない単語で説明されているという状況です。
例えば、学習の初期段階でCookieとSessionについて学ぶ必要がありますが、これらで調べると
Cookie
⇒ WEBサーバーが発行し、ブラウザが保持するキーと値
Session
⇒ WEBサーバーで保持するキーと値
と書かれていたりします。初学者の方からすると、結局どういう意味?使い方わからん!となるのも当然です。
したがって、初期段階のうちは、とにかく写経して動かしてなんとなく使い方を認識することを意識しましょう。どうしても単語の意味を知りたい方は、以下のサイトが理解の助けになるでしょう。
» 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
エラーが解決できない
現役のエンジニアでもエラーが解決できないという問題は毎日のように直面します。
エンジニアであれば、エラーの解決方法がわかっているものの、実務経験のない人にとっては小さな1つのエラーに数時間費やすということは十分に起こりえます。
そんな初学者がまず意識するべきことは、正しいエラー解決のステップを学ぶことです。
エラー解決の順序がわかるだけでも、順序を知る前よりも解決するまでの時間が短くなることが実感できるはずです。
以下に、現役エンジニアが行っているエラーの解決ステップを紹介しているので合わせてご覧ください。
» 【実例あり】プログラミングのエラーがわからないときの5ステップ解決術
周りに聞ける人がいない
これはプログラミングの学習を始めた人のあるあるですが、自分の知り合いにエンジニアやエンジニアを目指すライバルがいないケースも多いです。
しかし仲間がいないと、モチベーションが維持できずプログラミングの学習から徐々にフェードアウトしてしまいますよね、、、
そんな方には、まずは手軽に参加できる勉強会がないか探してみるといいでしょう。
最近は、初心者歓迎の勉強会も増えてきており、プログラミングを始めたてという方も参加しやすくなっています。
より詳しく初心者でも参加しやすい勉強会を知りたいと思う方は以下の記事もご覧ください。
» プログラミング初心者こそ勉強会!スキルを劇的に上げられる3つの理由
ネットで調べても正解が出てこない
初心者の心が折れやすい原因の1つとして、ネットで調べても情報が出てこないことも考えられます。
なぜなら、同じエラーであっても根本的な原因は複数考えられ、状況に合わせた解決方法を調べるのが困難なためです。
これに関しては聞き馴染みがないかもしれませんが、デバッグという作業で解決することができます。
具体的には、PHPであれば、var_dump , JavaScriptであれば console.log というコマンドを使って変数を表示する作業をしていきます。
プログラミングは難しいという先入観がある
また、特に文系出身の人にはありがちですが、プログラミングを事実以上に難しいと先入観を持っている人も少なくありません。
ドラマにありそうな「カチャカチャ、パパッ、カターン」みたいな高速にタイピングしているイメージを持っているからかもしれません。
当然ですが、実際のエンジニアはもっと地味です。
イメージにとらわれることなく、少しずつでも着実に知識を身に着けていくことが結果的に最短コースになることを理解しておきましょう。
結果を求めるのが早すぎる
また、最近はプログラミングスクールの過剰広告によって「プログラミング学習は誰でも簡単にできる」と勘違いしてしまう人もいます。
1ヶ月でフリーランスエンジニア!と聞くと華やかなイメージを持たれるかもしれませんが、1ヶ月でフリーになると実績もスキルも十分でないため、かなり悲惨な結果になります。
具体的には以下のようになります。
- 実績がないため仕事を取れない
- なんとか取れた仕事もスキルがないため報酬が割に合わない
- スキルが低いため継続的に案件が取れない
実際は、プログラミングを習得しようと考えるともっと時間を必要とするものです。
成長スピードの期間の目安については、以下の記事でより詳細に解説しているので、参考にしてみてください。
» プログラミングの習得期間は?完全未経験からフリーランスになるまでを解説します
「プログラミング難しすぎる…」⇒「現役エンジニア」になれた理由
プログラミングを学び始めた方にとって「ひょっとして他の人はもっとスムーズに学習できているのでは…?」と感じるかもしれませんが、ほぼ確実にそんなことはありません。
現役のエンジニアの中にも最初から順調にプログラミング学習ができていたわけではない人は少なくないです。
むしろ、一度はプログラミングの学習に挫折し他人も多くいます。
特別プログラミングのセンスがあるわけでもなく、エンジニアとして入社してからも生々しく辛いと感じている人も多くいます。
それでも辞めずに学習し続けてきたからエンジニアを続けられているのです。
辞めずに学習し続けるとスキルは身につく
僕は、エンジニアになったころはとにかく毎日スキル不足で悩んでいたため、休日も学習に使ったりしていました。
エンジニアは休日も勉強するべきか?という議論はTwitterでも度々、巻き起こりますが、初学者のうちは辞めないために休日も学習を続けることも大事だったりするのかと思います。
うーん、話の流れが分からんが
— 松田信介@自分のいる環境をデザインする (@XHACK20) July 14, 2019
未経験からエンジニアに転職するのに、休日は一切勉強に使いたくないってこと?
それでやっていけるならいいと思う
まあ、好きにしたらいい
個人的にエンジニアが休日まで勉強するべきか?という疑問に対しては、以下の記事でも説明しているように「する必要はない」と感じています。
» エンジニアは休日やプライベートでも勉強しないとダメ?⇒そんなことはありません。
しかし、「エンジニアになるため」「エンジニアとして一人前になるため」という目標があるなら、学習をとにかく辞めないことが力をつけるために必要なことかなと思います。
挫折しにくいプログラミングの学習方法
学習を続けるといっても、成長している実感がなければ続けられないと感じる人も多いでしょう。
実際のところ、
- 挫折しにくい学習方法
- 質問に答えてくれるメンター
- 体系的なカリキュラムのあるプログラミングスクール
などの学習環境であっても、続けられない人は一定数存在します。プログラミングスクールでも実に卒業するまでに3割の人がいなくなります。
そうした挫折しやすい環境の中でプログラミング学習を続けるためには、教えてくれる人の存在が必須になります。
プログラミングの教師をつけるメリットは大きい
プログラミングの教師をつけるのは以下のようなメリットがあります。
- 学習の抜け漏れを指摘してくれる
- 最新の技術や現場で使われている技術を聞ける
- 今のスキルから適切な課題を設定してくれる
など、他にも現役のエンジニアと関わるメリットは大きいと言えるでしょう。
教師を探す方法としては、
- MENTAなどのサービスを利用する
- プログラミングスクールに通う
という2つの選択肢があります。
価格を抑えるならMENTAなどでメンターを探す
まずは、MENTAなどのサービスを利用してプログラミングのメンターを探す方法です。
メンターをつけるメリットについては上記でもお話しましたが、プログラミングスクールと比較すると
- カリキュラム
- 学習環境
- 一緒に頑張る仲間の存在
などという観点ではおよそ負けますが、価格を大きく抑えることが可能です。
具体的には、月に1〜2万円程度払えば、十分なメンタリングを受けることが可能になります。メンターの探し方については以下の記事にまとめているので合わせてご覧ください。
最速で転職を考えるならプログラミングスクールに通う
続いて、最速で転職を考えていきたいという場合にはプログラミングスクールに通う選択肢もあります。
メンターを雇う場合と比較すると、やはり気になるのは価格ですね。
とは言え、現役のエンジニアをメンターとして採用しているスクールであれば決して高額とは言えません。
なぜなら、それなりに実績を積んだエンジニアであれば、時給3,000円程度ならあっさり稼ぐことができるため、そのエンジニアに質問し放題、メンタリング時間を設けてもらうことを考えるとお得と考えることもできます。
プログラミングスクールは
— yukito ohira | システム開発おじさん (@yohira_dev) May 28, 2019
・メンターが現役エンジニアなら80万でも安い
・メンターがバイトなら20万でも高い
これに尽きると思う。
逆に事業側からすると「現役エンジニアを現場に行かせるより儲かる」ように設計しなければならない。そして一人が面倒見れる人数は限界がある。80万だとキツイ。
転職でおすすめのプログラミングスクールについては以下の記事でまとめているので合わせてご覧ください。
まとめ
ここまでの記事のポイントをまとめます。
- プログラミングは難しいと感じて当たり前
- エンジニアになる唯一の方法は辞めないこと
- 効率よく学習を続けるには教師をつける方がいい
プログラミングが難しすぎると感じる人にとって、その理由や学習方法について解説してきました。
個人的な意見ですが、僕は就職してエンジニアと一緒に仕事をするようになってから、それまで以上にプログラミングスキルがグッと上がったことを実感しています。
したがって、少しプログラミングの独学をしたレベルの人であれば、メンターをつけた方が成長スピードも大きく上がるのかなと感じています。
もちろん、選ぶのはあなたですが、効率よく学習を進めたいと感じている方は以下の記事でメンターの効果や探し方について参考にしてみてください。