新しく技術を身につける時のいくつかの方法

ソフトウェアエンジニアとして新しく技術やフレームワークを身につけようした時に、今まで自分が使ってきたいくつかの方法について整理してみます。なんとなく。

方法1: ドキュメント読む + 写経

公式ドキュメントやWeb上の記事、書籍を読みつつ、そこに書いてあるサンプルやチュートリアルに沿って、自分でも手を動かしながら(写経)、新しいことを学んでいくパターン。

自分で手を動かして新しい技術に取り組むのはすごく楽しいことです。達成感もあります。また、体を使って学習するので、学んだことが身につきやすく、理解も深くなります。

一方で、他の方法と比べて、一つの技術を身につけるのに長い時間がかかってしまいます。技術を身につける目的にもよりますが、技術の移変わりが激しい昨今、ひとつの技術の習得にあまり時間かけたくないのは事実です。

方法2: ドキュメント読むだけ

サンプルやチュートリアルに沿って手を動かすことはせず、公式ドキュメントや書籍を読むだけで済ませるパターン。

写経をしない分短時間で技術を身につけることができます。その分理解が浅くなってしまうことが気になりますが、似た技術、あるいは比較対象にできる技術を既に身につけている場合は、比べながら学習を進められるため問題なさそうです。

とはいえ、まったくの未開領域の技術だと、ドキュメントを読んだ後に一抹の不安が残ります。なるべく早いタイミングで身につけた技術を実戦投入しないと、学んだことが抜け落ちてしまいそうです。

方法3: ぶっつけ本番

その技術やフレームワークが必要となる仕事やプロジェクトにとりあえず飛び込んで、実際の作業をこなしながら、新しいことを学んでいくパターン。

事前に予習する時間が無く、走りながら学び続けなければいけない状況です。写経よりもより応用的な課題解決のために自分で手を動かしながら学ぶため、他の方法と比べて深い理解が期待できます。

一方で、事前に予習していた場合と比べて、仕事の進み具合はスロースタートになってしまうでしょう。また、仕事で必要になる部分に学習が集中するため、ほかの部分も含めた体系的な理解が不足するリスクもあります。

どの方法を使うのか。

大方針としてはできるだけ「写経」はしないということです。時間がいくらあっても足りない気がするので。

学生時代の駆け出しの頃は方法1(写経)を多用していました。そうしないと中々技術の理解が進みませんでした。ただ、丁寧にに理解を深められる一方で、すごく時間がかかってしまう問題がありました。

最近は写経はせず、方法2(読むだけ)と方法3(ぶっつけ)を組み合わせて使うことが増えてきました。

基礎や経験もいくらか積み上がってきたので、新しい技術でも大抵他の技術も比較しながらさくっと学べるようになってきています。また、技術の移変わりが激しく、自分の好奇心も幅広いので、一つの技術の習得に長い時間をかけるのがもったいないと感じるようになりました。なので、本当に未知の領域でもない限り写経はもういいかなーと。

事前に余裕を持って学習の時間を確保できない場合はぶっつけです。社会人になりたての頃は幅広いジャンルの開発ができる職場にいたので、ほとんどぶっつけ本番でした。ただ前述の通り、ぶっつけだと体系的な理解が不足するので、方法2と同時並行で進めるようにしています。

こんな感じです。最初だけ写経して、途中で読むだけに切り替えることもありますが。要はどれだけ自分の理解に自信があるか、に応じて切り替える感じですかね。