【現場目線】プログラマーとシステムエンジニアって、実際どう違うの?

IT

将来、IT系の仕事に興味があるけれど、こんな疑問を思ったりしませんか?

Aさん
Aさん

プログラマーとシステムエンジニアって何が違うんだろう?

Bさん
Bさん

自分はどちらに向いているのだろう?

そんな疑問について金融SEとして約30年間現場を見てきた経験をふまえ分かりやすく解説いたします。
最後まで読んで頂くと仕事の内容や役割の違い、ご自身の適性がわかるようになると思います。

プログラマーとシステムエンジニアの違い

プログラマー(PG)とシステムエンジニア(SE)は、よく似ているようで、実は役割が大きく違います。
「建築」に例えるなら、
  プログラマーは「大工さんや職人さん」、
  システムエンジニアは「建築士さん」
のようなイメージです。

プログラマーは、設計図(仕様書)に基づいて、実際にプログラムを「作る人」です。
「建築」でいうと、設計図通りに壁を建てたり、窓を取り付けたりする大工さんのような存在ですね。プログラミング言語という道具を使って、システムが動くための「コード」をひたすら書いていきます。

一方、システムエンジニアは、どんなシステムを作るかを「考える人」です。
「建築」でいうと、お客さんから「こんな家に住みたい!」という要望を聞いて、間取りやデザイン、必要な材料などを考えて設計図を描く建築士さんです。

SEは、お客さんの「やりたいこと」をじっくり聞いて、それを実現するためのシステムの仕組みや全体の設計図(仕様書)を作ります。

「じゃあ、どっちの仕事が偉いの?」

なんてことはありません。どちらもシステム開発には欠かせない、大切な役割なんです。

野球でいうと、プログラマーがホームランを打つバッターだとすると、システムエンジニアは、どんな球種を投げるか作戦を立てる監督、あるいはキャッチャーという感じでしょうか。お互いに協力し合って、一つのチームとして、最高のシステムを作り上げていきます。

プログラマーってどんな仕事?

プログラマーの仕事は、ズバリ「プログラミング」です。

SEが作った設計図(仕様書)を読み解いて、コンピューターが理解できる言語(プログラミング言語)を使って、コードを書いていきます。

たとえば、
「ユーザーがボタンを押したら、この画面が表示される」という動きや、
「このデータを入力したら、こんな計算結果が出る」といった処理を、
一つひとつ丁寧にコードに落とし込んでいくんです。
まるでパズルのピースを一つずつ埋めていくように、緻密で根気のいる作業です。

<プログラマーの仕事の具体的な流れ>
  • 設計書の確認
    設計書を隅々まで読み込んでシステムの動きを頭の中でイメージします。

  • プログラミング
    設計書通りに、ひたすらコードを書いていきます。
  • デバッグ
    書いたコードに間違い(バグ)がないかチェックします。バグが見つかったら、原因を突き止めて修正する作業も重要な仕事です。
  • 単体テスト
    作成したプログラムが、仕様書通りに正しく動くか、細かくテストします。

プログラマーの仕事は、一人で黙々と作業することも多いですが、チームのメンバーと協力しながら進めていくこともたくさんあります。

「このコード、どう書けばいいんだろう?」

「あれ?なんかうまく動かない…」

そんな時は、チームの先輩や仲間に相談しながら解決策を探していきます。

プログラマーにとって一番嬉しい瞬間は、”自分が書いたコードが思い通りに動いたとき!”。

まるで、自分の手で魔法をかけたかのような、大きな達成感を感じることができます。

システムエンジニアってどんな仕事?

システムエンジニア(SE)の仕事は、一言でいうと「システム開発の全体をマネジメントすること」です。

お客さんの要望を聞き、それを実現するためのシステムを考え、設計図を作り、プログラマーをまとめ、チーム全体を引っ張っていくリーダーのような役割です。

僕がこれまで経験してきた金融機関の仕事で例えると、こんな感じです。

ある日、ユーザ部門のスタッフから、「新しく○○といった業務で使うシステムを作りたいんだけど…」という相談を受けたとします。その時、SEはまず、ユーザ部門と何度も打ち合わせを重ねます。

  「どんな機能が必要ですか?」
  「どれくらいの人が使う想定ですか?」
  「予算はどれくらいですか?」などなど

たくさんの質問をしながら、ユーザ部門の「やりたいこと」を深く掘り下げていきます。

そして、その要望を形にするために、システムの全体の仕組みや、どんな技術を使うか、どれくらいの期間と人数で開発するか…などを考えて、設計書という書類にまとめていきます。
この設計書が、先ほど話した、プログラマーがコードを書くための地図になるわけです。

