こんにちは!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の説明も、実行結果と一致するかを自分で確かめる必要があります。






