ボクココ

サービス開発を成功させるまでの歩み

新技術の最速の習得法(私見)

ども、@kimihom です。

f:id:cevid_cpp:20190502220052j:plain

GW はひたすら新しい技術を学習している。今回は Amazon Echo を購入し、Alexa スキルの学習をすることにした。Amazon Echo 消費者目線での感想は前回の記事で記した。

www.bokukoko.info

さて今回は一気に Alexa スキルを学習したわけだが、今の私が考える、現時点で新技術を学ぶ最速の方法を記すとする。

公式ドキュメントを読む

当たり前の話なんだけど公式ドキュメントこそが最新で正しい情報が載っている唯一の資料だ。以下リンク先は日本語だけど、英語だとなおさら正しい情報となる。だから英語に対して抵抗なく読み進めるってのはエンジニアにとって本当に大切なことだ。実際、詳細ドキュメントはまだ英語しかなかったりすることが多くある(Alexa ドキュメントも一部英語)。

developer.amazon.com

とりわけプログラミングの経験を積んで技術の枠組は理解しており、細かい実装方法だけを知りたいという場合、公式ドキュメントが最適だと思っている。あ、あとついでに無料だしね。 詳細の ASK ドキュメントは一見するとウッとなるけど、あの分厚い技術本を読むよりよっぽど内容は軽いものだ。慣れれば一気に読み進められる。

ただ唯一欠点を挙げるとするなら、ドキュメントを書いている人ってのはあくまでプロ(技術書を書く人) ではないってところだ。公式ドキュメントだと時にはわかりづらいと感じる部分が出てくる場合があるかもしれない。割と知ってる前提で書かれている部分が多かったりするからだ。そのため、技術に慣れていない方がいきなり公式ドキュメントを読んでしまうと挫折する可能性が高い。そういう場合には初心者向けの書籍を読むという選択肢がより適切になる。

これはドキュメント・資料の内容が「ほとんど全部知らないこと」か、「ほとんど知っていて一部だけ知ればいい」のかという違いだ。

経験のあるエンジニアならわかることだと思うけど、技術ってのは進歩しているようで基本の部分はほとんど変わらずに進んでいるものだ。新しい技術ってのは当然今までの技術を参考にしてできるものだし、新しい技術を手軽に使ってもらえるように今までの技術を流用できるような仕組みになっている部分もあるだろう。あとはコア OS Linux とか HTTP プロトコル とかまで変わるってことはほとんどなく、大抵は表側の部分(フレームワークやプログラミング言語etc) なので、概念レベルで変わる何かってのは出づらい。

熟練者の落とし穴

でも、熟練者になればなるほどやらかしがちな落とし穴がある。それは、全部知ってからじゃないと何かを作り始める気が起きないという点だ。これは、エンジニア初心者だった頃、プログラミングをするたびにバグが出てGoogle検索したりソースを読んだり・・っていう時間を費やした人であればきっと誰もが感じることだろう。それらの不毛な時間の消耗をできる限り最小にするには、その技術を知り尽くすことが一つの解決方法になるだろう。

そして、「これだ!」ってアイディアが思いつかないからいつまでも開発が始まらないってのもある。初心者であれば、車輪の再発明であっても学習のために喜んで開発してみるものだ。だが、慣れてくると「せっかく時間を費やすのにうまくいく見込みのないものを作っても仕方がない」ってマインドが生まれてくる。熟練者はそこをいかに断ち切れるかってのが一つの分岐点となるだろう。最初はありきたりのアプリを開発して、そこの延長線上で新しいものが出来上がることだってあるし、その開発によって技術に詳しくなり、次に作るモノで勝負することもできる。その「とりあえず開発を始める」ことができないと、ドキュメントにある知識で止まりだ。それは言い換えれば時間の無駄だったってこと。知識として身についても実行に移せなきゃ何の意味もないのだ。

だから私は開発を始める。たとえその開発したものが自分すら使わないゴミアプリになってしまったとしてもだ。その経験が次なるレベルへ到達できる唯一の手段なのだから。

終わりに

今回の記事で書いたのは「公式ドキュメントを読んで実際に作り始める」っていう至極当たり前のことなんだけど、その当たり前を実際にやるのがハードルが高いのだ。そこまでやりきるという自分なりのモチベーションを保つのが難しい。仕事で必要とかじゃなくて、単に自分のスキル磨きとか幅を広げるとかの場合は特にそうだろう。

そのハードルを超えた人だけが見える新しい世界。私はそこを目指すのである。