こんにちは野田です。プログラミング学習をしていると、思うように進まなかったり、理解できないことがあったりと、挫折感を覚えることが少なくありません。一説にはプログラミングの挫折率は9割と言われています。
私自身も学習を始めた頃は出来ないことだらけでした。しかし、それはプログラミング学習の一部であり、皆さんがそれを乗り越えることで、より良いプログラマーに成長できます。
社員アンケートを取ってみた
実際に社内でプログラミングの挫折経験のアンケートを取ってみました。
実際に弊社の中でも14名が回答してくれました。
その中の14名中11名(78%)の人がプログラミング学習中に挫折を体験しています。やはり、エンジニアになるまでに挫折を経験することは多いようですね。
挫折の瞬間
具体的に挫折しそうになった瞬間をご紹介します。
- “PHPでDBに接続することがずっとできずなかった”
- “何が正解なのかわからないとき”
- “知らない領域だと難しくて嫌になります”
- “オブジェクト指向に入って完全についていけなくなりました”
- “素のPHPで問い合わせフォームを作成したときに、フォームの仕組みを理解しようとして”
- “調べてもエラーの意味がわからない時”
- “初めてrailsの環境構築をした際、手順通り進めていたにもかかわらずエラーが続いて解決できなかった時”
- “実装に詰まってしまい、何が分からないのか分からないタイミング”
- “PHPでコードを実装していたとき”
- “スクールの課題を実装中に、エラーが発生して調査しても全くわからなかった時です”
- “githubの仕組みや環境構築、フレームワークに初めて触れた時など”
- “初めて本格的にプログラミングに触れたとき(大学でのC言語演習)。関数の定義やポインタが理解できませんでした”
さまざまなシチュエーションで挫折感を味わった人がいます。しかし、彼らはどうやってそれを克服したのでしょうか? ここからどうやって克服したかは気になりますよね。
挫折を克服する方法
ここでは、具体的な挫折を克服した方法を紹介します。
- “日にちをおいて取り組みました。意外と自分の理解が甘くて、やるべきことがやれてないことがおおかったので、基礎からやり直しました。(それまで結構、飛ばして読んでいた)”
- “正解はわからないものの、悩んでいてもしょうがないので、がむしゃらに書く。調べる。とにかく手を動かす。悩んでいる時間があったら手を動かす。”
- “一旦離れて再度取り組むと良いと聞きますね。実際あります”
- “理解できないままとりあえず進めました。”
- “一旦パソコン閉じでお風呂に入る、筋トレする。そのあと、また考えると何故かすっと頭に入ります”
- “挫折ではないですが、js等のフロント周りの学習は面白く感じなかったのでやりたくなかったです。当時のカリキュラムはHTML,CSS,jQueryを軽く触ってPHP,DB,laravelが本番みたいなカリキュラムでした。DBとlaravelで楽しさを実感できたので挫折しませんでしたが、フロントエンドエンジニアを目指す様なカリキュラムだったら挫折していたかもしれません。”
- “寝て全て忘れて、気が向いたらチャレンジする。エラーは出て当たり前という意識を持つ。”
- “その日はコマンド入力を試さずに調べるに徹して、翌日に前日調べたものを順に試していったら克服できた。一呼吸おくことは大切だと感じました。”
- “チャットでとりあえず相談してみる。”
- “一緒に頑張る仲間を作って、切磋琢磨しながら実装する。プログラミング学習している自分を自分自身で褒めていた。”
- “一旦、プログラミングから離れて時間を置きました。寝て、次の日になったら解決できたりしました。”
- “仕組みがわからない部分は一旦放置し、とりあえず前に進んだ”
- “サンプルプログラムの写経を行ったり(完璧に理解しようとはしない)、プログラミングから少し離れてコンピュータの中身の勉強したりしました※。後者は変数や配列がコンピュータの中でどのように保持しているのか想像しやすくなるのでプログラミングの理解の助けになると思います。 ※書籍「コンピュータはなぜ動くのか 第2版 知っておきたいハードウエア&ソフトウエアの基礎知識」など”
時間を置く、一旦離れる、わからないけど進める、仲間を作るなど、人によってアプローチは違うようですね。ご自身にあったやり方をするとよいと思います。
挫折しそうな学習者へのアドバイス
全員がアドバイスを書いてくれているので、まとめずにそのまま共有します。
- “日にちをおく、プログラミングだけやらない、余裕をもって取り組むなどが良いとおもいます。気分転換しながら楽しく取り組んだ結果、上達するのが良いかと思います。”
- “とにかく手を動かしまくることが重要かと思います。また、悩んでいるときは紙に自分がいま何に悩んでいるのかを書くといいかと思います。そうすると頭がすっきりするし、相談したいときも相談しやすくなります。”
- “気分転換しましょう”
- “何度もやることです。1回で理解できる人の方がすごいです。”
- “それなりに月日はかかると思います。焦ると挫折するので時間がかかる前提で学習した方がいいと思います。”
- “高い壁ほど乗り越え甲斐がある!、、”
- “一度、息抜きすることも大事かと思います”
- “何に対して挫折しているのかわかりませんが、初めのうちは苦手な分野を克服するより好きな分野を伸ばす方がいいのではと思いました。”
- “僕の場合は、DB,PHP,laraveを学んでいるとき知らない間にフロントの知識も一緒に覚える事が多かったです。”
- “焦れば焦るほど一点に集中してしまうので、必要以上に焦らないことが重要だと思います。一度学習をやめてもまた始めれば良いと思うので。”
- “また、人間の力だけではミスもあると思うので、便利機能などは使った方が良いと思います。”
- “私が勉強始めたての時は、とにかく凡ミスでうまくいかないことがたくさんありました。そのため、誤字をチェックしてくれるエディタの拡張機能を入れたり、diffツールで差分を確認したりしました。あとは全ての行にダンプを入れて、変数の値が正しく渡っているかを確認し、どこで値が変わってしまっているのかなどを確認しました。”
- “メンタル的にきつかったら一度やめて、少ししたらまた始めれば良いと思います。”
- “あとは、本当にわからなかったらTwitterで呟けば助けてくれる人もいます。”
- “今はトライ&エラーの繰り返しですが、うまくいかない時期を乗り越えると、感じられる達成感はものすごく大きいと感じます。不安→喜びに変わるその瞬間を味わうために、ぜひ学習を続けていってほしいです。挫折はみんなが通ってきた道だと思うので。”
- “上記に加えて、明確なゴールを設定することも大切だと思います。(いつまでに何を達成するか。)また、ゴールまでの期間が長すぎたり、ハードルを上げすぎたりすると挫折の可能性が高くなるので、ハードルを上げすぎず、達成するまでの期間もなるべく短くする方が、挫折の可能性は低くなると思います。”
- “特に基礎学習中は、挫折しやすいタイミングだと思いますので、上記を意識して学習してみてください!”
- “プログラミング学習に限らず、初めて勉強するものは分からなくて当たり前です。全部を完璧に理解しようとせずに、分からなくても学習を続けていくと急に分からなかったことってこうだったんだと点と点が線で結ばれるようになっていきます。まずは、プログラミング学習している自分を精一杯自分で褒めてあげてみてください。”
- “詰まったら、一旦、プログラミングから離れて気分転換をするといいかと思います。あと、コードを書けるようになると楽しくなります。”
- “プログラミングは難しいものなんだから挫折しそうなことは普通のことだと思うと、僕は気が楽になりました。”
- “プログラミングは日常生活には登場しないので学習を始めた直後に理解できないのは単に不慣れなだけだと思います。心配無用です。中学校(若い方は小学校?)で初めて英語の学習を始めたときは意味不明でも慣れてくると簡単な英文の読み書きくらいならできるようになったはずです。それと同じです。”
- “また、都度完璧に理解するのは不可能です。参考書で分からない箇所があっても一旦無視して進むのがオススメです。後から(1ヶ月後なのか半年後なのか1年後なのかは分かりません)復習すると理解できるようになっていることはままあります。”
ユアスクでの気分転換
弊社の運営するプログラミングスクール「ユアスク」では、挫折防止のために3つの取り組みを行っています。
- 無料グループ相談
- スクーリング、リアルイベントの実施
- 毎日の投稿つぶやき機能
毎週無料でのグループ相談会を実施しています。悩んだり、気持ちが凹んだ時はぜひ、参加してみてください。人に話すとスッキリすることもあります。
相談会には弊社社員が参加しますので、上記の通り、誰もが挫折は経験しています。経験者だからお伝えできることもありますので、ぜひ気軽に相談してみてください
また、弊社みんなシステムズでは、定期的にスクーリングやイベントを実施しています。学び合う仲間が見つかったり、体験談を聞くことで気分転換につながります。ぜひ、ご活用ください。
https://minna-systems.connpass.com/
交流会も実施しています。
最後にユアスクでは、独自の学習ツールがあります。毎日の学習投稿がそのままTwitterに共有できるようになっています。SNSで一緒にプログラミングを学ぶ仲間を作るのも効果的です。
まとめ
プログラミング学習は、挫折を伴うことが多いですが、それは成長するためのステップです。うまくいかない時期を乗り越えると、その後の達成感は非常に大きいです。そうした喜びを味わうためにも、学習を続けてみてください。学習を始めたばかりの皆さんが、成功したプログラマーとしての道を歩んでいけるよう、応援しています。
あなたのプログラミング学習が成功に繋がることを心から願っています。これからも一緒に学び、成長していきましょう!