エンジニアは何を学ぶべきなのか
会社でネットワーク勉強会をやった。ネットワークの具体的な話をする前に、なぜネットワークあるいは低レイヤ、基礎技術を学ぶべきなのかという話をした。これは我ながら非常に良い話で、エンジニアという職業に対しての考え方をいい感じにまとめることができた。以下は原稿の一部。
自分が直接触れる、あるいは触れる可能性を想像できる範囲においてのみ学習や能力の向上を試みる人も少なくない。これはエンジニアが単なるIT技術に対して詳しいスペシャリストであるという見方からすると、それほど問題のある傾向とは思えない。一方で、一般論として、エンジニアの本来の仕事は「問題解決」である、とも言う。私は、「問題解決」をしない仕事などというものはほとんどないと思っている。すべての職業は何らかの
人生は有限である。トレンドになっている技術はキラキラしていて、あるいはお金の匂いがして魅力的だというのは理解できるところではあるが、そのような世界で戦うことを選ぶと非常に短期的な競争を何度も繰り返すことを厭わない精神が必要である。こういった表面的な技術は、移り変わりが激しく、ニュースを追っているだけで一日が過ぎてしまっていてもおかしくない。また、習得しても上位互換となる代替技術がすぐに出てきて、自
基礎を学ぶことのメリットは大きい
一方で、低レイヤを含めた基礎的な技術や基礎学問を学ぶことは長期的に大きなメリットがある。まず、このような分野はめったに陳腐化しない。前述の表面的な技術は、すべて基礎の上に成り立っている。表面は陳腐化しても、基礎の重要性は変わらない。そのため、表面的な技術を日々一生懸命に学んでいる人が専門としていることを、基礎を怠らずに学習している人が学び始めたらすぐに習得し前者を軽々と追い越してしまった、というこ