Hey Codex、このページの内容を書いてくれませんか。

プロジェクト

4928 文字 / 20 分

GitHub Contributions

直近1年のコミット 1485 回

@AurLemon

自分で自分に貼っているラベルは TypeScript フルスタック開発者だ。でも、この呼び方には正直まったく自信がない。だから後ろに小さく「要検討」と付けている。自分の能力と経験では、「フルスタック」という言葉を支えるには全然足りないと分かっているからだ。

発展経路

自分が書いてきたプロジェクトのうち、ほぼ 90% は TypeScript エコシステムにある。Python、Java、Rust も使ったことはあるが、その 90% 以上は Agent が書いたもので、課題や大会の案件みたいに、特定のタスクを終わらせるための一回限りのものが多い。だから、それらを「習熟している言語」とは数えない。最初に触れた領域はフロントエンドで、この点は GitHub プロフィール にも書いてある。だいたい 2022 年ごろだ。

バックエンドに関しては、そのころは基本概念を少し知っている程度で、簡単な Demo をいくつか書いたくらいだった。2023 年に PHP と Node.js に触れ、2024 年になって初めて Nest で TS プロジェクトを書いた。さらに 2024 年からは、フロントエンド以外の分野、たとえば DevOps にも少しずつ触れ始めた。2025 年に先生の仕事を手伝ったとき、若依に触れた。最大の感想は「Java は重すぎる」だったので、Spring Boot の方向には進まなかった。

逆に、サイト構築や運用にはかなり早い時期、たぶん 2020 年ごろから触れていた。そこにはほとんど参入障壁がなかったからだ。当時は Typecho や WordPress で学校関連のサイトを作っていて、それがコンピュータの世界への入口になった。このおかげで、その後 Web 分野の知識を学び直すときの圧力はあまり大きくなかった。サイト構築から逆流して Web に入る人は確かに少ない気がするが、私はまさにそのタイプだ。Anyway、もし一つだけ自分がいちばん得意な言語を挙げろと言われたら、たぶん CSS になる。

それに、私がフロントエンドに触れ始めた 2023 年初めの時点では、LLM はまだフロントエンドを独力で書けるほど強くなかった。CSS は完全に手で調整するしかなかった。今の Agent でも、一言で「美しい」UI を生成するのは難しいと思う。でも、LLM の発展速度そのものは本当に驚異的だ。月単位で姿が変わる。GPT 3.5 が出てから 3 か月ほど後、たぶん 2023 年 1 月ごろに初めて GPT に触れた。当時の目的は VB の期末試験をしのぐことだけだった。衝撃だったのは、GPT 3.5 の答えが本当に動いたことだ。完全に信じがたかった。当時の私は AI にほとんど印象がなく、YOLO や CNN も知らなかった。せいぜい XiaoAi や Siri みたいな、ほぼ使えない補助ツール程度の認識だった。機械学習を知らない頃は、単純な if-else の状態機械みたいなものだと本気で思っていた。

2023 年には GPT Plus の相乗りもやっていた。2025 年からは自分のアカウントを単独で契約して、今も使っている。驚いてはいたが、当時は危機感がまったくなかった。AI は基本的に Tutor として使っていて、質問相手という扱いだった。プロジェクトが複雑になると、結局うまく処理できなかった。実際、2025 年上半期まではほとんど危機感がなかった。下半期に Vibe Coding という概念が広まり、Claude 4 と GPT 5 が出てきてようやく、少しだけ危機感が生まれた。その段階で「人間はまだアーキテクチャ設計をやるべきだ」みたいな大義名分で自分を慰めるのは、ほぼ自己欺瞞だった。

この言葉はいろいろなところで聞いたが、それを言う人が本当に優れたアーキテクトだとは限らない。実際のアーキテクチャの取捨選択、実装細部、性能問題は、結局少しずつ磨いていくしかない。Agent が引き受ける範囲が広がるほど、私はむしろ不安になる。でも使うべきものは使うしかないし、私はもう完全に AI を支持している。GPT 3.5 の登場から今までは、まだわずか 4 年しか経っていない。4 年は短くないが、それでもだ。

組み込みやハードウェア開発へ転向するべきか?

専科の先輩と雑談していたときに、その人が「組み込みへ行けば、他人はフルスタック、自分は何でもできる側だ」と言っていたことがある。数か月前までは、本当にその道を真剣に考えるべきか迷っていたので、卒業制作でもあえて組み込み実装が必要な部分を選んだ。でも、卒業制作をやり切ったあと、現実ははっきりと「自分には無理だ」と教えてくれた。ゼロから別のレーンに移るには、もっと長い蓄積時間が必要だ。結局、自分にできるのは Agent にファームウェアを書かせて、自分はボタンを押して焼くだけかもしれない。

