転職実績No.1🔰エンジニアスクール
転職実績No.1🔰エンジニアスクール

プログラミング独学に挫折しそう。勉強の悩みを3つのポイント別に解説

更新: 2021.05.10

「プログラミングの勉強を始めてみよう」と考えている方は多いのではないでしょうか。

最近はオンラインの学習サイトも増加傾向。土日やゴールデンウィークなどの長期休暇を使って、独学を始めるのは比較的簡単です。しかし独学をスタートしてみたけれど、挫折してしまった…という人が多いのもプログラミングの世界の現実です。

今回はプログラミング学習の挫折にありがちな原因と、その解決策を紹介します。

プログラミング学習に挫折してしまう原因

何から学べばいいのか、よく分からない

「プログラミング言語の○○を覚えて、××のようなアプリを作りたい」
「IT企業の○○に入社して、サーバーサイドエンジニアの仕事をしたいので、××という言語を身につけたい」

プログラミングを学ぶ前から、上のような明確な学習目標や勉強プランを持っている人はごくごく少数派ではないでしょうか。

「なんとなくプログラミングって面白そう」

「これといった目標はないけれど、とりあえず学んでみようと思った」

このようにプログラミングを学ぶ目的やゴールが明確ではない状態で、学習本を手に取ったり、オンライン学習サイトに登録する方は非常に多いです。こうした方が直面しがちな、大きな問題が「教材とのミスマッチ」です。

街の書店やECサイトには、無数のプログラミング入門書が並びます。

アプリの作り方を解説した本もたくさん出ています。

しかし、一口に「初心者向けのプログラミング本」と言っても、学ぶ内容や分野、プログラミング言語によってレベルや難易度は異なります。

レベルが高めのプログラミング言語の入門書を買ってしまったら、いざ独学をしてみようと書籍を読み進めても「何が書いてあるのか分からない」「環境構築ができない」といったことになりがちなのです。

未経験者が、プログラミングを効率的に学ぶには「教材選び」と「すぐに質問・相談できる環境」が大事です。

特に「すぐに質問・相談できること」は非常に大事です。すぐ質問できるようにオンラインの質問・相談サイトに登録したり、教室学習が可能なスクールに通うと良いでしょう。

未経験からの独学も不可能ではありませんが、質問・相談できる相手がいない中で学ぶのは効率が悪く、挫折の原因になります。

手を動かさずに、テキストばかりを読み進めてしまう

一般的な読書や勉強では、インプットが重視されます。

しかし、プログラミング学習の場合は少し事情が違います。インプットは重要ですが、インプットだけでは意味がありません。プログラミング学習で自分のレベルを上げるには何よりも「アウトプット」が大事です。

プログラミングを学ぶには環境構築を行い、まずは簡単なもので構わないのでコードを書き、実行結果を確認するという地道な繰り返しによって、少しずつスキルがつき、レベルが上がっていきます。

もちろん、本を読んだり、ウェブでプログラミング関係の記事を読むなどして情報収集をするのはとても大切なことです。エンジニアの友人がいたら、話を聞くのもいいでしょう。

また今の時代は、プログラミングやサービス開発を無料で学べるウェブサイトも多いです。

しかし、本や学習サイトを読んで満足するだけではプログラミングスキルは身につかないのも事実です。インプットだけでは、自分のレベルは上がりません。ある意味ではプログラミングは、隙間時間での独学には不向きとも言えます。

しっかりとパソコンの前に座り、まとまった時間を確保した上で勉強する必要があるのです。

どれだけレベルが上がったのかが分からず、モチベーションが続かない

プログラミング学習で、多くの人が一番最初に学ぶのはプログラミング言語の文法です。

特定の文字列を表示させる方法や、if文、while文、for文などのルールや配列の処理を学びます。文法を覚える前からいきなりサービスを作り始める、ということはまずありません。

どんなプログラマーも、最初は基本を学ぶことからスタートします。

if文などのルールは、プログラミングの「基礎の基礎」です。RubyやPython、PHPやJavaなどプログラミング言語には様々な種類が存在しますが、プログラミングのベースの考え方には共通の箇所が多いです。

