コード問題を解いていて行き詰まったとき、ChatGPTやGeminiなどのAIに質問するとすぐに正解コードが出力され、知識が定着しにくいという課題はありませんか?
AIが簡単にコードを書いてくれる今、初心者が「自分の知識がどこまで身についているのか」を客観的に確認するのは難しくなっています。
自力で解けそうな問題ならAIに頼らず進められますが、全く太刀打ちできない問題にぶつかると、どうしてもAIに答えを聞いて頼りがちになってしまうのが悩ましいところです。
この記事では、Google NotebookLMを使い、「知識が足りない」のか、それとも「手順や考え方が間違っている」のかを客観的に切り分けて自力で解くための学習フローを紹介します。
自力での実装力を高めたい方は、ぜひ参考にしてください。
この方法がおすすめな理由
一般的なAIプロンプトだと正解コードがそのまま出力され、自分で考える機会が奪われがちです。
しかし、自分が学習した内容だけをまとめた自作メモを情報源としてNotebookLMに読み込ませることで、以下のメリットが得られます。
- どこがわからないのか特定できる: コードを書くために必要な知識がないのか、ロジックが組めていないのかをAIが客観的に判定してくれる
- 答えのネタバレ防止: 自分のメモにある範囲の知識を参照してくれるため、AIが勝手に未習得の構文を使っていきなり解いてしまう事故を防げる
- 復習に直結する: NotebookLMが「メモのどの知識を使うか」提示してくれるため、解けなかった問題をきっかけに過去の学習内容の復習になる
前提:自作メモは「きれいにまとめる必要」ゼロ!
「自分でメモを作り続ける」と聞くと、「綺麗なまとめを作らなければいけないのでは…」と身構えてしまうかもしれません。
ですが、メモをきれいに整える必要は一切ありません。
※コードの断片に「while文:回数は分からないけれど『特定の条件が終わるまで』繰り返したいときに向いている」のような、自分なりの理解や一言メモをラフに書き残すだけで十分です!
メモのレイアウトに時間をかける必要はありません。
NotebookLMを使うと、乱雑なメモでも「今の自分に足りない知識は何か」を整理しやすくなります。
ただし、AIの判断が常に正しいとは限らないので、最終的には自分でメモや教材を見直して確認するのがおすすめです。
太刀打ちできない問題にぶつかった時の4ステップ
Step 1. NotebookLMで「手持ちの知識で解けるか」を判定する
課題文と自作メモを読み込ませたNotebookLMに、まず以下のプロンプトを投げます。
【プロンプト例】
この解説書(自作メモ)は、私がこれまでに学習した知識のすべてです。
これから提示する問題が、この解説書にある知識だけで解けるかどうかを判定してください。
解けない場合は、どの知識が不足しているか(解説書に載っていないか)を教えてください。また、解説書に載っている知識を使う場合は、該当する箇所(ソース)も提示してください。【問題】 ※これは例題なので、実際のコードではありません
以下のようなテーブルがある。
テーブル名 : syoseki
カラム名 :
syo_id number(10,0) : 書籍ID,
syo_nm varchar(255) : 書籍名insertSyoseki メソッドで、syosekiId, syosekiName を、
それぞれ、syoseki テーブルの syo_id, syo_nm カラムに
インサートするプログラムを書きなさい。成功した場合は true、失敗した場合は false を返しなさい。
【NotebookLMの出力イメージ】
🟢 現在の解説書にある知識(揃っているもの)
- SQLの基本知識: INSERT 文を使ってテーブルにデータを追加する構文(INSERT INTO テーブル名 ... VALUES ...)
- Javaの例外処理: try-catch や、自動でリソースを閉じる try-with-resources の仕組み
🔴 不足している知識(新しく学ぶ必要があるもの) - JavaからSQLを実行する
PreparedStatementの使い方 - パラメータの設定メソッド(setInt、setString)
- executeUpdate() メソッド
このように出力されるため、不足している知識がある場合は自分で調べ、自分のメモに新しい情報を追加します。
Step 2. 知識が足りているなら日本語で手順を書く
「手持ちの知識で解ける」と判定された(または不足分を調べてメモに追加した)ら、すぐにコードを書かずに日本語でロジックを組み立てます。
1. データベースに接続する
2. SQL文(INSERT)の骨組みを作る
3. パラメータ(引数)をSQLにセットする
4. SQLを実行する
Step 3. コードに落とし込む
日本語の手順に沿って、書ける部分から実際のコードに変換していきます。
Step 4. レビューしてもらい、メモを更新する
完成したコードを先輩に提出し、コードレビューを受けます。
そのうえで、必要に応じてAIをレビューに使うのも良いでしょう。
※AIを補助的に使う場合は、機密情報や個人情報を含まないコードに限定し、所属組織のルールに従って活用しましょう。
レビューで得た「新しい知見」や「よりスマートな書き方」を、再びNotebookLMのソースメモに追加します。
メモをまとめ続ける価値とは?
この学習法の唯一のハードルは「日々の学習内容をメモに残し続けること」です。
しかし、このプロセスこそがプログラミング学習において最も強力な「自律学習ループ」を作ってくれます。
-
基礎知識の定着: 自分の言葉でメモに残す作業自体がアウトプット学習になる
-
わからない原因が特定できる: 「解けない=知識不足」なのか「解けない=知識の組み合わせ方の問題」なのかが一目で分かる
まとめ
NotebookLMを使った学習方法は以下です。
1.NotebookLM ➔ 手持ちの知識で解けるか判定
2.自分の頭 ➔ 日本語で手順化 & コーディング
3.先輩+許可されたAI ➔ コードレビュー
4.メモの更新 ➔ メモが増えるほど、相談の土台が増える
AIに答えを聞いて終わりにせず、AIを知識の判定係として使うことで、着実に自力で考える思考力を鍛えられます。
コード記述で成長実感を得たいエンジニアの方はぜひ試してみてください!
では、また。
