プログラマとは? エンジニアとは? 様々な種類のエンジニア総ざらい 後編


プログラマとは? エンジニアとは? 様々な種類のエンジニア総ざらい 後編
プログラマとは? エンジニアとは? 様々な種類のエンジニア総ざらい 後編

前編ではITエンジニアという職業の概要や、ITエンジニアの分類、そして一部ITエンジニアの紹介を行いました。今回はその後編として、2〜4のITエンジニアについてご紹介していきます。

  1. プロジェクトマネジメントに関するITエンジニア
  2. インフラエンジニア
  3. 開発エンジニア
  4. その他のITエンジニア

2. インフラエンジニアとは?

このパートでは、インフラエンジニアと呼ばれるITエンジニアについてご紹介していきます。

インフラエンジニアは、システム開発における重要な役割を担っています。ソフトウェアを開発するうえで、大前提としてその開発環境となるインフラが整っている必要があります。住宅の建設に例えるなら、どんなに立派な内装や家具の配置を構想していても、土地を確保し基礎工事を終え、外装を完了させなければ、内装や家具の配置に進むことはできません。その土地の確保や基礎工事などが、IT業界におけるインフラエンジニアの重要さといえます。そんなインフラエンジニアは次の種類があります。

2.1 ネットワークエンジニア
2.2 サーバーエンジニア
2.3 データベースエンジニア
2.4 クラウドエンジニア
2.5 セキュリティエンジニア

なお、このインフラエンジニアの平均年収は、経済産業省の調査結果によると「IT技術スペシャリスト(DB・NW・セキュリティ等)」という名目で約758万円と発表されています。

2.1 ネットワークエンジニア

ネットワークエンジニアとは、コンピュータのネットワーク環境の構築や保守に従事するITエンジニアです。2000年以降のインターネットの普及により、さらにネットワークエンジニアの需要が高まり、ITエンジニアの中でも花形の職種といえます。

このネットワークエンジニアは、他のITエンジニアと比べても育成に時間がかかります。その理由は、急速に進化する情報通信に対応するため、またハッカーなどの攻撃によるセキュリティ関連の事故を未然に防ぐための高い技術力が求められるためです。そのため、このネットワークエンジニアとして一人前になれば、社員としてだけではなく、フリーランスのような組織の外で稼働しても本人の技術力によっては引く手あまたとなれるでしょう。 ネットワークエンジニアになるには、開発エンジニアほどの人数を必要としないこともあり狭き門といえます。大学や大学院で情報通信などの学位を取得している人も少なくはないですが、そのような学位がなくても活躍している方々もたくさんいます。現在、IT業界以外で働いている読者の方で、このネットワークエンジニアを目指すなら、まずは基礎的なIT資格を取得し、派遣契約でもいいからネットワークエンジニアの求人を探してみてください。この分野の資格としては、情報処理技術者試験の「基本情報技術者試験(スキルレベル2)」の取得を目指し、段階的に「応用情報技術者試験(スキルレベル3)」を取得してから、実務に就いた後、難関ではありますがネットワークエンジニアの資格である「ネットワークスペシャリスト試験(スキルレベル4)」の取得を視野に入れてみましょう。

また、このネットワークエンジニアの分野は民間資格でCisco Systems社の認定資格があります。この資格は海外でも知名度があるため注目度も高く、興味がある方はぜひ調べてみてください。

※参考:Cisco 公式サイト

シスコ技術者認定プログラムには、エントリー、アソシエイト、プロフェッショナル、エキスパート、そして本プログラムにおける最高水準の認定 アーキテクトの5つのレベルがあります。

2.2 サーバーエンジニア

サーバーエンジニアとは、サーバーを構築し運用するITエンジニアです。そもそもサーバーとは、ネットワーク上でクライアントと呼ばれる各パソコンからの要求に応答していく機能を有するコンピュータを指します。この各クライアントPCからの要求に応える機能を設定し運用してくのがサーバーエンジニアです。

サーバーエンジニアの業務はサーバーの監視、セキュリティ管理、およびデータのバックアップなど多岐にわたります。例えばインターネットで多数の人のPCからアクセスが集中して回線がパンクした、といった報道を見かけたりしますが、このような時にサーバーエンジニアは、そのアクセス負荷を軽減するためトランザクションの分散やサーバーの増設などで対応していきます。

