公式ドキュメントで新しい技術を習得する方法
何かの技術を新たに学ぶ時、特に最新の技術を学ぶ場合や日本でのユーザーが少ない技術の場合、その技術に関する書籍や記事がまだ存在しなかったり、少なかったりすることがある。その場合、公式ドキュメントを読む必要がある。
また、そうでなくても、なるべく一次ソースである公式のドキュメントを読みたい。
関連記事
新人プログラマのうちに身に付けたい習慣、考え方(この半年で学んだことと反省) - Qiita
現在勤めている会社で扱っている技術柄、また会社の先輩から公式のドキュメントを読むことを強く勧められていたり、自分自身が新しいもの好きなため、これまで公式ドキュメントで新しい技術を習得する機会が多々あった。その中で、確立してきた方法を記述したい。
英語に慣れておく
新しい技術だと日本語の公式ドキュメントが存在していないかったり、一部しか日本語化されていないことも多い。その場合、英語で公式ドキュメントを読む必要がある。最初は、英語で読むのはしんどいかもしれないが、辞書を使いながら読んでいけば、いずれ慣れる。
1回2回さらっと読む。
まずは、1回2回さらっと読む。(英語の場合は辞書を使いながらでも)
その際、細かいところは気にしなくても良い。全体を軽く理解するという感じだ。
日本語の周辺情報を探す
冒頭で以下のように記述したが、何かしら日本語で情報が存在していることもある。
何かの技術を新たに学ぶ時、特に最新の技術を学ぶ時や日本でのユーザーが少ない技術の場合、その技術に関する書籍や記事がまだ存在しなかったり、少なかったりすることがある。
日本語の情報が存在する場合、理解の補助として周辺の情報を日本語で読んでおくのは有効な手立てである。
サンプルコードをコピペしてIDEにはる、もしくは写経する
ドキュメントには、サンプルコードが記述されていることが多いと思う。
そのサンプルコードをコピペする。この際、使用するのはできるだけリッチなIDEが良いと思う。( Javaだったら、IntelliJ IDEA 、Goだったら Gogland など)
時間があるなら、サンプルコードを写経するほうが、より理解が進むかもしれない。
コピペしたサンプルコードを解読する
コピペしたサンプルコードを解読していく。
具体的には、1行ずつ何の処理を行っているか、全てコメントでコード内に記述していく。
また、IDEのジャンプ機能を使用して、コード中に使用されているメソッドまでジャンプしてそのメソッドのコード内のドキュメント(Javaだったら、JavaDoc、Goだったら、GoDocなど)を読む。余裕があれば、メソッドのコード自体を読む。
コードを動く形にしてみる
サンプルコードには、コードの一部のみが記述されていて、そのままでは動かないものも多い。そこで、動くように自分で足りない部分を記述してみる。
コードを改造して、自分なりのコードを書いてみる
サンプルコードが動くようになったら、今度は自分で考えて、その技術を使用して、何らかの小さなコードを書いて遊んでみる。
もう1、2回ドキュメント全体を読む
今度は、詳細な部分までしっかり理解しながら読む。すでにコード内のドキュメントを読んだり、処理をコメントにしたりしているので、ドキュメントがすんなり頭の中に入ってくる。
この際に日本語でメモを取っておく。
ブログやQiitaの記事にする。
先ほど、ドキュメントを読んだ際に書いておいたメモや、自分で書いたコード(詳細な処理のコメントが載っているはずである。)をまとめて、それをブログやQiitaなどの記事としてアウトプットする。
これには、3つのいいことがあると考えている。
-
アウトプットすることで、理解が明確になる
=> 他人に見られる記事を書くので、曖昧な理解だとボコボコにされる可能性がある。
よって、ちゃんとした理解をするようになるはず。 -
見返しやすい
=> たくさん勉強していると、前に習得した技術の詳細を忘れることがある。その際にあらかじめ自分が記述した分かりやすい記事があれば、それを見返して思い出すのに時間があまりかからないはずだ。 -
他人からの評価を得やすい
=> ちょっと打算的な話になるが、ある技術に関してのちゃんとした記事を書いていれば、その技術に関しての知識がある人だと他人から思われるはずだ。例えば社内で、自分が習得した新しい技術を使ったプロジェクトにアサインされたいと思った時に、その記事はPMに対するアピールの材料になるかもしれない。
実際の例
以下に自分が上記の方法を通して記述したQiitaの記事を貼っておく。
! 英語だけのドキュメントもあるが、日本語のドキュメントが混在しているものもある。
GoでBigQueryクライアントを実装してBigQueryからデータを取得する - Qiita
Go言語でSendGrid Web API v3を使って、メールを送信する - Qiita
【自然言語処理】Google Natural Language API Client LibrariesをGoで実装してみる - Qiita
Angular4(Angular2~)のユニットテスト【Angularのユニットテストの基本とComponentの簡単なテスト編】 - Qiita
関連記事
新人プログラマのうちに身に付けたい習慣、考え方(この半年で学んだことと反省) - Qiita
難しいと感じる技術本を読む時に自分がやっていること - Qiita
※ ブログでも同一の投稿を行っている
公式ドキュメントで新しい技術を習得する方法