∑考=人

そして今日も考える。

安易にプログラマーを目指すな

就職活動期に、プログラミングがしたくてIT系の会社を志望する人がいることだと思う。ちなみに上場企業とかになると、プログラミングがしたくて、とかITに興味があって、というよりは、安定していて福利厚生もしっかりしているし、文系でもなれるから、という理由でSEになる人間が沢山いる。

 

ところで、IT系の会社の分類って何があるのか知っているだろうか。一口にIT系といっても色々だ。私が今働いているSIer業界とWeb系、あとはメーカーのシステム部門(いわゆる組み込み系)とか。あとネットワーク系もIT系に含まれるみたいだが、当時の私はネットワーク会社をIT系とは考えていなかった。あくまでソフトを作ること=IT系の仕事だと考えていたので。まぁ色々、と言っても実はこのくらいの分類しかない。

 

で、プログラミングをしたい人はどこに就職するべきなのか。確実なのは、SIerの下請け会社である。プログラマーという職種で募集されているので確実にプログラミングをすることができる。もちろん、プログラミングだけをする、というわけにはいかない。

 

ここからは私の想像になってしまうが、Web系もプログラマーとして就職すればそれなりにプログラミングができると思う。Web系がSIerみたいに他社を雇ってWebサイトを作る、みたいな話はあんまり聞いたことがない。そもそもWeb系はそれほど規模の大きい会社もないので、自社開発のイメージが強い。

 

ネットワーク系は正直、プログラミングというよりも回線工事のイメージしかない。(これは本当に就職活動期から揺るがないイメージ。笑)とは言え、ネットワークプログラミングとかもあるので、実は結構ガリガリコード書いてたりする可能性は十分にある。

 

結論、プログラマーという職種として就職すればプログラミングができるわけなのだが、各業界によってプログラミングの意味するところは全く異なることは留意しておかなければならない。

 

例えば、SIerの下請け会社が行うプログラミングは、フローチャートの翻訳だと思って差し支えない。あるいは、既に存在するコードのコピペからの変数名書き換え、そんなレベルのプログラミングがほとんどである。そして、ソースコードの半分ぐらいがコメント行である。

 

学生の頃に考えるプログラミングとは全く異なっていると思う。当時の私で言えば、

・全て自分で自由に決めることができ、

・設計も含めて考えながらプログラミングする

ことをプログラミングと呼んでいた。

 

でもSIerでこれを実現しようとすると、まず新規案件という極めて例外的なプロジェクトにアサインされないといけないし、かつ上流工程に食い込む必要がある。

 

実際には既に世に出たシステムの機能追加が大半なので、

・全てのルールは昔の誰かが決めた既存システムを踏襲しなければならず、

・設計に考える余地はほとんど与えられず、決定された設計を元にプログラミング(プログラミング言語に翻訳)する。

ことがプログラミングなのである。

 

前者と後者の違いはクリエイティブ要素があるかないか、である。プログラミングさえできれば、とか思ってる人もこのぐらいの違いがあることは就職する前に考えておいたほうがよい。

 

逆に、Web系でバンバン新規サービスを企画型で開発しているのであれば、クリエイティブに開発を進められる可能性は高い。ただ、Web系の場合はhtml,phpなどが主流で、業務アプリケーションに比べて複雑なロジックが求められない(ロジック構築の自由度が低い)イメージがあるし、やはり特性が異なることは考慮したほうが良い。もちろん、そうではないのかもしれないが。

 

最も、私の場合、当時プログラミングしてて面白かったのは、数学の難問に対する方程式を自分で考えだしたところだった。方程式とプログラムは親和性が高く、解法の考案をそのままプログラミングしていくこともできて、結果プログラミングが面白い、みたいに勘違いしてしまったのだろう。まぁ今になっても、純粋に動くものができるのは面白いが。

 

というわけで、安易にプログラマーではなくて、なぜプログラミングが面白いのか、とか、じゃあその面白さを実現できる会社はどんな業界なのか、とか考えると良い選択ができるのではないだろうか。