エンジニア

【比較】システムエンジニア(SE)とプログラマー(PG)の違いとは?【役割・年収・スキル】

システムエンジニアとプログラマーの違いを知りたい人

「システムエンジニアとプログラマーの違いってなに? SEとかPGとか役割が違うのかな? 仕事内容や必要なスキル、年収の違いとかも教えてほしいな! あと、どっちを目指すべきかも知りたい!」

このような疑問にお答えさせていただきます!

本記事のテーマ

  • システムエンジニア(SE)とプログラマー(PG)違いとは?
  • システムエンジニア(SE)とプログラマー(PG)に必要なスキル
  • システムエンジニア(SE)とプログラマー(PG)の年収
  • キャリアプランは2つ【マネジメントかスペシャリスト】
  • プログラミングスキルが重要

上記5つをお伝えします!

この記事を書いている私は、IT業界で営業と採用を8年ほど。

私も昔は違いがわかりませんでした・・・

同じ悩みを持つ人に向けて、システムエンジニア(SE)とプログラマー(PG)違いを分かりやすくまとめてみました!

システムエンジニア(SE)とプログラマー(PG)違いとは?

役割が違います。

  • システムエンジニア(SE):「システムの設計」をする人
  • プログラマー(PG):「システムを製造」する人。

システムを作ることになったら、次の流れ(工程)で開発していきます。

システムエンジニアとプログラマーでは、担当する工程が違ってきます。

詳しく説明しますね!

システムエンジニア(SE)の役割?

どんなシステムを作るのか考え、「システムの設計」をする人。

上流工程をメインに担当。

顧客からの要望をヒアリングし、希望にあったシステムの設計。チーム管理やマネジメントもシステムエンジニアの仕事です。

具体的には、次の5つの工程が仕事内容。

  • 要件定義(No.1)
  • 基本設計(No.2)
  • 詳細設計(No.3)
  • 総合テスト(No.7)
  • 運用テスト(No.8)

システムエンジニアの「要件定義」「設計」をもとに、プログラマーが「開発・製造」するのが一般的な流れです。

要件定義(No.1)

顧客へヒアリングして、どんなシステムを希望しているのか具体化する工程。

  • システムの内容
  • 希望の機能
  • 使用用途
  • 納期
  • 予算

開発を依頼する会社と打ち合わせをして、上記の認識をすり合わせる作業です。

基本設計(No.2)

「要件定義」をもとに、利用者(ユーザー)の視点で必要な機能を洗い出します。

  • 業務フロー(なにができるか)
  • 機能の一覧表
  • 画面レイアウト
  • 帳票レイアウト
  • サーバー環境
  • データベース

操作画面のイメージなどもここで設計します。

システムの使いやすさにつながる重要なポイントです。

詳細設計(No.3)

プログラマーへ向けた設計書の作成。

どうやって機能開発をするかを書いた指示書です。次のようなイメージ。

  • 検索に文字入力 ⇒ 情報を表示する
  • ボタンをクリック ⇒ 画面が切り替わる
  • ID・パスワード入力 ⇒ ログインする
  • 商品を選ぶ ⇒ 商品をカートに入れる

「基本設計」は顧客向けですが、「詳細設計」は開発者向けです

総合テスト(No.7)

システム開発の最終テスト。

顧客が使うときと同じ環境でシステムを動かし、問題ないかチェックする工程。

機能ごとにテストする「単体テスト」などありますが、「総合テスト」は完成した後にする、最終確認の作業です。

運用テスト(No.8)

システム開発側ではなく、利用者(ユーザー)がする最終チェック。

ユーザーが本番と同じようにシステムを動かして、問題がないかテストします。

実際にユーザーとやり取りをしながらおこなうため、この工程はシステムエンジニアが担当します。

プログラマー(PG)の役割?

プログラミング言語を使って、「システムを製造」する人。

  • プログラミングとは?
    専用の言語を使い、コンピューターに「こう動いてほしい!」と伝えること

ちなみに「プログラミング」は次のようにも呼びます。

  • 開発
  • 製造
  • コーディング
  • コードを書く
  • プログラムを組む
  • PG工程
  • プログラミング工程

コンピューターと会話して希望通りに動くよう指示することが、プログラマーの仕事です。

具体的には、次の3つの工程が仕事内容。

  • 開発・製造(No.4)
  • 単体テスト(No.5)
  • 結合テスト(No.6)