プログラミングがどのようにサービスに活用されるのかがわからない

ただし、この「基礎の基礎」を身につける障壁がそれなりに高いのも事実。何故なら、if文やwhile文の意味合いこそ理解できても「それがどうサービス開発に活用されるのか、いまいちよく分からない」という状態になりやすいからです。

プログラミングは「言語」だけでは、サービス開発やアプリ開発への活用が難しいです。

言語と合わせて、フレームワークやライブラリ、統合開発環境(IDE)の活用の方法についても知っておく必要があります。

たとえばRubyであれば、Webアプリケーション開発にはRuby on Railsというフレームワークを使用するのがスタンダードです。

PythonであればDjango、PHPであればLaravelが人気のフレームワークです。

多くの場合、アプリケーション開発には言語の勉強に加えて、フレームワークの学習も別途必要です。この「学ぶ内容の多さ」に圧倒されてしまう人は、特に未経験者には少なくありません。

言語まではある程度順調に独学できても、フレームワークの学習を始める段階で息切れし、モチベーションが低下。独学が思うように進まなくなってしまう人も、中にはいるのではないでしょうか。

学習コストの高さが、挫折の原因となるのです。

エラーがどうしても解決できず、やむなく挫折する

どのようなサービスを作りたいかが明確で、学ぶ言語もフレームワークも設定済み。パソコンでの環境構築も無事に終え、高いモチベーションを持って順調に独学している人でもぶつかる大きな壁。

それが「エラー」です。

プログラミングにはエラーがつきものです。

初心者でも単純なタイプミスに基づくシンタックスエラーであれば、すぐに原因を突き止めてエラーを解決できるでしょう。

一方で原因の特定から解決までのレベルが、初心者にとっては高めのエラーも存在します。一例としてはライブラリの依存関係に基づくエラーや、SQL関係のエラーなどです。

エラーメッセージは英語で表示されます。エラーが発生した際には、英語のメッセージを読み解いて「なぜエラーが発生しているのか」を理解。その上で、解決策を見つけなくてはいけません。

多くの場合、エラーメッセージを元にGoogleで検索。各言語の公式ドキュメントや国内外のブロガーの投稿を参照することとなります。

このように検索を行っても、エラーが自力では解決できないというケースもあります。

友人や知人にエンジニアが居れば、パソコンの画面を見せながら質問や相談をして、解決方法を聞くこともできます。ですが、本当に個人で独学している場合には「どうにもならない」という場合もあるはずです。

このような事態になると、一気に気持ちが萎えてしまうのではないでしょうか。自分よりも詳しいエンジニアに相談ができれば解決できた可能性が大きい分、これは非常にもったいない「挫折」です。

プログラミングの独学・学習にはパソコン選びも重要

プログラミングに欠かせないのが、パソコンです。

Macでの環境構築や設定を行うことを前提にした参考書を買ったのに、あなたが使っているパソコンがWindowsだったとします。すると環境構築が思うように進められず、書籍代を無駄にするかもしれません。

逆もしかりです。Windowsのパソコンは、VR開発やMicrosoft HoloLens(マイクロソフトホロレンズ)向けのアプリ開発ではスタンダードです。

もちろん、Macのパソコンでもそれらの開発ができないわけではありません。しかし、初心者のうちはそれぞれの分野で「スタンダード」とされる環境を整えておくことも重要です。

困った時に参照・活用できるリファレンスは多いに越したことはありません。そしてリファレンスはそれぞれの分野で一般的に使われるパソコンを想定して書かれることが多いからです。

パソコン選びに困っているなら、MacBookを買うのがおすすめ

開発環境を整えるにあたって「今からパソコンを買わなくてはいけないが、パソコン選びの基準がわからず困っている」という方は、MacBookを買うのがおすすめです。

Mac OSにはRubyやPythonといったWebアプリケーション開発や人工知能開発などの分野で主流のプログラミング言語が、あらかじめインストールされています。

もちろん各言語の最新バージョンを使うには、アップデートをする必要があります。しかし簡単な開発であれば、パソコンを買ってすぐに始められるのです。学習用途には最適な端末と言えるでしょう。

