asken テックブログ

askenエンジニアが日々どんなことに取り組み、どんな「学び」を得ているか、よもやま話も織り交ぜつつ綴っていきます。 皆さまにも一緒に学びを楽しんでいただけたら幸いです! <br> 食事管理アプリ『あすけん』 について <br> https://www.asken.jp/ <br>

走りながら学ぶ、AI時代のエンジニアリング学習法

はじめに

この記事は、株式会社asken (あすけん) Advent Calendar 2025の12/10の記事です。

こんにちは。askenデータサイエンティストの渡辺です。

私は今までデータ分析(アナリスト・サイエンティスト)の業務を中心として働いていましたが、asken入社以降はデータ・AIの活用を推し進めていくために、初めてWebアプリ開発やインフラ構築などの本格的なエンジニアリングに挑戦することになりました。

ソフトウェアエンジニアとしての「基礎がない」状態から、Claude CodeやCursorを活用してPoC開発からスタートしていきましたが、「AI頼みで力がつくのか?」という不安もありました。

半年間の試行錯誤で気づいたのは、「AI利用は楽をするためではなく、苦労の『質』を変えるもの」であり、「基礎がない人こそ学習法の工夫が必要」ということです。

本記事では、私が実践した「業務を推進しながら基礎学習もしていくためのAI駆動な学習法」を紹介させていただきます。

学習サイクルの変化

前提として、AIを中心とした働き方が進んでいく昨今、初心者の学び方の重心がHowからWhyにシフトしてきていると感じています。

これまで:ボトムアップ型(How重視)

従来は作りたいものや機能の概要を考えた上で

  1. ドキュメントを読んだり、検索して実装方法を把握する
  2. 見よう見まねで書く
  3. エラーと試行錯誤しながら技術を学ぶ

といった流れで「どう書けば動くか」に時間をかけることが多く、エラーとの格闘をしていく中で、基礎力を固めていくボトムアップ型の学習が中心だったかと思います。

これがClaude CodeをはじめとしたAIの台頭で以下のように変わってきています。

AI時代:トップダウン型(Why重視)

  1. AIとの壁打ちを踏まえ、作りたいものを詳細に言語化
  2. AIでコード・テストを生成
  3. コードをレビューする中で構造を理解する

最初の1で定義した要件に対し、出力されたコードを見て「なぜそのコードなのか」を理解する「読む・問う」プロセスが中心になります。

AIによる「学習格差」

しかし、トップダウン型の学習サイクルでは基礎知識の有無で効率に大きな差が出ます。端的に言うと、

  • 基礎がある人:生成コードの良し悪しを即座に判断でき、学習のループが加速する
  • 基礎がない人:正誤判断ができず、理解に時間がかかる

AIは「知っている人がより速く学べる」仕組みです。基礎がない人ほど、意識的な学習の工夫が必要です。

観点 従来の学習 AI時代の学習
脳の負荷 どう書けば動くか?(How) なぜそのコードなのか?(Why)
時間の使い道 エラー・環境構築との格闘 設計の妥当性・安全性確認
得られるスキル コーディング力 設計力、コードレビュー力
学習の源泉 ハマって苦労した経験 良質なコードを読み解いた経験、AIとのコミュニケーションの量と質

AIを使うことでアウトプットが出るまでの一時的なスピードは速くなるかもしれませんが、「楽」にはなりません。

むしろ「生成コードの検証」という高度な作業が必要となり、学習量は「AIへの問いかけ回数」と「読み込みの深さ」に変わります。

基礎の穴を埋める「ハイブリッド学習」

基礎不足のリスク

エンジニアリングに取り組み始めた当初、AIの出力したコードを鵜呑みにして痛い目を見ました。セキュリティリスクや効率的な責務の分割とは何かなど、基礎力がないとそもそも何が問題かに気づけません

今の時代にゼロから学んでいく人にとっては、この基礎力がない状態でAI駆動開発を進めてしまうと、制御不能に陥り徒労で終わってしまうことになりかねません。

トップダウン × ボトムアップ

そこで重視したいのが、トップダウンで設計・実装を走らせた後に、AIベースで明示的に基礎力をボトムアップする仕組みです。

  1. ゴール設定(トップダウン):「認証機能を実装したい」等を言語化。
  2. AI実装(トップダウン):AIに実装・テストさせ、動くものを作る。
  3. レビュー・解釈(ボトムアップ):「なぜ動くのか。なぜこれが良いのか。」を徹底理解し、基礎不足をその場で深掘り。

「作る楽しさ」でモチベーションを保ちつつ、レビューで知識を定着させる方法です。

実践:Claude Codeを使った具体的な工夫

ここで、Claude Codeを使いながら上記のハイブリッド学習をするためのポイントを3点お伝えします。

1. 自分のスキルをコンテキスト化する

自分の知っている領域や得意・不得意を明記。わからない部分は明示的に「初心者」であることを言語化します。これらをCLAUDE.mdで参照させることで、レベルに合わせた説明が得られ、学習効率が上がります。

そもそも、初心者が自分のスキルを正確に棚卸しするのは難しいことです。

