Photo by Matt Madd
こんにちは。倉内です。
ITエンジニアというと「アプリケーション開発をする」「コードを書く」などのイメージが強いと思いますが、実際は一口にITエンジニアと言っても職種は多岐に渡ります。
なんとなくは知っていても、実際にどんな業務をしているか具体的には分からないという方も多いのではないでしょうか。
そこで今回はITエンジニアを目指す就活生や他業種から転職したいと考えている方へ、ITエンジニア・IT関連の職種について特徴や業務内容を解説していきます。
自分がどのようなITエンジニアを目指すのかを考える上でも、ぜひ職種について知っておきましょう。
ITエンジニアの業務領域
職種の話に入る前にITエンジニア・IT関連職の主な業務領域や内容を頭に入れておきましょう。
ただし企業によって、また、プロジェクトの種類・規模、採用する開発手法などによって異なるため、大枠としてこういった業務があるんだなと思ってください。
一般的にITエンジニアの業務としてイメージされるのが「プロジェクト管理」「システム開発」の枠内の内容でしょうか。
「インフラ構築」に分類されるサーバやネットワーク、セキュリティといった分野は単語として聞いたことはあっても実際の仕事をイメージするのが難しいかもしれませんね。
IT関連職になりますが、研究開発や品質保証、企画といった業務もあります。
次からはこれらの業務を主にどの職種がやっているのかを説明していきます。
ITエンジニアの職種と業務内容
職種間の境界が曖昧な部分もたくさんあるためきっちり分けるのは難しいのですが、ここでは大きく「開発系」「インフラ系」「IT関連職」の3つに分けてご説明します。
なお、実務では複数領域にまたがって仕事をすることも多くあります。
◆開発系
システムエンジニア(SE)
おそらく一番知名度がある(けど実態はよく分からない…)職種ではないでしょうか。
会社によって違いがかなりありますが、前職のSIerで8年ほどSEをやっていた頃を思い出すと、営業と一緒に提案活動をおこない、要件定義・設計・実装・テスト・運用・保守とすべて経験しました。
上の図のとおり手広く対応できることが求められ、スキル以上にコミュニケーション能力や顧客業務知識が必要になる場面が多々あります。また、各分野のスペシャリストに仕事を依頼して管理する側に回ることが多いのもSEの特徴と言えます。
SEとして経験を積むとプロジェクト管理(PM)を任されることが多いです。
プログラマ(PG)
プログラマと言ってもWebプログラマやゲームプログラマなど幅広いのですが、実装(コーディング)に特化した職種というのが共通しています。
と言ったもののプログラマも定義が難しいというか…開発系ならどのエンジニアもコードを書くことがあるので区別が難しいですよね。
あとに出てくるアプリケーションエンジニアやフロントエンジニアとあえて区別するとすれば、SEが作成した設計書に従ってコードを書くことが主な業務という点でしょうか。場合によっては、詳細設計や単体テストが作業範囲になることもあります。
アプリケーションエンジニア
アプリケーションを指すものとしては、業務系システム、Webアプリケーション、スマホアプリがあります。それらの開発業務をメインにおこなうのがアプリケーションエンジニアと言えます。
上の図では含めていませんが、アプリケーションエンジニアはプログラミング能力はもちろんのこと、ユーザーのニーズを汲み取り提案力や企画力を求められる場合もあります。
開発するシステムによってプログラミング言語はさまざまですが、業務系システムではまだまだJavaの需要が高いです。
組み込み系エンジニア
家電製品や機械などの電子機器の制御に欠かせないソフトウェアを開発するのが組み込み系エンジニアです。
CやC++といった汎用性が高く、高速処理を実現できるプログラミング言語が採用されることが多いようです。
組み込み系エンジニアはなるのが難しいイメージがありますが、IoTの普及や車の自動運転、ロボットといった分野で需要が急増している職種でもあります。
フロントエンドエンジニア
フロントエンドエンジニアも会社によって定義は異なりますが、多くの場合「Webサイト開発によく使用される言語(JavaScript、HTML5/CSS3、PHPなど)を使いこなすことができる高度なWeb制作スキルを持った人」を指すことが多いようです。
デザイナーやディレクターとコミュニケーションしながら、Web制作の技術的なフォロー役になることも求められます。
サーバサイドエンジニア
フロントエンドエンジニアが主に表に見える部分の開発を担う一方、サーバサイドエンジニアは主に表に見えない部分を開発するのが仕事です。厳密には区別する場合もありますが、バックエンドエンジニアもほとんど同じ職種と考えてよいかと思います。
動的処理を実現するためのサーバ側のプログラムを書いたり、データベースやファイルアクセスのためのプログラムを書いたりします。図でも示したとおり、サーバやデータベースの知識が必要になるため「インフラ構築」の業務も一部対象範囲としています。昨今ではセキュリティの知識も求められることも多いでしょう。
サーバサイドエンジニアは、コンパイラ型言語(Java、C、C++など)とインタプリタ型言語(PHP、Perl、Ruby、Pythonなど、完全にイコールではないのですがスクリプト言語とも言われます)の両方を扱うことになります。
開発系のエンジニアを目指す方は、まずプログラミング言語の基礎を学んでみるのもよいでしょう。paizaラーニングでは言語の入門講座をはじめ、Webアプリケーション作成など多数の講座をご用意しています。
詳しくはこちら
◆インフラ系
インフラエンジニア
インフラエンジニアと呼ばれる場合は、主にサーバエンジニアとネットワークエンジニアの両方の仕事を担うことになります。それぞれの仕事内容はのちほど説明します。
サーバやネットワークの設計・構築だけでなく、本番リリース後に正常に稼働(動作)させるために運用・保守もします。
インフラ系のエンジニアは開発系のエンジニアのように作ったものを見せることが難しいため、未経験から目指す場合は資格を取得しておくとよいかもしれません。
以降に紹介する職種は、インフラエンジニアに包括されることも多いのですが、専門分野に特化しているエンジニアも存在するため区別して紹介していきます。
SRE(Site Reliability Engineer)
SREは職種というより役割と言ったほうが正しいかもしれませんが、サービス向上のためのパフォーマンス改善、可用性・スケーラビリティ向上などを図るのが役目です。GoogleやFacebookで採用されており、日本でも採用する企業が増えてきました。
SREが従来のインフラ保守・運用業務を担当するインフラエンジニアと異なるのは、システムの改善のために積極的にソースコードの修正をする点です。(そういう意味だとインフラ系のエンジニアと分類していいかちょっと微妙なところですね…)
また、今までは物理サーバを相手にしていたのが、クラウド上のサーバに対して負荷監視やリソース管理をおこないシステムの安定稼働を図る役目になってきたということも挙げられます。
サーバエンジニア
現代は業務システムやWebサイト、ソーシャルゲームなど…システムの種類を問わず、ほとんどの場合でシステム構成にはサーバが存在します。
特に高速な処理速度を求められたり、一度に膨大なアクセスをさばく必要があったりするシステムでは、採用するサーバのスペックや構成などがサービスの質に直結しているためサーバエンジニアの役割はかなり重要であると言えます。
サーバ構築に用いるスクリプトやコマンドを覚えること以上にOS(WindowsだけでなくLinuxなどのUNIX系のOS)やコンピュータアーキテクチャの知識が必要になってきます。
また、悪意ある外部の攻撃からシステムを守るためのセキュリティの知識を要求されることもあります。
セキュリティエンジニア
名前のとおり情報セキュリティを専門にするエンジニアです。ネットワークに一切つながないシステムを除いて、これから新たに構築するシステムでセキュリティの考慮が不要なシステムはほとんどないため今後も需要が増えることが予想されます。
ただし、業務においてセキュリティのみの仕事というのはあまりなく、システム開発やインフラ構築におけるあらゆる箇所でセキュリティ要件について検討し、設計・実装・テストをすることになります。
セキュリティ面のアドバイスや提案をメインにおこなう場合はセキュリティコンサルタントといって区別することもあります。また、法律・関連制度の知識が求められる場面も多いでしょう。
ネットワークエンジニア
ネットワークエンジニアの仕事は、ネットワークの設計、構築、監視・運用です。ネットワークに関する基本的な知識、設置する機器に関する知識などが必須になります。
システム導入と同時に新しくネットワークを構築するような案件の場合、システム開発を担当するエンジニア、サーバ構築などを担当するエンジニアとのコミュニケーションはもちろんのこと、ネットワーク回線をひく場所(例えば、お客様のオフィスなど)の工事関係者や作業日時の調整など…非常に人とのやり取りが多いのも特徴です。
データベースエンジニア
データベースも現代のシステム開発案件で利用しないということはまずないので、データベースの設計や構築、安定運用、また大量データを扱う際のチューニングなどを専門とするデータベースエンジニアは重要な存在です。
ただし、セキュリティエンジニアと同様、実務ではデータベースのみで何かをするというよりアプリケーションとの連携になるため、開発系のエンジニアがデータベースの知識を習得し、データベースの設計・構築まで対応することが多いです。
個人開発でもMySQLやPostgreSQLといったデータベースを利用したことがあるという方は多いのではないでしょうか。業務ではOracleやSQL Serverもよく利用されています。
カスタマーエンジニア(CE)
これまで紹介した職種でも運用・保守の業務を担当することはありますが、カスタマーエンジニア(CE)はシステムの安定稼働のための保守や点検、修理を専門におこなう職種です。監視業務や障害発生時の迅速な対応のためにシフト勤務をとることもあります。
「システムエンジニア(SE)との違いは?」と聞かれることが多いのですが、ソフトウェアに関する業務が多いSEに比べて、CEはパソコン本体や周辺機器の設置、故障や障害時の対応などハードウェアに関することを得意としています。
インフラ系のエンジニアを目指す方は、paizaラーニングのシェルコマンド入門講座やAWS入門講座がオススメです。なかなか独学では難しい分野でもありますので、サーバ構築の取っ掛かりとして受講してみてください。
◆IT関連職
製品開発・研究開発
IT業界での製品開発・研究開発は、新たなIT製品の開発や技術そのものの開発に携わる仕事です。ソフトウェアとハードウェアどちらにも関わります。これまで挙げてきた職種と比べると非常にクリエイティブな職種と言ってよいでしょう。
最先端技術についての情報を集めたり、それらを活用して何か新しいツールや仕組みを考えたりすることが好きというのはもちろん、根気よく諦めずに研究を続けられるかも求められます。
ITコンサルタント
「ITの活用によって経営課題をどのように解決していくか」を提案・検討するのがITコンサルタントの役目です。企業によってはSE職がコンサルタントの業務まですることもあります。
ITコンサルタントは顧客の感じている課題についてヒアリングし、現状の調査・分析、改善案の提案といった仕事がメインのためコミュニケーション能力やプレゼンテーション能力が求められます。もちろんITを活用した提案をするために、ITの基本的な知識も必要です。
SEのキャリアパスの一つとして、ITコンサルタントへの転職も人気があります。
データサイエンティスト
昨今注目されている職種の1つにデータサイエンティストが挙げられます。
まだまだなり手が少ないこともあり、機械学習エンジニアと同じものとして語られることが多いのですが、データサイエンティストは「統計学や機械学習を用いてデータを分析・解析し、その結果で顧客に価値を提供する」というのが仕事です。どちらかというとコンサルタントに近い職種と言えます。
おそらく将来的に開発系のエンジニアのように分業するかもしれませんが、現在は数学(統計、微積分など)の知識や機械学習のためのプログラミング能力を求められることが多いようです。
paizaラーニングではPythonで機械学習が学べる「Python×AI・機械学習入門編」講座を提供しています。機械学習が気になっている方はチェックしてみてください。
詳しくはこちら
品質管理
ソフトウェアやアプリケーションといったサービスの品質保証(QA:Quality Assurance)をおこなうのが品質管理の仕事です。
開発するシステムの品質目標を設定したり、実際にできあがったシステムをユーザー目線でテストをして品質に問題がないかをチェックする重要な役割です。SE時代はリリース前にとてもお世話になっていました…。
図では左下に置いてしまいましたが、実際は設計書やマニュアルなどのドキュメント検査、テスト工程から納品までのシステムの品質検査など複数の工程にたずさわります。
システム開発の経験・知識があるとQAとしては非常に重宝されるため、SEからQAになる人も多くいます。
社内SE
社内SEはIT企業ではない企業のIT部門で仕事をする場合と、IT企業の社内システムに関わる仕事をする場合の2つの働き方があります。
SEとついているだけあって、社内SEの担当業務も幅広く、社内のシステム全般の開発・運用・保守からネットワークやセキュリティ、また従業員のIT教育や問い合わせ対応などもこなします。
求められるスキルや知識は企業ごとに違いが大きいですが、SE経験のある人が転職先に選ぶことも多いので似たスキルが必要と考えていいでしょう。
セールスエンジニア
セールスエンジニアは営業が自社製品・サービスを販売するのを技術的な面でサポートする仕事です。
専門性の高い業務システムなどは営業のみでお客様に説明をするのが難しいこともあり、そういった場合にセールスエンジニアが活躍します。合わせてお客様が自社製品・サービスをビジネスに生かせるように提案や助言もおこないます。
SEと似ているところがありますが、セールスエンジニアはシステム開発の工程を担当することはありません。ただし、お客様へシステムのデモンストレーションをおこなう場合があるため、そのときにコーディングが必要になることもあります。
まとめ
ITエンジニアと呼ばれる職種とIT関連職について紹介してきました。もちろんここでは紹介しきれなかった職種もありますが、主要な職種については理解していただけたのではないかと思います。
ITエンジニアと言っても本当に多岐にわたる業務領域・仕事内容で、さまざまな役割があります。
一度その職種についたら変えられないということはないのですが、求められるスキルや知識がまったく異なる領域に行くのは大変さもあるので、まずは自分がどんなITエンジニアを目指したいかについてしっかり考えてみていただければと思います。
paiza新卒の掲載求人は、スキルチェック問題を解いて規定のランクが獲得できていれば、事前の書類選考なしで必ず企業の面談を受けられます。また、私服で行けるカジュアル面談を多くの企業が実施しています。
実務未経験から応募できるエンジニア求人はEN:TRYで多数公開しています。
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら