午前2時:バックプロパゲーションとの格闘
画面の隅の時計は午前2時17分を指している。部屋は暗く、モニターの青い光と、勢いよく回るノートパソコンの冷却ファンの音だけが響いている。
アルファはゲームをしているわけでも、SNSをスクロールしているわけでもない。その目は、この1時間彼を苦しめているエラーのトレースバックをじっと見つめている。アルファは今、ピュアPythonでゼロからカスタムのバックプロパゲーションエンジンを作っているところだ。PyTorchもTensorFlowも使わない。CPU用にNumPy、GPU用にCuPy、そしてこの時間帯に残されたわずかな正気を頼りにしているだけだ。
エラーの原因は、重みの勾配 (512, 256) とアップストリームのデルタ (256, 512) の間の形状の不一致(shape mismatch)にすぎない。些細なことに聞こえるだろう?しかし、手作業で構築したエンジンでは、テンソルの軸が一つ反転しただけで、勾配の流れ全体が壊れてしまう。損失(Loss)は下がっているように見えても、実際にはモデルは完全に間違ったことを学んでいるのだ。
ブラウザには多くのタブが開かれている:NumPyのドキュメント、メモリ効率の良いバックプロパゲーションに関するMITの論文、答えが3ページ目に埋もれている2022年のGitHubのIssueスレッド、そしてどのレイヤーで次元が反転したかを突き止めるために手書きで連鎖律(chain rule)の微分を計算するための空のタブ。
そしてついに…見つけた。
Denseレイヤーの重みの勾配を計算する際に .T(転置)が一つ欠けていただけだった。たった1文字だ。それを付け足して保存し、スクリプトを再実行すると、Lossの曲線が本当に下がり始めた。
その時の気分?最高の達成感だ(ついに、やっと!!!)。このシステムは、アルファ自身が書いた数学の法則だけで純粋に動いている。このプロジェクトはAINO(Aino is Neural Operation)と名付けられた。コードはGitHubでオープンソース化されており、PyPIにも公開されている。誰でも一行ずつ確認でき、ブラックボックスは一切ない。
午前3時34分、アルファはついにノートパソコンを閉じた。
その4時間後、アルファは教室の席に座っていた。教師が黒板にこう書く:
2x + 3y = 12 x − y = 1
「消去法を使って x と y の値を求めてみましょう!」

アルファが最後にこんな問題を解いたのは、中学2年生の時だ。
なんという皮肉だろう。昨日の夜、微分の公式を導き出し、テンソルの次元を追跡し、ゼロから勾配降下法(gradient descent)を計算したばかりなのに。その日の朝には、13歳の頃から何十回とやってきた方法で x と y を求めさせられている。
もちろん、数学が敵というわけではない。線形代数は毎晩のように触れている。しかし、そのレベルの差はあまりにも大きい。浅瀬と大海原くらい違う。ベクトルの計算や行列の分解、ニューラルネットワークの基礎といった本当に必要な内容は、学校のカリキュラムでは一切触れられない。
黒板をぼんやり見つめているのは、決して怠けているからではない。一晩中アルゴリズムの思考でフル回転(ランク押し上げ)していた脳が、突然何の刺激もない部屋に置かれたのだ。結局、オートパイロットモードに入るしかない。そして、それがアルファの毎日のサイクルだった。
SMK(職業高校):即戦力になれるって言ってたのに…
アルファがIT系の職業高校に入った理由は、実践的なスキルを学びたかったからに他ならない。そう約束されていたはずだ。卒業すればすぐに業界で戦えると。
しかし現実はどうだろう?アルファたちの時間は、専門スキルとは無関係な一般科目に奪われている。
インドネシア語の授業では、何週間もかけて古いヒカヤット(古典文学)のテキストを分析させられる。文学を憎んでいるわけではないが、その割合が理不尽なのだ。業界がはるかに求めているのは、明確な技術ドキュメントを書けるIT人材や、プロジェクトのプレゼンができるパブリックスピーキングのスキルだ。こういった極めて重要なスキルは、シラバスには全く含まれていない。
数学の授業は、二元一次連立方程式(SPLDV)で止まっている。機械学習には、線形代数や統計学の基礎が必要なのに。カリキュラムは表面的なことしか教えない。まるでABCDを教えただけで、生徒が小説を書けるようになると思い込んでいるかのようだ。
極めつけは公民(PPKN)の授業だ。テストのために理想的な国家機関の理論を暗記させられるが、現実の現場がいかにカオスであるかは、誰もが毎日ニュースで読んでいる。結果として、ただ「分かったふり」をして従順になるように教育されているだけだ。
このサイクルの副作用はかなり大きい。刺激のない環境に長く居すぎると、少しずつ怠惰になり、学校をただ出席のチェックリストを埋めるだけの形式的なものだとみなすようになる。
気にかけて努力してくれる教師も多いが、彼らもまた、国が定めた硬直したシステムとシラバスに縛られている。その一方で、外のテクノロジーの世界は猛スピードで進んでいる。BERTの時代から、ChatGPTのリリース、そして推論モデル(reasoning model)に至るまで。アルファたちのカリキュラムは?未だに2015年のITの雰囲気を語るにとどまっている。
あまり語られない職業高校生の二重の負担

職業高校生をよくストレスにさせる要因がもう一つある。業界レベルの技術スキルを求められると同時に、普通高校の生徒よりほんの少し少ない程度の重い学力試験(理論)もこなさなければならないのだ。
この二つのバランスを取るのに苦労し、理論の成績が悪いと、すぐに普通高校の生徒と比べて「頭が悪い」というレッテルを貼られがちだ。実際には、自分が何に集中したいかを「分かっている」からこそ、職業高校を選んだというのに。IT科に入ったのはソフトウェアを構築したかったからであって、ただ課題をこなすためではない。
普通高校生のような学力的な頭脳を期待されながら、卒業時には業界のエンジニアの基準で評価されるのだ。
なぜ(まだ)大学進学を考えていないのか
この話を聞けば、多くの人がきっとこう言うだろう:*「とりあえず大学に行って学位を取ってから、自分のやりたいことをやればいいじゃないか」*と。
アルファは大学に反対しているわけではない。しかし今のところ、その機会費用(オポチュニティ・コスト)があまりにも大きすぎるのだ。(大抵の場合)時代遅れのカリキュラムでインドネシアのIT大学で4年間学ぶ?AIのスキルは数ヶ月単位でトレンドを変えている。もし2030年に卒業したとすれば、必然的に2026年の知識を武器に業界に入ることになる。
それに、大学はお金がかかる。そのお金をクラウドコンピューティングのサブスクリプションや、業界で活躍している現役プロの専門的なコース、そして実際のプロジェクトを構築(build real project)するために割り当てた方がマシだとアルファは感じている。
アルファの学習システムは「プロブレム・ファースト(問題解決優先)」だ。大学の課題で言われたからではなく、トレーニングループがフリーズしたからGPUメモリの管理を学ぶのだ。好奇心に突き動かされたこの独学の方が、はるかに頭に入る。その証拠に、アルファの小さなプロジェクト「AINO」は、純粋に自分でいじくり回した結果、NLPタスクで88%の精度を叩き出すことができた。
もちろん、後々大学へ行く可能性を閉ざしているわけではない。もし環境が本当に協力的で、シラバスが最新の大学があれば、間違いなく検討するだろう。しかし、単に紙切れ一枚(学位記)の形式的なもののためなら?今はスキップだ。今のところ、公開大学(UT)を受験する予定ではある。バンドン工科大学(ITB)?入学するのは至難の業だ。何しろ、優秀な普通高校の生徒たちがライバルなのだから。
ATS(採用管理システム)という名の壁
これが一番アルファを落ち込ませる部分だ。
いつも夜、コーディングに行き詰まると、ついLinkedInを開いてしまう。そこで機械学習エンジニアやAI開発者の求人を見つける。業務内容を読むと、まさに毎日自分がやっていることなので、すごく親近感が湧く。
しかし、応募条件を見るとこうだ:
“最低限、計算機科学、数学、または統計学の学士号(S1)。修士号(S2)/博士号(S3)取得者はなお可。”