このサーバーエンジニアになるには、サーバー設計・設置・監視などを専門にしている企業へ入社するのが確実ですが、前述したネットワークエンジニアと同じように開発エンジニアと比べると狭き門のため、未経験で可能な派遣求人なども考慮しながらチャンスを待ってみてください。

なお、サーバーエンジニアに関連する資格は、LPIC(Linux技術者認定資格)やMCP(マイクロソフト認定資格)などがあります。

2.3 データベースエンジニア

データベースエンジニアとは、データベースの開発、設計、運用、および管理をするITエンジニアです。

データベースとは、名前や住所などの情報を集め、それらの情報を規則的に管理し、その情報を細かな要求で取り出すことができる、データベース管理システムと呼ばれるコンピュータシステムを指します。

以前は大量のデータを管理するデータベースを保持していたのは、官公庁や大手金融機関ぐらいでしたが、インターネットが普及してからは各Webサイトで大量の個人情報などのデータを扱うため、このデータベースエンジニアの役割はますます広がってきています。

このデータベースエンジニアになるには、ネットワークエンジニア同様に、情報処理技術者試験の「基本情報技術者試験(スキルレベル2)」の取得を目指し、段階的に「応用情報技術者試験(スキルレベル3)」を取得して、実務についてから難関ではありますがデータベースエンジニアの資格である「データベーススペシャリスト試験(スキルレベル4)」の取得を視野に入れてみてください。

また、ネットワークエンジニアと同様に、このデータベースエンジニアも民間資格が充実しており、Oracle社のOracle Database認定資格が世界的にも知名度が高い資格です。Oracle Databaseは、以下のようにBronzeを初歩として段階的に難易度が上がっていくシステムとなっています。

2.4 クラウドエンジニア

クラウドエンジニアとは、クラウドと呼ばれるサービスの提供に関連する業務に携わるITエンジニアです。

クラウドとは、インターネットを介して利用者がサーバーなどのインフラ環境を直接持たなくても、提供者のIT環境を利用できるサービスを指します。よくある例として建築に例えるなら、土地や建物を直接は保有せず、提供者の持つ土地や建材なども借り、自分たちで建物を建造したり、提供者とは別に代行業者に依頼し、土地の整備や建物の建造を依頼したりします。

この土地や建材を提供する立場にあたるのが、クラウド事業ではアマゾン社のAWS(Amazon Web Services)や、マイクロソフト社のAzureと呼ばれるサービスです。そして、利用者に代わり土地の整備や建材からの建造、さらにはその後の管理なども請け負うのがクラウド代行業と呼ばれるサービスです。

クラウドエンジニアになるには、インフラエンジニアとしてのスキルが必要なため、まずはITエンジニアとして「基本情報技術者試験」や「CCENT」など、ITエンジニアとして基礎的な資格の取得を目指しながら、クラウド代行会社などへの就業を目指してみてください。

2.5 セキュリティエンジニア

セキュリティエンジニアとは、ネットワーク環境も含めた、コンピュータシステムのセキュリティの維持に従事するITエンジニアです。新規プロジェクトにおいても、セキュリティ面での脆弱性を考慮しプロジェクトマネージャなどに進言していきます。また、ネットワーク環境の構築でも、サイバー攻撃を防ぐための調査を行い、ネットワークエンジニアと連携して対応していきます。顧客からの改善要望などもできるだけ実現できるように尽力し、時には運用面での顧客へのアドバイスもしていきます。

セキュリティエンジニアになるには、情報セキュリティの最新情報に精通していることが必要です。アメリカでは、優秀なハッカーが、セキュリティエンジニアとして国防総省や民間の大手企業にヘッドハンティングされ、ハッキング側からそのハキッングを防ぐ側のITエンジニアとして活躍している場合もあります。しかし、日本の多くのIT現場では、セキュリティエンジニア専任として稼働している人はあまりいないのが実情です。システムエンジニアやネットワークエンジニアなどが、セキュリティエンジニアとしてのノウハウも持ち合わせて実務に当たっていることが多いようです。

3. 開発エンジニアとは?

開発系エンジニアとは、例えば銀行のコンピュータシステムに顧客の要望を組み入れて開発していく、いわゆるシステムエンジニアやプログラマなどを指す場合が多いですが、この章では、以下のITエンジニアを取り上げていきます。

3.1 組み込みエンジニア
3.2 Webエンジニア(フロントエンドエンジニア/バックエンドエンジニア)
3.3 アプリケーションエンジニア
3.4 マークアップエンジニア
3.5 テストエンジニア
3.1 組み込みエンジニア

