システムエンジニア(SE)とプログラマー(PG)の違いについて。この本の説明は興味深かった。新鮮というか。後述します。
一般的な理解としては以下のようなものか。
PM(プロマネ) | 会社でいうと部長さんか課長さん。プロジェクトの取りまとめ役 |
SE | 客先と仕様を打ち合わせてプログラマーに指示を出す人。課長さんか係長 |
PG | 指示を受けて、数人でシステム改善したり、ソフト作ったりする担当者 |
ある程度規模の大きな会社だったら、社内にシステム屋さんを囲ってるので、誰がSEとかプロマネとか意識しない場合も多いと思います。あそこに座ってる、〇〇さんに頼む。それだけです。
たとえば売上数百億円規模の事業部門の場合、その事業部門の企画部に、全社のIT企画あたりからIT担当者が派遣されてきて、事業部門の意向を受けて、IT関連の差配をする。
そういうIT担当者に聞くと、20人常駐でシステム屋さんを雇うと年間2億円。常駐の業務委託で保守運用、業務改善などを、子会社であるシステム関連会社に発注する。そこは一次下請けで、一次下請けは二次下請けの人間を混ぜて人件費コストを下げる。
20人で2億円だと1人1000万円/年なので、だいたい時給5000円以下か。常駐業務委託なので、スポット外注するより単価が安くなってる。
関西だったら、スポットでシステム改善を外注すると、時給4~7000円ぐらいが相場か。会社の規模や人材によって単価は違う。もちろん一流どころはもっと高い。
結局システム会社っていうのも、派遣や請負会社と同じで、中抜きの口銭が利益になってる。一次下請けは1人1000万円取って、抜いて社員や、下請けに渡す。二次下請けはさらに抜いて、社員に渡す。二次請けの人の年収は400万円/年ぐらいだったりする。600万円はどこに消えたんだ・・・。
より上流にいないと、実入りが少なくなる。小規模の会社にいる、あまりスキルのないPGは大変だと思う。
本書によると、
SEおよびコーダーの作業範囲は、
・webページのデザインや作成
・インターネットサーバの構築や運用
・web掲示板の設置
・ブログの設置や開設
一方プログラミングとは、
・webそのものを作りだす
・インターネットそのものを作りだす
・掲示板という概念を作りだす
・ブログという概念を作りだす
プログラミングは、時代を簡単に変えてしまうと。
もう少し具体的な説明は以下。
システムエンジニアは、実際にはプログラマーを兼ねることが多く、銀行や証券など、いわゆる基幹系システムの構築は、プログラマーと呼ばれる人はほとんど関わらず、システムエンジニアと呼ばれる人の独壇場。
プログラマーという職業の人はどこにいるのか?ソフトウェアを開発する会社や、メーカー、ゲーム会社、webサービス企業などにいる。
プログラマーによっては、SEを軽く見ている場合もある。SEが扱うプログラミング言語は最先端のものというより、枯れた(数世代前の)ものであることが大半で、バリバリのプログラマーが求める、最先端のプログラミングテクニックが使えないことが多い。
またSEが扱うシステムはあまりにも規模が大きいため、全体より部分を担当するケースが多く、そうした仕事に面白みを感じられなくて、SEを辞めPGとして働ける環境に転職するケースがある。
一般的にSEはスーツで9時5時勤務する普通のサラリーマン。職業PGのように短パン裸足で会社をうろつくことはない。
なるほど。目次は以下。
第1章 アイデアがみるみる形になるプログラマーとの仕事術
・なぜ「プログラミング」なのか,
・プログラマーとどう出会うか ほか
第2章 小さなコツで成果が変わるプログラマーとの付き合い方
・なぜ彼らはあんなに気難しいのか
・プログラマーの一日 ほか
第3章 「文系だから」は関係なし!楽しく始めるプログラミングの学び方
・プログラミングができるようになりたい人へ
・外国語とプログラミング言語の類似点 ほか
第4章 全くわからない人のためのプログラミングとコンピュータの基礎知識
・プログラミング言語とは
・コンピュータのしくみ ほか
付録 プログラミング&プログラマー用語辞典
その他の読書メモを。
PGに無理と言われたら、セカンドオピニオンを探せ
プログラマーの能力は、人によって何千倍も違う。これがPGという仕事の特殊なところ。
あるPGが半年かけてやることを、別のPGは1時間で終わらせることができる。難しいと思い込んでいる仕様や、調べるのが面倒くさそうな仕様を、PGが無理ということがある。PGが無理と言った場合、なぜ無理なのか本人に聞いても無意味。無理な理由しか言わない。
そういう場合は、外部のPGに相談する。
リファクタリングは許してはならない
リファクタリングとはソースコードの整理。いわば机の上を片付けている状態。プログラムをずっと書いてると、リファクタリングしたくなることが頻繁にある。耳掃除したり、歯を磨いたりするのと似ている。きれいにリファクタリングできると気持ちよくなれる。PGは多くの場合、自分の書いたコードをリファクタリングするのが大好き。
リファクタリングにはまると、作業はまったく進行しなくなる。リファクタリングというのはいつまでもできてしまう。整理方法を考えているだけで、PGは楽しくなってしまう。PGがリファクタリングにはまるのは、たいてい現実逃避。本当は作業が行き詰っているのに、ソースコードが整理されてないせいにする。
プロマネはPGがリファクタリングしてると言い始めたら、最大限の注意を払わなければならない。それはプロジェクトが暗礁に乗り上げる危険信号だから。
全角スペースとは?
プログラマーを発狂させる悪魔。プログラムは基本的にすべて半角スペースしか使えない。誤って全角スペースを半角スペースに混ぜてしまうと、コンパイルエラーが起きる。しかしプログラマーはすぐに問題を発見できず、発狂する。
デスマ
デスマーチ。死の行進を意味する。プロジェクトの出口が見えず、何日も残業が続き疲弊すること。ただ、それほどキツイ仕事でもないのに、デスマを自称するエアデスマの状態もよくみかける。デスマって嘆いていても、そっとしておくのが吉。
プログラミング言語とは
世界には数千のプログラミング言語があり、今も増え続けている。なぜそんなにたくさんあるのか?それは言語によって得意なことが違うから。ある言語では非常に複雑な書き方になってしまうことが、別の言語では非常に簡単になったりする。
現在よく用いられている言語には以下のようなものがある。機械語(マシン語)、C言語、C++、C#、ジャバ、ジャバスクリプト、オブジェクティブシー、スイフト、ハスケル、PHP、ルビー、パール、フォートラン、リスプ、コボル、スモールトーク。
厳密にはプログラミング言語ではないものの、プログラミングをするときに使う特殊な言語は、HTML,CSS,SQL,GLSLなどがある。
プログラマーはこうした様々な言語を組み合わせて使う。たとえばwebサービスを開発するには、通常4~5種類の言語を理解している必要がある。
以下に本書からの言語の特徴まとめを。
初心者のうちはお金を使わなくても、オンラインの入門サイトだけでたいていのことが勉強できる。本書のおすすめプログラミング入門サイトは以下。