SiiD BLOG ロゴ

プログラミングの勉強で挫折する割合は?原因や対処法も解説

プログラミングの勉強で挫折する割合は?原因や対処法も解説

この記事を書いた人

セイト@エンジニア兼講師

セイト@エンジニア兼講師

2012年に大学を卒業後、株式会社LIGにてWebデザイナー・Webエンジニアを3年務めたあと、株式会社LIG Philippinesの代表・VPoEとして6年間の在籍中に社員数約100名程度のテックチームへ成長させる。 その後2021年に独立し、合同会社BugFixを設立。登録者13万人を超えるテック系YouTubeチャンネルの運営やキャリアに特化したAIプログラミングスクールSiiDを運営中。

こんにちは!SiiD代表エンジニアのセイトです。

プログラミングの勉強が止まったときは、最後にできたことと、次にできなかったことを分けてみてください。「コードの意味が分からない」「エラーを直せない」「勉強する時間がない」では、再開するために変えるべきことが違います。

プログラミングで挫折する割合

「プログラミングを学んだ人の約9割が挫折する」という数字を見るときは、何を挫折と呼んでいるかを確認してください。つまずいた経験がある人の割合と、学習をやめた人の割合は違います。

株式会社SAMURAIが2025年9月16〜23日に、初心者からプログラミング学習を始めた10〜50代の男女100名を対象にクラウドワークスで行った調査では、97%が「学習途中に挫折や行き詰まりを感じた経験がある」と回答しています。この調査から「97%が学習をやめた」とは言えません。調査元の発表

よく引用される87.5%は、侍エンジニア塾が2019年8月13〜20日に実施した別のインターネット調査の数字です。全回答者298名のうち、プログラミング学習経験者240名に聞いた結果で、こちらも挫折や行き詰まりを感じた経験を尋ねています。2019年の調査発表

どちらも調査に回答した人の経験を示しており、日本の学習者全体が途中でやめる割合を測ったものではありません。対象や募集方法が異なるので、87.5%から97%に挫折が増えたという読み方もできません。

スクールの退会率などと並べる場合も、定義と調査対象をそろえる必要があります。数字の大小だけで学習方法を決めるより、いま手が止まっている原因に対応できる環境かを確かめてください。

プログラミングの勉強で挫折しやすいポイント

プログラミング学習のつまずき:言語や型、難しい内容、モチベーション、相談相手の不在、エラーやバグ

プログラミング学習のつまずきは、教材の難しさだけでなく、課題と現在の理解が合っているかで見直せます。完成済みのコードを写せても、一部を変えると動かなくなるなら、同じ教材を最初から読み直すより、変更した部分の動きを追うほうが課題を絞れます。

この見方の参考になるのが、心理学者ミハイ・チクセントミハイらが研究した「フロー」です。活動に深く没頭した状態を指し、自分の技能と課題の難易度が高い水準で釣り合うこと、目標が明確なこと、結果が分かることが重要な条件として論じられています。フローに関する研究を、そのままプログラミングの挫折率や特定の学習法の効果を示すデータとしては使えませんが、教材を見直す観点にはできます。教育場面のフローに関する複数研究をまとめた分析でも、関連と因果関係は区別されています。

プログラミング言語や型に慣れない

学び始めは、記号の意味と処理の内容を同時に理解する必要があります。変数は値に名前を付けて扱う仕組みで、型は数値や文字列といった値の種類です。たとえば数値の 3 と文字列の "3" は、見た目が似ていても、計算で同じように扱えるとは限りません。

教材で「意味は後で説明する」とされたコードを、そのまま写すだけで済ませると、次の課題でどの知識を使えばよいか判断できなくなります。一方、すべての内部の仕組みを調べてから先へ進む必要もありません。今の課題で値がどう変わるかを説明できるかを、いったんの区切りにしてください。分からない記法はメモし、後の課題でも必要になったものから調べ直します。

コードを書く前の準備で止まっているなら、学ぶ内容と環境の問題を分けます。教材と使っているソフトのバージョンが違えば、同じ手順でも画面や結果が変わることがあります。インストール時のエラーを、文法を理解できるかどうかの判断材料にする必要はありません。

勉強内容が難しい