<システムエンジニアの仕事の具体的な流れ>
  • 要件定義 
    お客さんの要望をヒアリングし、どんなシステムを作るか定義します。 
  • 設計
    要件定義をもとに、システムの全体の設計図を作成します。
  • プログラマーへの指示
    作成した設計書をプログラマーに渡し、作業を依頼します。
  • 進捗管理
    プログラマーの作業が計画通りに進んでいるか確認し、何か問題があれば解決策を探します。
  • テスト
    プログラマーが作ったプログラムが、設計書通りに動くか確認します。
  • 運用・保守
    システムが完成してからも、問題なく動いているか見守ったり、不具合があれば対応したりします。

SEの仕事はお客さんやプログラマー、チームのメンバーなど、たくさんの人とコミュニケーションを取ることがとても多いです。

「このスケジュールだとちょっと厳しいかも…」

「この機能、もっと良い方法があるんじゃない?」など、

常にチームで話し合い、より良いシステムを追求していきます。
SEのやりがいは、自分が考えたシステムが実際に世の中に出て、たくさんの人に使ってもらえているのを実感した時です。

プログラマーとシステムエンジニアの適性とは?

プログラマーとシステムエンジニア、どちらの仕事に向いているのか、気になりますよね?

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

●論理的に物事を考えるのが得意な人:
 プログラムは、論理的な思考力が必要です。
 「AならばB」というように、筋道を立てて考えるのが好きな人は向いています。

●集中力がある人:
 一つの作業に集中して、コツコツと進めることが得意な人は、プログラミングの作業を楽しめるでしょう。

●探求心がある人:
 「なんでこのコードは動かないんだろう?」と
 原因を徹底的に探求できる人は、優秀なプログラマーになれます。

●新しい技術を学ぶのが好きな人:
  ITの世界は常に新しい技術が登場します。
  新しいことを学ぶのが苦にならない人は、この仕事を楽しめるはずです。

システムエンジニアに向いている人

●コミュニケーションが得意な人:
  お客さんやチームのメンバーと円滑にやりとりができる能力は、SEにとって一番大切なスキルと
  言っても過言ではありません。

●全体像を把握するのが得意な人:
  細かいことだけでなく、システムの全体像を俯瞰して考えるのが得意な人は、設計の仕事を楽しめます。

●リーダーシップを発揮したい人:
  チームをまとめ、プロジェクトを成功に導きたいという気持ちが強い人は、SEとして活躍できます。

●物事を計画的に進めるのが好きな人:
  スケジュール管理や予算管理など、プロジェクトを計画的に進めていくのが得意な人は、SEの仕事に
  やりがいを感じるでしょう。

適性検査ってどんな検査?

IT系の会社に入社する際、適性検査を受けることがよくあります。これは、仕事に必要な能力を持っているか、性格が会社の雰囲気に合っているかなどを判断するためのテストです。プログラマーやSEの適性検査でよく問われるのは、主に以下のような項目です。
特別な勉強は必要なく、今の自分がどんな人間なのかを正直に答えることが大切です。

項目内容
論理的思考力 パズルや数学の問題を解くような形式で、論理的に考える力を測ります。
読解力設計書などのドキュメントを正しく理解できるかを見るテストです。
性格診断チームで働くことが多いため、協調性や責任感、ストレス耐性などを診断します。

プログラマーからシステムエンジニアになれるの?

結論から言うと、プログラマーからシステムエンジニアになることは、十分可能です!

僕自身も、最初はプログラマーとしてキャリアをスタートさせました。
何年かプログラマーとして経験を積む中で、システムの全体像を理解したり、お客さんと直接やりとりをしたりするうちに、「もっと上流の仕事をしてみたい!」と思うようになりました。

プログラマーとして、実際にコードを書く経験があることは、SEとして大きな強みになります。
なぜなら、プログラマーの気持ちや、コードを書く上での大変さを理解しているからです。

「この設計だと、プログラマーは作業しにくいだろうな」とか、
「この機能、実装するのにどれくらいの時間がかかるかな」

といったことを、プログラマーの目線で考えることができるんです。

これは、プログラミング経験のないSEにはない、大きなアドバンテージです。
プログラマーとしてスキルを磨き、経験を積み重ねていくうちに、自然とSEとしての仕事にも関わるようになります。プロジェクトのリーダーを任されたり、お客さんとの打ち合わせに参加したり…そうした経験を重ねることで、少しずつSEへのキャリアパスが開けていくんです。

【まとめ】どちらもIT業界を支える大切な仕事

プログラマーとシステムエンジニアは、どちらもIT業界を支える大切な仕事です。

  • プログラマー   : 設計図に基づいて、実際にコードを書く職人さん
  • システムエンジニア: お客さんの要望を聞いて、設計図を描く建築士さん

どちらの仕事も、それぞれの楽しさややりがいがあります。
もし、この記事を読んで、「プログラミング、ちょっとやってみようかな?」と思った人がいたら、ぜひ挑戦してみてください!今では、インターネット上に無料で学べるサイトもたくさんあります。

まずは、簡単なコードを書いてみて、コンピューターが自分の命令通りに動く面白さを体感してみましょう。

みんながITの世界で活躍してくれることを、心から応援しています!