システムエンジニアとプログラマーの違いとは?仕事内容・年収・キャリアパス

はじめに


この記事に来てくださった方は、

 

「システムエンジニアとプログラマーは何が違うんだろう?」と悩みを持っている方だと思います。

 

結論から先に書いてしまうと、(異論は多少あるかもですが)誤解を恐れず断言してしまえば、

 

システムエンジニアもプログラマーも同義語と言ってしまって良いと思っています。

 

「プログラマー」と「エンジニア」という言葉が同義語であるのと同じ感じだと思う。

 

同義語とは、語形は異なるが、意味は互いによく似ており、場合によっては代替が可能となる二つの語、という意味ですので、

 

自分はプログラマーであると自認している人が『自分はシステムエンジニアです』と言うことも出来ますし、その逆も然りです。

 

ただし、ミクロ単位で見ると、その言葉が纏うニュアンスが微妙に違っていたりするのも事実としてあります。

 

事実として、システムエンジニア(SE)という職業を名乗っているけれども、プログラミングは出来ない人も結構たくさんいます。

 

そういう人は、プログラマーとは言えませんよね?でも、プログラミングが出来るSEもいるわけなので、そういう人はSEとも言えるしプログラマーとも言えます。

 

もっと言ってしまうと、自分で自分のことを「エンジニア」と言ってる人は、自分のことを「SE」とは絶対言わない気もするし、

 

そういう感じで、各々が持つ言葉の意味が、その人の状況によって多少に変わるのがややこしい所でもあるわけです。

 

この記事では、そういう前提を先に理解してもらった上で、各々の言葉が別々の意味として使われるパターンを詳しく解説してます。

 

システムエンジニアとは

システムエンジニアという言葉は、主にシステムの設計や仕様、テスト設計などを策定する人々のことを指し示すことが多いです。

 

要は、大きなプロジェクトの一番上の上流工程で仕事をする人たちです。

 

どのようなプログラミング言語を使い、どのようなデータベースの設計をして、どのような画面遷移があって、どのようなコード規約にするのか… etc

 

そういうプログラミングに入る前の基本設計や詳細設計を作る人のことを、主にSEと言ったりします。

 

ですから、プログラミングをやらない…というより全くできない人もチラホラいたりします。

 

ただし、昨今の開発の現場では、アジャイル手法と言って、

 

大きなプロジェクトでも、皆んなでエンジニアが作りながら設計していくスタイルも増えてます。

 

更に、SEという言葉自体は、どちらかといえば古い言葉で、

 

最近はPM(プロマネ)とかPMOとかいう言葉に代替されつつあると思います。

 

プログラマーとは

プログラマーは、まさに言葉そのままで、プログラミングする人ですよね。

 

従来では、SEが策定した仕様書や設計に沿って、

 

プログラミングを行う下請けのような存在として、捉えられることが多かったようです。

 

ただし、先ほども記載しましたが、今の時代は最初から、

 

エンジニア達自身がプロダクトの設計に関わってくることも多いですし、

 

SEが策定した仕様書や設計通りに何もかも進むわけではないので、

 

プログラマー自身もプロダクトの設計はある程度頭に入ってるのが普通です。

 

SEとプログラマーの違いとは?

SEの業務

SEの業務は、主にプロジェクトのマネジメントが中心になってきます。

 

先ほども記載した通り、全体の仕様や設計を考えたりですとか、

 

全体の納期を決めて、プログラマーが実装して出来てくるソフトウェアの進捗の管理ですとか、

 

テストコードの仕様を考えたり、

 

そのプロジェクトに関わるステークホルダーとのやり取りや、交渉など、

 

そういう仕事は全部SE、、、というかプロマネが担う仕事です。

 

プログラマーの仕事は、基本的には純粋なプログラミングだけです。

 

プロマネやSEが、「こういう機能を追加して欲しい」という要望をプログラマに投げます。

 

それを純粋に実装して動くソフトウェアを納期までに実装して納品するのです。

 

ただし、これも最近の開発の現場では、SEやプロマネの立場の人が、

 

きちんとコードも書いて指示も出すという人も多いです。

 

SEとプログラマーの年収の違いとは?

基本的に、日本のソフトウェア開発の現場では、上流工程に行けば行くほど年収が高いです。

 

フリーランスの現場とかでは、プログラマーは単価平均70万とかで、上限100万前後です。

 

