システムエンジニアという職種について、みなさんはどのくらい知っておりますか。
IT業界への就職や転職を考えていたり、まだエンジニアになって間もない人であれば、IT業界でどういった専門分野があるか分からなかったりしますよね。
IT業界では専門分野が多く全てを知ろうと思うと大変です。
システムエンジニアというのは、元々はプログラマーの上位でサーバの設計から行うような人を指してきましたが、現在ではさらに細かく分野が分かれ、どちらかと言えばITエンジニア全般を指すような言葉になっています。
多くの人のイメージはプログラミングをしている姿でしょう。
しかしプログラムを書く事だけがシステムエンジニアではないので、基本的な職種についてご紹介したいと思います。
仕事の大枠と考えて頂ければと思います。
また、就職活動などでまだIT業界の事が良く分からない人は、自分はどんな職種で仕事がしたいか、合っていそうか考えるのに参考して貰えたらと思います。
アプリケーション開発
プログラマー
まずシステムエンジニアで一番イメージが強いのがプログラマですね。
英語のようなよくわからない文字をパソコンで書き続けるようなイメージですが、概ねその通りです。
世のアプリケーション、それこそパソコンのOSなどもプログラミング言語と呼ばれる言語によって開発されています。
この職種は、成果物が目に見える形で出来上がるので非常にやりがいがあります。
自分で書いたプログラムが目の前で動くわけですからね。
ただし、似たような作業を延々と繰り返すような業務になるので、飽き性な方は長くは続けられないかもしれません。
データベースエンジニア
アプリケーションと非常に密接な関係があるのがデータベースです。
アプリケーションが最適なパフォーマンスを発揮するには、データベースとの連携についてきちんと理解する必要があります。
入り口としては非常に狭き門なのがデータベースの特徴です。
後述するインフラエンジニアの領域でも仕事があるので、非常に幅のある業務内容になりますが、アプリケーションには欠かせないという点では、プログラマで補っている会社もあります。
余裕のある企業では、データベース専門部隊がありますし、データベース技術だけで成り立っているも会社もあります。
データベースはアプリケーションとインフラの両方の知識が必要な製品です。
個人的にはデータベースエンジニアで良かったと思えるのが仕事の幅が広がるという点です。
有名な製品であるOracle、SQL Serverは扱う機会があれば積極的にチャレンジしてみも良いでしょう。
ミドルウェアエンジニア
前述のデータベースも、ミドルウェアと呼ばれるソフトウェアとハードウェアの中間に位置する製品ですが、ミドルウェアとは他にも多く存在します。
その中でもメジャーなのは、Webサーバ、APサーバになります。
Webサーバとは、その名の通りWeb画面を表示させるためのプログラムであり、この機能があるからこそプログラミング言語でWEBサイトなどが表示されております。
こういった中間層を専門とするエンジニアもいます。
また有償製品もあれば無償製品もあるので様々な製品を扱えると非常にキャリアアップしていきやすいでしょう。
こちらも、アプリケーションに密接なため、プログラマで補っているケースもありますが、近年は機能がどんどん拡張されている点と、製品が増えているので、特定のミドルウェアの知識だけを求める企業もあります。
インフラエンジニア
ネットワークエンジニア
ネットワークとは、その名の通り通信が出来るように点と点を繋ぐ線を作るようなエンジニアになります。
ネットワークの製品では、Ciscoという会社の製品が非常に有名ですが、基本的には様々な機器と機種が存在するため、より多くの製品知識を学ぶことが出来ます。
また、アプリケーション開発とは違い、機器の設置や交換などをする機会もあるので出張や外出が多い仕事です。
そして、IPアドレスというネットワークでは欠かせない数字の計算力・管理など規模が大きい仕事になればなるほど仕事量や難易度が上がる仕事です。
近年では、セキュリティと非常に密接なため、ネットワークとセキュリティの両方の知識を身につけていけると思います。
近年ではセキュリティとネットワークが融合した製品も多いので、昨今話題のセキュリティについても学習していけると思います。
サーバエンジニア
サーバとは、アプリケーションなどが動くための土台です。
ネットワークがサーバまでの道のりを作り、サーバの上でアプリケーションが動くという形になっており、故に基盤と呼ばれる領域になります。
サーバでは、大まかにWindows、Linux、Unixという3種類のOSを扱いますが、さらにそれらを商用に開発している会社があるので、OSの種類とそれらを開発している会社の技術特性を学ぶ必要があります。
また、仮想化と呼ばれる技術が普及しているため、物理的に存在しているサーバ、仮想サーバと両方扱うとともに、仮想化の仕組みも学んでいけます。
知識が無い上では、「仮想化」という言葉にピント来ない事も多いですよね。
仮想化の仕組みについても、複数の製品があるため、現場によって異なる事もあります。
また、流行物ですがクラウドサービスについても携わる機会があると思います。
インターネット経由で、システムを構築できるような時代になっているので、インフラエンジニアはクラウドについても専門的に扱う事が出来ます。
ストレージエンジニア
ストレージとは、データを入れる箱の事を指します。
単純にHDDやSSDと捉えてもらっても同義です。
ただし、それらと絶対的に違うのは、SAN(ストレージ・エリア・ネットワーク)というものが存在します。
普段目にしているHDDのアクセス速度などは、システムから見ると遅い読み書きだったりします。
そこで、高速アクセスするための仕組みとして、FCというものが存在し、それらでストレージ専用のネットワークを形成します。
また、ストレージやSAN製品については、ものすごく種類が多いため一つの製品に特化せず、幅広い製品を扱うことになります。
ただし、サーバとの関係が密接なため、サーバエンジニアがこれらの業務を行っているケースが非常に多く、あまりストレージ専門のエンジニアを募集していることはありません。
その他
セキュリティエンジニア
IT業界では、技術の進化につれて、次々と新しいサイバー攻撃の手法やウィルスが誕生していきます。
その被害がニュースになる事もしばしばあります。
そこで、セキュリティに対して専門のエンジニア配置する企業が非常に多くなってきました。
ここでは、例えばウィルス対策ソフトの導入・運用から公開しているサイトのサーバの不正アクセス対策など、非常に多くの課題に対するセキュリティ診断と対策をしていくことになります。
その会社の傾向によって、サーバで対策するのか、ネットワークで対策するのか、ソフトウェアで対策するのか様々なため、その現場で必要な分野の知識を吸収していきながら働くことになるでしょう。
また、AIによるセキュリティ対策も普及が始まっています。
セキュリティはどんどん進化し変化しつづけるので、常に最新の知識が必要です。
そして、最新のセキュリティ技術に特化していれば今の時代では大きく需要のあるエンジニアになるでしょう。
フルスタックエンジニア
フルスタックとは、これまで紹介してきた分野の全てを扱う事の出来る万能なエンジニアです。
実際は、すべての技術に精通する事は出来ないので、全くできない分野が存在しないエンジニアというのが正解かと思います。
基本的に、フルスタックエンジニアは仕事に困る事がありません。
得意分野でなくとも、ほかに豊富な知識があるため重宝されます。
フルスタックエンジニアを求めている企業は多く存在するので、キャリアチェンジする際は、新しい分野に挑戦していくなどして実績を積む必要があります。
私はフルスタック気味ですが、特化しているのはデータベースのみです。
全て出来ると言っても、すべてに特化することは時間的な制約や知識的なキャパシティから中々辛いところもあります。
広く浅く、何でも出来るというタイプですがその反面、知識を養う大変さもあります。
最後に
ここまでざっくり紹介してきましたが、さらに細かく分けると多くの分野がありますので、また今度紹介できればと思います。
基本的な大枠はこのような形ですが、さらに製品や技術の内容によって専門性が大きく変わっていきます。
仮想化技術を用いると、仮想化技術も1つの手段や製品だけではありません。
このように手段や技術、製品が複数混在しているので、必ずしも扱いたい製品で仕事が出来ない事もあります。
しかし、技術というのは最終的には間違いのない自分自身の資産になるのでシステムエンジニアを敬遠している人も少し良い方向で考えてみてもらえたらと思います。