一概に「エンジニアに興味がある」「エンジニア になりたい」と言っても、エンジニアって種類が多くて、結局何が違うのかよくわからない人は多いかと思います。
なんとなく「エンジニアになりたい」という理由から、転職した後に「やりたかったことと違う」となっても完全に手遅れです。
自分のキャリアとして考える前に、それぞれのエンジニアが、どのような業務内容で、どのようなスキルが求められるのかを把握することは大切です。
今回はそんな数あるエンジニア の中でも、混同されやすい「システムエンジニア」と「アプリケーションエンジニア」の違い、そしてそれぞれの業務内容や、なるために必要な資格やスキルを紹介します。
一般的なエンジニアの仕事の流れ
そもそも、エンジニアがどのような流れでクライアントから仕事を受けて、どのような手順で何をしていくのか。それがよくわからない方のために簡単に説明しておきます。
何かアプリケーションの開発などを依頼された場合の、エンジニア全体の仕事の流れを大まかに表すと以下のようになります。
- 仕事の受注
- クライアントから要望のヒアリング
- システムの要件定義
- システムの設計
- システムの構築(プログラミング)
- 開発したシステムの動作テスト
- システムの運用・保守
これが一般的なエンジニアのシステム開発の際の業務手順です。
上の方を上流工程、下の方を下流工程と呼びます。
もちろん業界ごと、企業ごと、プロジェクトごとにも異なるので、あくまで一例と考えてください。
この一連の流れの中でどの部分を担当するかによって、エンジニアとしての仕事が分類されます。
アプリケーションエンジニアはシステムエンジニアの一種
結論から言ってしまうと、アプリケーションエンジニアはシステムエンジニアの中の一種です。
ですが、業務内容としては被っている部分もありますが、専門としている部分が大きく異なります。
システムエンジニアは、クライアントからヒアリングした内容を元に、要件定義、全体のシステムの設計が一番主な業務です。
アプリケーションエンジニアは、システムエンジニアの設計を元により詳細に設計を行い、システムを開発していく業務がメインとなります。
なので、システムエンジニアよりも、より専門的で深い知識が必要とされます。
システムエンジニアは、クライアントと密に関わるため、コミュニケーション能力・論理的文章力が重要になります。
次の項から、より具体的にそれぞれの仕事について説明します。
システムエンジニアの仕事
システムエンジニアはコンピュータシステム開発の際に、クライアントとの打ち合わせを通じて、システム全体の設計、要件定義からシステム開発、テストまでの全行程を計画する仕事です。
システムエンジニアの業務内容
システムを開発する際に幅広く関わっていきますが、一番主な業務はクライアントからのヒアリングを通じて、仕様を決定し、開発までの大まかな設計をすることです。
さらにはプロジェクト全体のマネジメントも業務の一環となりますので、プログラマーやアプリケーションエンジニアなどと関わることも多いです。
システムエンジニアに求められるスキル
クライアントとの直接やりとりが多く、クライアントの要望を丁寧に汲み取り、それらを叶えるにはどのようなシステムを構築するかを決定する必要があります。
そのため、何よりも求められるのは、コミュニケーション能力。
そして聞き取った要望をわかりやすく仕様書にするためには、論理的な文章力は欠かせません。
なのでシステムエンジニアには意外と文系出身者が多いという特徴があります。
実際のプログラミングはプログラマーの仕事ですが、前提となる仕様書を作り、プログラマーともやりとりをする必要があるため、SEも当然基本的なプログラミング技術は必要でしょう。
システムエンジニアのための資格
システムエンジニアは業界や企業によって業務内容に大きく差があります。
なので自分の目指す業界・企業の状況や、または将来のキャリアプランによって必要な資格は異なります。
- 基本情報技術者試験
- 応用情報技術者試験
この2つの資格は全てのITエンジニアに必要な知識になるので、エンジニアにとって登竜門的な資格になっています。
システムエンジニアを目指すのであれば、取っておいた方が良いでしょう。
一般的なシステムエンジニアになる方法
プログラマーよりも上流工程を担当するシステムエンジニアですが、実は未経験からでもなることは可能です。
ITの急速な発展によって、慢性的なエンジニア不足となっている現代では、新卒・第二新卒などでもシステムエンジニアとしての求人が多数存在します。
または、プログラマーとしてキャリアを詰んだのちに、上流工程であるシステムエンジニアへとキャリアアップすることも可能です。
アプリケーションエンジニアの仕事
アプリケーションエンジニアは、日々私たちが利用している様々なアプリケーションを開発する工程に携わる人々の総称です。
アプリケーションは大きく分けて、
- 業務系アプリケーション
- Webアプリケーション
- スマホアプリ
に分類されます。それぞれで性格が異なりますが、ここでは全て含んだ大枠での「アプリケーションエンジニア」について考えていきます。
アプリケーションは身近な例でいうと、カレンダー、メッセージツール、各種SNS、電子マネーの決済システムなど、日常生活で必要とされるあらゆるシステムに関わるので、常に需要がある仕事です。
アプリケーションエンジニアの業務内容
クライアントや他のシステムエンジニアなど、各メンバーと協力しながら目的のアプリケーションを開発・実用化するのがアプリケーションエンジニアの仕事です。
具体的な工程としては、
- システム設計
- アプリケーションの開発
- 開発したプログラムの動作テスト
- システムの運用・保守
が主な業務内容に当たります。
ですが場合によっては、クライアントと直接やりとりしたり、要件定義から始まります。
アプリケーションエンジニア に求められるスキル
アプリケーションの開発に関するあらゆる知識が求められます。
何か1つの言語や技術に専門的に特化しているよりも、複数のプログラミング言語、ネットワーク、データベースといった幅広くあらゆる知識や技術に精通している人に向いています。
具体的に現場で多く必要とされているのは、開発側ではJava、C、C#、Ruby、PHPなど。
フロントエンドではHTML、CSS、JavaScriptなども必要とされます。
スマホアプリ開発の場合はSwift、 Java、Kotlinなど。
MySQLなどのサーバー知識も欠かせません。
さらに技術の発展によって、次々と新しいツールやソフトが誕生するので、知識に関しても一度学べば良いだけではなく、常に最新の情報を集め、自分自身でスキルをアップデートしていく必要があります。
また、複数人で開発を進めていくため、チームで協力しながらプロジェクトを進めていく能力も欠かせません。
総合的に見るとかなり広範囲な知識と、常に自分で勉強し続ける向上心が求められ、簡単な仕事とは言い難いでしょう。
アプリケーションエンジニアのための資格
アプリケーションエンジニアになるためにおすすめの資格は以下の3つです。
- システムアーキテクト試験
- Android™技術者認定試験
- プロジェクトマネージャ試験
この中でも特に、システムアーキテクト試験はアプリケーションエンジニアに必要な知識を幅広く網羅している試験です。
難易度は結構高く、平均合格率は13%ほどとなっています。
ですが同時に、この資格を持っていればアプリケーションエンジニアとして必要な知識をしっかりと持っているという証明になるので、アプリケーションエンジニアを目指している場合は是非持っておきたい資格です。
一般的なアプリケーションエンジニアになる方法
もっとも一般的なのは、システムエンジニアとして会社に入社し、経験や知識を積んでからアプリケーションエンジニアになる方法です。
Webアプリケーションの開発に関する幅広い知識と、チームで動くための指揮能力やコミュニケーション能力も欠かせないので、ある程度開発の経験を持った人にしか任せられないとされています。
ですが、中には未経験や新卒でもアプリケーションエンジニアでの求人を出している企業もあります。
システムエンジニアとアプリケーションエンジニアの違い
まとめると、形式的にはアプリケーションエンジニアはシステムエンジニアの一種ですが、主な業務内容が異なってきます。
クライアントとのやりとりを通して、仕様書を作り、システムの大まかな設計をするシステムエンジニアに対して、アプリケーションエンジニアは、開発部分からテスト、運用までがメインの仕事となります。
より幅広い専門的知識と技術力が要求されるアプリケーションエンジニア 、クライアントとの打ち合わせのためのコミュニケーション能力が要求されるシステムエンジニアという風に分類しても良いかもしれません。
求められる能力が異なっているため、人によって適性は違います。
より自分に合うと思う方を意識して、将来のキャリアの参考にしてみてください。
これからの進路や転職活動について考えている人に人気の記事はこちらです。
『年収診断で今の適性年収が確認できるキャリア診断「MIIDAS」』