プログラミングのあらゆる教材がネットにあふれている現代では、プログラミングは独学でもマスターすることが可能です。しかし、その過程で挫折をしてしまう人が多いのも事実。この記事では、なぜ挫折してしまうのか?挫折しないで勉強を進めるにはどうしたら良いのか?を紹介していきます。重要なのは挫折をせずに成果物を独力で作り上げられるようになること。どうしたらその状態まで持っていけるのか、具体的に見ていきましょう。
プログラミングを独学することは可能です。これだけ情報に溢れた現代ですし、しかもITに関することですから、ほぼ全てのプログラミングに関する情報はインターネット上に落ちています。しかしプログラミングの勉強は挫折してしまう人は跡を絶ちません。なぜなのでしょうか?まずはその原因を知っておくことで未然に失敗を回避することができるかも知れませんね。考えられる主な理由は下の7つです。
順番に確認していきましょう。
プログラミング学習を進めていく上で必ず直面するのが環境設定です。Vagrantを使った環境開発、XAMPPなどの統合環境開発が有名ですが、PCツールのターミナルの使い方が手順書を読んでも分からないということが多発します。プログラミングを自分で練習できるところまでもなかなか辿り着けないうちに、やがて心が萎えてしまい、そのままプログラミングの勉強を続けられなくなってしまったという人も多くいます。
エラーの解決ができなかったというのも、プログラミングの挫折に繋がる大きな一因です。プログラミングのコードは、たった1ヶ所の細かな入力ミスが原因で発生することがしばしばあります。インターネットで検索することでそれらのエラーが解決すれば良いのですが、うまく行かないケースも多くあり、何時間も行き詰まってしまうこということが起こり得ます。それが原因で気持ちが折れてしまって後が続かなくなってしまう事態が多く見られます。
書籍、ブログ、インターネット、YouTubeなど、学習教材がたくさんあることはプログラミング学習のメリットです。しかし、逆に学習教材が多すぎることが迷いを生む原因になってしまいます。中学生、高校生の時に、どの参考書が良いかで迷った経験がありませんか?プログラミング学習については、その時に迷った何倍もの量の教材があると思って良いです。
どの教材を選ぶかは、自分に合ったものを探すしかありません。教科書が良いのか、動画が良いのか、またインターネット上の教材でゲーム感覚で進めた良いのか、人によって合った教材を見つける必要があります。試しているうちにモチベーションが徐々に低下して……という事態は避けたいものです。
プログラミングの勉強が波に乗ってきて、いける!と思った時にやってくるのがこの難関です。プログラミングの勉強は際限がありません。どの言語をとってもマニアックなところまで突き詰めようとしたらいくらでも勉強する素材が尽きることはありません。大体どの程度ができるようになったら一般的に合格と言えるのか、マスターしたと言えるレベルなのか、なかなか初心者には判断することが難しい部分があります。「どこまででひとまずOKとするか?」に関して判断を間違えて、本来学ぶべきことを学べずに挫折してしまうパターンもあります。
独学をしようとする人は、学生ばかりではないでしょう。むしろ仕事をしながらだったり、アルバイトをしながらエンジニアを目指して頑張るという人が多数派なのではないでしょうか。それらの人々に共通した悩みは「学習時間の確保」です。これは物理的にも体力的にもなかなか難しい問題です。例えば9時から18時まで会社で働くサラリーマンが19時に帰宅して、毎日2時間勉強の時間を確保するとなると、最初の1ヶ月くらいは続くかもしれませんがなかなか継続することは険しい道のりになります。限られた時間で効率の良い正しい方法で勉強していかなければ継続は難しいことがわかるでしょう。
ここまでで説明したようなつまずきに次々と遭遇してしまい、自分ではなかなか解決できないという状況が続くと徐々に気力が低下していってしまいます。始めた当初のようなやる気のみなぎった状態をなかなか維持できないということですね。もちろん、どんな困難にも1人で立ち向かってモチベーションが途切れることはないという人も稀に存在します。ですが、多くの人がエラーや不明点の解決に時間を取られ続けているうちにモチベーションをすり減らしてしまうという現実に遭遇する事実があります。
ここまで見てきたようなプログラミング独学の挫折の根本的な原因となるのが、不明点を質問できる環境を確保できなかったという点です。環境構築のやり方がわからない。エラーの原因がいくら見直しても調べてもわからない。膨大な教材のどれを選んだらいいのかわからない。何をどれだけ勉強すればいいのかがわからない……。そんな時に詳しい人に聞いて教わることができれば、時間も節約できるしモチベーションも続きやすいでしょう。
また、プログラミングを用いて成果物を製作したり、問題を解決する方法は多種多様にあります。もし、参考書や教材で一つの正解を得られたとしても、そのやり方だけが問題を解決する唯一の方法ではありません。エンジニアによっても書くコードは変わってきますから、どんなやり方にも相応に対応できる知識が求められます。もちろん、それらを独学で全て身に付けることは可能ですが、特に初心者のうちは相当な労力を求められることも事実です。そうして1人で悩んでいるうちに気持ちが萎えてきてしまって挫折というパターンが多く見られます。
プログラミング独学が続かない理由を7つ見てきました。これらを避けて学習を続ければ良いということは分かった!でも、勉強を続けていたらどうしても直面してしまう課題なのでは?と思われた方も多いでしょう。
7つの問題を回避して、独学でも挫折せずにプログラミングの勉強を続けるために必要なことは次の2点に集約されます。
独学=誰にも一切頼ることなく習得する、という考えだとメンターには違和感があるかもしれませんが、学校などに頼らず学習するからこそ、困った時に少し助けてくれる存在はとても貴重なものとなります。
幸いにして、これだけつまづき要素がたくさんのプログラミングの世界ですから、メンターをマッチングしてくれるサービスが存在します。以下代表的なものの例を挙げていきます。
プログラミング初心者向けのQAサイトです。質問をすると回答してくれる人がいます。Yahoo質問箱のイメージです。色々な人がいますから、ここで質問をすることで回答を得るだけでなく、プログラミングに関する意見などももらえたりしますので、独学で勉強する人にとってはモチベーションを上げる意味でも利用する価値があります。
世界最大のプログラミングQAサイトです。もともとアメリカが発祥ですが、日本語版もありますし、テラテイル同様回答者がたくさんいますので利用してみると良いでしょう。ただしこちらは初心者・上級者入り乱れていますので、何も調べていない質問だと分かってしまうときつく注意されることもあります。
このサービスはプログラミングに限りませんが、お金を払うことで知識のある人の助言を得られるサービスです。もちろんプログラマーの上級者の方も多数登録しているので、お金を払ってでも解決したい問題があるという時には利用する価値があるでしょう。
学ぶべき教材からメンターに教えてもらえれば一番ですが、独学ではなかなかそうも行かないでしょう。あれこれ迷いながらつまみ食いを続けるよりは、定評のある教材を1つ選んでそれを最後までやり通した方が挫折する確率はぐっと低くなります。
メンターに質問できるようになるまでにもやはり基礎力が必要です。基礎的な勉強をインターネットでする上で、ここではprogateとDotinstallの2つをおすすめします。以下特徴を解説しますね。
progateは全部で12種類の言語、47コースの教材が用意されています。HTML&CSS、JavaScript、JQuery、Ruby、Ruby on Rails5、PHP、Java、Python、Command Line、Git、SQL、Saas、Go、Reactと現在プログラミングで使われているほとんど全ての言語が網羅さているので初心者には特に人気があります。
1つ1つの言語を一朝一夕でマスターすることは難しいですが、ニーズに合った選択が可能です。また、progateの学習はゲーム感覚で進みます。はじめに、このコードを入力するとこう動きます、という解説画面が表示されます。それを視聴した後実際に自らコードを入力するわけですが、間違えるとクリアできずどこが間違っているかをチェックしなければなりません。その後正解するとクリアしレベルが上がり、次のステージへという設定になっています。TVゲームを進めるかのような感覚で自然に楽しみながら学べる仕組みになっていますので、初心者でも飽きずに続けられるのがポイントです。
progateと同等の人気のあるDotinstallですが、最大の魅力は動画で実際にコードを書く講師の手順を見ながら学習できる点です。動画で学ぶのは視覚的にわかりやすいこともあり、ProgateよりもDotinstallをおすすめする方もいます。progateと同様、HTML&CSS、JavaScript、JQuery、Ruby、Ruby on Rails5、PHP、Java、Python、Command Line、Git、SQL、Saas、Go、Reactと、多数言語が用意されており、progateと同じくで初級編まで無料で利用できます。
有料課金になっても980円で学べることを考えると非常にコストパフォーマンスの高いサービスです。
以上のように、初学者に適した教材を絞り込み、最低限のメンターを確保することで独学でも十分にプログラミングの基礎を習得することは可能です。
とはいえ、時間は貴重ですし、独学はモチベーションとの戦いともなります。これだけ教材の揃った世の中ではありますが、メンター・教材・モチベーションの問題を全て最短距離で解決してくれるのは、やはりスクールという存在です。もちろんスクールに通うことは時間の制約、交通の煩わしさ、資金面などデメリットも多くありますが、メリットはそれを大きく上回ります。スクールに通う場合のメリットについて解説していきます。
独学でメンターを確保するのは容易ではなく、確保できたとしてもちょっとしたことをなんでも聞くというわけにはなかなかいかないかもしれません。その点、一般的にプログラミングスクールは少人数で教えることが多く、講師にすぐ質問をできる環境にあります。教えるプロなのでどんなレベルの質問であっても理解できるまでわかりやすく教えてくれるはずです。中にはマンツーマンで教えるスクールもありますから頼もしいことこの上ないですね。ただし、プログラマーに必要な能力の筆頭に「ググる力」を挙げる人も多いですから、自分で考えてから質問するクセをつけておく必要がありますね。
これは思いの外大きなポイントです。独学では自分のクセを知ることはほとんど不可能に近いかもしれませんが、他人に教えてもらうことで自分のクセや思い込みが修正され、短時間で高い学習効果を得られる可能性が飛躍的に高まります。有能な講師であれば、質問するまでもなくあなたのコードを見てウィークポイントを的確に教えてくれるでしょう。
プログラミング学習で意外と難しいのが教材選びでした。今は先ほど紹介したような定評のある入門教材もありますが、すぐにそれだけでは足りなくなってしまうでしょう。スクールであれば、あなたのレベルと目的に良く合った教材を最初から用意してくれますし、レッスンでもそれをフルに生かして教えてくれます。自分で試行錯誤したりネットで調べたりして探すのも大事な経験ではあるのですが、やはりスタートは最短距離を歩むのが一番ですね。
最後にやはりモチベーションです。スクールに通うこと自体が学習継続の絶好のペースメーカーになりますし、わからないことがすぐに解決できる環境ではモチベーションも続きやすいです。また、人と人との繋がりはモチベーションを保つのに絶大な力があります。ダイエットで一躍有名になったライザップは人と人とのコミュニケーションや絆を利用することで多くの成功者を生み出してきました。スクールに通うことは、「あの人の言うことを守ろう」といった他人の力が心理的に働きますからモチベーションのコントロールが楽になるという作用があります。
いかがでしたでしょうか?要点を以下まとめます。
独学を貫くのもスクールに通うのもあなたにあった方法を探すことが重要です。一人前のプログラマーになるために、最短の方法を見つけてみてください。