私の100日チャレンジ:20年のSE/PM経験を持つ私が、プログラマとしての独り立ちを目指す理由
プロローグ:設計図の向こう側へ
20年以上にわたり、私はシステムエンジニア、そしてプロジェクトマネージャとして、お客様の課題をヒアリングし、解決策を設計する「最上流工程」を主戦場としてきました。プログラマやデザイナに的確な指示を出し、プロジェクトを成功に導くこと。それが私の仕事でした。
しかし、技術の進化が加速する中で、特にAIがゲームチェンジを起こす時代において、設計図を書くだけでは見えない「壁」と「可能性」を感じるようになりました。
- より精度の高い設計はできないか?
- プログラマが直面する実装の苦労を、肌感覚で理解できないか?
- AIの真価を、仕様書の上だけでなく、コードレベルで引き出せないか?
この問いへの答えを求め、私は自らコードを書くことを決意しました。それが、この100日チャレンジです。
挑戦の軌跡:日々の記録
言葉だけでなく、実際の活動の記録がここにあります。
SNSで綴る日々の奮闘
この挑戦における日々の気づきや進捗は、X(旧Twitter)に記録してきました。特に印象深かったいくつかのマイルストーンをここに紹介します。
Day1: 静かな100日チャレンジ宣言!!
100日チャレンジの始まりはひっそりとスタートさせていました。
意気込みも目的も書かずに、まずは「続けるぞ」という意志だけでした。
ここで強い意気込みや縛りを付けると続かないかもしれない気がしていたのです。
Day 10: 初めての顔認証機能実装
Day 22: ミニブログでの画像投稿時のトリミング&プレビュー実装
Day 32: LLMファインチューニングの大きな発見
Day 41: 最高のAIを育てるには、最高の「土壌」が必要🌱
全40日以上(現在も継続中)の記録は、こちらのリストからご覧いただけます。
- Day 43: 6/11: 100日チャレンジ40日を超えたこともあり、本記事の作成を通して振り返り作業を実施!
- Day 42: 6/10: 最新バージョンのPython Audio Dataset Creatorが使いやすく、一気に学習用に準備した台本を100件録音し、並行してデバッグなどの作業もw [ Xで見る ] [ GitHubで見る ]
- Day 41: 6/9: 最高のAIを育てるには、最高の「土壌」が必要🌱自作の「AI音声学習用データ作成ツール Python Audio Dataset Creator」が大幅進化し、ついに実用レベルに! [ Xで見る ] [ GitHubで見る ]
- Day 40: 6/8: 今日は音声データのノイズクリーニング処理を可視化する機能を実装しました。 [ Xで見る ]
- Day 39: 6/7: 音声のノイズ除去からモデル作成までのAudioOpt – 音声クローニングシステムを一気に実装して、少ない「テキスト.txt | 音声.wav」の17セットファイルを使って機能テストを実施。 [ Xで見る ] [ GitHubで見る ]
- Day 38: 6/6: ✅実践:ひたすら自分の声を録音🎙️✅計画:AI開発のロードマップを作成📝✅壁打ち:AI相手に計画をレビュー🤖 [ Xで見る ]
- Day 37: 6/5: Python Audio Dataset Creatorの第一歩!台本テキストを元に1行ずつ録音し、1行ずつ「テキスト.txt|音声ファイル.wav」のセットを作れるように! [ Xで見る ] [ GitHubで見る ]
- Day 36: 6/4: 自分の声で喋るAI開発中!🤖 LLMチャレンジで学んだ「元データの精度を高める」の第一歩として、まずは「テキスト|音声ファイル」のセットを作成するアプリを開発することに。[ Xで見る ] [ GitHubで見る ]
- Day 35: 6/3: 利用を予定していたAI音声変換「RVC」まさか準備中コンテンツ多数!新計画「自分の声でテキスト読み上げAIを作る」に決定! [ Xで見る ]
- Day 34: 6/2: AI音声変換「RVC」を利用する環境を構築成功!?インタフェースが画面に顔を見せるが? [ Xで見る ]
- Day 33: 6/1: 黒星2回目!自分の声をAIでクローンするプロジェクト開始!初日から「環境構築」という名前の壁に激突! [ Xで見る ]
- Day 32: 5/31: 【LLMファインチューニングの大きな発見】結論:学習データ(JSONL)の質が全てを変える![ Xで見る ] [ GitHubで見る ]
- Day 31: 5/30: LLMファインチューニング後の出力精度のコントロール前に、もう一度学習元データの精度を見直すことに。 [ Xで見る ] [ GitHubで見る ]
- Day 30: 5/29: LLMファインチューニングの文章生成。max_tokensやtemperature、ペナルティ調整で試行錯誤するも、ハルシネーションや冗長性に苦戦! [ Xで見る ] [ GitHubで見る ]
- Day 29: 5/28: OPEN AIファインチューニングのポリシー違反の原因は学習用元データのトークン数が多すぎたことが原因と後ほど判明! [ Xで見る ] [ GitHubで見る ]
- Day 28: 5/27: OPEN AI ファインチューニングで思わぬ壁が!? [ Xで見る ] [ GitHubで見る ]
- Day 27: 5/26: LLMファインチューニングチャレンジ、映画ブログAIエージェント仕様整理開始!慣れないConda環境に大苦戦w [ Xで見る ] [ GitHubで見る ]
- Day 26: 5/25: LLMファインチューニング用のデータセット作り直し。ブログ記事からHTMLタグなどはもちろん、広告や外部リンクなど前回よりも丁寧に文章のノイズの除去が行えました。 [ Xで見る ] [ GitHubで見る ]
- Day 25: 5/24: LLMチャレンジ環境完了! ✅WSL2 Ubuntu + RTX3060 ✅NVIDIAドライバ、CUDA Toolkit、cuDNN ✅CUDA & PyTorchでGPU認識OK [ Xで見る ] [ GitHubで見る ]
- Day 24: 5/23: ミニブログ開発を100日チャレンジから切り離し、LLMチャレンジを再開。今回はGPU搭載のハイスペックPCに変更し開発環境構築。[ Xで見る ]
- Day 23: 5/22: ミニブログについて Python/Flask/JSを使ったカテゴリ編集のOGP画像処理の徹底デバッグ。 [ Xで見る ] [ GitHubで見る ]
- Day 22: 5/21: ミニブログの画像トリミング時にプレビュー機能を追加実装。保存前のプレビュー大事ですよね。 [ Xで見る ] [ GitHubで見る ]
- Day 21: 5/20: ミニブログでの画像アップロードとトリミング機能を実装。Cropper.jsのintegrity属性でハマったけど、無事解決。[ Xで見る ] [ GitHubで見る ]
- Day 20: 5/19: ミニブログの管理画面カテゴリー設定ページの実装。テストと修正の繰り返しのため、Flask-Migrate導入の重要性を実感。 [ Xで見る ] [ GitHubで見る ]
- Day 19: 5/18: ミニブログの管理画面ダッシュボードを実装。 [ Xで見る ] [ GitHubを見る ]
- Day 18: 5/17: Python Flask 開発の基盤を準備。データベース設計をMarkdown形式でGitHubに公開。 [ Xで見る ] [ GitHubで見る ]
- Day 17: 5/16: 具体的なミニブログシステムの基本仕様書(公開画面遷移図、管理画面遷移図、初期設定画面遷移図)を作成。[ Xで見る ] [ GitHubで見る ]
- Day 16: 5/15: ミニブログシステムの要求仕様書作成。[ Xで見る ] [ GitHubで見る ]
- Day 15: 5/14: Stable Diffusion アプリの機能を拡充。より使い勝手の向上。 [ Xで見る ] [ GitHubで見る ]
- Day 14: 5/13: ローカル環境でStable Diffusion Web UIを Pythonで制御。画像生成に加えて、画風変更スクリプトにも成功!。[ Xで見る ] [GitHubで見る]
- Day 13: 5/12: 車輪の再発明?OpenAI APIで日本語を英語に翻訳し、Stability AI APIで画像を生成させる仕組みです。[ Xで見る ] [ GitHubで見る ]
- Day 12: 5/11: 初黒星★!?写真からイラストを生成目指し、Stability AI API を利用して画像生成機能を実装するが、API利用規約に掛かり実装できず![ Xで見みる ] [ GitHub で見る ]
- Day 11: 5/10: Face Memory System. を改良し、顔の特徴量を5点追加し、認識制度を向上させました。 [ Xで見る ] [ GitHubで見る ]
- Day 10: 5/9: Face Memory System. を更新し、カメラに映った登録済み人物名とそうでない人物を区別表示することに成功! [ Xで見る ] [ GitHubで見る ]
- Day 9: 5/8: 顔の特徴量をデータベースに記録する Face Memory Systemを開発。個人識別のとっかかりになります。 [ Xで見る ] [ GitHubで見る ]
- Day 8: 5/7: リアルタイム顔認識アプリで、顔ランドマーク検出、特徴量計算アプリを開発 [ Xで見る ] [ GitHubで見る ]
- Day 7: 5/6: Python + OpenCV でリアルタイム顔検出アプリを作成。 [ Xで見る ] [ GitHubで見る ]
- Day 6: 5/5: たかが三目並べ、されど三目並べ。アルゴリズム改良したらAIが強すぎた [ Xで見る ] [ GitHubで見る ]
- Day 5: 5/4: ブロック崩しゲームを作成。ゲームループ、衝突判定、描画の基礎を学ぶ [ Xで見る ] [ GitHubで見る ]
- Day 4: 5/3: Google Colabで前日のチャットボットの処理速度爆上げ、Colab (A100) で Llama 3 系日本語LLM (
rinna/llama-3-youko-8b
) を動かす [ Xで見る ] [ GitHubで見る ] - Day 3: 5/2: Llamaベースでチャットボット。ローカルマシンのスペックが課題 [ Xで見る ] [ GitHubで見る ]
- Day 2: 5/1: PySide6とPygameで数当てゲームを作ってみた [ Xで見る ] [ GitHubで見る ]
- Day 1: 4/30: Python Pygame でオセロを作ってみた [ X で見る] [ GitHubで見る ]
コードで刻む学びの足跡
日々の学びは、すべてGitHubにコードとして記録しています。

