ソフトウェアエンジニアの転職

ソフトウェアエンジニアの転職に関する情報を提供しています

ITエンジニアとは?職種と仕事内容について

f:id:masayuki5160:20200215142007j:plain


本記事ではITエンジニアとその職種(業務内容に応じて分類)と仕事内容をお話しします。ITエンジニアに興味のある方の参考になれば幸いです。

 

本記事では以下についてお話しします。

 

  • ITエンジニアとは
  • ITエンジニアの職種(ITエンジニアをさらに分類する)

ITエンジニアとは

まずはITエンジニアという言葉について整理しましょう。

エンジニアといった場合、文脈にもよりますがハードウェアの設計をするエンジニアや機械設計、そしてコンピュータ関連の技術を扱うエンジニアなど様々な分野の技術者を包括して指します。

そしてITエンジニアといった場合はそのエンジニアの中でも情報技術を扱うエンジニアを指すことが多いでしょう。大学等では情報系の学部で関連する技術を学ぶことになります。

こちらはIT人材白書2017に記載されているIT人材の職種などに関するデータです。

 

f:id:masayuki5160:20200403100527p:plain

出典:IT人材白書2017 ( https://www.ipa.go.jp/files/000059086.pdf )

 

IT人材白書2017のデータからだとITエンジニアを以下職種に分けているようですね。

 

  • 自社の事業企画
  • コンサルタントなど
  • プロジェクトマネージャ
  • システムアーキテクト
  • インフラ系技術者
  • アプリ系技術者
  • 運用系サービス技術者
  • データ分析やAI等、新規事業を担う技術者


ただ、例えば採用などそういった際にはこれらの職種名がそのまま使われているかというとそうではありません。そのため本記事ではよく使われる職種名として以下を用いて細かくみていきます。これらは上述の人材白書に記載されている職種ともそれぞれ対応します。

 

  • システムエンジニア(SE)
  • プログラマー
  • インフラエンジニア
  • ネットワークエンジニア
  • Webエンジニア
  • サーバーエンジニア
  • フロントエンジニア
  • データベースエンジニア
  • アプリエンジニア
  • 組込エンジニア

ITエンジニアの職種(ITエンジニアをさらに分類する)
システムエンジニア(SE)

ITエンジニア=SE、と認識している方も多いのではないでしょうか。

SEという言葉も非常に幅広い意味で使われており文脈によっては本当にITエンジニア=SEのような使われ方もされるように思います。そして企業によってもSEという役割を担うエンジニアの業務範囲というのも様々だと思います。が、概ねSEというと以下のような役割を担うでしょう。

 

  • ソフトウェアの設計
  • ソフトウェア開発プロジェクトの進捗管理
  • 顧客(クライアント)とのやりとり(仕様調整など)
  • プログラミング(全くしないSEもいるでしょう)


特にソフトウェアの設計、プロジェクト管理、クライアントとのやりとりについては非常に重要なポイントでしょう。そのためビジネスについての知識もあることが多くの企業のSEに要求されることだと思います。ビジネスとITの架け橋をしているような役割を担っているSEもいるでしょう。非常に重要な職種ですね。

プログラマー

実際にプログラムを書くエンジニアのことを指すことが多いでしょう。文脈によって解釈は様々あり、会社によってはただ設計された通りに実装をする人のことを指していることもあります(特に日本の受託系の会社ではそういったケースが多い印象です)。概ね以下のような役割を担うでしょう。

 

  • (詳細設計) ※会社による
  • 実装

 

上述の通り、ソフトウェアの設計は別の人がする、というケースもあると思いますが、実装という作業はソフトウェア開発の性質上どうしても設計と実装を行ったり来たりするということになります。そのためある程度はどのプログラマーも大なり小なり設計をすることはあると思います。

インフラエンジニア

サーバー、ネットワーク機器、クラウド関係の技術を扱うエンジニアのことを指すことが多いでしょう。会社によってインフラエンジニアといってもデータセンターの中で実際に物理サーバーのセットアップ、ネットワーク機器のセットアップを担当できる人を指すこともあります。

一方でそういったことではなく、クラウド技術(AWSなど)を扱えるエンジニアのことをインフラエンジニアということもあります(クラウドエンジニア、と呼ばれます)。また、最近ではインフラエンジニアであってもプログラムが書けること、読めることを要求されることもあり徐々に担当する役割が変化しているように感じます。

概ね以下のような役割を担うと思います。

 

  • サーバ、ネットワーク設計、運用
  • サーバ、ネットワークの監視業務
  • プログラミング ※企業による

 

クラウドサービスの普及もありインフラエンジニアに要求されることは企業によって多様化してきています。そのためもし転職をする際には企業側が何を期待しているかはしっかりと把握しておくことをお勧めします。

ネットワークエンジニア

概ね上述のインフラエンジニアと似ていますがよりネットワークに特化しているエンジニアという理解でいいかと思います。概ね以下のような役割を担うでしょう。

 

  • ネットワーク設計、運用
  • ネットワークの監視業務

 

ネットワークの分野も非常に奥が深く、長くネットワークエンジニアをされている方はネットワークが好きな方が多い印象です。僕自身もキャリアのはじめはネットワークエンジニアをしていましたがやりがいもあり、技術的にも興味深い分野です。

Webエンジニア

特にB to Cサービスを事業として展開している企業でよくWebエンジニアとよばれるように思います。基本的にはWebアプリケーションの開発、運用を担当できるエンジニアです。役割としては以下になると思います。

 

  • ソフトウェア設計
  • 実装

 

なおWebエンジニアも企業によってその業務範囲がもっと広いことがあり、インフラエンジニアの役割を要求されることもあります。そのため定義としては非常に曖昧かもしれません。

サーバーエンジニア

こちらはインフラエンジニアと役割は似ているケースが多いと思いますが、インフラエンジニアよりはサーバーサイド言語で実装ができることを要求されるケースが多いように思います。こちらもその辺りが曖昧なため文脈次第ですのでよく確認する方がいいでしょう。役割としては概ね以下のようになります。

 

  • サーバー設計、運用
  • サーバー監視業務
  • プログラミング

フロントエンジニア

フロントエンジニアはWebアプリケーションのフロント、技術としてはHTML、CSS、Javascript等を扱うエンジニアのことを指します。役割としては以下のようになります。

 

  • ソフトウェア設計
  • 実装

 

最近はフロントエンジニアに要求される技術の幅も広がってきており、SPA(シングルページアプリケーション)を開発する技術を持っているエンジニアはどの企業からも引っ張りだこです。一方でそのSPAの開発をリードできるようになるためには非常に高い技術力が必要なのも事実なためそういった人材が少ないのが実際です。

フロントエンジニアはさらに扱う技術で分けられることもあり、特にHTML、CSSを主に扱うエンジニアはコーダーとよくいわれます。

データベースエンジニア

データベースエンジニアは言葉の通りデータベースを専門にするエンジニアです。担当する役割としては以下になるでしょう。

 

  • データベース設計
  • テーブル設計
  • データベースサーバー構築、運用

 

インフラエンジニアの項目でもお話ししましたがデータベースエンジニアも場合によってはツールの開発などをすることもあるかもしれません。また不具合の調査にプログラムを読むこともあり得ます。そのためコーディングのスキルも必要になることがあるでしょう。

アプリエンジニア

iOS、Androidアプリの開発エンジニアです。細かく分けるとiOSアプリエンジニア、Androidアプリエンジニアに分けられます。担当する役割として概ね以下になります。

 

  • ソフトウェア設計
  • 実装(UI含む)

 

アプリエンジニアの場合はフロントエンジニアがWebアプリケーションを開発するときに対応するようなUIの部分も担当します。スマホのアプリはどんどん複雑に、そして長期間運用しているソフトウェアとなっているケースも増えてきているためアプリエンジニアにも非常に高い技術力が求められるケースが増えてきています。数年前よりもアプリを開発することに興味を持つ人は減ってきているように思いますが企業側では経験のあるアプリエンジニアは引き続きニーズがある状況です。

組み込みエンジニア

組み込みエンジニアは身近な例でいうと家電製品を動かすようなソフトウェアを担当するエンジニアのことを指します。ソフトウェアの知識も必要ですが他のエンジニアと比べてハードウェアについても詳しいのが特徴です。担当する役割としては以下になるでしょう。

 

  • ソフトウェア設計
  • 実装

 

担当するプロダクトにもよると思いますが組み込みエンジニアの場合は自分が実装したプログラムでハードウェアが動作するのを見ることができ、それが他のエンジニアとは違うやりがいになるでしょう。

まとめ

どうでしたでしょうか。ITエンジニアといっても様々な担当があることが理解頂けると嬉しいです。また、一部の職種については、定義が曖昧、と記述していますがこれらはこの業界が常に変化していることとも関係があると思います。

これらの変化についていくのは大変ではありますが面白いポイントでもあります。さて今回はこれで以上です、どなたかの参考になれば幸いです。