配列は複数の値をまとめて扱う仕組み、繰り返し処理は同じ処理を条件に応じて実行する仕組みです。この二つが一緒に出てくると、「どの値を」「何回目の処理で」使っているかを追う必要が出てきます。

たとえば、買い物リストの合計金額を計算する課題で止まった場合。まず一つの商品価格を表示し、次に複数の商品を順番に表示し、最後に合計する、という順に分けられます。途中の値を表示すれば、どの処理まで想定どおりかを確かめられます。

いきなりアプリ全体を完成させようとすると、画面、計算、データの保存など、複数の問題が重なります。一部分を動かして結果を確認できる大きさまで課題を分けると、次に調べることが決まります。

モチベーションが維持できない

教材を読み終えたページ数だけで進捗を測ると、難しい章に入った途端に進んでいないように見えます。昨日は解説を見ながら書いた処理を、今日は一部だけ自分で書けた。こうした変化も記録しておくと、ページ数以外で学習を振り返れます。

練習を続けていても、成績や作業の成果が伸びない時期を「プラトー(学習の停滞)」と呼びます。ただ、伸びを感じないという感覚だけでは、知識の不足なのか、同じ課題に慣れただけなのか、測り方が変わったのかは判断できません。「続ければ必ず突破する」と考えず、前にできなかった課題をもう一度試すなど、同じ条件で比べてください。

逆に、解答を覚えた教材を繰り返しているなら、商品名や件数を変えるなど、小さな変更を加えます。答えを再現する学習から、条件に合わせて書き換える学習へ進むと、次に理解すべき点が見えてきます。

独学で学べない

独学では、教材を選ぶことも、理解できたかを確かめることも自分で担います。コードが動いていても、別の条件に変えたときに書き直せるかまでは、教材の完了マークだけでは分かりません。

質問相手がいなくても、自分で確認する方法はあります。練習問題の数字を変える、解説を閉じて同じ機能を作る、動く理由を文章にする、といった方法です。それでも疑問が残る場合は、勉強会や質問コミュニティなど、他の人に見てもらう経路を用意します。

「独学を選んだから誰にも聞けない」と考える必要はありません。自分で進める部分と、確認してもらう部分を決めれば、独学でも相談先を持てます。

エラーやバグの対処で心が折れた

エラーは、プログラムが処理できない状態などを知らせるものです。バグは、意図と違う動作を生む不具合を指し、エラーメッセージが出ない場合もあります。まずは「処理が止まった」のか「動くが結果が違う」のかを分けてください。

処理が止まったら、エラー文の全文と表示された行番号を保存します。次に、その直前に変えた箇所を確認します。結果が違うなら、入力した値、期待した結果、実際の結果を並べます。どちらも、変更を一つずつ試すと原因との対応を追いやすくなります。

生成AIに毎回コード全体を書き換えてもらうと、直った部分と新たに変わった部分が混ざります。動いていた版を別に保存し、「原因の候補」「確かめる方法」「変更する箇所」を分けて説明してもらってください。AIの説明も、実行結果と一致するかを自分で確かめる必要があります。

プログラミングの勉強で挫折しやすい人の特徴

参考書とノートPCを前に、勉強の進め方を悩んでいる人

プログラミングの勉強で止まりやすい行動は、性格や適性の判定には使えません。ここでは、学習を再開するときに変更できる行動に絞ります。前の章で見つけたつまずきを、なぜそのままにしているのか振り返るための項目です。

勉強の目的が明確ではない

「プログラミングができるようになりたい」だけでは、教材を終えた後に、次に学ぶ言語や技術を選ぶ基準が定まりません。学ぶ範囲を広げる前に、その知識で何を作るのかを決める必要があります。

家計の支出を集計したいなら、最初の課題は入力した金額の合計を出すことにできます。見た目を整える、利用者を登録する、インターネット上に公開する、といった機能は後から足せます。完成の条件を先に書けば、今は調べなくてよい内容も決まります。

学習目的は途中で変わっても構いません。ただし、教材を変えるときに「前の教材で何ができ、次で何を補うか」を言葉にできないなら、同じ基礎を別の教材でやり直している可能性があります。

質問できる人がいない