IT企業でも、エンジニア、プログラマーの開発環境をMacに統一しているケースは多いです。Macの操作性に慣れておくと、仕事にも役立ちます。

プログラミング学習は、スマホで完結させるべきではない

最近は「プロゲート」をはじめとする、プログラミング学習をスマホで進められるアプリが次々登場しています。

複雑な環境構築や設定が不要で、アプリをインストールすればすぐに学習が始められ、アプリ上でコードを実行する事もできるのが魅力です。

ただし、本格的なプログラミングを学ぶには「スマホだけで学ぶ」のは得策ではありません。

開発環境の構築が不要ということは、環境のカスタマイズの自由度も下がるということです。

自分の好みにあったエディタを導入したり、開発を進める中で気になったライブラリがあったらすぐに導入する。得た知識を元に、簡単なオリジナルアプリの開発にチャレンジするといった用途にはスマホは向きません。

またiPadなどタブレット端末を中心に、プログラミングの本格的な開発ができるアプリも登場しつつはあります。しかし、まだまだスマホやタブレットでの開発は黎明期です。

基本的にはプログラミング関係のスマホアプリは、基礎知識の学習向けという色が強いです。

あくまでメインの学習はパソコンで進めつつ、隙間時間や寝る前の学習にスマホを活用するのがおすすめです。

プログラミング学習は時間の無駄なのか?

「1000時間の法則」という言葉があります。1000時間とは、その分野に関する事柄が得意になるまでにかかる学習時間の目安です。

その分野の天才と呼ばれるには、1万時間の学習が必要

1000時間の法則と並んで、よく語られるのが「1万時間の法則」です。

1万時間の法則とは、マルコム・グラッドウェル氏が著作「天才! 成功する人々の法則」で紹介したルールです。

マルコム・グラッドウェル氏は同書で、天才と呼ばれる人々はその分野に関する1万時間の練習を積んでいると主張。世界的に大きな話題となりました。

1万時間とは、毎日3時間の独学や訓練を10年続けることに相当します。毎日欠かさず3時間、10年間の独学は大人、子供を問わず非常にレベルが高いことです。ハードルが大きいです。

そこで1万時間の法則をベースとしつつ、新たに唱えられているルールが1000時間の法則です。

その分野が得意になるには、1000時間の学習が必要

1000時間の法則を、特に子供の学習向けのアドバイスとして提唱しているのはPhilip Guo氏。カリフォルニア大学サンディエゴ校で認知科学の助教授を務めるほか、コンピュータサイエンスやエンジニアリングも教えています。

Philip Guo氏は自身のウェブサイトで、このように述べます。訳文は拙訳です。

I don’t want to pressure you to become an expert at anything, but I do want you to become good at something, which I think requires far less time and dedication. So here is my 1,000-hour rule, a much gentler version of the 10,000-hour rule:

(あなた方が何らかのエキスパートになるために、プレッシャーを感じることを私は望みません。でも私は、あなた方に何かに長けた存在ではあって欲しいと願います。そのために必要なのは、より少ない所要時間と献身です。そこで私は、はるかに易しい1万時間ルールとして「1000時間ルール」を用意しました)

出典:My advice for kids: The 1,000-hour rule

天才ではなくとも、得意であることは仕事でも重要

Philip Guo氏は1000時間ルールを、子供向けの法則として提唱しました。この「何かに長けた存在であること」という考え方は、子供だけではなく、仕事に邁進する大人にとっても重要です。

一人の人間が持ち得る能力には、限界があります。

営業のスペシャリストが、プログラミングのスペシャリストにもなるというのは非常に大変なことです。しかし営業のスペシャリストが「プログラミングもちょっと得意なビジネスパーソン」になることは、現実的に可能です。

どちらのスキルも身につけた人は「営業にもプログラミングにも精通した人材」として、スキルの掛け合わせを武器に市場価値を高め、仕事で活躍できます。

とはいえ、1000時間の勉強は「それはそれで大変」なのも事実。1000時間の学習は、1日3時間学習としておおよそ1年を要します。

1万時間に比べれば、1000時間ははるかに少ない所要時間ですが、それでもなお学習コストは低いとは言えません。仕事を続けながらの学習はなおさら大変です。

