【就活・転職】IT企業のエンジニアって?種類別に解説します

こんにちは!管理人のうみねこ(@penta59631)です。

IT業界やエンジニアには興味があるけどエンジニアの仕事ってよくわからないという人が多いのではないでしょうか。

この記事は

「エンジニアに興味があるけどエンジニアってそもそもどんな仕事なの?」「エンジニアになりたいけど種類が多すぎて、違いがわからない」

という方に向けた記事です。

この記事の内容
  • IT企業のエンジニアのお仕事について全体的観点と種類別の観点から解説します。
スポンサーリンク

エンジニアの仕事って?

システムを開発する場合、基本的に以下のような流れで開発を進めていきます。

  1. 要件定義(計画)
  2. 設計
  3. 開発
  4. テスト
  5. 納品(リリース)
  6. 運用・保守

開発手法によって多少異なる点はありますが、大きく6つのフェーズがあります。
エンジニアはこれら全てのフェーズに携わります。

まず要件定義フェーズでは、システム化を行うために必要な要件を洗い出します。
続いて設計フェーズでは、要件を元にシステムの全体像をドキュメントやプロトタイプというような形で作成します。
開発フェーズでは、設計した内容を元にプログラムの作成や機器の設定を行います。
その後テストフェーズに移り、作成したプログラムや機器の設定を正常動作、障害発生時、連携動作、セキュリティ等さまざまな観点からテストします。
テストフェーズは問題点を見つけることを目的に行います。テストを何回か繰り返し、精度を上げていきます。

テストに合格したシステムは納品されます。
納品された後は運用・保守というフェーズに移行します。システムはここからが本番です。実際に稼働させながら問題点が見つかれば改善するという工程を繰り返します。

全てのフェーズに携わると言っても全てを一人でこなすのは難しいため、実際はチーム制で作業を分担して行うことが多いです。

エンジニアには、技術的な知識はもちろんのことコミュニケーション能力も重要になります。
ここでのコミュニケーション能力は、面白い話ができるとかではなく

  • 相手の言っていることや要件を正確に把握する。
  • システム化の内容や根拠をきちんと説明できる。