質問先を決めないまま勉強を始めると、検索でも解決できなかった疑問を誰に確認するか、その場で探す必要があります。教材の質問窓口や参加できる勉強会を、つまずく前に一つ確認しておきます。

質問先が見つかっていても、「分かりません」としか書けずに相談を先延ばしにすることがあります。相手に渡す情報が決まっていれば、質問を始めやすくなります。

たとえば「合計が出ません」ではなく、「価格を二つ入力して合計を表示したい。数値を足すつもりが文字をつなげた結果になった。入力値の扱いを確認したい」と書きます。原因を特定できていなくても、目的と現象は伝えられます。

質問する前に完全な説明を作ろうとせず、どこまで確かめたかを残してください。検索やAIへの相談でも、この記録があれば同じ提案を繰り返し試すのを避けられます。

勉強方法や教材が自分に合っていない

動画を見るほうが好きでも、実際にコードを書く課題がなければ、自分で機能を作れるかは確かめられません。形式の好みと、学習に必要な練習が含まれているかは分けて考えます。

教材を選び直す際は、次の対応で確認してみてください。

今起きていること

教材・課題で変える点

解説の中に未習の言葉が続けて出てくる

前提知識が書かれた教材に戻り、足りない単元だけ補う

見本どおりには動くが、自分では書けない

解答を見る前に一部分をコードで作る課題を加える

同じ問題なら迷わず解ける

入力や条件を変えて、理解を使う課題に進む

準備の画面が教材と一致しない

対応バージョンと公式の手順を確認する

教材の難易度を上げることが常に正解とは限りません。どの状態なのかを確かめてから、一つだけ変更すると、その変更が役に立ったか判断できます。

プログラミングの勉強で挫折しないための対処法

挫折への4つの対処法:目的の具体化、基礎学習、習慣化、コミュニティやスクールの活用

プログラミング学習を再開するときは、途中で止まることを前提に、次の一手が分かる形にしておきます。学習計画には作るものだけでなく、終わりの条件と、困ったときの相談先も含めてください。

勉強する目的を具体的にする

転職が目的でも、最初から仕事で使う技術を全部学ぶ必要はありません。Webアプリを作る仕事を目指すなら、まずは利用者が入力して結果を受け取れる小さな機能を完成させます。

たとえば学習記録アプリなら、最初の完成条件は「今日の学習内容を入力し、画面に一件表示できる」です。次に記録を複数表示し、その後で保存を加えます。これなら「アプリが未完成」でも、どの機能まで作れたかを確認できます。

再開する前に、メモに次の三つを書いてください。

  • 作るもの:学習した内容を表示するページ
  • 今回の完成条件:入力した一件を画面に表示できる
  • 今回は作らないもの:ログイン、検索、データの保存

まだ作るものが思いつかない場合は、教材の作例を使って構いません。表示する内容を自分の学習記録に変えるだけでも、見本と違う条件で機能を作る練習になります。

基礎のHTML・CSSから勉強する

Webページを作りたい人には、HTML・CSSから始める方法があります。HTMLは見出しや文章などの構造を記述するマークアップ言語、CSSは色や配置などの見た目を指定するスタイルシート言語です。計算や条件分岐を記述する一般的なプログラミング言語とは役割が違います。

自己紹介ページに見出しと文章を置き、文字色を変える程度の課題なら、変更と表示の対応を確かめられます。そこからボタンを押したときの処理などを作りたくなったら、JavaScriptに進む理由が生まれます。JavaScriptは、Webページに動作を加えるためにも使われるプログラミング言語です。

ただし、HTML・CSSは全員に必須の入口ではありません。たとえばファイルの整理や集計の自動化が目的なら、プログラミング言語のPythonなどでその処理を小さく試す学び方もあります。すでに別の言語で基礎を学んでいる人が、挫折したからという理由だけでHTMLからやり直す必要もありません。

Webの基礎を確認する資料には、MDNのWeb開発学習ページがあります。説明を読むだけで終えず、作ったページの一部分を変えて、何が変わったか確認してください。

学習時間を確保して習慣化する

学習時間は「空いたら勉強する」ではなく、普段の予定に結び付けます。たとえば夕食後に一つの処理を確認する、休日の午前中に課題を進める、といった決め方です。短い時間しか取れない日は、前回のコードを動かして動作を説明するだけでも、再開する位置を確認できます。