組み込みエンジニアとは、皆さんの自宅にあるテレビなどの家電を制御するために開発されたマイコン(マイクロコントローラ)用のプログラミングをするITエンジニアです。家電以外にも自動販売機、駐車場の料金支払い機、およびカーナビなど、いろいろな製品に携わっています。

組み込みエンジニアになるには、プログラミングのスキルが必須で、使用される言語はC、C++、Java、およびアセンブラなどになります。

組み込みエンジニアの平均年種は、経済産業省の調査結果では「SE・プログラマ(組込ソフトウェアの開発・実装)」という表記で約603万円と発表されています

3.2 Webエンジニア

Webエンジニアとは、WebサイトやWebサービスの設計、開発、運用、および保守などに従事するITエンジニアです。そして、そのWebエンジニアの中でもさらに「フロントエンドエンジニア」と「バックエンドエンジニア」に分けられます。
この「フロントエンドエンジニア」と「バックエンドエンジニア」について説明していきます。

フロントエンドエンジニアとは?

フロントエンドエンジニアは、フロントエンドと呼ばれるユーザーから見えるサイトやアプリの部分を担当します。
フロントエンドエンジニアは、Webデザイナーのデザインをもとに、HTML、CSS、JavaScript、およびPHPのプログラミングやWordPressなどのCMS(コンテンツマネジメントシステム)の構築などを担当します。後述で紹介するマークアップエンジニアとの違いは、マークアップエンジニアが主にHTMLだけを扱うのに対し、フロントエンドエンジニアは、HTMLだけではなく、CSSやJavaScriptなど他の言語も扱います。しかし、明確な違いがないこともあり、フロントエンドエンジニアもマークアップエンジニアと呼ぶIT現場もあります。
フロントエンドエンジニアになるには、上記であげた言語の習得が必要です。

バックエンドエンジニアとは?

ユーザー側のフロント部分を扱うフロントエンドエンジニアに対して、バックエンドエンジニアはユーザーから見えない裏方部分のデータベースやサーバーに関連する部分を担当します。バックエンドエンジニアは、フロントエンドエンジニアが担当する以外のすべてを担当するITエンジニアともいえ、その役割は多岐にわたります。必要なスキル範囲も当然広くなります。インフラエンジニアの一面も持ち、サーバーの構築やデータベースの構築なども担当する場合があります。

このバックエンドエンジニアになるには、インフラエンジニアと同じようなスキルを習得する必要があります。

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

アプリケーションエンジニアとは、いわゆるシステムエンジニアを示す場合が多いです。広い意味ではインフラエンジニアなどもシステムエンジニアではありますが、IT業界ではシステムエンジニアまたはSEとは、開発エンジニアのアプリケーションエンジニアを示します。そしてITエンジニアの人数が最も多いのがこのアプリケーションエンジニアといえます。金融機関や製造業の大型システムを扱うITエンジニアから、スマホなどのアプリを扱うITエンジニアまで含めてアプリケーションエンジニアといえます。

アプリケーションエンジニアは、一般的にはプログラマから始まり何年かプログラマとして経験を積んでからシステムエンジニアとなります。そして、人によってはプロジェクトリーダーやプロジェクトマネージャとなっていきます。ただし、プログラマとシステムエンジニアの間に明確な区分けがあるわけではなく、あいまいな部分もあります。

このアプリケーションエンジニアの仕事は、自分が割りあてられた開発業務で、概要設計や基本設計を行い、ときには詳細設計や実際のプログラミングも行います。工程が進めば、単体テストのあとに結合テストの計画を立て実施していきます。また、開発を進めていく段階で、インフラエンジニアにインフラ面での改善なども依頼しながらプロジェクト内の各ITエンジニアとも連携を取っていきます。さらに、顧客ともやり取りをしながら、ユーザー側の要望をプロジェクトの早い段階で汲み取り、システム設計に反映することも重要な役割となります。

このアプリケーションエンジニアになるには、プログラマとして経験をつみながら、アプリケーションエンジニア(システムエンジニア)に成長していきます。

アプリケーションエンジニアの平均年収については、経済産業省の調査結果では「システムエンジニア・プログラマ」というカテゴリーで約568万円~593万円と発表されています。

3.4 マークアップエンジニアとは?