まるで目の前でゆっくりとドアが閉められていくような気分になる。
これはスキルで負けているのではなく、書類上の資格で負けているのだ。現在の採用システムはATSボットによって処理されている。このボットは、たとえアルファがゼロからオープンソースのAGIを作れたとしても気にしない。ボットはGitHubのリンクをクリックして、32分から19秒に最適化されたメモリカーネルの効率を読んでくれたりしない。
ATSが探しているのは「学士号(Bachelor’s Degree)」という文字だけだ。そのキーワードがない?自動的にゴミ箱行きだ。
これがアルファにとって特有のアイデンティティ・クライシスを引き起こしている。学校では、内容が基礎的すぎる。業界の目から見れば、学位がないというだけで人事ボットに存在を認められない。完全に中途半端なところで身動きが取れなくなっているのだ。
自分のキャリアパスをデバッグする
悩むくらいなら、この問題をコードのデバッグと同じように扱う方がマシだ。
根本的な問題は**認知度(ビジビリティ)**にある。ボットは技術的な能力を見ることはできない。だから問いはこうなる:どうすれば、人間に直接見てもらえるようになるのか?
アルファのゲームプランはこうだ:
- ポートフォリオを強化し続ける: もし採用担当者やリードエンジニアが本当にGitHubのプロフィールをクリックしてくれれば、コードそのものに語らせることができる。
- ブログを書く: 今取り組んでいることをドキュメント化する。複雑なアイデアをシンプルな言葉で伝えられるエンジニアは、非常に大きなプラスの価値を持つ。
- オープンソース: ここは最高の場所だ。Pull Requestをレビューする時に、誰も学位なんて聞かない。コードが良ければマージされる。評判を築くにはうってつけの場所だ。
- コミュニティ: Twitter/X、Discord、Reddit、Hugging Faceに参加する。この分野に情熱を持っている人たちと繋がりを構築する。
これが成功するかどうか?それはまだ確実ではない。しかし、このルートにはフィードバックループがある。何かを構築(build)し、公開(publish)し、フィードバックをもらい、改善(improve)する。システムがいつ改善されるか分からないまま待つより、自分のやり方で進み続ける方がずっと良い。
同じように感じている人たちへ
明日の朝も、アルファは起きてコーヒーを淹れ、学校に行き、また教室の席に座る。教師は相変わらず x と y を教え、アルファの頭の中は夜にやるべきコーディングのロジックを想像し続けるだろう。
二つのことが同時に進んでいく。違いは、アルファ自身はどちらが本当の目的地に連れて行ってくれるかを知っているということだ。
読者の中に、同じ職業高校生や、独学者、あるいは時代遅れの教育システムと官僚的な業界の狭間で立ち往生していると感じている人がいるなら、アルファはこう伝えたい。諦めないでほしい。Keep building. 彼らが応募を断る理由がなくなるまで、最高にクールなポートフォリオを作るのだ。
もし話をしたかったり、一緒にコードをいじりたければ、PyPIでAINOを探すか、アルファのGitHubを覗いてみてほしい。実際に動くものを、一緒に作っていこう。
この記事は、現在の教育カリキュラムとテクノロジー業界の現実とのギャップに関する職業高校生(アルファ)の個人的な意見と愚痴をまとめたものであり、特定の学校や機関への攻撃を意図したものではなく、独学でキャリアを切り開こうと奮闘する過程の率直な記録です。