情報収集
まず新しいテーマやツールに関して。自分が専門としているものについては、メーリングリストやチャット、GitHubのレポジトリなど、常に1次ソースを追っています。専門外のものについては、かつては多くのニュースフィードを常に追いながら追いかけていましたが、そこで最先端の情報を掴む必要はないため、最近は自分の専門外で信頼できる専門家を見つけてその人を情報源とすることがほとんどとなってきました。信頼できる方のフィルターを通ってきたものはハズレが少ないので時間の節約になっています。
調査対象が決まったら、やはり1次ソースを見ます。2次ソース(ブログ記事や解説動画)は作った瞬間に古くなっていくので、まずは公式ドキュメントや開発レポジトリのサンプルなどを見るようにしています。その上で、わからなければ解説記事などを探すようにしています。
これは検索エンジンの課題でもあると思いますが、ある技術系記事の品質が高いかどうかの判定は検索エンジンにはまだできないので、検索結果は玉石混交となります。まったく知らない技術領域の場合では特にノイズかどうかの判断が難しくなるので、自分の場合は次のような情報が明確に記載されているかを確認して判断しています。
記事が対象としているツールのバージョン
記事の執筆日時
1次ソースへのリンク(引用時)
Google検索をする場合にも、検索ツールを使って記事が公開された日付を絞ることで古い情報が出てこないようにしたりと工夫をしています。
習得
動くものを見るのが早いので、GitHubなどでサンプルを探します。やはり出てきたばかりの言語やフレームワークは利用されている例が少ないため、公式レポジトリやドキュメント内のサンプルしか例がないことが多いです。まずはそれを動かしてみた上で、既存の競合との比較検討を自分で行っています。
比較検討を行う際に、自分の場合は「そのツールが作られた背景や思想」を重要視するようにしています。言語やツールなどの設計自体には背景や思想が大きく寄与するため、それを理解することでサンプルがないものにおいてもインターフェースの意図が汲みやすくなると思います。逆にそういったものが公開されていないツールは自分は習得が苦手です。
優先順位
「そのツールを作った個人、団体のその分野内での立ち位置」などもよく調査するようにしています。その言語やツールを業務で使おうと思っても、せっかく習得したにも関わらずそれが広く普及しない場合にはすべてサンクコストとなってしまいます。
十分な開発リソースが割かれているか
マーケティングが行われているか
エコシステム機構(プラグインやAPIなど)があるか
コミュニティは機能しているか
こういったものを見ながら、優先順位を決定しています。
もちろん、趣味で習得する場合にはこの限りではなく、単純に技術的に面白そう(=珍しい、前衛的)という理由だけで試してみることも多々あります。また業務で採用する場合にも、広く普及することよりも特定の開発者層に深く浸透している場合には、その開発者層の採用を見据えて採用するといったこともあるでしょう。(昔のPythonやGoなど)