プログラミング学習は挫折しやすい

プログラミング学習を、そのまま1000時間ルールに当てはめて考えるとハードルの高さはより浮き彫りになります。その理由は、プログラミングには挫折ポイントが沢山あるからです。

プログラミングは読書だけでは知識が定着せず、必ず手を動かすことが必要です。毎日仕事で、まとまった独学する時間を確保し続けるのは難しい、という人も多いでしょう。

どんな人でも、新しいことを学ぶには時には息抜きも必要です。普段の仕事疲れを癒し、時には友人と遊ぶ時間だって取りたい、という人も多いでしょう。それはある意味当たり前のことです。

また1日3時間学習し続けると、必ず難解なエラーにも遭遇します。エラーの発生も、挫折を招きます。学習を続けること自体が、ある意味では大変です。

教材選びや環境構築など、そもそものプログラミング学習の難しさ。

学習範囲の広さ。挫折する要因の多さに加え、学習に要する時間やコストの大きさ。こうした要素を並べて考えると、プログラミング学習から脱落してしまう人が多いのも無理がないことです。サービスを作るのにたどり着くのは、以外と大変なのです。

学習コストの割に、知識が定着しなかった方は「プログラミング学習は無駄である」と感じてしまうかもしれません。

またプログラミングを学ぶことの意味を自分の中で十分に検討しないまま、なんとなく独学を始めた方も「学習コストの割に、成果が見合わない」「プログラミング学習は無駄だ」と感じる可能性はあります。

プログラミングの独学は不可能なのか?

プログラミングを学ぶ方の多くは、一度は独学にチャレンジしているのではないでしょうか。挫折を味わった方も多いはずです。プログラミングを独学で学ぶことのハードルは、それくらい高いのです。

では、プログラミングの独学は不可能なのでしょうか?

結論から言えば、学ぶモチベーションの維持さえできれば「不可能」ではありません。「自分は一人でもプログラミングを学び続ける自信がある」という方は、独学に向いている可能性が十分にあります。

自分で、自分のモチベーションを高め続けていけるでしょう。

一方、独学にそれほどこだわりがないのであればスクールに通うことも検討すべきです。

プログラミングを仕事にしたいと考えている方も、スクールに通うのがおすすめです。

プログラミングを趣味ではなく、仕事にする場合「正確なプログラミングの知識」は不可欠です。自分の好きなアプリを、好きなように作るために知識を得るなら独学は非常に良い選択肢です。

一方でプロのエンジニアとして、エラーやバグの無いビジネス用途に耐えるアプリを作るのを目指すなら、スクールで網羅的にプログラミングを学び、抜け目なく様々な知識を吸収しておく方が確実です。

プログラミング学習のモチベーションを維持するには?

プログラミングは挫折しやすい分野であることは事実です。

だからこそ習得には、モチベーション維持が重要です。特に独学の場合は、なおさらモチベーションが要です。

モチベーションの維持には、プログラミングを学ぶ意義を自分の中で固めておくのが効果的です。プログラミングをいま学ぶべきである理由をいくつか、紹介します。

エンジニアは売り手市場

IT業界は年々発展を続けています。例えば広告業界では、インターネット広告が急拡大を続けており、2018年にはデジタル広告費の割合がテレビ広告費を抜くとの予測もあります。

2018年の世界のデジタル広告市場は12.6%の成長が予想されています。

また金融業界でも「フィンテック」と呼ばれるICTを活用した金融商品、金融サービスに注目が集まっています。フィンテックを支える代表的な技術がブロックチェーン、及びビットコインに代表される暗号通貨です。

こうしたIT業界の拡大を下支えしているのが、エンジニアです。エンジニアが居なくては企業は新サービスを生み出すことも、自社の優位性を生み出すための新技術の研究も進めることはできません。

一方で転職市場全体で見ると、プログラミングスキルを持つ人材はまだまだ多くないのが現状です。つまり、企業は慢性的なエンジニア不足に陥っています。

プログラミングスキルを持つ人材が、いま社会的に強く求められているのです。

挫折する人が多いからこそ、プログラミングを習得することは優位性に繋がる