私の学びと成長
「答え合わせ」から始まった挑戦
これまで指示する側だった git
のコマンドを打ち、Linuxサーバに ssh
で接続し、conda
で仮想環境を構築する。一つ一つの作業が、かつて自分が書いた設計書の行間を埋める「答え合わせ」のようでした。この土台固めを通じて、設計と実装の間のリアルな距離感を、初めて自分の手で測ることができました。
設計思想を、自らの手で具現化する
Flaskを使ったWebアプリケーション開発は、まさに自分の設計思想をコード一本一本で具現化していく作業でした。特に、リアルタイム顔検出アプリやLlama3のファインチューニングは、大きな気づきを与えてくれました。机上の空論ではない、メモリ使用量や処理速度といった物理的な制約の中で、いかにして最適なパフォーマンスを引き出すか。この経験は、今後の私の設計思想をより現実的で強固なものにしてくれると確信しています。
最強の思考パートナーとの出会い
この挑戦で得た最大の武器は、GitHub CopilotをはじめとするAIアシスタントとの「協業」ノウハウです。
これは単なるコーディングの効率化ではありません。私の「20年分の設計・要件定義能力」と「AIの高速な実装能力」を掛け合わせることで、お客様からヒアリングした内容を、その場で動くプロトタイプとして提示することすら可能になります。
AIに丸投げするのではなく、長年の経験で培った「勘所」を元にAIと対話し、拡張性やメンテナンス性といった品質を担保しながら開発を進める。このスキルは、これからのプロジェクト推進において、圧倒的なスピードと品質向上をもたらすと確信しています。
最大の壁と、最も深かった学び
この挑戦の中で、私が最も大きな壁にぶつかり、そして最も深い学びに至ったのが、LLMのファインチューニングでした。目標は、特定の目的に特化したAIを自分の手で作り上げること。しかし、私のAIはハルシネーション(幻覚)を起こし、とても実用とは言えないものでした。
GPUパワーやアルゴリズムを疑う日々が続きましたが、出口は見えません。途方に暮れ、原点に立ち返って全ての根源である「教師データ」を一つ一つ見直した時、大量の「ノイズ」を発見しました。
私はそこから、ひたすら教師データを「磨き上げる」作業に没頭しました。そして、美しく磨き上げたデータを再学習させた瞬間、AIの出力は劇的に改善されたのです。
この瞬間に、私はAI開発の真実を垣間見ました。AI開発の心臓部は、最新のアルゴリズム以上に、クリーンで質の高い「データ」そのものである、と。これは、システム開発で最も重要な「要件定義」の品質が、システムの品質を決定するという、私の20年来の経験と完全に一致するものでした。
結論:第二のキャリアのスタートラインへ
この40日間で、私は「設計図を書く人」から、**「意図を理解し、自ら建てられる建築家」**へと進化する第一歩を踏み出しました。
私のキャリアは、この挑戦を経て、第二のスタートラインに立っています。20年以上にわたるSE/PMとしての経験は、私の揺るぎない土台です。しかし、その経験に安住するつもりはありません。これからは、実装のプロフェッショナルとして、自らのコードで価値を生み出せる「一人のプログラマ」として独り立ちすることを、本気で目指しています。
長年の顧客折衝・設計能力という「羅針盤」と、最新の実装スキルという「エンジン」。この両輪を自らで回すことで、ビジネスの課題解決を、これまで以上に速く、深く、力強く推進できることをお約束します。