開発・製造(No.4)

システムを実際に作っていく工程(プログラミング)。

システムエンジニアが作った「詳細設計」をもとに「開発(プログラミング)」をしていきます。

こんなイメージです。

単体テスト(No.5)

機能一つひとつが、動くかテストをすること。

システムは「開発⇒テスト⇒修正⇒テスト」の繰り返しです。

プログラマーがつくったプログラム(コード)が、予想通りの動きをするか、テスト検証するのが「単体テスト」です。

総合テスト(NO.6)

個々の機能を連携させて、正しく動くか確認するテスト。

「単体テスト」は機能一つひとつのチェックでしたが、「結合テスト」は機能を連携したときのテストです。

一つひとつは問題なくても、つなぐと動かないことがあります。

雷音
雷音
戦隊モノのロボットが、1体では動くけど、合体すると動かないなどはダサいですからね・・・

それを無くすためのテストだと思ってください。

システムエンジニア(SE)とプログラマー(PG)に必要なスキル

役割が違うので、求められるスキルも違います。

システムエンジニア(SE)に必要なスキル

顧客との折衝力・プロジェクトを成功させる能力が必要です。

具体的には次の3つ。

  • ヒアリング力・提案力
  • プロジェクト管理力
  • システム開発全体の知識

一つひとつ説明していきます!

ヒアリング力・提案力

顧客と開発の企画段階から、システムエンジニアはかかわります。

  • 要望のヒアリング
  • 機能の提案力
  • 納期・予算の交渉

どんなシステムを期待しているのか聞きだすだけじゃなく、「こういうシステムはどうですか?」と顧客へ提案することも必要。

自社にとって、無理な納期や予算にならないように「交渉する力」も重要です。

プロジェクト管理力

5つの「管理スキル」が必要

  • スケジュール
  • 予算
  • 人員(リソース)
  • 品質
  • リスク

プロジェクト全体を考えながら動くことが、システムエンジニアは求められます。

リーダーやマネージャーだけではなく、プロジェクトを成功させるには、システムエンジニアの「管理力(マネジメント)」も重要です。

システム開発全体の知識

「スペシャリスト(専門家)」より「ジェネラリスト(幅広い知識・経験)」。

システムエンジニアは全部の工程にかかわります。

そのため、一つの分野ではなく、幅広い知識とスキルが必要です。

プログラマー(PG)に必要なスキル

プログラミングスキルを身につけるには、次の3つが重要。

  • 論理的思考力
  • コミュニケーション力
  • 読解力

解説していきます!

論理的思考力

論理的思考力=ロジカルシンキング

難しいものごとを分かりやすく、すじ道を立てて考え、問題を解決する能力です。

プログラミングは論理的思考の連続。

  1. 「AをしたらBが表示される」
  2. 「Bを表示させたら、CかDの選択肢をだす」
  3. 「Cを選べばを表示する」
  4. 「Dを選べば×を表示する」

上記のように「なにをしたら、どう動くのか」をコンピューターへ指示するのがプログラミングです。

雷音
雷音
感覚ではシステムは動きませんので

論理的思考はプログラマーにとって必要不可欠です。

コミュニケーション力

チームメンバーと意思疎通をして、プログラミングをする能力。

「人付き合いがうまい」「社交性がある」とは違います。

具体的には、次のようなコミュニケ―ション力です。

  • 問題をわかりやすく、質問・相談する能力
  • 質問にわかりやすく、答える能力
  • 進捗や課題の状況を、まわりへ伝える能力

いわゆる「報連相」。

雷音
雷音
システム開発は一人では無理です・・・

チームメンバーと連携して開発するためには、「コミュニケーション力」が不可欠です。

読解力

  • 詳細設計書
  • 仕様書
  • 他人が書いたコード(プログラム)

これらを読み解く力が必要です。

プログラマーは「言葉」の指示以外にも、書類から「どうプログラミングするか」を考えなければならないので。

内容を「正しく」「すばやく」読みとることができるかで、仕事の効率が変わってきます。

システムエンジニア(SE)とプログラマー(PG)の年収

平成29年の「賃金構造基本統計調査 」調べです。

システムエンジニア(SE)平均年収:551万円

月額給与:371.800円
年間賞与:1,050,300円

プログラマー(PG)平均年収:418万円

月額給与:298.500円
年間賞与:601,200円

