勉強
勉強と聞くと,
そんな事情を踏まえて,
勉強のメタレイヤ
ソフトウェアエンジニアとして働いていくには,
- 何を勉強するのか
(テーマ) - どのタイミングで勉強するのか
(順序) - どれだけ勉強するのか
(時間) - どのように勉強するのか
(テクニック)
といった1つ上
一般的に個人の学習能力の差はそんなに大きくないというのが筆者の実感である
なぜ勉強するのか
なぜ勉強するのかは個人によって大きく違うだろう。例を挙げれば,
- 知的好奇心を満たしたい
- 仕事で必要になった
- 最近流行っているから
- 世界にインパクトを与えたい
- 将来に備えるため
などがある。理由はどんなものでもよい。ただし,
テーマ
テーマはわかりやすいだろう。個人の嗜好
テーマとして新しいものと枯れたもののどちらに取り組むかという選択肢がある。次の比較を読んで,
新しいものに取り組むことには,
- 自分がそのテクノロジの方向性に大きく関与できる可能性がある
- 何らかの先行者利益を得られることがある
- 最先端にいるという高揚感がある
逆に次のデメリットがある。
- 誰もまだ解決していない問題や落とし穴に多くの時間を使う必要があり,
本質的な 「やりたいこと」 にたどり着くのが大変 (yak shaving) - 書籍やWebの情報が少ない
- 「定まっていないこと」
が多いので, 勉強したことが1~2年後に全然異なるものになっている可能性がある - 時の洗礼を受けていないので,
ほぼ無価値の可能性がある
枯れたもの取り組むことには,
- ほとんどすべての問題は誰かによって解決されているので,
自分が取り組んでいる本質的な問題に取り組める時間が多くなる - 書籍やWebにたくさんの情報がある・
時間が経っても生き残っているので, それなりの価値が保証されている - 求人の件数が多い
- 成熟したコミュニティが存在する
逆に次のデメリットがある。
- テクノロジの方向性に大きく寄与することは難しい
- コミュニティの規模が大きいので突出することは難しい
何を勉強するかを選ぶ基準として,
- AはBを含むだろうか?
- AをマスターすればBの習得はたやすいだろうか?
- 自分の視点を上げるのは,
AとBのどちらだろうか? - AとBのどちらを勉強したら,
次にできることが増えるだろうか? もしくは勉強できることが増えるだろうか?