自分のコアドメインを決めること

自分のエンジニアキャリアを考えた時に、コアドメインを決めて研究することが重要であると思われる。汎用的なスキルだけを獲得していっても自由は得られないし、生き生きとしていられない。汎用的なスキルで食いつないでいると、常に環境やシステムに依存し、いつ捨てられてもおかしくないという不安を抱えながら生きることとなる。だから、これだけは負けられないというテーマを10年スパンで極める必要があると思う。その心を以下で整理する。

コアドメイン戦略では、(伊藤穰一さんがいうところの)プル型という考え方が大事である。プル型では、汎用的なスキルは、それが必要になったり、自分がそれに純粋な興味を抱かない限り学ばないことをよしとする。しかし、自分のコアドメインを深めるに当たって、汎用的なスキルが必要になるという場面は非常に多くある。そのときは、それができる他人とチームを組むという意思決定をとる。もし他人が協力してくれない場合は、自分で一から学ばなきゃいけないのだが、汎用的なスキルに関しては大概わかりやすい教材が揃っており、学びやすくなっているため、一から身につけるのもそこまで難しくはない。このように見ると、プル型のコアドメイン戦略はうまくいくように思われる。

しかし、この戦略のデメリットもある。この戦略では、自分のコアドメインがその時代の社会に必要とされていなかった時に、汎用的なスキルを提供してくれる協力者が見つかりにくいという問題がある。つまり、プル型のコアドメイン戦略が成功するためには、自分のコアドメインが他人や社会にとって魅力的であるというのが条件となる。

数ある議論と同じく、プル型のコアドメイン戦略にはメリットもデメリットもあるということを見てきた。結局は、自分はどっちのタイプなのか、どっちが得意なのか、どっちを選択するとモチベーションが持続するのか、ということだと思う。私の場合は、汎用的なスキルをかき集めるのがどうも苦手らしい。学生時代から、暗記科目より、数学や英語など本質的な力を身につければ安定的に点を取れる教科の方が得意だった。エンジニアとしても、UNIX OSのアーキテクチャやデータシステムの内部構造を勉強するのが好きで、流行りのツールを最速で習得するみたいなのは苦手だ。そういうことに何となく気づいて、変化のスピードが比較的遅いソフトウェアのインフラを中心に学んできたという経緯がある。そうすると、やはり汎用的なスキルがいざ必要となった時に中々苦労するのであるが、UNIX socketについてコードレベルで学んできたことがツールの理解を助けてくれたり、アーキテクチャ設計のプラクティスがアプリケーション開発に役立ったりと、たまにインフラの知識が役立つこともある。もしかすると、ソフトウェア開発に限っては、インフラを極めることが、汎用的なスキルの習得スピードにかなり貢献するので、プル型のコアドメイン戦略が最高であるのかもしれない。真実のほどは確かではないが、なんとなくそういう感覚があるので、引き続き流行っている技術には気を取られず、UNIXの知識をもっと深めていきたいという所存である。

とはいっても、漠然とした不安はぬぐいきれない。というのも、広い意味でのデータエンジニアリングの重要性が無視できないほど増しているからだ。古典的なデータ構造とアルゴリズムはもちろん、統計的なアルゴリズムや、機械学習のアルゴリズムや、グラフ理論のアルゴリズムなど、数理最適化領域の応用が近年目覚ましいものとなっている。今までの自分のコアドメインはソフトウェアのインフラレイヤーなので、データサイエンスはそこまで詳しいわけではない。しかし、国際学会の論文を見てみるとインフラレイヤーのチューニングを機械学習のアルゴリズムでやるようなテーマがあったり、データのフローを管理するようなミドルウェアが台頭してきたりと、データエンジニアリングの知識は必須になりつつある感じがする。プル型のコアドメイン戦略においては悩ましいところである。こういった変化は、汎用的なスキルになる前に実装が完了して、当たり前に用いられる技術になったりすることもある。データエンジニアリングは今後コンピュータで新しいことをやりたいなら必ず身につけなくてはならないスキルなのかもしれない。とはいえ、まだまだインフラレイヤーで学ぶべきことはたくさんあるし、データエンジニアリング自体もそれなりに時間を書けて勉強&プログラミングしないと身につかない領域でもある。

そういう葛藤は常々から抱えており、次はどの分野の書籍を購入するかといった具体的な意思決定に関わってくる。色々と考えたけれど、結論としては、自分の情熱を高めることが一番成果に繋がるということである。社会がどうなるかという不確実性の高すぎるファクターを観察するより、自分がより情熱を感じる方向にコンパスの針を合わせて無闇に学ぶことで、学びの総量は最大化できる。最初から計画して汎用的なスキルを一つ一つ身につけていく手法と比べると、一定時間あたりに身についたスキルや知識ははるかに大きいだろう。後から見返せば、だいたいどの分野も勉強したことがあり知っているという状態になるかもしれない。これは単に自分の感覚であり、不等号の式で表せられるわけではないのでご注意願いたい。

冒頭のコアドメインの話に戻る。今の自分なりの結論としては、より情熱を抱くコアドメインを突き詰めていくことで、学びの総量を最大化させるのが良い、ということになる。これから2~3年で、今はまだぼんやりしているコアドメインの輪郭を少しずつ浮き上がらせていきたい。

この記事が気に入ったらサポートをしてみませんか?