マークアップエンジニアとは、HTMLを使用してWebサイトの制作に従事するITエンジニアです。SEO(検索エンジン最適化)などを考慮してより検索されやすいWebサイトを構築し、さらにユーザーが快適に使えるサイトを制作します。
なお、前述のフロントエンドエンジニアとの違いは扱う言語の違いくらいで、それ例外に明確な区分けはないようです。

3.5 テストエンジニアとは?

テストエンジニアとは、開発中のシステムのテスト計画、テスト設計、そしてテストの実施やプロジェクトリーダーなどへのテスト結果の報告までを担当するITエンジニアです。多くの場合は、そのプロジェクト内のアプリケーションエンジニアやプログラマがテストを実施するため、必ずしも専属のテストエンジニアを配置するわけではありません。ただし、コストなどを抑えるため派遣会社などにテストエンジニアの要員を依頼する場合もありますので、求人などを探してみてください。

4. その他のITエンジニアについて

このパートではこれまでに紹介したITエンジニア以外について紹介していきます。

ご紹介する以下のITエンジニアの中で、最初のAIエンジニア以外はITエンジニアの職種というよりも雇用形態の違いの解説となります。

4.1 AIエンジニア
4.2 社内エンジニア(社内SE)
4.3 フルスタックエンジニア
4.1 AIエンジニア

AIエンジニアとは、最先端技術である人工知能(AI)の開発に携わるITエンジニアです。昨今最も脚光を浴びているITエンジニアと言えるでしょう。海外では初任給数千万円以上で採用されたインド人学生の報道もありました。

そもそも人工知能とは、人間の脳内で行われている知的活動(認識、推論、言語運用など)にできるだけ近づけ、その知的活動結果をアウトプットさせるコンピュータとを指します。有名なところでは、1990年代からチェスの世界チャンピオンと対戦し勝利したアメリカのIBM社が開発した「ディープ・ブルー」があります。

このAIエンジニアになるには、AI開発で使用するプログラミング言語のC++やPythonをマスターするだけではなく、大学レベル以上の数学知識が求められます。

4.2 社内エンジニア(社内SE)

社内エンジニア(社内SE)とは、文字どおり会社内のシステム部門の人材を示し、社内システムの開発、保守、および運用に従事するITエンジニアです。

概ねITエンジニアは、労働時間も他の職種と比べると長く、激務のイメージがありますが、この社内エンジニアは、その中では最も労働時間が安定した立場にあるといえます。なぜ、労働時間の面で安定しているのかといえば、新規システム開発などの長期間のプロジェクトは、社外のIT企業に依頼することが多く、社内エンジニアはユーザー側の窓口として要望などを伝え、開発自体には直接携わらないのが一般的なため、開発側のITエンジニアのような激務にならないことが言えます。

この社内エンジニアになるには、他のITエンジニアと少し毛色が異なります。開発や運用を担当するITエンジニアは1〜複数社の案件に従事しますが、社内エンジニアは会社の規模によってはパソコンの持ち運びやヘルプデスク的なことまで任され、IT関連の何でも屋のような役割になることもあります。また、同じ社内エンジニアでも官公庁や大手の金融機関では、自社システムでの業務範囲が膨大なため、普段の保守作業から協力会社なども使って対応しなければならないほど、仕事量が膨大な場合もあります。また、銀行などではシステム障害がそのまま報道されるなど社内外でかなりのプレーシャーを受けますので、社内エンジニアを目指す方は、その点も見極める必要があります。

4.3 フルスタックエンジニアとは?

フルスタックエンジニアとは、IT関連のすべての業務を一人で対応するITエンジニアのことを指します。通常はインフラエンジニアや開発エンジニアなどに役割が分かれますが、小さい組織の社内エンジニアなどは、サーバー設置からプログラミングまで、すべてを一人でこなさなければならい場合もあり、ある意味ではこちらもフルスタックエンジニアと呼べるかもしれません。

このフルスタックエンジニアになるには、すべてを一人で対応するためITエンジニアとして豊富な経験が必要です。

まとめ

今回はおよそ20種類のITエンジニアの職業やスキルをご紹介しました。これからITエンジニアを目指す読者の方に少しでも興味を持ってもらい、目指してみたいITエンジニアが見つかったならば筆者にとってこのうえない喜びです。そして、実際に希望するITエンジニアの職種に就き、ご活躍されることを心より願っております。

Wikipedia
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E