■ 1. ひろゆき氏の現在の開発活動
- 使用言語・ツール:
- Google Apps Scriptを使用
- YouTubeのコメントを収集するアプリを開発
- 出力先をGoogleスプレッドシートにすることで無料でデータ保存が可能
- 現状の課題:
- データ量増加に伴い動作が遅くなる問題が発生
- 有料ストレージの契約を検討したが、費用負担を避けて開発が停滞中
■ 2. AIを活用した開発スタイル
- 今回の開発目的:
- AIがどの程度のレベルでコードを出力できるかを検証する実験
- Geminiに仕様を投げ、やりとりしながら仕様書をブラッシュアップ
- AIが出力したコードの精度を確認し、必要に応じて手動で修正
- 開発における役割分担:
- スクラッチ(初期コード作成)は全てAIに任せる
- デバッグや細かい修正は自分で行う
- 「ここだけ変えて」と指示しても別の箇所まで書き換えてしまう問題が発生
- 手戻りを防ぐための指示方法やAIの反応パターンを観察中
■ 3. 開発ツールの選定方針
- 使用ツール:
- Gemini
- ChatGPT(無料範囲)
- GitHub Copilot(無料範囲)
- 無料ツールを選ぶ理由:
- 有料ツールはいずれ廃れる傾向がある
- 企業が有料で作ったツールも、後から無料のオープンソースベースのものに置き換わる
- PhotoshopやIllustratorに対するGIMPの存在が例
- VS Codeはマイクロソフト製だが無料で使える
- オープンソースは無料で広まり、多くの人に修正されて品質が向上する歴史がある
■ 4. 技育祭と若手エンジニア育成について
- 技育祭の意義:
- 手作り感を出し続けることで参加しやすさを維持
- 「とりあえず参加してみる」までのハードルを下げることが重要
- エンジニアの適性:
- 向き不向きはやってみないとわからない
- 優秀なエンジニアには面倒くさがりが多い
- 「手を動かすのが面倒だから自動化しよう」と考えられる人が強い
- やる気なさそうに見えるタイプが実はエンジニアとして優秀なケースがある
- プログラミング未経験で「必要だからやるか」と始めた人が非常に優秀になるパターンも存在
■ 5. サーバーエンジニアの将来性
- AIの限界:
- サーバー契約の最適解や安いサーバーの提案は可能
- 実際にトラブルが発生した際の修正はAIにはできないことがある
- ネット上にない情報やレアなバグへの対応は苦手
- AIはネット上の情報を統計的に処理して最適解を出す仕組みのため、未知の問題には対応困難
- 人間の強み:
- サーバーの仕組みを理解していれば、別サーバーを立てて冗長構成を保ったまま切り替えるなどの対応が可能
- インフラの前提を理解していない人がAIだけで大規模サービスを構築するのは現状困難
- 自分自身の知識と知能で解決しなければならない問題に対しては人間が必要
■ 6. AI時代におけるエンジニアの知識と経験
- 40〜50代エンジニアの活躍:
- AIがコードを書けるようになり、若手に細かい実装を振る必要がなくなった
- 40〜50代は自分でサーバーを立ててOSを入れてアプリを書くという一連の流れを全て手作業で経験した世代
- 仕組みを丸ごと理解しているため、仕様から削る判断や全体設計の見直しが可能
- 部分最適ではなく全体を見たものづくりができる
- 20〜30代エンジニアの課題:
- イチから物を作る経験が不足しているケースが多い
- CPUだけ速くしてもメモリが詰まる、ストレージが遅いとボトルネックになるといった段階的な切り分けの感覚が身についていないことがある
- DBのテーブル設計変更によるI/O削減やサーバーの疎結合化といったノウハウが不足
- AIに丸投げするとお金で解決する設計になりがち
- 「同じサーバーを10台並べてホットスタンバイにする」といった非効率な提案になる傾向
- 推奨される学習方法:
- お金があまりない環境で自分でゼロから立ち上げる経験を積むべき
■ 7. コンピューターサイエンスの知識の必要範囲
- 不要な知識:
- CPUの内部構造
- アセンブラレベルの理解
- サーバーを自分の手でイチから組む能力
- 必要な知識:
- リモート先のサーバーでCPUがどう動いているか
- メモリがどう使われているか
- コンピューターの基本的な仕組み
- プログラミング言語の習得:
- 1つの言語をしっかり身につければ十分
- 1つマスターすると別の言語を見た時に「言い回しが違うだけ」「こういう仕様なのね」と読み替えられる
- 学び直しのハードルが一気に下がる
- 基礎の重要性:
- メモリの概念がわからない人にポインタを教えるのは困難
- メモリの概念を理解している人には「メモリのラベルを使うためにポインタがある」と説明すれば理解が早い
- 抽象概念よりも基礎のハードウェアを学んだほうが理解しやすい
■ 8. AI時代におけるエンジニアの価値
- エンジニアの強み:
- 仕様を設計できる能力
- 「この予算ならここは削ったほうが回る」というコストとのバランスを見る力
- クライアントへの提案力(「ここを外せば納期が短くなる」「ここを簡略化すればコストが下がる」など)
- お金と時間の感覚に基づいた提案
- AIの弱点:
- コスト感は会社ごと・案件ごとに異なる
- その場でさじ加減できる判断は人間のほうが強い
■ 9. 新卒カードの活用と大企業への就職
- 大企業を選ぶべき理由:
- 「AIを使いこなせなそうな大企業」という決めつけは成長を阻害する
- 大企業にいても自分でAIを調べて詳しくなる人はいる
- 中小企業でも趣味で調べて詳しくなる人はいる
- 「企業が何を与えてくれるか」という基準で選ぶのは好ましくない
- 大企業でしか得られない経験:
- 大企業でしか触れられないノウハウ
- 意思決定の流れ
- 「この規模だとこうやって予算が下りる」という構造の理解
- 「このタイプの案件はこの人が決裁権を持っている」といった内部の仕組み
- エンジニアリングの特殊性:
- 大工は20代で家を一軒任されることはないが、エンジニアは20代でもアプリやサイトを1人で作れる
- 「中小に行けば何でもやらされるから経験になる」と言われるが、そのレベルの経験は個人開発でも可能
- 大企業SIerの課題:
- セキュリティの観点でコーディングにAIを使用禁止のところがある
- AIを使わずに手癖が付くメリットはある
- 「ここはもうAIで書く」という領域が増えているため、人力でコーダーを何年もやった経験が役に立たないケースもある
- 「コードを書くのにAIは一切使うな」というスタンスは現代にそぐわない
■ 10. ITベンチャー企業と若手の働き方
- 20代にしかできない経験:
- 馬車馬のように残業時間を気にせず働くのは20代の時しかできない
- 若いうちに振り切って働いた経験があるかないかで、大人になってからの見え方が変わる
- 自分の最大値や限界を感覚で把握できるようになる
- 「最悪ここまでは踏み込める」という判断ができるようになる
- ベンチャー企業の魅力:
- 大企業では労基の観点から限界まで働く経験がしにくい
- ベンチャーで文化祭のように集中して働く楽しさは若いうちに味わっておく価値がある
- ひろゆき氏自身の20代:
- 自分のサービスが好きで1日十数時間自分の作ったサイトを見ていた
- 夜中にサーバーが落ちたら対応、旅行中でも対応という24時間即応態勢
- バグがあったら直るまでずっと起きて対応
- 苦痛ではなくサービスを維持すること自体が楽しかった
- 「全体的には楽しい」の中につらいところもあるという感覚
- 睡眠時間は事故がなければ限界まで寝るタイプで、トラブルが重なった時だけ徹夜