平成30年の「国税庁(民間給与実態統計調査)」では、サラリーマンの平均年収は約440万円。

「システムエンジニア」は一般サラリーマンより年収が110万円多く、「プログラマー」より135万円より高い結果です。

「プログラマー」は20万円ほど一般サラリーマンより低い結果ですが、大きく差があるわけではありません。

年齢・男女別にも年収を比較してみました。平成29年の「賃金構造基本統計調査 」調べ。

「システムエンジニア」は20代後半から、一般サラリーマンの平均年収440万円を超えてきます。

また、女性プログラマーをのぞけば、「SE・PG」は30代から平均年収が400万後半と高い水準になります。

SEとPGで年収が違う理由

下記4つが理由です。

  • システムエンジニアは人手不足
  • システム全体の専門的な知識・技術が必要
  • 上流工程や顧客との交渉が多い
  • プロジェクトリーダー・マネージャーも含む

プログラマーは「手を動かすプレイヤー」の立ち位置ですが、システムエンジニアは「管理などマネージメント業務」が多いのが理由です。

IT業界以外でも管理者のほうが給与は高いですからね。

ただ、IT業界自体が人手不足のため、システムエンジニアもプログラマーも努力で「年収1,000万円」を超えることも可能です!

雷音
雷音
新卒でも年収1,000万円で採用されたりしていますからね!

キャリアパスは2つ【ゼネラリストかスペシャリスト】

ゼネラリスト
システム開発全体の知識・技術もって活躍【マネージャー思考】

スペシャリスト
特定の分野や高いレベルのプログラミング能力で活躍【プレイヤー思考】

どっちが正解とかはありません。

得意不得意・向き不向きで考えてOKです。

ゼネラリスト【マネージャー思考】

「プログラマー⇒システムエンジニア⇒マネジメント(管理者)」が、一般的なキャリアパスです。

役割内容
プログラマー(PG)開発メイン
システムエンジニア(SE)設計・顧客折衝
プロジェクトリーダー(PL)PM補佐・管理
プロジェクトマネージャー(PM)プロジェクト全体管理

さらに先を目指す人は「ITコンサルタント」として、経営課題の解決をしたりもします。

「システムエンジニア」の仕事にやりがいを感じる人は、「ゼネラリスト」があっていると思います。

スペシャリスト【プレイヤー思考】

次のようなイメージです。

  • AIやIoTの最新分野が得意
  • 特定の言語が高いレベルでプログラミングが可能
  • 複数のプログラミング言語で開発ができる

自分のスキルを高めたい人は、「プログラマー」として「スペシャリスト」を目指すのが向いていると思います。

ゼネラリストだと「プロジェクト全体」や「チームメンバー」の管理がメインになってしまうので。

まずは、プログラミングスキルを高めよう!

プログラミングスキルの高い、システムエンジニアが最強

「システムエンジニア(SE)」はプログラミングスキルが高くない人が多いため。

システム設計や管理がメインで、プログラミングの機会が少ないからです。

雷音
雷音
理解はしているが、実際に手を動かせない・・・なんてことも。

「プログラムが書けるシステムエンジニア」になれば市場価値が高まります!

また、キャリアパスの選択肢も増えます。

  • ゼネラリスト・スペシャリストどっちも選べる
  • 技術力があるので独立できる
  • プロジェクトごとにSE/PGの役割ができる

エンジニア経験がある人だけじゃなく、IT業界を目指す人にも覚えてほしいポイントです。

最後に:システムエンジニア(SE)もプログラマー(PG)も貴重!

システムエンジニア(SE)とプログラマー(PG)の違いは「役割」です。

ただ、共通しているのは「超貴重な人材」ということ。

IT業界は圧倒的な人手不足。

経済産業省(IT人材需給に関する調査)」の調査では、2030年に日本のIT人材は「45万人」不足するといわれています。

「システムエンジニア(SE)」「プログラマー(PG)」どっちの職種も大事なんです!

なので、自分らしく働ける環境・職種を選んで仕事をしてください。

  • プログラミングがしたいのに設計書ばかり作ってる・・・
  • マネジメントや上流工程がやりたいのにプログラミングだけ・・・

もったいないです!

IT業界は人手不足で売り手市場。

きっと、自分がやりたいことができる環境がありますので!

それでは、今日はこの辺で。
最後までお付き合いありがとうございました!