はじめに
この記事は生成AI時代のエンジニアのインプット方法の考察です。
生成AI時代のエンジニアにとって、様々なキャリア戦略の変化が起きています。
筆者はあまりキャリア戦略とかに興味があるわけではないんですが、技術者として成長するために生成AIガンガン活用していきたいと考えています。
これまでの学習方法のまとめとこれから生成AIを活用した事例をまとめていきます。
従来の方法
私がソフトウェアに触れ始めたのが2019年頃、WEBエンジニアになったのが2022年です。
まだ生成AIが登場する前ですね。
主にインプット方法に着目してこれまで取り組んできた内容は以下のようなものです。
技術書を読む
エンジニアになったときの課題として、他のエンジニアと比べた際の基礎知識、共通認識の不足を感じていました。
ひたすら技術書を読んで、その内容をメモにまとめたりブログにすることで定着させてきました。
これは直近だと少し変わりつつあって、以前は最初から最後まで通してすべて読みこんで、重要な箇所は考察してブログにまとめていたんですが、最近はまず目次をみて、重要そうな箇所を中心に読んだり、気軽に技術書を買う、読むことができるようにしています。
忙しくなったので、ひたすらハードルを下げる仕組みを作っています。個人事業主になって経費で書籍を買うのも、その一環ですね。
私がエンジニアになった時点で電子書籍は存在していて、kindleを活用して技術書を多く購入しました。
技術ブログを読む
技術ブログはエンジニアのブログやQiita、Zennなどです。
これに関しては以前のブログでも紹介しましたが、RSSを活用したり、Twitter上でフォローしている人のブログを読むことで、新しい技術を知ることができます。
基本的に仕事のやる気がないときや通勤など他のことができないときに読むことが多いです。
仕事のやる気がないときにはかなりおすすめで、新しい取り組みや面白い技術を知ると、あっという間にモチベーションが戻ってきます。そもそもモチベーションに左右されることはあまりないように気をつけてはいますが。
チュートリアルをやる
新しい技術に触れるとき、ドキュメントを読むだけではわからない内容はチュートリアルに触れます。
自身が触れている技術とのパラダイムの変更が大きいものがこれに該当することが多く、理論と実践の相性もあるので一概には言えませんが、過去だとReactに初めて触れるときや、TypeScriptを始めるときに構造的部分型の概念を獲得するためにチュートリアルをやったりしました。
反対に、Rustに初めて触れるときはより根本的な概念の理解のためにコード部分は読むだけでスキップして、技術書やドキュメントを中心に学習しました。
生成AI時代のインプット方法
ここからが本題です。
生成AIの登場によって、これまで取り組んでこなかった学習方法についても検討していきたいと思っています。
ChatGPTに聞く
1年前だと正直、学習目的では使い物にならなかったんですが、最近は知りたいことがあるときに、まずChatGPTに聞いてみることが多いです。
もちろんハルシネーションは存在するので、情報ソースの確認は必要ですが、情報ソース自体を検索させたりすることも多いです。
様々なチャットボット系のサービスが登場していますが、ずっとChatGPT Plusを契約しています。
Vibe Coding
気になっている技術を調べるとき、以前はチュートリアルを自分で実装していました。
生成AIの登場によって、チュートリアルの域を超えて簡単なアプリであればVibe Codingで作成してみることも多いです。
これが有効なのは、「概念として理解できたが、実際にこれを利用してうまくいくかわからない」という場合です。
そもそも概念が理解できていない場合は以前と同じくチュートリアルをやったり、チャットを通して質問したりします。
Vibe Codingをすることで半日程度である程度動くものを作ることができ(もちろんメンテナンスできるようなクオリティにするのは難しい)、その課題も見えてきます。従来であれば1案件を通して獲得していたような知見を得ることができます。
技術書の読み方の変化
最近取り組んでいるのは技術書からの技術の習得に関するものです。
生成AI時代において書籍の情報の古さはかなり気になっていて、変わらない普遍的な内容でない場合はあまり書籍の価値がなくなってしまいます。これは以前から気をつけていたことで、例えば言語仕様に関する入門書やフレームワークの入門書は購入しないようにしています。
Obsidianの活用
メモツールとして、2022年にWEBエンジニアになったときからObsidianを利用しています。
単純な技術用メモとしてだけではなく、人生のすべてのissueや考えを記録したくて日報兼日記のような形で運用していて、例えばマイホームの購入検討メモやふるさと納税の検討なども記録しています。
最近生成AIの登場によって注目されていますが、達人プログラマーの時代からプレーンテキストの重要性は説かれていましたね。
Obsidianは初期設定コストが少し高いところが普及の問題点だと思っているんですが、自分が色々試した中でおすすめは下記の設定だけすることです。
- Gitプラグインの導入
- GitHubのリポジトリを利用してバックアップ、デバイス間同期を実現します。
- PCのみで利用する
- iPad等のアプリも存在しますが、一度試して結構設定が面倒で避けています
- 日報テンプレートを活用したメモの簡略化
より発展的な活用として、特に生成AIを前提にすると下記がおすすめです。
- Chrome活用
- ブラウザの拡張機能を活用して、ページ丸ごと、もしくは選択箇所を簡単にObsidianにプレーンテキストとして保存できます。
- RSSはまだ見ていない情報の検索、Obsidianは読んだ情報を活用していく、というふうに使い分けています。あくまでプレーンテキストとして保存されるので、読んだ時点の内容が保存され、同期されない点や自身のメモを追加できる点が魅力的です。
- kindleのハイライトやメモとの連携
- Kindleを活用すると簡単に気になった箇所をハイライトとして残せます。iPadを利用しているのでApple Pencilで蛍光ペンのようにハイライトできます。
- このハイライトした結果をObsidianに連携するプラグインが存在するので、それを活用します。(https://github.com/hadynz/obsidian-kindle-plugin)
- インストール後に、Obsidianのプラグイン設定から、
Amazon Region
の設定をJapan (amazon.co.jp)
にします。 - ちなみに、オライリー本などを購入してSend to Kindleで送信した場合はハイライトには保存されないようなので、個別にエクスポートする必要がありそうでした。残念。
参考
- 【Obsidian】KindleのハイライトをAIに要約してもらう
- hadynz/obsidian-kindle-plugin: Sync your Kindle notes and highlights directly into your Obsidian vault
- Obsidian Web Clipper - Chrome ウェブストア
- ObsidianをWeb Clipperとして使う
NotebookLM
NotebookLMはGoogleが開発したAI搭載のノート・リサーチアシスタントで、アップロードした文書やYouTube動画など複数の情報源をもとに、要約・質問応答・学習ガイドの作成などが行えます。
主な利用の仕方としては以下の通りです。
- オライリーなどの技術書をもとに要約ノートを作成する
- Kindleで購入できない書籍はEPUBをKindleに送信して読んだりしますが、PDFをアップロードして要約ノートを作成することも可能です。
- 音声概要を生成して聴く
- この機能については実際に試してもらうのが一番なんですが、アップロードした情報源をもとにPodcastを生成してくれます。
- いわゆる音声の再生、という感じではなくて2人の会話形式で進むPodcast番組のような音声になります。
- 学習ガイドの作成や質疑応答
- 情報源に対する質問応答や、学習ガイドの作成などが可能です。
プラン周りは無料で十分使える内容なんですが、かなり有効なのでGoogle Workspaceのサブスクリプションも検討しています。個人事業との相性もいいので結構悩んでいます。主に容量、コラボレーション、一部生成AI機能で差が出る内容になっていますが、プランの内容は結構頻繁に変更されるのでここでの言及はしません。
参考
まとめ
生成AIの登場によって、エンジニアの学習はより加速することが可能になりました。
インプットとアウトプットの質と量が重視される時代ですが、生成AIを活用することで、より質の良い情報を素早く獲得することが可能になりました。
一方で、生成AIでのアウトプットは自身に定着しづらく、読書は読書の内容をまとめているときに内容が定着していると感じます。 インプットの質を上げる、という意味では質の良い情報を探すことだけでなく、一つの情報をどれだけ自分の中で咀嚼して昇華できるか、という点も重要になってきます。
生成AIを活用して便利にインプットしつつ、より本質的な部分に時間を割くことを習慣づけていきたいです。