Web系の新卒の人ははじめにエンジニアになってみると良い

なぜこのエントリを書こうと思ったかというと、
「プログラムを書いたことが無いけどいつかWebサービスを世に出したいんですよ!」
と、技術のことは知らないけど熱意がある若い学生の人たちと話をしたから。
「じゃあエンジニアになればいいよ」というのが僕の答え。
ちなみに何年か社会人やってから「エンジニアになりたいです!」
って言っても多くの会社で職種転向というのはなかなか認められない狭き門なんじゃないかな思う。
だから新卒のうちにエンジニアになっておくほうが良い。

エンジニアになってエンジニアリングを知っていると(今思いつく範囲で)3つの利点があるなと思ってる。

利点1:自分で作ることができる

これはとても気楽なこと。何やったっていい。なんだって出来る。
スケジュール調整とかリソースの調整なんて考えなくていい。作りたいときに作る。
エンジニアリングを知っている分だけヒト・モノ・カネのうち、
モノにおいてはコントロールできる範囲は広く持てる。

とはいえエンジニアとして会社に属して働くのであれば明示された
納期は守らないとダメだけど。

利点2:エンジニアに対して的確に指示が出せる

これは昇進とか昇格したときに下にエンジニアの人を付けてもらった時の利点。
エンジニアリングを知らない人はエンジニアに的確に指示が出せない。
例えば拡張性を考慮した設計にして欲しくても「将来サービスの規模が拡大しても容易に
拡張出来る設計にしてください!」と伝えることしかできない。
正直これではエンジニアには伝わらない。

エンジニアリングを理解していればサービスの背景を深く理解して、
何を抽象化して、どのようにパーツ化して、どのレベルでコンポーネントに分けて、
コンポーネント間のインタフェースの仕様を定めて、など設計をまとめて
エンジニアに共有するという事がしやすい。
なんて簡単に書いてしまったが設計というのはかなりのスキルを要求されたり、
チームで設計したりするものなのでそんなに楽ではないけど。

利点3:プロジェクトを推進しやすい

これは上に書いた利点と同じようなものなんだけど、
例えば自分が既にエンジニアでなくなっている場合を想定。
プロジェクトを推進するときに「エンジニアがどのように考えてどのように実装するか」
を理解しているマネージャーは経営者にとってもエンジニアにとっても貴重な存在。

まとめ

何年か社会人やっていて色々なキャリアを見てきたけどWeb系であれば
エンジニアリング知っている人のほうが、知らない人よりは結果を出して
いるように見える。もちろんエンジニアリングを知らない人も
大きな結果を出している人を見て来たけど数は少なかった。

繰り返しだけど「Webのサービスを世に出したい!」と強く思う人ほど、
エンジニアリングを知っておくほうが吉だと思う。

プログラマが知るべき97のこと

プログラマが知るべき97のこと