🧠

プログラミングが「全くできない人」の頭の中を解剖してみた

に公開2

はじめに

世の中の「未経験エンジニア挑戦記」の多くは、もともと数学が得意だったり、論理的思考の化身のような人たちが書いています。

しかし、私は違います。
「ロジックを組む」その言葉の響きだけで、私の脳のブレーカーが落ちます。

この記事では、できる人には一生理解できないであろう「プログラミングが全くできない人の脳内パニック」を可視化してみます。できる人が読めば「そんなところで詰まるの?」と驚き、できない人が読めば「私だけじゃなかった」と共感してもらえたら嬉しいです。

自己紹介

はじめまして。株式会社Rabeeに入社3ヶ月目の駆け出しエンジニア、shellyです。
文系出身で、プログラミング耐性ほぼゼロだった私が、この3ヶ月で感じたことを書いてみました。

まったくの未経験者がつまずきやすいポイント

皆さんが無意識にこなす「簡単な操作」のひとつひとつが、私にとってはフルマラソン並みの重労働です

  1. 「わからない」の解像度が低すぎる問題

    できる人は「Aが動かないのは、Bの定義が間違っているからだ」と論理を逆算します。
    しかし、できない人の脳内はこうなっています。

    • 「エラーが出た」ではなく「PCに怒られた」と感じる
      画面が赤くなった瞬間、論理的な分析ではなく「また私なんかやらかしたな?」という気持ちが先に立ち、思考が停止します。

    • コードが「呪文」に見えている
      iffor を見ても、「条件分岐」「繰り返し」として頭に入る前に、ただの記号の列に見えてしまいます。どこからどこまでが1セットなのか、どう読むのが正しいのかがつかめず、理解するまでに時間がかかってしまいます。

  2. 「点」が一生「線」にならない

    学習サイトで「変数」や「関数」を学びました。単体ならわかります。
    しかし、いざ実務や課題制作になると、何もわからず手も足も出ません。

    • 知識はあるのに、組み立て方がわからない
      変数や関数は個別なら理解できても、どの順番でどう組み合わせれば動くものになるのかがわからず、手が止まってしまいます。

    • 「どこに書くか」が最大の難問
      できる人は「ここに書くのが自然だよね」と言いますが、初心者は「え、このファイルの、どの行の、どの括弧の間に書けばいいの?」という物理的な位置情報で死ぬほど迷います。座標がわからないのです。

学習サイトと実務の「ギャップ」

学習サイトは、いわばレールの敷かれた電車です。

  • 書く場所が指定されている
  • 実行ボタンを押せば、すぐ正解か教えてくれる
  • 詰まったらヒントがある

しかし実務は、突然砂漠で地図を渡されるようなものです。

  • そもそも「どこに」書くべきか探すところから始まる
  • エラーが出ても、何がどうなっているのかわからず自分でやった覚えがない
  • 意図通り動いても「本当にこれで大丈夫?」と自分を疑う工程が続く

この「正解のない不安」こそが、未経験者が一番削られるポイントだと感じます。コードを書くこと以上に、コードを書く前後の進め方を知るだけで、この不安は少しだけ軽くなります。

私がたどり着いた「脳の負荷を減らす」生存戦略

私が試してみて、少しだけ脳の負荷が減った方法です。

  1. 1行書けたら自分を褒め称える

    できる人は1日で機能を実装しますが、私は「今日はエラーを1つ減らせた」だけでも、自分を前に進めたと認めるようにしました。
    目標のハードルを思い切って下げないと、すぐに「自分はダメだ」に引っ張られてしまうからです。

  2. 詰まったら質問で言語化する

    わからないまま長時間粘ると、理解より先にメンタルが削られます。
    先輩からは「15分詰まったら聞いて」と言ってもらっていたので、迷ったら早めに聞くことにしました。
    何がわからないのか自分でも曖昧な状態でも、先輩は汲み取ってくれるし、話しているうちに自分でも整理できます。

    ここで意識していたのは、小さなことでも「わからなかったこと」として記録することです。
    私は次の3つをメモするようにしていました。

    • どこで詰まったか
    • 何を試したか
    • どう解決したか

    これがないと同じところで何度もつまづいて、どう解決すべきかずっとわからないままです。

  3. 考え方をできる人に寄せる

    私が思いつく方法で解決できないときは、ひたすらできる人に聞いて、真似するようにしました。

    よく言われていたのは、「60%でいいから、なるべく早く出すこと。そうして方向性をすり合わせること」です。
    最初は「わからないものは何をしても始まらない」と思ってしまい、時間ばかりかかっていました。
    それでも数をこなすうちに、「最初に何を確認して、次に何をして、どこで完了と判断するか」を意識できるようになってきました。

    その場では理解しきれなくても、聞いた順番どおりに手を動かし、次回も同じ流れをなぞる。
    これを繰り返すうちに、少しずつ自分でも同じ考え方で進められるようになりました。