でもSEとかプロマネのような上流工程を扱う人は、150万とか200万とかになります。

 

実際に動くコードを書くエンジニアの給料が低いのは、ITの本場である米国とは真逆です。

 

SEとプログラマーのスキルの違い

SEに求められるスキル

基本的に、SEに求められるスキルは、プロジェクトの全体像を管理して、

 

バグがなく全部ちゃんと動くソフトウェアを納期までに作り切ることです。

 

自分で高品質なコードを書く必要はありませんが、

 

プログラマーをしっかり管理して、必須機能や必須画面も漏れなく実装してもらい、

 

テストもしっかり通して脆弱性の少ないソフトウェアを作る必要があります。

 

ステークホルダーに対する説明をしたり、場合によっては交渉力も必要です。

 

そういう観点から考えると、SEがコードを全く書けないというのは、理に適ってないとも言えます。

 

自らがコードをわからなければ、エンジニアに適切な指示をしたり、適切に工数を見積もることも難しいでしょう。

 

プログラマーに求められるスキル

プログラマーに求められるスキルというのは、ズバリ開発力です。

 

早く読みやすい動くコードを、実装さえすれば、全てが許されます。

 

上から降りてきた指示に対して、仕様通りに動くコードを書く、

 

これがプログラマーの仕事です。

 

プログラマーに向いている人

兎に角プログラミングがしたい

プログラマーに向いている人というのは、基本的にはシンプルです。

 

まずはプログラミングをすることが、何よりも好きな人、

 

こういう人は勝手にコーディングスキルは上達していきます。

 

コードが動く喜び、コードが理解できる喜びを感じれる人は、

 

まずはプログラミングをやってみるべきだと思います。

 

あまりビジネスには関心がない

あまりビジネスに関心がない人も、生粋のエンジニア気質と言えるでしょう。

 

どうしてもプログラミング以外の興味関心が強い人は、

 

生真面目にコーディングをする忍耐が持てなくなってくる時期があります。

 

しかし、プログラミングだけをピュアに愛せる人は、

 

プログラミング言語のコミッターなどにもなれるほど、エンジニアスキルが上達すると思います。

 

交渉や営業はやりたくない

プログラミングの仕事は、基本的には定められたTODOをそつなくこなしていくだけです。

 

上から指示された機能を実装さえしてくれれば、基本的には大きな文句は言われません。

 

でも、SEとかプロマネの場合は、そうはいけません。

 

色んな政治にも関わらないとうまく仕事が進まない場合もありますし、

 

売り込みや交渉をするのが苦手な人は、プログラマーが向いてるでしょう。

 

SEに向いている人

資料を作るのが好き

SEは、コードを書いていく前の様々な作業を行っていきます。

 

割と大きな会社のプロジェクトが多いと思うのですが、

 

そういう現場では様々な資料作りが必ずあります。

 

営業や交渉が好き

コードを書くよりも、人と接したり交渉するのが好きな人はSEに向いてます。

 

エンジニア達とコミュニケーションをとって、様々な意見を汲み取り、

 

納期まで上手にプロジェクトを運んでいく力が求められますね。

 

ビジネスや金儲けが好き

基本的に、SEやプロマネは、どちらかといえばビジネスサイドの仕事です。

 

先方の会社に営業に出かけて行って、なるべく高い単価で案件が取れるように、

 

プロジェクトの論理的な説明をしたりする必要があります。

 

保守の契約を取る際も、工数を正確に見積もって話し合いをできる必要があります。

 

SEとプログラマーの将来性の違い

SEの将来性とキャリアパス

基本的にSEと呼ばれる職業の人々は、管理職になっていくプロセスが明瞭です。

 

キャリアアップすればするほど、コードは書かなくなっていきますし、

 

作業的なことは部下に任せ、より上流の仕事が増えていくでしょう。

 

プログラマーの将来性とキャリアパス

他方でエンジニアは、年配になってもガンガン開発だけをする人も結構います。

 

エンジニア定年35歳とか言われていますが、そんな話はあり得ません。

 

40代50代になっても、エンジニアとして前線でバリバリとコードを開発してる人が多いです。

 

その中には、外資系の会社に転職したり、自分でサービスを開発してる人もいます。

藤沢瞭介(Ryosuke Hujisawa)
  • りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

IT業界IT用語テクノロジー全般

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です