そこで私は、チーム内で策定されている標準的な技術スタックドキュメントをベースに、「この技術スタックをベースに、何を知っていて、何を知らないのか」をAIと壁打ちしながら整理し、スキルの言語化を行いました。

//my-skills.md(例)

## 現在のスキルレベル
### 得意なこと
- SQL(BigQuery)での複雑な集計・分析
- Pythonを用いたデータ処理・統計モデリング
- 生成AI(LLM)の特性理解・プロンプト設計

### 学習中
- TypeScript / React の基本文法
- AWS(ECS/Fargate)などのインフラ基礎
- GitHub Actionsを用いたCI/CDの仕組み

### 未経験/不慣れなこと
- フロントエンドの複雑な状態管理(Hooksの使い分け)
- 非同期処理の適切なエラーハンドリング
- 本番運用を想定したDBスキーマ設計

また、ここで言語化したものをベースに、Claude Codeのoutput-styleという出力のテイストを調整できるコマンドでさらに学習しやすいコミュニケーションをとることが可能です。

デフォルトの設定では Default/Explanatory/Learning の3種類から選べます。

Explanatory/Learningでも学習向けのコミュニケーションにはなりますが、私はcustom output-styleを設定し、learning-driven-developmentという独自のoutput-styleを設定しています。設定の中で先ほど言語化した自分のスキルを読み込ませた上で、今の自分が最も身につけるべきポイントに絞って学習のサポートをするように指定することで、より効率的なコミュニケーションをとることが出来ると思うのでオススメです。

output-styleの選択画面

2. 生成コードの徹底レビュー

AIで生成されたコードを「他人のコード」として厳しくレビューします。

ただ、初心者が一人でレビューするのは難しいので、ここでもAIを活用します。Claude CodeのSub-Agent機能を使い、過去に自分がPRで指摘された内容を「レビュー観点」として与え、代理でチェックしてもらいます。

// my-review-point.md(例)
## 重点レビュー観点(過去のPR指摘事項)
- [ ] 変数名は具体的か?(tmp, data, item等は禁止)
- [ ] N+1問題が発生するクエリになっていないか
- [ ] エラーハンドリングは適切か(try-catchで握りつぶしていないか)
- [ ] コンポーネントの再レンダリングは最適化されているか

このように外部ファイルに観点をまとめておき、レビュー時にこのファイルを読み込ませることで、「自分の弱点」に特化した厳しいレビューを自動化しています。

必要に応じてレビュー用のSub-Agentとは別に、解説用のSub-Agentを用意して詳しく学びたいタイミングで呼び出す、などの工夫をすることでより学びの機会が増えるのでオススメです。

もちろん、最終的には自分で一行ずつ読み解き、「理解できないコードはコミットしない」ようにレビューをしていく中で、学びを深めていくことが重要です。

3. 学習ログを残し改善する

開発完了後、新しく学んだ知識やハマったポイントを言語化しドキュメント化していきます。

主にPRをマージ後に、そのPRで学んだこと、レビューで指摘された事項をClaudeCodeにまとめてもらい、それらの内容をmy-skills.mdmy-review-point.md にフィードバックしていくことで、ただのメモで終わらせず次回の開発時にAIが参照する「コンテキスト」として蓄積していくのがポイントです。

// my-learning-log.md (例)
## 2025-12-09: React Hooksの学び
- `useEffect`の依存配列にオブジェクトを指定すると、参照が変わるたびに実行される罠にハマった
- `useMemo`で値をメモ化するか、プリミティブな値だけを依存配列に入れる必要がある
-> `my-review-point.md` に「依存配列のチェック」を追加
-> `my-skills.md` の「学習中」に「Hooksの依存配列」を追加

このように学習サイクルとそれをコンテキスト化し蓄積するループを回すことで、AIとの対話品質が目に見えて向上し、自分の成長も可視化されます。

まとめ

AIの進化により、エンジニアに求められるメインスキルは「コードを書く力」から、AIが生成したものを「評価し、選定する力(設計・レビュー力)」へとシフトしています。特に初学者にとっては、この変化が学習効率の格差を生むリスクにもなりますが、意識的に向き合うことで大きなチャンスにもなり得ます。

本記事で紹介した「トップダウンで実装し、レビューでボトムアップに基礎を固める」というハイブリッドな学習法は、その格差を埋める有効なアプローチだと考えています。

AIを単なる「楽をするためのツール」としてではなく、「思考の質を高め、成長を加速させるパートナー」として捉え直すこと。そして、一つひとつのコードに対して「なぜ?」を問い続けること。

この泥臭いプロセスこそが、AI時代においても揺るがないエンジニアリングの土台を築いていくはずです。

これからもAIを優秀な作業者かつ教師として活用していき、走りながら学びを深めていきましょう。

採用について

askenではエンジニアを絶賛募集中です!

まずはカジュアルにお話しできればと思いますので、ぜひお気軽にご連絡ください!

https://hrmos.co/pages/asken/jobs

asken techのXアカウントで、askenのテックブログやイベント情報など、エンジニアリングに関する最新情報を発信していますので、ぜひフォローをお願いします!