自己学習がしんどいと感じる時
技術書や、公式ドキュメント、技術記事などを読んでてしんどい時って、書いてある内容の意味がわからない時じゃないでしょうか。
そもそもの解説が難しい。
結局、この「解説」そのものを解説している記事がないかを調べに行ったり、結局わからないまま疲れてしまって読むのをやめたり。
やっとの思いで最後まで読んでも身になっているのかも分からないまま、つかの間の達成感だけ味わって終わる日々。。。
これは良くない、と思いつつ、どうしたものかとエンジニアになってからこの2年間悩んでいました。
しかし、ここにきて僕にとっての救世主が登場します。
「AI」です。
AIツールを使って学習するようになってから、驚くほど理解できることが増えたように感じます。しかも前よりも早いスピード感で。
AIは、仕事の効率を上げる点で話題に上がることが多いように感じます。(個人的な感想です)
しかし、実は自己学習のお供にも最適なツールであることを実感しています。
AIの進化は最近特に早いですが、しかし、まだまだなんのことやらと思う方も多いのではないでしょうか。
今日は、同じような悩みを持つエンジニアの方たちに向けて、僕が実際に行っている5つの方法を紹介します。
少しでもこの記事でお手伝いできれば幸いです。
僕が行っている5つの方法
1. 難しい説明をイメージ化してもらう
僕は、技術書にしろドキュメントにしろ、読むのに骨が折れます。前提知識がなかったりしてイメージが湧きづらいからです。
例えば、ベルマンフォード法というアルゴリズムの解説についての記述
「ベルマンフォード法は、グラフのある一つの点から、別のある点までの最短経路を導くアルゴリズムで、負の重みを持つ辺が存在し…. (略)」
みたいな説明がありました。
全然イメージが湧かなくて何言ってるかわからないな。。。となった場合、おそらくこんな感じでAIに聞きますよね。
「ベルマンフォード法についてのイメージが湧きません。わかりやすく教えて」
すると、その回答として下記のような簡単な例で返してくれると思います。
ベルマンフォード法を身近な例で説明しますね!
道路旅行の例で理解しましょう!
あなたが東京から各都市への最安ルートを探しているとしましょう。
- 基本的な考え方
「どの都市も、隣の都市を経由して行く方が安いかもしれない」という発想です。
例:東京→大阪:直行で1万円
東京→名古屋:5千円、名古屋→大阪:4千円
つまり名古屋経由なら9千円で大阪に行ける!….(略))
こんな感じで日常のイメージで例えてくれますね。
これでもいいのですが、
僕の場合、実際にどういう流れになるのかを動く図なんかで見たいと思う時があります。
そんな時、僕はAIの「Claude」を利用します。
下記のように聞いて、実際に動く図を作ってもらいます。
「イメージわかないから、図を用いてベルマンフォード法教えて」
すると、Claudeの場合は、下記のように実際に触って動かせるデモを作ってくれます。
実際にボタンなども押せるので、動かしながらイメージを持つことができて便利です。
この図でわからなければ、自分がわかりやすい図になるように変えてもらえばいいだけです。
2. 文字を打つのが面倒な時は、写真を撮って投げるだけ
実際、ネットの記事とかドキュメントなら文章をコピペするだけですが、本の内容となるとそれも出来ないのでいちいち文字を打たないといけません。
しかし、今のAIは画像読み込みの精度がどんどん高くなっています。
なので、気になるページを写真撮ってそのまま貼り付けちゃいます。
「このページにある〜〜〜ってどういう意味?」
こんな感じで投げてもある程度解説してくれるので非常に便利です。
3.コードリーディングの支援
おそらく僕が一番使う時が、OSSなどのとあるプロジェクトのコードリーディングをする時。
コードリーディングの得意な方であれば、大体の予想などつけながらスラスラ読んでいくこともできるのでしょうが、、、要領の悪い僕は、ヒーヒーいいながら時間をかけてしまう作業でした。
今では、僕はコードエディタの「Cursor」を利用します。
Cursorは、AI機能を搭載したコードエディタです。
正直これのおかげでコードリーディングのスピードは信じられないくらい早くなりました。
使い方は多岐に渡りますが、例えば、あるファイルの内容を知りたい時があるとします。
まず、Cursorで下記のように該当のファイルを開いているとします。
次に、macの場合は「command + l (※小文字のLです)」でAIとのチャット欄を開きます。
開いてるファイルタブを、チャット内にドラッグ&ドロップして、大体で質問します。
「このファイルの行っていることをわかりやすく教えて」
すると、下記のように、大まかに行っていることを流れで説明してくれるので、全体を把握しやすくなります。
僕は、コードリーディング時はこのように大体で質問することが多いです。本当は効率の良いAIへの質問の仕方などもあると思うのですが、ざっと全体間だけすぐ知りたいときなどは結構雑に質問します。
それでも、ざっくりであれば全体感の把握に困ることはないように感じます。
もちろんファイル単位でなく、「この関数、何してるの?」「なぜこんな書き方?」などの細かい部分だけで聞くことも多いです。
そのコードの意図や設計思想まで含めて、ステップバイステップで教えてくれます。
※注意点
AIに読み込ませることを禁止しているプロジェクトもあるため、仕事で利用する場合は、上長や会社に確認してください。
4. ディープリサーチしてもらう
- 最近知ったライブラリの実践的な使い方や、ツールなどの使い方をリサーチしてきてもらう
- 新しい技術に触れて、その技術を利用した実際の制作物の例をリサーチしてきてもらう
- 学んだアルゴリズムが実際どういう現場で使われているのかリサーチしてきてもらう
- 勉強した内容を深掘りたいときに、ネットで更なる情報をリサーチしてきてもらう
など
こんな時なんかにAIにリサーチしてきてもらいます。
この辺りのリサーチ機能は、まだ知らない知見を得るのにも非常に有用です。
例えば、ChatGPTのディープリサーチ機能を用いてこんな感じで聞いたり
「TypeScriptの最新バージョンで追加された新機能について調べて、実際の使用例も含めて教えてください」
自分で検索するより、AIが複数のソースから情報をまとめて、要点を整理してくれます。
個人的には、英語の技術記事でも、日本語でまとめてもらえる点が良かったりしてます。
5. そもそも「何を勉強すればいいか」を考えてもらう
歴がまだ浅いエンジニアの悩みのに
- 「次に何を勉強したらいいか分からない」
- 「作りたいものがあるが、何から手をつければいいかわからない」
のような悩みを持つこともあると思います。
そんな時にもAIを利用します。
「低レイヤプログラミングを勉強したいのですが、どの順番で学習すれば効率的でしょうか?おすすめの学習順序を教えてください」
「Instagram風のSNSアプリを作りたいです。ゴールまでのプロセスを教えて」
こんな感じで質問をすると、AIがあなたの現状とゴールを考慮して、こんな感じで答えてくれます:
AIの回答例①:
効率的な学習順序(C言語経験者向け):
アセンブリ言語 - x86-64から始めて、C言語との対応関係を理解
システムコール - OSとプログラムの境界を学習
メモリ管理 - 仮想メモリ、ページング、セグメンテーション
デバイスドライバ開発 - ハードウェアとの直接的なやり取り
組み込みシステム - マイコン(Arduino/Raspberry Pi)での実践
OS内部構造 - カーネル、プロセス管理、割り込み処理推奨リソース:
書籍:『低レベルプログラミング』(Igor Zhirkov著)
実践:Linux Kernel Moduleの作成
ツール:GDB、Wireshark、論理アナライザ
AIの回答例②:アプリ開発の回答例:
段階的な開発プロセス(初心者〜中級者向け):
Phase 1: 基礎固め(1-2ヶ月)HTML/CSS/JavaScript - ウェブの基本三要素をマスター
React/Vue.js - モダンなフロントエンド開発
基本的なUI/UXデザイン原則Phase 2: バックエンド構築(2-3ヶ月)
Node.js/Express または Python/Django
データベース設計(PostgreSQL/MongoDB)
RESTful API設計・実装
ユーザー認証システム(JWT)Phase 3: 核心機能開発(3-4ヶ月)
….(略))
正直、どこまで信用してもいいかはわかりませんが、大体次に起こせそうなアクションの候補は頭の中で組み立てやすくなると思います。
「何もわからない」状態から「なんとなくこの辺りを手をつけたらいいのかな?」くらいの解像度にはなります。
あとは自分で考えて、取捨選択しながら進めていくだけです。
※ちなみに、開発もAIに任せてできるかとは思いますが、あくまでも勉強のために実装は基本的には自分で進める想定です。
以上が、僕が学習効率を上げるために行なっている5つの方法でした。
AIとの付き合い方について
学習で利用していると言いましたが、もちろん僕はAIを100%信じてはいません!
基本的に、「わからないことを噛み砕いてもらう」など、あくまでも「補助の役割」で利用する意識を忘れないようにしています。
技術書などで、理解に詰まる箇所があった時、「頭の中でイメージが持てるように手伝ってもらう」、「理解できる言い方に変えてもらう」のようなイメージで聞いています。
しかし、気をつけていても、全然違うことを言っていることもあります。
怪しい時は、他の文献の内容や、わかりやすくまとまっている技術記事を見たり、ソースを持ってきてもらったりなど、なるべく色々な視点から情報の選択を行うようにしています。
場合によっては確認に結局時間がかかることもありますが、それでもうまく付き合えば僕の理解を助けてくれるとてもいいパートナーであることを実感しています。
難しくて読めなかった本や、挑戦しようと思ってそのままにしていた英語記事など、ぜひAIと一緒に再チャレンジしてみてください。きっとまた新しい世界が広がると思います。
宣伝
僕が所属するContrea株式会社は、医療課題を解決するMediOSを運営しているスタートアップ企業です。
2025年8月8日(金)に生成AIの活用法についてのLT会をオフラインで実施します!
ぜひご参加をお待ちしております!