プログラミング学習に挫折する人が多いということは、裏を返せば「プログラミングを習得した人材は、それだけ貴重」ということです。

平成28年の統計によれば、システムエンジニアの平均年収は592万円。優秀なエンジニアであれば、20代でも年収は800万円を超えます。

そのスキルが貴重であるからこそ、企業はエンジニアに対して好待遇を提示する傾向にあります。プログラミングを習得することは、自分のキャリアにとって大きな武器となるのです。

プログラミングスキルは経営や企画でも役に立つ

プログラミングを学んだ全員が、エンジニアになる必要はありません。プログラミングは経営や企画といった職にも役立つ、重要なスキルです。

起業家にとって、IT分野は「起業しやすい」傾向があります。業界全体が拡大を続けていると同時に、メーカーのように「在庫」を持つことなく事業を展開することができるためです。

またIT業界には「プロトタイピング」という考え方があります。

プロトタイピングとはソフトウェア開発において、最初から100%の完成度のものを作るのではなく、機能を簡易化して大まかなプロダクトを先に製作。

ユーザーから早期にフィードバックを得て、それらを開発に反映していくという手法です。

よってIT業界のプロダクトの開発スピードは、一般的なメーカーなどに比べて早い傾向にあります。

企画担当者にとってはアイデアを形にして、フィードバックを得るまでのサイクルが短く、改善もしやすいです。非常に刺激的な環境だと言えます。

プログラミングを起業家、経営者やプランナーが身につけることの意義は「プロトタイプ製作のスピード」にあります。

例えばあなたがプランナーで、新しいWebアプリケーションのアイデアを思いついたとします。でも、プログラミングスキルはないとします。

この場合、プロトタイプの開発は「エンジニアにお任せ」です。プレゼンテーションを行い、自分の企画に賛同してくれるエンジニアを確保。

その後、エンジニアとミーティングを重ね、意図を正確に伝える。エンジニアの成果物を見た上で、意図通りになっていない点があったらフィードバックを行います。

こうした開発を無償で依頼するのは、要する時間から逆算して考えると簡単ではないでしょう。まとまった額の対価も必要です。

つまり、自分にプログラミングスキルがない状態でWebアプリケーション開発の企画などを立てると「時間もお金もかかる」のです。

起業家やプランナー自身がプログラミングを覚えると、自分で思いついたアイデアを素早くプロトタイプに落とし込むことができます。

企画を実現するまでのスピードが圧倒的に早くなる上、エンジニアに業務を依頼する際にもコミュニケーションが円滑になります。

プログラミング学習の挫折を乗り越えるための、3つの解決策。

プログラミングの挫折の原因と、その解決法を紹介していきます。

何から学べばいいか分からないなら「スクールに行く」

未経験からプログラミングを学ぶには、何より重要なのが教材選びです。

プログラミング言語はどれを学ぶべきなのか。どのフレームワークを学習すべきなのか。どの教材を選ぶべきなのか。環境構築はどのようにすればいいのか。

いずれもプログラミング未経験者が直面しがちな、大きな疑問です。

「これから学習を始めよう!」という時に壁にぶつかってしまうと、学習意欲が萎える原因になります。言語選びも環境構築も非常に重要ですが、その点には時間を掛けすぎず、できる限りスムーズに学習を始めることも大事なことです。

何から学べばいいのか分からなかったり、自分では言語や教材を選べないのであればスクールに行くのも手です。プログラミングスクールには充実した教材が存在します。

環境構築などで詰まった時にはサポートも受けられます。教室には他の受講生もいます。友人を作る場にもなります。

自分のレベルにあった適切な学習プランも組めるため、学習意欲を継続しやすいのもスクールに通う大きなメリットです。

エラーが解決できないなら「すぐ質問・相談できる環境に身を置く」

プログラミングを学ぶと、必ずエラーに直面します。自力では解決できないような、非常に難しいエラーに直面することもあるでしょう。

困難なエラーにぶつかった時に、大事なのは「自力で解決しようとしすぎない」ことです。

もちろんエラーの原因を、自分で考えるのはスキルアップのために重要です。