別の会社が関わる仕事となると、後から言った言わないとなることも多いです。そのためこの2点のスキルが重要になってきます。(ベテランでもできない人はたくさんいるんですけどね…笑

さてそんなエンジニアですがいくつか種類があります。

IT企業に馴染みの無い方だとシステムエンジニア(SE)という言葉が一般的でしょうか。

ひとえにシステムと言っても、いろいろな技術が使われています。
皆が全ての技術を理解できれば、そんなに種類が必要ないのですが、実際はそうはいきません。

技術が進歩するごとにエンジニアは自然と枝分かれしていきました。

次の章からはエンジニアを種類別に解説していきます。

スポンサーリンク

全般系エンジニア

まずは全般系エンジニアの紹介です。
このカテゴリに該当するエンジニアはどれか特定の分野というよりは全般的な知識が必要になります。

システムエンジニア

システムエンジニアはシステム全体の設計・設定を行うエンジニアです。

システムとは、例えば銀行のATMシステムや、スーパーのレジのシステム、各企業が使う人事や給与を管理するシステムなどです。

特定の技術分野だけでなく、業務理解なども必要になります。

フルスタックエンジニア

フルスタックエンジニアは、技術のスペシャリストです。サーバー、ネットワーク、データベース、アプリケーション、フロントエンド何でもこなせるエンジニアです。

フルスタックエンジニアはエンジニアの究極系みたいな位置づけなので、なるためには相当な学習や経験が必要です。

最近はクラウドが浸透してきて、インフラも開発もできるエンジニアが求められてきています。

フルスタックエンジニアの需要は伸びる一方なので、目標としてはこのエンジニアを目指すことをおすすめします。

セールスエンジニア

セールスエンジニアは、どちらかというと営業的な仕事を行うエンジニアです。営業に同行して、技術的な立場から営業活動を行い仕事を取ってきます。

実際にシステムを作ることは少ないため専門的な細かい知識は必要ありませんが、ある程度の技術力と営業スキルが要求されます。

セキュリティエンジニア

セキュリティエンジニアは、システムのセキュリティ対策や調査の仕事を中心に行うエンジニアです。

例えば、システムに脆弱性がないか調査するセキュリティ診断、ペネトレーションテスト。
システムを不正利用された際にその痕跡を調査するフォレンジック。このような仕事を行います。

いずれも高度な技術、知識が必要となるため、まずはシステムの開発学び、そこからステップアップするという人が多いです。

脆弱性診断を行うセキュリティエンジニアについては以下の記事でもまとめています。

スポンサーリンク

インフラ系エンジニア

インフラ系エンジニアとはサーバー、ネットワーク、クラウド等システムが動くための基盤を整備するエンジニアです。インフラ系エンジニアはプログラミングをメインに行うというより機器の設計、設定を行うことが多いです。

インフラエンジニア

インフラエンジニアは、ジャンルにとらわれずインフラ全般の仕事を行うエンジニアです。
私はちょっと前までこの職種でしたが、ネットワーク、サーバー、データベース、クラウド、セキュリティ等さまざまな仕事を行った経験があります。

インフラ全般的な知識を得ることができます。機器を設置するために顧客のサーバーフロアやデータセンターなどに赴くことがあります。

インフラエンジニアについては以下の記事でもまとめています。

ネットワークエンジニア

ネットワークエンジニアは、ネットワークの設計や設定を行うエンジニアです。

ファイアウォール、ロードバランサー、ルータ、スイッチ、WAFなどさまざまなネットワーク機器を実際に触りながら設定を行います。
ネットワークの設定を一つ間違えただけで全てが繋がらなくなるということもあり得るため重要な仕事です。

ネットワークを作るのは、自分なりの道を作るような感覚になれるのでそういうものを作るのが好きという人におすすめです。

データベースエンジニア

データベースエンジニアは、データベースの設計やチューニングを行うエンジニアです。

データベースとはデータを保管するための箱の様なものです。
その箱の中にデータを入れるわけですが、どういう風に入れるか、どのように取り出すかなどさまざまな決め事がないとうまくデータを管理できません。

そのような決め事を設計、設定していくのがデータベースエンジニアの仕事です。

クラウドエンジニア

クラウドエンジニアは、クラウドサービスの設計、設定を専門に行うエンジニアです。

クラウドとは、利用者側で機器を購入せずにインターネットを通じてその機器のリソースを使用できるサービスです。
大手クラウドサービスだと、Amazon Web Service、Microsoft Azure、Google Cloud Platform、Alibaba Cloudなどがあります。

近年、システム開発を行うにあたってクラウドサービスを選択するという企業も増えてきました。

基本的にクラウドサービスもベースの技術は変わりませんが、クラウド特有の用語や設計・設定等もあるためそれらを理解し、適切なクラウド設計を行うスキルが求められます。

サーバーエンジニア

サーバーエンジニアは、サーバーの設計、設定を行うエンジニアです。

OSのインストールから各種サーバー(Webサーバー、DBサーバー、ファイルサーバー等)として機能させる所までの仕事を行います。

OSもVMware、Wiondows ServerやLinux、Unixなどさまざまな種類があります。

サーバーエンジニアの方は、自宅で環境を作ってサーバーを稼働させているという人も多いです。

カスタマーエンジニア

カスタマーエンジニアは、機器の交換や種類を行うエンジニアです。

機器が故障した際に、機器が設置されている現場に向かい交換・修理作業を実施します。

カスタマーエンジニアになるためには、機器を販売している会社あるいはその会社が発注している会社に入る必要があります。

開発系エンジニア

アプリケーションエンジニア

アプリケーションエンジニアは、Webアプリケーションやスマホアプリ、業務システム等のアプリケーションの設計・実装を行うエンジニアです。

アプリケーションは他の部分と連携することも多いためプログラミングの知識に加え、データベースやサーバー等の知識も必要になります。

フロントエンドエンジニア

フロントエンドエンジニアは、Webサイトの利用者に見える部分の設計・実装を行うエンジニアです。

HTML、CSS、Javascriptで利用者のブラウザで行われる処理を実装していきます。

実装の際は、デザイナーや後述するバックエンドエンジニア等とコミュニケーションを取りながら行うことが多いです。

バックエンドエンジニア

バックエンドエンジニアは、フロントエンドエンジニアとは逆にサーバ側で行う処理の設計・実装を行うエンジニアです。サーバサイドエンジニアと呼ばれたりもします。

利用者のリクエストに応じて動的にページを返すような処理を行ったり、データベースやファイルにアクセスするための処理をプログラミング言語を用いて実装していきます。

エンベデッドエンジニア

エンベデッドエンジニアは、機器(車やスマホ、家電等)に組み込むプログラムの設計・実装を行うエンジニアです。

機器自体にプログラムを組み込むことからその機器が一度、手元を離れて利用者の手に渡るとプログラムの修正をすることができなくなります。

そのため、他の開発系エンジニアと比べてさまざまな観点から物事を考える必要があります。

さいごに

エンジニアは種類がたくさんあります。
どのエンジニアを目指すかはそれぞれの好み、適正があると思います。
この記事がみなさんが職種を決める手助けになれば幸いです。