毎回の最後に「今日できたこと」と「次に試すこと」を一行ずつ残しておくと、次回、教材を探し直すところから始めずに済みます。学習できなかった日の分をすべて翌日に積み増すより、予定に無理がなかったかを見直してください。

AIを学習に使う場合は、答えを受け取る前に考える余地を残します。次のような頼み方ができます。

このコードを学習中です。
完成版をすぐに出す前に、入力から出力までの処理を説明してください。
次に、私が確認すべき箇所を一つ挙げてください。
私が実行結果を返したら、その結果に合う原因を一緒に絞ってください。

会社の機密情報や個人情報を含むコードは使わず、練習用の小さな例で試します。説明を読んだ後は、入力値を変えて結果を予想し、実行結果と比べてください。AIの説明が分かったことと、自分で使えることを区別できます。

コミュニティやスクールを活用する

同じ箇所で止まり、原因の候補も立てられないなら、他の人に見てもらう方法を検討します。勉強会や質問コミュニティを使うときは、対象の言語、初心者からの質問を受け付けているか、回答までどれくらい待つかを確認します。

有料スクールでは、質問できる回数だけでなく、学習順序や課題の難易度を相談できるかも確認してください。エラーが一つ直っても、次の課題の前提知識が足りなければ、同じようにつまずくためです。

相談には、次の情報を持っていくと状況を共有できます。

作りたいもの:
使っている教材と学習中の章:
期待している動作:
実際の動作・エラー全文:
試したことと、その結果:

独学を続けるか、スクールを利用するかは、この相談で何が解決するかを見て判断します。一つのエラーが解決すれば進めるなら単発の質問で足りる場合があります。何から学ぶか、理解できているか、次にどの課題へ進むかまで繰り返し迷うなら、継続して学習を見てもらえる環境が選択肢になります。

プログラミングで挫折しない学習環境を整えるならSiiDに相談を

プログラミングの勉強を再開するなら、最後に動いたコードを開き、次に試す変更を一つ決めてみてください。原因が分からなければ、期待した動作と実際の動作を書き出したものが、相談の材料になります。

ここからは自社の紹介になります。AIプログラミングスクールSiiDでは、プログラミングの基礎と生成AIの活用を学びながら、エンジニア転職に向けた準備を進められます。学習内容は目標から逆算して決め、技術学習に加えて応募書類や面接の準備も支援します。

質問はDiscordのチャットで24時間受け付けています。Zoomの相談ルームは毎日21:00〜23:00に開いており、予約なしで参加できます。チャットの24時間受付は、24時間いつでも即答するという意味ではありません。

挫折を避けられるかどうかは、意志より、詰まった時間を短くできる環境があるかで決まります。学習の順番と質問環境をまとめて用意したい方に向けて、SiiDの概要をまとめておきます。

AIプログラミングスクール「SiiD」について

AIプログラミングスクール「SiiD」は、未経験からITエンジニア転職を目指す方向けのオンラインスクールです。

SiiDの特徴

  • 現役エンジニアでYouTube登録者約13万人の「セイト先生」が代表兼主任講師
  • 採用側の実務知見(2,000人以上の選考・150名以上のエンジニア採用)にもとづく指導
  • 生成AIを取り入れた学習設計と、実務レベルのフルスタックWeb開発スキル
  • Workship CAREER(株式会社GIG)と連携した無料の転職伴走支援
  • 経済産業省認定のReスキル講座で、給付金の条件を満たせば実質105,600円〜
  • 学割あり(35%オフ)

こんな方におすすめ

  • 未経験・文系・社会人からITエンジニア転職を本気で目指したい方
  • 独学に限界を感じている方
  • 費用を抑えながら実務スキルと転職サポートを両立したい方

「未経験だから」とあきらめる必要はありません。採用する側を知り尽くしたプロが、給付金で負担を抑えながら内定まで伴走します。

シェアする

未経験からのエンジニア転職を本気で目指すなら「SiiD」

SiiDはYouTube 13万人のセイト先生が主任講師のAIプログラミングスクール。元人事部長&現役エンジニアによる徹底指導で、生涯年収を大きくアップさせませんか?

SiiDの詳細を見る