しかし、悩みすぎて学習が進まない状態になってしまうのはナンセンスです。特に未経験から、プログラミングスキルを身につけるという段階では「悩むより、手を動かす」のが先決です。

分からない点は「自分よりもプログラミングに詳しい人」に質問・相談し、すぐにエラーを解決。一通り、アプリケーション開発の流れを体感することをお勧めします。

もし個人で勉強しており、周りに詳しい人がいないのであれば「詳しい人がいる場所」に足を運びましょう。IT勉強会に出席したり、教室学習が可能なプログラミングスクールに通うと良いでしょう。

またteratailに代表される、エンジニア専用のQ&Aプラットフォームに登録。15分考えてもエラーの原因がわからなかったら、すぐに質問や相談をするのもおすすめです。

teratail(外部リンク)

モチベーションが続かないなら「友達を作る」「勉強会に行く」

どんなに良い教材を選び、スムーズに環境構築を行い、コードを書き進めたとしても「モチベーションが続かない・・・」という状態になることはあります。気分の上がり下がりは、どんな人にもあるものです。

学習効率を最大化するには、最終的にはやる気も非常に大事です。

プログラミング学習のモチベーションを保ち、自分のやる気を高めるには、意識的に刺激を受けるのが効果的です。

例えば、友人に「プログラミングを始めようとしている人」がいたら、一緒のタイミングで学習を始め、定期的に進捗を共有し合うのがおすすめです。進捗を報告し合い、成果物を見せ合うことで良い意味での競争心が生まれます。

IT勉強会に出席するのも、おすすめです。

IT勉強会の検索に便利なウェブサイトが「connpass」です。connpassはIT勉強会の支援プラットフォームで、全国各地で開催される勉強会を掲載。イベントへの申し込みもconnpass上で完結できます。

ディープラーニングやブロックチェーンなど最新のIT技術に関する勉強会から、HTML・CSSの基本から扱う初心者向けのイベントまで幅広く掲載されています。

自分のレベルにあった勉強会に出席することで、同じ志を持って、一緒にプログラミングを学んでいける友人が見つかることでしょう。

connpass(外部リンク)

 

まとめ

プログラミングは、多くの人が習得にチャレンジしながらも挫折しているのが現実です。

その大きな理由には「教材選びの失敗」「言語選びの失敗」「エラーを解決できない環境」などが挙げられます。

こうした問題は、独学で発生しやすいものです。

プログラミングを学ぶのは、決して「時間の無駄」ではありません。 教材選びに困っているなら、思い切ってスクールに通う。

モチベーションの維持が心配なら、友人と一緒に学んだり、勉強会に行ってみる。こうした工夫を通じて、挫折を未然に防げます。

挫折しやすいポイントを事前に把握。しっかりと対策を練ることで、プログラミング学習を着実に進め、スキルを身につけましょう!

↑目次へ戻る

【転職実績No.1👑】年収アップと自由な働き方を実現したいならITエンジニア転職!

こんな希望はありませんか?

  • もっと年収アップできる仕事がしたい
  • 時間や場所に縛られず自由に働きたい
  • 専門スキルで手に職をつけたい

という方は、ITエンジニア転職がおすすめです

テックキャンプなら、完全未経験🔰でも大丈夫!プログラミング学習〜エンジニア転職支援、副業案件獲得まで個別にサポートします👌

さらに給付金活用で受講料最大70%OFF

※2020年12月時点 3.テックキャンプ エンジニア転職は経済産業省の第四次産業革命スキル習得講座の認定も受けており、条件を満たすことで支払った受講料の最大70%(最大56万円)が給付金として支給されます

興味がある方は、以下よりIT転職のプロにキャリアのお悩み相談から始めてみましょう!

まずは無料で相談してみる

この記事を書いた人

Avatar
音楽ライターとしてエイベックス、ビクター、トイズファクトリー等に所属するアーティストの取材を担当。2016年に開催された『Bjork Digital』の取材経験から、VR×音楽に関心を抱く。2017年よりテクノロジーに関するライティングを開始し、テックキャンプ ブログにジョイン。猫とウサギを飼っています。

あなたの理想のキャリアに合わせた、テックキャンプの2つのサービス

Advertisement