🤖

新しい環境を学ぶ際に役立つLLMへの質問方法

2025/03/04に公開

はじめに

技術の習得には、主に公式ドキュメントやチュートリアルなどが役立ちますが、時にはそれだけでは深く理解するのが難しい場合があります。そんな時、LLM(Large Language Models) を活用することで、疑問を解消し、効率的に学ぶことができます。

この記事では、特に "歴史的背景" という観点で質問することで、技術を深く理解する方法をご紹介します。具体例として、Supabaseを学び始めた際やnpmのコマンドを実行する際の質問方法を取り上げながら解説します。


効率的に学ぶためのLLMへの質問のポイント

新しい技術の習得には次のようなステップを踏むのが効果的です。それぞれのステップで、LLMへの質問の仕方を工夫することで学習効率を上げられます。

ステップ1: 基本的な質問をする

まずは疑問を直球で投げましょう。知らない状態から出発する際には、コマンドや機能を単に理解するための基本的な質問が有効です。

プロンプト:

このコマンドについて詳しく教えて。
npm install supabase --save-dev

LLMの回答:

npm install supabase --save-dev は、SupabaseのCLIツールをプロジェクトの開発依存関係としてインストールするためのコマンドです。

Supabaseは、Firebaseのオープンソース代替として、リアルタイムデータベース、認証、ストレージなどのバックエンドサービスを提供するプラットフォームです。 このCLIツールを使用すると、ローカル環境でSupabaseの全スタックを実行したり、データベースのマイグレーションを管理したり、Supabase Functionsを作成・デプロイしたり、データベーススキーマから直接型を生成したり、管理APIへの認証付きHTTPリクエストを行うことができます。

--save-dev オプションは、supabase パッケージを開発依存関係として package.json ファイルの devDependencies セクションに追加します。 これにより、本番環境ではなく、開発時にのみこのパッケージが必要であることを示します。

(中略)

これにより、ローカル環境でSupabaseの各種サービスを利用しながら開発を進めることができます。

👀 上記に対して「なるほど...でも、--save-devのオプションが何をしているのか深く理解できない」と感じることがあります。


ステップ2: 歴史や背景、仕組みを聞く

すでに普及している技術には、必ず「歴史的な背景」や「理由」があります。この背景を把握することで、コマンドや技術の目的だけでなく、「なぜそれがそうあるべきか」を理解しやすくなります。

--save-dev オプションを深掘りする場合、以下のような追加で有益な質問ができます。

プロンプト:

--save-dev の役割と歴史的背景を教えて。

LLMの回答:

--save-dev オプションは、npmを使用してパッケージをインストールする際に、そのパッケージを開発環境専用の依存関係として package.json ファイルの devDependencies セクションに追加するためのものです。

開発依存関係(devDependencies)は、テストフレームワークやビルドツールなど、開発中にのみ必要なパッケージを指します。 これらは本番環境では不要であり、devDependencies にリストされているパッケージは、通常、本番環境でのデプロイ時にはインストールされません。

歴史的に、npmのバージョン5.0.0以前では、パッケージをインストールしても自動的に package.jsondependencies セクションに追加されることはありませんでした。 そのため、開発者は --save オプションを使用して手動で依存関係を追加する必要がありました。 しかし、npm 5.0.0以降では、npm install コマンドを実行すると、デフォルトでパッケージが dependencies に追加されるようになりました。 一方、開発時のみ必要なパッケージを devDependencies に追加するためには、引き続き --save-dev オプションを使用する必要があります。

このように、--save-dev オプションは、開発環境と本番環境での依存関係を明確に分離し、プロジェクトの管理と保守を容易にするために重要な役割を果たしています。

🔎 ここで歴史的背景の説明を追加で聞くことで、--save-dev が単なるオプションである以上に「どういう経緯によって作られ、どんな役割を果たしているか」を理解できます。これにより、知識が単なる「使い方」ではなく「本質的な理解」へと進むわけです。


歴史的背景を聞く重要性

なぜ歴史的背景を聞くと学習効率が上がるのでしょうか。この理由には以下の点が挙げられます。

  1. 「なぜこれがあるのか」が理解できる
    コマンドの存在理由や仕様の背景が分かることで、表面的な「使い方」以上の理解が得られます。

  2. 知識の文脈化が進む
    歴史的背景を理解することで、新しい技術や概念がどのような問題を解決するために生まれたのか、あるいは以前の技術に対してどのような改善を行ったのかという「文脈」が明確になります。

  3. 記憶への定着度が高まる
    「ストーリー」や「背景情報」を伴ったほうがより強く記憶することができます。知識を単なる断片的な情報ではなく、一貫した物語として理解できます。

  4. 問題解決能力が向上する
    技術的な課題に直面した際に、背景情報を理解していると、「なぜこの仕様なのか」「なぜこの機能が存在するのか」を元に考え、応用が効く解決策を考えやすくなります。

  5. 技術選定や判断力が高まる
    新しいプロジェクトや技術選定の際に、「この技術が今後どのように進化する可能性があるか」や「既存の問題点やリスクは何か」をより正確に評価できます。結果として、将来的なトラブルを避け、より良い意思決定を行えるようになります。


おわりに

たとえ「npmすら初心者」の段階であっても、LLMを活用して疑問点を「何をしているのか」だけでなく「なぜこうなったのか」「どうして必要なのか」といった歴史的背景まで聞くことで、効率的に学習を進めることができます。

まずは基本的な質問から始め、そこから補完的な情報や技術的な背景、さらには将来的な応用を見据えた質問を展開していくことで、Supabaseやnpmといったツールだけでなく、技術全般に対する理解が深まるはずです。ぜひ活用してみてください!Enjoy!!

Discussion