コードだけでなく、組み込みでは現実の電気接続や物理的な問題を解決できる能力のほうが、むしろ重要かもしれない。線はしっかり刺さっているか、空気湿度が高すぎないか、静電気は大丈夫か、ライトはなぜ点かないのか、データはなぜシリアルから来ないのか、GPIO は逆につないでいないか。こういう問題は卒業制作の中で実際に全部ぶつかった。ここから経験を積み直すのは、やはりかなり疲れると思う。

まさにそれゆえに、自分の能力が何なのかは本当に分からない。だから結局、自分に「フルスタック」のラベルを貼るしかない。GPT は「最後の一マイルをちゃんとやり切れるのも能力だ」と慰めてくれた。そうだといい。もし将来、公務員試験に受かるとか、大学院に行けるとか、そうなればそれがいちばんいい。最近は、別業界に行った自分を少し妄想することもある。営業の柠師傅? 電工の柠師傅?

マイルストーン

ここでは、自分にとって節目だったと言えるプロジェクトをいくつか挙げる。とはいえ数は少なくて、片手で数えられる程度だと思う。小さなツールや、あまり意味のないプロジェクトは書かない。

  1. 自分の Minecraft サーバーの Wiki とポータルサイト(2022)。当時、自分の MC サーバーには MediaWiki の保守需要があり、服主だった私は何度もホームページ UI 案を設計した。その過程で HTML、CSS、JavaScript、そして PHP(MediaWiki)に触れた。
    その 2 年後、2024 年 7 月にサーバーポータルサイトを設計するため、初めて Vue に触れた。最初に選んだのは Vue 2 だった。Vue を使って、自分のフロントエンド学習史上初めての標準的な、つまりパッケージマネージャーを持つフロントエンドプロジェクトを作った。ただ、このプロジェクトは後に公開されなかった。機能が少し混乱していて、後で時間を取って直そうと思いながら、そのままずっと先延ばしになっている。
    とにかく、自分の MC サーバーのために設計する過程で、フロントエンドだけでなく、サイト運用やサイト構築に関する知識もかなり強引に学ぶことになった。
  2. 中職時代にクラスメイトと自分のために書いた試験刷題システム(2024)。Nest + Vue + TS ベースのフロント・バック分離 Web プロジェクトだ。実は初版は昔ながらの JavaScript + PHP の簡易バックエンドだった。今の Nest 技術スタックは、2024 年夏休みのリファクタで選んだ。
    サイトは 2025 年中ごろまで更新され続けた。次の学弟学妹たちも使う予定だったが、結局その「次」がいなくなったので更新も止まった。今では Public Archive になっている。
    それでも、これは私が初めてまともなバックエンドフレームワークで書いた標準的なバックエンドプロジェクトだった。しかも、実装、公開、テスト、ユーザーフィードバックまで一通り経験した。ユーザーとはクラスメイトや学弟学妹たちのことだ。今から見返すと、少し黒歴史でもある。
  3. Wiki.js 用に書いたカバー CSS(2024)。純粋な SCSS プロジェクトで、GitHub Star がいちばん多いリポジトリでもある。技術的に特筆すべきことはあまりないので、ここでは記念として置いているだけだ。もしかすると、これが自分のいちばん有名なプロジェクトかもしれない。私を追加した Coder の多くはこのプロジェクト経由で、Wiki.js や MediaWiki のデプロイについて聞きに来た人もいる。今このページを見ているあなたも、もしかしたらそこから来たのかもしれない。
  4. 自分の紹介サイト(2024)。つまりこのサイトだ。Nuxt のフルスタックフレームワークに初めて触れたあとで書いたプロジェクトで、それ以外に特別きらびやかな点はない。いや、ある。いちばん光っているのは、まさに私の超天才的な UI デザインだ。真面目な話、かなり満足している。Agent が書いたなんて言わないでほしい。Agent は、私がもう考えた内容を処理しているだけだ。このサイトの UI は全部、私が少しずつ調整したものだ。もし攻撃したいなら、私のことを直接バカと言えばいい。プロジェクトを叩くのはやめてほしい。ありがとう。
  5. 自分の Minecraft サーバーの Portal サイト(2026)。Nuxt ベースの Web プロジェクトだ。実はその前に失敗した前身プロジェクトが一つある。もう少し時間が経って完成したら、ここに詳しい内容を追記したい。今は仮置きということで。

学習パラダイム

これだけいろいろなプロジェクトをやっても、むしろ悲観的になるばかりだ。私は以前、無意識のうちに「基本文法さえ押さえれば、大部分の難題は自然に解ける」と思っていた。でも現実はそうではなかった。いわゆる「知識を身につける」とは、API の呼び方を覚えることでも、高度な TypeScript 型体操や設計パターンを暗唱できることでもない。私は本当に、Vue のリアクティブ原理や Node.js のイベントループさえ理解すれば、実務でも全部押し切れるのではないかと無意識に思っていた。そういう講座も買った。アルゴリズムやデータ構造だって、だいたいの原理を知っていれば十分だと思っていた。社交の場で技術力を示す話題にはなるからだ。

