世間一般では大体そんな感じですかね。 うちの会社では、SEはSIをやる人、PGはプログラムをかく人と明確に分かれています。 でも、その区分はあまり良くないと思っています。 その理由は、プログラマーを経験していないSEは、SIを行う際、何が可能で何が不可能なのか?といった感覚が分からないからです。 例えば、データベースの設計を行う際、正規化しても性能に影響が出ないかどうか、ここは非正規化しておいた方がいいかな?、どこにインデックスをはろうか?といった感覚です。 また、そもそもSQLを書いたことがなければ、正規化・非正規化すら知らないままデータベースをただのデータの入れ物程度にしか思っていないSEもいます。 また、通信ミドルウェアでは、2フェーズコミットを平気で使いまくるSEも出てきます。2フェーズコミットは①通信回数、②ファイルI/O回数、③SPOF(単一点障害)の範囲を広げるなどの面で非常に性能・障害範囲に不利な機能なのですが、それを知らずに使う人も出てきます。 更には、状態遷移図をまともに書けないSEやクラスタリングを行う際の注意点なども知らないSEがいます。 その逆もしかり。 やたらとプログラミング言語のAPIやオブジェクト指向に詳しいプログラマーがいる一方で、そのプログラマーに性能改善を依頼しても、修正のキーポイントが分からない人もいます。 また、プロセス、スレッド、スケールアウトのどれを選択することがシステムの性能・可用性を担保することになるのかといった感覚に疎いプログラマーもいます。 負荷分散によるレスポンスの安定・リソースの有効活用といった概念をしらないプログラマーもいます。 こういった双方の知識不足から、おおよそ実現不可能な要件定義書を書くSEやSEの意図をくみ取れない基本設計書を書くプログラマーが出てくると言ったことが、よくあります。 私は、本来であれば、プログラマーを経験したのち、SEになるのが最適パスだと思っています。 両方を経験することで、SIerとして、システムアーキテクトとして立派な人材となりえるのだと思っています。
< 質問に関する求人 >
求人の検索結果を見る
< 平日勤務で週末はリフレッシュしたい人におすすめ >
求人の検索結果を見る
< いつもと違うしごとも見てみませんか? >
求人の検索結果を見る