何年も技術屋をやってきた傍ら、確実に言える事が一つあります。
エンジニアには様々なタイプがあるということです。
よく言われる大きな分類は、
- アルゴリズム志向
- コーディング志向
の2つだと思います。
前者の「アルゴリズム志向」とは、一見難解に見えるパズルの様な問題を、頭を使って鮮やかに解くことが得意なタイプのエンジニアです。
後者の「コーディング志向」とは、頭を使うよりも、指先でキーボードをタイプして、プログラミング言語を用いてプログラムを作成することが得意なタイプのエンジニアです。こちらが一般的なイメージのプログラマーかと思います。
どちらのタイプがいいのでしょうか?
ビジネス的な観点で言うと、当分は後者を想定しているのがよいと思います。
なぜなら、アメリカの様な巨大市場ならアルゴリズマー(アルゴリズム志向のエンジニア)が活躍する場は存在しますが、まだまだ日本だと数少ないからです。
よほど数学力に優れ、アルゴリズムに強いなら前者もアリだとは思いますが、早くから自身の得意不得意を見極めておくのが良いと思います。
実はこれら2分類に加えてさらにもう一つ分類が存在し、それは
- ツール志向
です。
「ツール志向」とは、指先でキーボードをタイプして、その場で素早く適切なツールを実行し、状況に応じて簡単なプログラムも書いてツールを使いこなすことが得意なタイプです。
こちらはコーディング志向と同じく、頭で考えるよりも指先に重きを置きます。
「ツール志向」の「コーディング志向」との決定的な違いは、プログラムの読み易さ(分かり易さ)を考慮するかどうかの違いです。
「ツール志向」の場合は目下の目的をなるべく早く達成しさえすればいいので、プログラムの読み易さはほとんど考慮しません。(と言うか度外視)
「コーディング志向」の場合、自分が書いたコードを他の人も読み、またそれが改変されていくため、できる限り互いに理解しやすく読み易いコードを書くのが良し、となります。
僕が経験したある企業にて、「ツール志向」のエンジニアは実際の現場において、強力な問題解決力と業務推進力を持っていることを実感しました。
この辺りの実力値は、通常のエンジニアの採用面接では到底測れないでしょうが、自分なら少し分かることができます。
ちょっと長くなってきたので、この続きはまた後ほどにさせていただきます。