でも人は実際の現場で一度痛い目を見る。フロント・バック分離構成をゼロから組むとか、CI/CD Workflow を処理するとか、リファクタの途中で SQLite を PostgreSQL に移すとか、そういう現実の場面に入って初めて、文法はただのレンチにすぎないと気づいた。本当に核心なのはシステム全体を把握して制御する力で、今の私はそれを「エンジニアリング直感」と呼びたい。今でも昔の自分が、なぜあんなに論理性のない学習パターンを信じていたのか理解できない。よく考えると、かなり不合理だ。たぶん今になってようやく、ちゃんと総括し、復盤する時間と余力ができたのだと思う。昔は嫌な感じで他人のプロジェクトを見下していたし、自分が傲慢だったころは何を見ても簡単そうに見え、自分にもできる気がしていた。幸い、あの恥ずかしい発言や小作文はもう全部隠してある。

高数を学び始めてやっと気づいたのは、条件を全部整理して、あり得るケースを丁寧に分析しなければならないということだ。本質的には、それはプロジェクト開発と大きく変わらない。人は自分の行動を無意識に美化し、隠す。問題が起きても雑に流しがちだ。もしかすると、こうした問題の根っこには、子どものころから良い学習習慣や復盤習慣を作れなかったことがあるのかもしれない。世界は巨大なカオス系なのかもしれない。学ぶこと自体が重労働で、継続的な投入と大量のエネルギーを要求する。でも「できるかどうか」を本当に知っているのは自分だけだ。

残念ながら、学習には必ずアウトプットが必要だと最近になってようやく分かった。自分で復盤し、想起し、要約しなければ、どうして能力が速く伸びるだろうか。私が言う「プロジェクト経験」も、長年サイトを運営するなかで無意識に積み上がった経験にすぎないのかもしれない。あとから対応する知識点を見直すと、理解が水到渠成のように付いてくるだけだ。でも、実践だけでまとめない学習はあまりにも遅い。進歩したいなら、結局行動するしかない。深く知れば知るほど、自分がどれだけ小さいか分かる。現実には、i18n ですら LLM に聞く人間だし、Nuxt のビルドや HMR 更新の問題で長時間詰まることもある。今の開発エコシステムは高度に抽象化されていても、各工程と各細部を丁寧に考えなければならない。

タグには DevOps と書いているが、DevOps の領域はあまりにも広く、複雑だ。丸一日かけてようやく Workflow を一本組めただけ、という日もある。途中で想定外が起きれば、さらに長い時間が必要になる。それでも、それが学習の通過点であることは分かっている。とはいえ、自分に DevOps というラベルを貼るとき、かなり強い背徳感がある。結局、自己ラベリングだからだ。Web も TypeScript も同じで、そうしたラベルは自分の自信のなさの表れでもある。Engineer という言葉は、本当に責任の重い言葉だ。

細部や境界条件を優雅に処理するのは難しい。その意味では、私はただの卑微なコード縫い職人だ。別の角度から見れば、人間だって大規模言語モデルみたいなものではないだろうか。

技術の広さ

少し脱線した。実際には TypeScript や Web 以外の言語や分野にも、それなりには触れてきた。なにしろ最初に体系的に学んだ言語は 2021 年の C だった。ただ、深く分かっているわけではない。下に使ったことのある言語を少しだけ並べる。

  • Java で Minecraft Mods や Plugins をいくつか書いたことがある(Agent 補助)。
  • Rust で大会用の Web プロジェクトを書いたことがある(Agent 補助)。その後は国三だった。
  • Python で Excel、自動签到、ML 学習用のスクリプトを書いたことがある(部分的に Agent 補助)。また、専升本の専門課程に Python が含まれていたので、一、二か月ほど Python 基本文法を復習した。
  • ESP32S3 ベースの卒業制作を C でやった。

簡単に習熟度表を作るなら、こんな感じだ。

  • T0(いちばん慣れている):HTML、CSS、TypeScript(JavaScript を含む)。
  • T1(比較的慣れている):Java、Python。
  • T2(見覚えがある):Android 開発、関連授業を受けて課題もいくつか作った、それに Rust、C、C++。

GitHub 上で占比が高いのは、たぶん Vue と TypeScript だ。たまに一日中作業したあと、Profile を開いて緑の点がびっしり並んでいるのを見るだけで、かなり達成感がある。はは。

2026 年 6 月 30 日 1:42

4928 文字 / 20 分