新しいソフトウェア技術が出たらすぐ学ぶべきか?成熟を待つべきか?
ソフトウェア技術の世界では、日々新しい技術が生み出されています。
新しい技術は刺激的で魅力的です。
新しい技術はいつ学べばいいのでしょうか?
出てすぐ学ぶのが良い?成熟を待ってから学ぶべき?
それぞれにメリット/デメリットがあります。新しい技術を学ぶべき時期について考えてみましょう。
Contents
出てすぐの技術を学ぶのは獣道
デメリット1. 学習コストが高い
出たばかりの技術を学ぶのは、成熟した技術を学ぶのに比べて難しくなります。出来たばかりなので情報が少ないためです。書籍がないのは当然でネット上の情報も本家のサイトしかない場合もあります。
また、事例が少ないので、
- どういう場面で使うと良いのか?
- どんな使い方をするとまずいのか?
などのベストプラクティス・アンチパターンが分かりません。これらを自分で試行錯誤して見つける必要があります。
それに、出始めの技術は当然使ってる人が少なく、自分よりその技術に精通してる人が少ないので、人から教わることが出来ません。大抵のことは自分で調べたり試行錯誤すれば分かりますが、自分以外の視点の考えが聞けないので視野が狭くなってしまいやすくもなります。
学習コストがかかるということは、自分が学習に割り当てられる時間の多くをその分野につぎ込まなければなりません。
デメリット2. 技術の安定性が低い
出来たばかりの技術はバグが多くなりがちです。うまく動かない際の原因が自分の使い方が悪いのか、ソフトウェアのバグなのかの切り分けが必要です。
苦労してトレースした結果、自分のせいでなく、その技術自体のバグだった場合の徒労感はつらいものがあります。
また出来たばかりの技術は仕様変更が多い傾向があります。仕方がないことですが、バージョンアップしたら、前のバージョンで書いたコードが動かなくなった等の問題もひんぱんに起こりがちです。
デメリット3. 学んだけどその後廃れてしまう時もある
出たばかりの技術だと、その技術が流行るかどうか分かりません。技術は利用者がいなければ、廃れていきます。せっかく学んだのに思ったより流行らなくて廃れてしまったなんてこともあり得ます。
メリット1. 先行者利益
悪い点を挙げてきましたが、良い点ももちろんあります。出たばかりの技術を早い段階で使い始めるとその分野でトップを走ることが出来ます。
その分野のパイオニアとして、ネットや会社で評価されることも十分あります。それによってコンサルティングや書籍執筆の依頼を受けるかもしれません。
私の場合、早いという程ではありませんでしたが、2014年にUnityを学び、幾つかのゲームをネットで公開していたら、gihyo.jpのUnity講座を執筆するチャンスを得られました。これも一つの先行者利益です。ちょっと早いくらいでもけっこう利益がありそうです。
成熟を待ってから学ぶのは舗装された道路
出てすぐ学ぶ際のメリット/デメリットを逆にしたような特性があります。
メリット1. 学習コストが低い
成熟した技術は書籍やWebサイト等の情報が多く学習がしやすいというメリットがあります。使用事例が多いので、ベストプラクティス・アンチパターンなども見つけられる場合が多いので導入が容易です。
自分よりその技術に精通している人も簡単に見つけられるのでその人から教わることが出来ます。
つまり、成熟した技術の方が短い時間でその技術を学習することが出来るということです。
学習コストが低いということは、短時間で習得して、余った時間で別の分野に取り組むこともできます。
メリット2. 技術の安定性が高い
成熟した技術は十分な仕様事例と改善の結果バグが少なくなっています。同時に改善を経て成熟しているので仕様変更が少なくなります。
なので、安心してストレスなく使用することが出来ます。
メリット3. 当たり外れがない
成熟した技術は、十分に需要があるから成熟したわけなので、すぐに廃れることはありません。なので、せっかく学んだのに使い道がないとかその技術を使った仕事がないといったことになりにくいので、学んだことが無駄になりません。
デメリット1. その分野でトップになれない
良い面ばかり上げましたが悪い面もあります。成熟した技術を学んでも、自分よりもずっと前からその技術を使っている人たちがたくさんいるため、その分野でトップになるのは非常に難しいです。
どちらを行くかはあなた次第!
新しいソフトウェア技術が出たらすぐ学ぶ場合と成熟してから学ぶ際のメリットデメリットを整理することが出来ました。結論としては、
- すぐ学ぶのは獣道。学習コストは高いしバグがあったりで苦労も多いけれど、その分野のパイオニアになれる可能性がある。
- 成熟してから学ぶのは舗装された道路。学習しやすいし学んだことが無駄にならないが、その分野で一番にはなかなかなれない。
となります。つまり、自分がどうありたいかです。
「苦労をしてでも学習コストをかけ新しい技術を学んで第一人者になりたいか?成熟を待って短期間で技術を学び多分野に精通したいか?」
それ以前に、その技術が好きかどうかが重要です。その技術が好きだったら、学習コストが高かろうが、その技術が後で廃れようが関係ありません。
私の場合、ある程度成熟したものを学ぶことが多いです。学習効率を重視しているからです。とはいえ効率なんて関係ないくらい好きな技術が現れたら、獣道を選びたいと思っています。そんな技術が誕生することは楽しみにしています!
あなたはどちらの道を行きますか?