まとめ

未経験の最初の時期は、できる、できないよりもわからない自分を許せるかの戦いだと感じています。

プログラミングができる人から見れば、私の悩みは「1+1がなぜ2になるのか」で悩んでいるように見えるかもしれません。

でも、その「当たり前」がわからない時期こそ、一番しんどくて、一番面白い時期だと思います。
もし今、何も進んでいないように感じるなら、それは見えないところで土台を作っている状態だと思ってください。

さいごに、
今日、先輩が褒めてくれました。
「あんなにHTMLで悩んでいた私が、新しく入った方に道筋立てて説明をしている姿に成長を感じた」と。
その言葉を聞いて、少しずつでも前に進めているんだと実感しました。

私もまだ途中ですが、一緒に頑張っていけたらいいなと思います!

Discussion

plusone|開発技法ノートplusone|開発技法ノート

初めてのことって、本当に“砂漠で地図を渡される”みたいな感覚になりますよね。
経験者は答えを知っているから、迷路でもスルスルと正解の道を進んでしまうけど、初めての人は行き止まりにぶつかりながら、少しずつ地図の意味を覚えていくものです。

でも、ぶつかりながら進むその過程こそが、自分の中に“本物の地図”を作っていくんですよね。
だから焦らなくて大丈夫。ゆっくりでも、確実に前に進めています。

それから、画面のイメージを思い描けたり、「こうなったら気持ちいいな」と感じることはできるでしょうか。
もし、感覚的にでも“できあがりのイメージ”があるなら、それは本当に大きな強みなんです。
形にするための道具さえあれば、その感覚はちゃんと前に進む力になります。

全部を自分で作れなくても、イメージを言葉にして伝えられれば、
今の時代はそれを手伝ってくれる生成AIのような仕組みがたくさんあります。
苦手を頑張るのもいいし、得意なところから伸ばすのもいい。
どちらもチャレンジしていけば、ちゃんと道は開けていきます。

そのチャレンジ、心から応援しています。
あなたの“イメージできる力”は、ちゃんと武器になります。

qpgmr516qpgmr516

「ようこそ、『こっち側の世界へ』!」
読んでみた感想として、
「あ、この方はプログラミングを“暗記”で突破しようとしているな」
という印象を受けました。
ただ、プログラミングは暗記ではなく、
“ものの見方”そのものを変える学問
なんですよね。
そこで、まったくの初心者であれば、学ぶ順番としては

1.集合
2.論理式(命題・真偽)
3.データ構造
4.アルゴリズム
5.プログラミング言語

この順がいちばん負荷が少なく、自然に理解が積み上がると思います。
暗記中心の教科書的な方法だと、基礎体力がつく前に
本質でない“書き方の細部”に圧倒されてしまうことが多いので、
長続きしにくいのが難点です。
ここで言う「集合」「論理式」は高度である必要はなく、
中学・高校レベルで十分です。

コンピューターは、たった2つの事実――
「情報を分類できる(集合)」
「真偽を計算できる(論理)」
これだけでここまで発展してきました。
気づけば今では“知性”にすら近づいています。

もし途中で退屈だなぁと思ったら、
コンピューターの歴史や黎明期の話なんかを読んでみるのも良いと思います。
なぜ今の形になったのかが分かると、学ぶ意欲そのものが変わりますよ。