-
プログラミングの挫折「9つの理由」と「3つの原因」とは?
挫折が普通のプログラミングという魔物
「プログラミング」と初めて聞いたとき、どんなハードルの高さを感じたでしょうか?
おそらく、
「それなりに難しいことはたくさんあるんだろうけど、コツをつかめばそれなりには出来るようになるかも…いやしかし自分には向いてない気もする…」
こんな感じの感想を持った方は多いかもしれません。
難しそうだけど、努力すれば出来るように多少なるけれど、かといって、結構大変そうもの、と。
確かにこれらの感想は間違ってないと思います。しかしプログラミングがやっかいのは「想像以上に心が折れる」こと。
つまり挫折するのが定番であり、普通なんです。
想定していたより何度も、バッキバキに心が折れることに疲れ「これほどまでとは…」と、散っていく初心者は跡を絶ちません。
なぜ、プログラミングはこんなにも挫折するのでしょうか?
今回は挫折を招いている「9つの理由」を明確にし、さらに「3つの原因」を解明していきます。
これからのプログラミング学習の際に事前に心構えや危険回避が出来るようにお役立てください。
では、さっそく「挫折する理由」を「9つ」見ていきましょう。
【理由①】独学している
いきなりですが「独学」は危険です。独学は「挫折率9割」と言われており、高いハードル。
そもそも自分で今やっていることが正しいかどうかもわからず、エラーが出ても誰にも聞けないというのは、プログラミングという難解な学問を学ぶうえで、あまりにも無防備です。
「ググる(Google検索)」ことで回避できる、というほど甘いものでもありません。本質的な理解をしていないと「何がわからないかわからない」という八方塞がりが、終わりなく続き疲弊し、挫折します。
独学のリスクについてもっと詳しくは『プログラミングの独学が失敗する「7つの理由」と「3つの改善策」』をどうぞ。
【理由②】専門用語が意味不明
プログラミングの学習において、初心者向けの参考書を買っても最初の10ページ以内で心が折れます。それは「いきなり専門用語がわからない」から。
どんなに優しく書こうと思っても、参考書を書く側も「ブラウザ」「HTML」「CSS」という言葉はこれ以外に呼称もなく、解説もあまり長すぎると逆に混乱することを警戒し、比較的シンプルに語るもの。
しかし、これが初心者にとってはいきなり富士の樹海に放り込まれたような状態となり、右も左もわからない状態に陥ってしまう原因に。早い人はもうここで離脱=挫折決定。
「HTMLのファイル形式を〜」「拡張子は〜」「文字コードはUTF-8で〜」などを「考えずにそのまま覚えればいい」と言われても、想像がつかないものをそのまま覚えるということは、人間なかなか出来ないものなんですよね。
【理由③】検索疲れ
わからない言葉があるのは仕方のないこと。であれば天下の「Google検索」で解決を図りたいところですが…。
実際にプログラミング関係のヘルプ記事を見ても、なかなか自分の思う答えに巡り会えないことは多々。
あるいは行き着いた記事に書いてある言葉のなかで、またもや不明な単語が出てきたり、勘違いに気づくような事態などもあり「検索の無限ループ」を察知し、ここでも心が折れます。
実はググり方にもコツがあるので『プログラマーに必要な検索力とは?ググる検索テクニック「11選」』もチェックいただきたいところですが…。
終わらない検索による疲れ、エンジニア情報サイト「Qiita」や「Zenn」などを使っても欲しい答えに巡り会えないストレスにより、挫折の影が早くもちらついてきます。
【理由④】覚えたのに忘れる
根気よく覚えたことでも、たいがい24時間以内に早くも忘れていきます。今までの自分の人生にあまりにも関係のないプログラミング単語の連発で、覚えることさえもままならないんですね。
このショックは回数を重ねれば重ねるほど地味に効いてくる。なぜなら「勉強した意味ないやんけ…」という気持ちになるからです。ここも危険な挫折ポイントですね。
かなり簡単そうなことでも、結構完璧に忘れてしまうもので、再び「検索」することになります。そしてそこで答えを再び見つけ取り組んでも「え、こんなことを毎日繰り返すの…?」と、プログラミングの理想像との乖離に、途方に暮れ始める。
「専門用語に出会う→検索疲れする→そして忘れる→また調べる→やはり忘れている→検索」の繰り返し。
ここまでの3つの理由だけでも、十分に心が折れることに事足りますが、プログラミングに潜むトラップはこんなものではありません。
続いて、見ていきましょう。
【理由⑤】反映されない・動かない
とりあえず、初心者におすすめのテキストエディタを使用し、なんとかHTMLやCSSを書き込んでブラウザで確認すると…
見本と異なる崩れた表示が…。
おかしい、絶対にコードも合っているし、そもそも自分でアレンジできるような技術もない。
何が悪いのか?パソコン?ブラウザ?やっぱりコード?回線?などなど、プログラミングやITに関する知識もまだ高くはないため、原因究明の術がわからないー。
動かない、反映されない、手本の通りやっているのに。という解決不可能の状態にハマると「こんなところでつまづいている場合じゃないのに…!」とイライラもつのってくるもの。
この「反映されない・動かない」原因は、本記事後半で説明します。
【理由⑥】孤独感
WEB上には、なんだかんだ成長している駆け出しエンジニアたちや、安定感抜群の玄人プログラマーたちがわんさかいます。みんな楽しそうだし、書くこともツイートも専門的。
友人や知人も結構順調にプログラミング学習をこなしているようにも感じ、自分だけが幼稚なレベルで行き詰まっているような気持ちになります。
ここで当然、初心者は孤独感に襲われる。
「時間を大いに無駄にしているのは自分だけなのではないか?」
「◯ヶ月経過してまだこんなことやっているのは自分くらいではないか?」
と。
独学の道を選ぶ人はかなり速い段階でこの「孤独感」に襲われます。そして独学だけでなく、スクールに通っている人でさえも、こういった「出遅れ感」は背中に感じているものです。
【理由⑦】迷い
プログラミングでの検索疲れや孤独感もなんとかスルーし、歯を食いしばって取り組んでいるなかで、別の感情が芽生えてきます。
「もしや、プログラミング自体に向いてないのでは…」
周りの友人はプログラミング以外のことを普通に専門しているし、それなりに成長している。プログラミング以外にも世の中にはたくさん仕事がある。
「自分の成長はこの遅さなので、もしかしたら単純に選ぶ道を間違ったのでは…?」
こんな迷いがやってくる。
プログラミングで心が折れぬよういくつかのハードルを超えてきても、自分を客観視したときに「プログラミングを選んだことは判断ミス」と思えてしまうのです。
そして「プログラミングから離れてしまう=挫折」となります。
【理由⑧】ネガティブ行動
人は「自分の聞きたい話」を検索するものです。
つまりプログラミングに対して懐疑的になると「ネガティブ情報」を調べ始めてしまうことがあります。
例えば「エンジニアの低い給与や悪い待遇のケース」についてなどのマイナス情報を収集し「なんでもっと早くこれに気づかなかったんだ…」と、自らをプログラミング離脱へと向かわせようとします。
わざわざ悪い情報を集めて、プログラミングをあきらめようとしてしまうんですね。
【理由⑨】手も足も出ない
いろいろ困難はあれど、なんとか基本要素などの学習を終えて、ここからは多少は楽になると思いきや…次のステージに進んでも、まさかの「手も足も出ない」ということも。
「ちょっとわからないな」くらいならまだしも「全く理解できない」というショック。今までの勉強に費やした時間とお金を振り返ると、もはやここまでかと思ってしまうものです。
これも大いなる挫折の理由です。
だって一生懸命やってきたのに、なんだかそれが全く意味ないように感じるのですから無理もありません。
挫折理由にある「3つの原因」とは?
プログラミングの挫折理由を9つ見てきましたが、これらの問題の原因は、以下の「3つ」です。
①プログラミングを微妙にナメていた
②周囲を気にしすぎている
③あせっている
これら「3つの原因」を解説していきます。
【原因①】プログラミングを微妙にナメていた
プログラミングは実は「ちょっと努力すれば出来るもの」というレベルのものでは全然ありません。
この勘違いの功罪は、多くのプログラミング学校が集客のために「1ヶ月でホームページが作れる!」ひどい場合は「3ヶ月でフリーランス!」といったような宣伝をしていることにあります。
本当はプログラミングはとっても難しいのに、アメリカではコンピューターサイエンスの学士がないと企業面接にもこぎつけないものなのに、挫折者もめちゃくちゃ多いのに、です。
このあたりは『「プログラミングは簡単」はウソ。難しいですよ。』でも書いていますが、プログラミングに挑む際は専門的な学問を学ぶ心構えが必要。甘く見ていると挫折へとまっしぐらです。
なので、逆に言えば「検索疲れ」も「覚えたのに忘れる」のも当たり前。プログラミングは覚えることがとても多く、さらに次々と新しい技術が続々公開されていくので「一生学んでいく学問」とも言えるんですね。最初は特にわからなくていいんです、そして慣れてきても、わからないことは意外となくならないもの。暗記するというよりも「すこーしづつ慣れていくもの」という方が合っています。
うまくGoogle検索を使いこなすのがプログラマーであるため、そもそも検索疲れをしてないエンジニアなどいないですし、ベテランエンジニアも何かを暗記しようとは、はなからしていません。プログラミングは難しい、と知っているから無理しないんですね。
【原因②】周囲を気にしすぎている
ネット検索やSNSでは「成功者」の話ばかりが大きく取り上げられます。このほうが記事の注目度やシェア率も上がりますし、無理もありません。
一方で、例えば「プログラミングの挫折者」については、自分から積極的に検索しないと見つけることはできないでしょう。しかし、わざわざそんなネガティブ情報にたびたびアクセスする人はいませんから。
そんなこともあって、いつしか私たちは、ネット上でやたら目立つ「だいぶうまくいった人」と自分を比較するようになり、そこで自己嫌悪に陥ります。人気プログラミング言語を操る人たちはすぐ出来るようになったんだと錯覚します。
実際には成功者も裏ではさまざまな苦労や問題をリアルタイムで抱えていますが、そこはほとんど記事にはなりません。記事になったとしても武勇伝として美しく記事化されるので、生々しいネガティブ情報として刻まれることはないんですね。
プログラミングにおいても、たまたまプログラミングに向いている人や基本知識があった人が「急成長できた!」「努力が報われた!」「こんな自分でも転職成功!給与アップ!」と、出来すぎのサクセスストーリーとして掲載されていますが、そういった例は「少なからず盛っている記事」として、基本的にスルーしときましょう。
周囲を気にしていると、無駄に「孤独感」や「迷い」を抱えるだけ。
WEB上で作られた美談は話半分くらいで軽く受け止めるが良いです。
【原因③】あせっている
「あせる」というのは、この令和に入ってもある種のトレンドになっています。
即決が良い、爆速が神、シビアに決断する、などなど。あせっていこう!スピード命!って文化ですね。
しかし、プログラミングというのは「長い長い長い道のりの学問」です。なので、ここで「即決が良い、爆速が神、シビアに決断する」なんかを取り入れるとやっかいになるのは当たり前。
高校受験や大学受験には少なくとも1年もかけて勉強していたはずなのに、同じかそれ以上専門的なプログラミングに取り組む際には「すぐに結果が欲しい」と、なぜかなる人が多いんですね。
あせることさえできないほど、少しづつ前に進むしかないのがのがプログラミングですので、無駄に急ぐことはその先での挫折しか招きません。
実はイージーミスがほとんどの要因
挫折の「理由④」で解説した「反映されない・動かない」については、コード記述のイージーミスがほとんどです。
「どこからどう見ても合っている」という気持ちにもなりますが、コード記述において「あ、ここ抜けてた..」「書いたはずだけどなあ…」という体験がある人は多いのでは。
しかし「喉元過ぎれば熱さを忘れる」で、次にまた行き詰まると「いやいや、記述は合っているし」と、キレ気味になってしまう。
コンピューターを責めたい気持ちもわかりますが「記述ミスがほとんどの原因」と肝に銘じ、自分のコードを見直しましょう。
プログラミングで心が折れることの多くは、
① 技術的な要因(記述ミス)
② 精神的な要因(孤独感・迷い)
以上の2つです。
このような沼にはまらぬよう、ネガティブになりそうなときは、
「無駄にあせってないか?」
「美談と自分を比べてないか?」
「これは技術的な要因か?精神的な要因か?」
「そもそもプログラミングは難しい、時間がかかるということを忘れたか?」
などなど自問し、ちょっと休憩し、再び前にゆっくりでいいので進んでいきましょう、他者と自分を比較せずに。
ちょっとした息抜きで、モチベーションが上がるプログラミング系の映画を観る、なんてのもありです。
挫折しないために「メンターを借りる」
当サイト「メンタレ」は、今回取り上げたような「プログラミングで挫折する原因」を分解し、その理由を考え編み出したカリキュラムです。
学習形態は「オンライン」の「マンツーマン」そして学習内容は「今のあなた」に特化。
昨今の、あせって取り組みがちなプログラミングの学習法に「待った」をかけ、あなたの課題解決に取り組んでいるサービスです。
独学の最中に「ココはちょっと習っておきたい」挫折した過去で「あの部分に悔いが残る」などなど、プログラミング学習のステイタスは人それぞれ。
もちろんプログラミング初心者の方もご利用いただけます。
苦手意識はプロに専用の実践講座を組んでもらえば、必ず克服できます。
一度、お気軽にご相談ください