ITに関係する仕事につきたいと思った時に、まず頭に浮かぶ2つの職種があります。
「プログラマー」と「システムエンジニア」です。
この2つの職種の名前はよく耳にすると思いますが、それぞれの仕事の中身と違いについて詳しく知っているという人は少ないのではないでしょうか。
これら2つの職種は、コンピュータを動かすソフトウェアを作る仕事であるということは共通しているのですが、「実装」と「設計」とに役割が分かれます。「大工」がプログラマーで「設計士」がシステムエンジニアと例えられることがあります。
しかし、この2つの職種の違いはもっとたくさんあります。どのような違いか、筆者が8つの視点で解説していきます。
目次
1.プログラマーとシステムエンジニアの仕事の違い
まず、プログラマーとシステムエンジニアの仕事の違いについて理解しておきましょう。
プログラマーの仕事
プログラマーの仕事とは、システムエンジニアが作成した設計書に基づいて実際にプログラムを組むことです。
プログラムを作成したら、設計書通りに動作するかどうかテストを行います。システムエンジニアが設計書を作成するまでを「上流フェーズ」といいますが、プログラマーの仕事は「下流フェーズ」といい、作成からテストまでを担当します。
システムエンジニアの仕事
システムエンジニアは、顧客と打合せを行い、これから作成するソフトウェアにどのような機能を持たせるかなど要件定義からプロジェクトを管理する仕事です。
そしてその「要件」を満たすため、プログラムの構造を考え、プログラマーが実際に作れるように設計書を作成します(設計)。これを「上流フェーズ」といいますが、システムエンジニアは打合せから設計までを担当します。
2.年収が高いのはどちら?
IT関係のメイン職業である、プログラマーとシステムエンジニアですが、その年収はいったいどれくらいなのでしょうか。
ここでは厚生労働省2019年「令和元年賃金構造基本統計調査」より、プログラマーとシステムエンジニアの平均年収についての調査結果をお伝えします。
プログラマーの平均年収
プログラマーの平均賃金は約425万円。
企業規模にもよりますが、従業員数が多い大きな企業ほど年収は高くなる傾向です。サラリーマンの平均年収とほぼ同じであり、日本人の平均的な年収であると言えます。
システムエンジニアの平均年収
厚生労働省の同資料によれば、システムエンジニアの平均537万円。
システムエンジニアは、会社に入ってからある程度の年数の経験を積んだ人が多いため、年齢や経験の分、給与が高くなっているものと考えられます。
3.求人状況を比べてみよう
プログラマーやシステムエンジニアの求人は、どれくらいあるのでしょうか。求人数が多いと就職や転職もしやすくなりますし、逆に少ないと採用は厳しめになります。
ここでは各種の統計データを紐解きながら、プログラマーやシステムエンジニアの求人がどの程度の量なのか見ていきましょう。
プログラマーの求人状況
プログラマーは求職者数より求人数が多いという結果がでており、就職はしやすい職種だといえます。
厚生労働省が発表した2020年5月の「一般職業紹介状況」によりますと、プログラマーやシステムエンジニアの求人数は39,255件で技術系の12職種の中でも4位になっていました。
このデータには有効求人倍率も掲載されていて、プログラマー・システムエンジニアの属する「IT/通信」の分類では1.57倍となっています。コロナ禍の影響ですべての求人が少なめになっている中、この数字は多い方だと言えます。
システムエンジニアの求人状況
システムエンジニアの求人も求職者数より多く、就職はしやすいといえます。
転職情報サイト「doda」が公表しているデータによりますと、システムエンジニアが属する「IT/通信」という分野に関しては、求人倍率がここ数年5倍を下回ったことはありませんでした。
ソフトウェア業界では、常に優秀なシステムエンジニアを探しており、恒常的に高い需要がある職種だといえます。
4.扱うプログラム言語の違い
プログラマーやシステムエンジニアが活躍するステージで、実際に現在多く使われている技術や言語は何なのでしょうか。そして、近い将来言語環境はどのように変わっていくのでしょうか。その変化の兆候についても紹介していきたいと思います。
プログラマーの扱う言語とは
2020年7月現在、主に使用されるプログラミング言語には、次のようなものがあります。
Webページ構築関係
HTML
CSS
Javascript
PHP
アプリケーション開発関係
SQL
Python
JAVA
安定したシステムを納品するには、実際に使用されて実績があり、プログラマーやシステムエンジニアにとって多くの知見が蓄えられている言語が使用されます。
ところが、現在プログラマーたちに好みについて聞いてみると「Rust」という言語が1位になりました。今後主流になっていく可能性がある言語でしょう。
システムエンジニアの扱う言語とは
システムエンジニアも、Webアプリケーション開発や業務アプリケーション開発などの仕事に携わるにあたり、プログラマーと同様の言語を扱います。
またAI、ブロックチェーン、クラウドといった、これからの世界を根本的に変えていくような力を持った新技術に対しても学習が必要になります。
プログラマー同様、システムエンジニアには常に自己研鑽が欠かせません。
5.プログラマーとシステムエンジニアの適性の違い
IT業界に転職を志す人にとって、「果たして自分は向いているのか」ということは大変気になるところです。まずは、両方に共通する適正としては次にあげるような特性があります。
集中力・・・何か一つのことに長時間夢中になれる人
想像力・・・自分が行った処理の結果が想像できる
好奇心・・・常に新しいものに対する興味がある
論理的思考力・・・物事を整理して順序だてて考えることができる
よく文系と理系はどちらが向いているかという議論がありますが、ソフトウェアを作る職業であるという点に関して、文系や理系の区別は、適性とはあまり関係がありません。ちょっとくらい英語や数学が苦手でも適性があれば大丈夫です。
ここでは、プログラマーとシステムエンジニアという職業にはどのような適性がある人が適しているのかについて解説していきます。自分のことにあてはめて考えてみてください。
プログラマーに向いている人
次にあげるような適性を持っているひとは、プログラマーに向いていると言えます。
規則的なものを受け入れやすい
自分の感覚より規則を優先する人はプログラミング言語の決まりも受け入れやすく理解が早い傾向にあります。
妥協が嫌い
作ったプログラムが思った通りに動作しない時、途中で決してあきらめずに原因を突き止めることができる人は向いています。
新しいものを学習する意欲がある
プログラムの世界は次々と新技術が出てきます。新登場の言語を新しく覚えなおすことがスムーズにできる人は向いていると言えます。
考え方が柔軟
プログラムでは「動かない」「何が原因か分からない」などのトラブルも想定されます。重要なのは解決の糸口を早く見つけること。常識や先入観にとらわれず様々な角度から考える人こそ適正があります。
物事を効率化しようと考える
面倒くさがり屋でなんでも簡単に済まそうとする人は、複雑なものを単純化する方法を考えつきます。プログラムはまさにそれでありこういう人は向いていると言えます。
モノ作りが好き
プログラム作りは無から有を生み出す作業です。何かを作りたいと思っている人は常にモチベーションを維持できるため、向いていると言えます。
システムエンジニアに向いている人
システムエンジニアには、前段に述べたようなプログラマーの適性にくわえて次のような人が向いています
コミュニケーションが上手な人
システム設計では、クライアントが要求を理解しまとめることが求められます。
コミュニケーション力のある人は短時間で、要件定義まで行います。一方、クライアントの要求を理解できない場合、何度もやり取りを繰り返すこととなります。
勉強が好きな人
変化が日々進むIT業界では、次々と出てくる新しい技術を次々と覚えていかなくてはなりません。専門外であるクライアントの業務を理解することも必須となります。勉強して新しいことを覚えるのが好きな人がシステムエンジニアには向いていると言えるでしょう。
変化を拒まない人
ITの世界は、ほんの数年前まで常識であった技術が現在では過去の遺物となってしまっていることもめずらしくありません。システムエンジニアには、こうした変化に対応して、順応していくことのできる人が向いています。
6.採用試験で見られるポイントの違い
IT業界に転職、または就職しようとする人にとって、採用試験はどのようなものかについても大変気になるところです。業界ではどのような点が採用のポイントとなるのでしょうか。職種ごとに見ていきます。
プログラマーの採用ポイント
IT業界に限らないことですが、面接では、次のようなことを聞かれます。
Q.当社を志望した動機は何ですか
「貴社の得意とする○○開発に携わり、○○の分野で誰よりも技術力のあるプログラマーになりたいと思ったからです。」などポジティブな回答を心がけましょう。
「なぜこの会社に入りたいと思ったのか」ということはどの会社でも必ず聞かれます。面接担当者はあなたがどれくらい強く志望しているかということを知りたがっています。
「仕事が楽そう」とか、「他が採用してくれずここしかなかった」などのネガティブな理由はNGです。
Q.将来のキャリアビジョンを教えてください
「〇○○開発に携わることによって、〇○○の資格を取りもっと大規模な開発に携われるようになりたいです。」などのあなたの未来を伝えます。
将来展望を聞かれる理由は、面接担当者はあなたが成長しようとする意欲がどれほどのものかを知ろうとしているからです。
会社を通じて具体的に勉強したいことと成長した「自分のなりたい姿」を語ってください。
Q.現在スキルアップするための取り組みとしてどのようなことをやっていますか
「今、〇○○について書籍やWEBなどで学習しています。」などと明確に答えることが必須です。
プログラマーやシステムエンジニアであれば、自分で勉強することが欠かせません。逆に今勉強していることがないというと、マイナスな印象を与えることになるでしょう。
Q.あなたは、当社にどのようなことで貢献できますか
「私は、スケジュールを立てるのが得意ですので、工程管理などの業務に活躍できます。」など、具体的な回答が望ましいとされています。
会社はあなたがどのような人か、まだわかっていません。あなたは自分の知る範囲でこの会社を発展させるために何ができるかについて考えておいた方が良いです。一定の給料をもらうのなら、それ相応の貢献を求められます。
IT業界以外の会社でもされるような質問がくることが予想されます。なにより、本気でこの会社を志望しているのかどうかという覚悟や決意が問われるでしょう。
システムエンジニアの採用ポイント
システムエンジニアの場合は、職業としての能力が問われることが多いです。志望動機や自己PRのほかに、次のようなことを聞かれます。
Q.前職ではどのような仕事を行ってきましたか
「前職では〇○○年に〇○○のプロジェクトに携わり、要件定義から設計までを担当していました」など、具体的に答えるのが良いでしょう。
面接担当者はあなたの実力がどのように生かされ、どの程度優れたものなのかを知りたいと思っています。
面接時には職務経歴書も作っていると思いますが、それぞれの経歴の具体的中身についてきちんと説明できるように書いておくとよいでしょう。
Q.どのような仕事を担当したいと思っていますか
「貴社が今最も得意としておられる〇○○に携わりたいと思っています。」など、転職先の会社が力を入れている分野に対しての意欲を見せるのが良いでしょう。
面接担当者は、あなたの想いと会社が期待することがどれくらい一致しているかを見たいと思っています。
Q.転職する理由は何ですか?
「以前の会社では経験することのできなかった〇○○について取り組むことができれば自分を成長させることができると思ったからです。」と面接する会社の特徴と自分が成長したいという思いを結びつけて答えることが望ましいとされています。
面接担当者は、前職で何があって辞めたのかということを最も気にします。「仕事が大変だったので」や「自分の能力がついていかなくて」などの理由はNGなので、あくまでも前向きな考え方で臨みます。
また、面接官はこうした面接を進めながら会話のキャッチボールがうまくできるかどうかも同時に見ています。システムエンジニアは顧客と打合せを行うことが多いのでコミュニケーション能力が問われるからです。
7.転職先で求められるスキルの違い
プログラマーやシステムエンジニアはプログラミング言語を使ってプログラムを作成するのが仕事であることは間違いありませんが、職業人としてそれ以外の能力も問われるものです。
ここではそれは何か、解説していきます。
プログラマーの場合
・即戦力として活躍するかどうか
・協調性があるか
会社側は、プログラマーには直ちに実装作業を任せることを期待します。また、作成中は一人で作業するにしても全体の作業はチームで行っていると思います。チームメイトと協調して全体の進捗に貢献できるかどうかという協調性も大事になるでしょう。
システムエンジニアの場合
・プレゼンテーションがうまい
・交渉力がある
システムエンジニアでは上記のようなコミュニケーション能力を求められます。顧客と折衝し、システムに要求されるものは何なのかをまとめ上げる仕事を担当することになるからです。
さらに、プログラマー以上にプログラミング言語の理解にたけていることのほか、次のようなスキルが求められます。
柔軟な発想力
システム設計上、困難な問題に直面した時、常識にとらわれた固定的なものの見方をせずあらゆる方面から柔軟に検討することができて、問題解決を図れることも重要なスキルです。
マネジメント能力
システムエンジニアは自社のプログラマーたちや、外注先もまとめ上げ、一つのチームで、納期内に目標地点まで引っ張っていく能力が必要になります。
8.取得しておきたい資格の違い
ここまで述べてきたように、プログラマーやシステムエンジニアが転職や就職の際に自分の経験や能力を証明するのはなかなかたいへんなことです。どこに行っても認められるために一発で物を言うのが国家資格や民間の認定資格です。資格は、過去の努力と知識所有の証拠。どのような資格を取っておくのが業界で活躍するために有利なのかを解説していきます。
プログラマー向けの資格
基本情報処理技術者試験
通産省の情報処理技術者試験のなかの最も基本的な国家試験で、これに合格していればプログラマーとしての基本的な能力が備わっていることを示すことができます。
・合格基準 午前・午後とも正答率が60%以上であること
・公式サイト IPA 情報処理推進機構 https://www.ipa.go.jp/index.html
PHP技術者認定初級試験
「PHP技術者認定機構」という組織が行っている民間の試験。この試験に合格するとPHPを扱うプログラマーとして基本的な技術レベルであることを示すことができます。
・合格基準 試験内容は60問の四肢択一問題で1000点満点の700点以上で合格となります。
・公式サイト PHP技術者認定機構 https://www.phpexam.jp/summary/novice7/
Ruby技術者認定試験
「Rubyアソシエーション」が行っている試験です。この試験に合格すると、Ruby技術者としての技術力を評価され、Rubyによるシステム開発能力を持つことを示すことができます。
・合格基準 100点満点の75点以上
・公式サイト Rubyアソシエーション https://www.ruby.or.jp/ja/
C言語プログラミング能力認定試験
「情報処理能力認定委員会」が主催する試験です。この試験に合格すれば、C言語を使って応用プログラムを作成する能力が認定されます。3級から1級まであります。
・合格基準 正解率60%以上
・公式サイト 情報処理能力認定委員会 https://www.sikaku.gr.jp/js/cp/exam/content/
ORACLE MASTER Bronze Oracle Database 12c
「日本オラクル社」が主催する試験です。この試験に合格すれば、オラクルのデータベースを扱うための一定の技術力があることを認定されます。
・合格基準 正解率75%以上
・公式サイト オラクルマスターポータル https://www.oracle.com/jp/education/index-172250-ja.html#1
システムエンジニア向けの資格
応用情報処理技術者試験
通産省の情報処理技術者試験のなかの基本情報処理技術者の上位ランクに位置づけられる試験。これに合格していれば高度IT人材としての知識と技能を持つことが証明できます。
・合格基準 午前・午後とも正答率が60%以上であること
・公式サイト IPA 情報処理推進機構 https://www.ipa.go.jp/index.html
システムアーキテクト試験
通産省の情報処理技術者試験のなかの応用情報処理技術者の上位ランクに位置づけられる試験。これに合格していれば上級システムエンジニアであることが証明できます。
・合格基準 午前Ⅰ、Ⅱ・午後Ⅰとも正答率が60%以上であることおよび、午後Ⅱの試験でAランクであること
・公式サイト IPA 情報処理推進機構 https://www.ipa.go.jp/index.html
ネットワークスペシャリスト試験
通産省の情報処理技術者試験のなかのシステムアーキテクト試験と同様、高度IT人材用の試験のうちの一つ。これに合格していれば高度IT人材でありネットワーク技術の専門家である証明になります。
・合格基準 午前Ⅰ、Ⅱ・午後Ⅰ、Ⅱとも正答率が60%以上であること
・公式サイト IPA 情報処理推進機構 https://www.ipa.go.jp/index.html
これらのシステムエンジニア向けの試験は、大変難易度の高いものが多く試験勉強のほかに経験によって得られる知見も必要になります。
プログラマーから始めよう!
プログラマーとシステムエンジニアの様々な違いについて述べてきましたが、システムエンジニアとして活躍している人はプログラマーとしての経験を得てからなる人が多いのが現実です。
新しい時代を作る職業としてのキャリアを積んでいこうとする人には、無限の可能性をもった未来が広がっていると思いますが、それと同じくらい受け入れなければならない技術の進歩と新しい知識がひつようになるので、たゆまない自己研鑽が必要となります。
まずはプログラマーを目指して自己研鑽を積むのが良いのではないでしょうか。しかし自分一人で孤独に勉強していくのはなかなかつらいものがあります。そういう場合は、プログラムを学習できるWEBサイトを利用するのがよいでしょう。
独学で挫折しがちな難しい内容でも楽しく学習できるに違いありません。知らず知らずのうちに将来システムエンジニアとして活躍するのに必要なスキルや資格を身に着けることができることでしょう。