世の中には色々な仕事があり、どこかの会社に就職してITとは関係の無いお仕事をしている人も多いかと思います。
最近はITの技術も一般化し、AI、ビックデータ、ロボット、5Gなどといった言葉も世の中に浸透してきたかと思います。
またテレビや新聞の記事では将来のITエンジニアが何十万人不足するといった警鐘を鳴らすニュースが踊っています。
そんななか、自身の市場価値の向上、給与等の就業条件の改善、仕事のやりがいの探求などの理由から、IT業界に転職したいと考えている人も居ると思います。
今回はそんな人たちの参考になればと思い記事を書いてみます。
IT業界の職種って何があるの?
ザックリ分けるとこんな感じか
- ネットワークエンジニア
- サーバーエンジニア
- セキュリティエンジニア
- 組み込み、制御系エンジニア
- 業務系エンジニア
- Web系エンジニア
- データサイエンティスト
- コンサルタント、アナリスト
- IT監査
ネットワークエンジニア
ネットワークを設計して構築するお仕事。
例えばルーターを設置して異なる拠点間でVPNを構築したり、インターネットにウェブサイトを公開する際に、その出入口にファイヤーウォールを設置したりなど。
ネットワークを繋げたり、分断したりします。業務系のSEやPGから見たネットワークエンジニアのイメージは「なんかスマート」。ただ、実際には、サーバラックに機器をラッキングするような力仕事やデータセンターでLANケーブルにひたすらタグ付けするような地味な作業もあります。
具体的な業務内容は、各種ネットワーク機器(ルーター、スイッチ、ファイヤーウォール、ロードバランサー、アクセスポイントなど)の設計、構築、設置。ネットワーク構成全体の設計。侵入検知防止システムのチューニングや定例報告資料作成。など
また、ネットワークの構築は、アプリケーション開発の様に「やろうと思えば何でも出来る」ものではなく、最初に選定した機器のメーカーや仕様、スペックなどによってやれることは決まっており、物理的な機器の購入なども伴う為、もし要件のヒアリングミスなどが発生した場合に、目も当てられない惨状になる場合もあったりします。
ただ、逆に言えば出来ないことは出来ないとはっきり言えるので、顧客側の後からの要件変更などのエンジニアに非が無いアクシデントについては強い。
後、ITセキュリティに関する知識やサーバ、ミドルウェアに関する知識や経験も必要になってくる為、ITインフラ全般に精通していると高度な技術者として扱われます。
取り敢えずCiscoの機器を扱えないとネットワークエンジニアとして名乗ってはいけない風潮が感じられます。
就職の流れ:
Cisco認定資格「CCNA」を取得して、中小SIer経由の客先常駐でも良いからネットワーク構築メインの企業に潜り込み、機器のConfig作成業務あたりから実務経験を積む。
など
サーバエンジニア
サーバを作るお仕事。サーバOSのインストール、OSの基本設定、用途毎にWebサービスなどの各種ミドルウェアの導入、設定など。
またサーバを載せるための物理筐体などのハードウェアの選定も行う。
サーバOSは大きく分けてWindows系サーバとLinux・Unix系サーバがあり、Windows系サーバは通常のパソコンと同様にGUIでの操作が可能だが、Linux系サーバではコマンドラインでの操作が一般的。
最近ではサーバの仮想化技術も利用しやすくなり、AWSなどのIaaSサービスも安価に利用できるため、サーバの導入、構築のコスト的、技術的な敷居がかなり下がっている。
サーバの設計や構築にはネットワークの知識や経験も必要になってくるため、ネットワークエンジニアを兼ねているケースも多々ある。
就職の流れ:
Linuxの資格の「LPIC」やMicrosoft認定資格の「MCP」内のWindows Serverを取得して、中小SIerに潜り込み、実務経験を積む。
またWindows serverであれば評価版もあるし、Linuxであればそもそも無償で利用できるため、独学での学習もしやすい。
実務経験が無くても、独学での経験は十分アピール可能。
セキュリティエンジニア
一般的には主にネットワークやサーバ寄りのセキュリティに特化した分析や改善提案、構築ができるエンジニア。
顧客への各種セキュリティ製品の提案、導入作業。セキュリティ診断の実施。サイバー攻撃の被害を受けた場合はその影響調査、攻撃者の追跡。情報システムセキュリティに対するコンサルティング。
年々サイバーセキュリティの世界では重要度が増しており、直近でも多くの企業が攻撃を受けてデータ流出騒ぎを起こしています。
またサイバーセキュリティの世界では、攻撃側が圧倒的に有利であり、システムの脆弱性は日々生まれ、攻撃手法はドンドン新しくなり、守る側では新しい技術と取り入れ、新しい知識を仕入れ、次々に対策をしていく必要に迫られます。
また、昔のサイバー攻撃はハッカーの能力をコミュニティ内に誇示する目的や、政治的主張の表現や嫌がらせ、業務妨害などの非営利な側面が強かったのですが、今は闇のビジネスとして攻撃が組織的に行われており、それらに付随して、サイバー攻撃の依頼や実行、ウィルスやツールの販売、仮想通貨などでの資金洗浄など、闇のサイバービジネスが盛況です。そんな得体の知れない何かと戦わなければいけません。
ネットワークとサーバに精通していれば良いかと言えばそれでは足りず、SQL インジェクション、クロスサイトスクリプティングスなどのアプリケーション側の脆弱性を突く攻撃も多くあり、Webシステムへの見地も必要になったりします。
最近はAI技術者の将来的な不足がよくニュースになりますが、その前はセキュリティ技術者の不足がニュースになっていましたね。
就職の流れ:
CCNAなどのネットワーク系資格を取得してネットワーク寄りのSIerになんとか潜り込む。
ネットワークエンジニアを主として実務経験を積み、平行してサーバ構築やWebアプリケーション開発の経験も積む。
数年後にセキュリティに特化した企業に転職とか。
組込み、制御系エンジニア
世の中にある様々な電子機器や家電製品を動かすためのブログラムを作ったり、どの様に実装するかを設計するお仕事。例えば洗濯機であれば水量のセンサーが水の量を監視し、一定の水量になれば自動で注水が止まります。そういった個々の動作はプログラムで動いており、そういったシステムを設計したりプログラムを作ったりします。
組込み系エンジニアと制御系エンジニアの仕事は一見似ているが、ちゃんと違いがあり、組込み系は主にセンサーやスイッチなどの電子部品(ハードウェア)を組み込んで、それらの直接コントロールをするようなシステム設計やプログラム作成をするお仕事、制御系は組込み系で処理する階層よりも更に上の階層で動作させ、それらの制御を担う設計やプログラムを作るお仕事。だそうです・・・。
私自身は業務系のエンジニアであり、組込み及び制御については実は詳しくは無いです。昔の同僚でそういった現場に出向している人もいましたが、同じITエンジニアではあるが、仕事で使う技術、仕事の進め方、などなどの様々なことが全く異なることからあまり業務上での交流は無かった為、正直よくわかりません。
因みに電子機器や家電製品は大きなメーカーが大量生産をするものなので、そういった製品の内部プログラムに不具合があった場合の影響は非常に大きく、製品と不具合によっては人が怪我をしたり、火事の原因になったりとするケースも有り得る為、こういったお仕事のエンジニアは二重、三重のテストを重ね、製品を作っています。
プログラムを作る際に使われるプログラミング言語は主にCやC++です。これは家電製品の内部基盤などに実装させるにあたって、プログラム自体の容量も小さく抑える必要があり、またハードウェアと直接制御することから動作も軽快である必要がある為です。
大体家電製品の大手メーカーの開発系部署だったり、カーナビメーカーの開発系部署内で、メーカーの自社社員エンジニアと、システム開発会社から派遣されたエンジニアが混在した環境でお仕事をしているそうです。
業界のイメージとしては、ITエンジニアのなかでも非常に地味な印象です。また、設計のレビューなども何度も実施し非常に細かいと聞く為、非常に大変そうです。
就職の流れ:
基本情報技術者などの一般的なIT技術者の資格を取り、顧客に大手メーカーを持っているSIerに潜り込み、組込み、制御の現場に複数人のチームとして突っ込んでもらいます。
後はリーダーにフォローしてもらいながらひたすら実務経験を積む。
そのままスキルアップすれば、大手メーカーの正社員への転職も狙えます。
ただ、必要になる言語がCやC++だったりすることが多く、決して初心者向けのプログラミング言語とは言えない言語であるため、元々の素養が無いと習得するまではかなりきついと思われます。
業務系エンジニア
企業の様々な業務をシステム化、自動化するお仕事。ITエンジニアには更に細かい職種が色々有りますが、占める割合で言えば一番多いのでは無いでしょうか。
顧客データの登録や検索、管理を行う顧客管理システム、売上データや受注データ等の登録や検索、管理を行う販売管理システム、企業の財務データなどを管理する会計システム、業務系と一言で呼んでも、中身は様々です。
顧客からの要望を受けて、手作業や非効率な手順で行っている既存の業務をシステムを介して出来るようにします。また、紙の伝票や台帳などで管理していたものはデータ化し、データベースで電子的に管理出来るようにします。
前述したネットワークエンジニアであればネットワークという一般の人からしたら使えるのが当たり前のインフラであり、裏の仕組みを意識しない分野ですし、組込みや制御系ですと、機械のなかのプログラムである為、やはり一般の人にはイメージし辛い分野かと思いますが、業務系システムというのは、社会人であれば大抵会社で何らかのシステムを使って業務をしますし、システム化されていない業務をシステム化するという概念も理解しやすいかと思います。
また業務をシステム化するにあたっては、何らかのアプリケーションを作ることになります。そのアプリケーションには大きく分けて二種類あり、ブラウザ上で動かすWebシステムと、パソコン内にシステムをインストールしたりEXE形式のファイルを実行して起動するクライアント・サーバ型(CS型)システムがあります。
昔はブラウザ上でシステムを作ろうとしても細かい制御が出来なかった為、ある程度規模の大きいシステムはCS型で作るのが主流でした。ただ、今はブラウザ上でやれることも増えて、昔のようにCS型でしか出来ないことも少なくなってきた為、システムのインストールや実行ファイルの配布が不要なWebシステムを採用するケースが大半になってきている印象です。
個人的には、業務系エンジニアはITエンジニアとして基礎となる技術を万遍なく習得することになり、間口も広い為、異業種からの転職で一番お勧めしたい職種になります。
プログラミングをする場合も制御系などの様な、初心者では習得し辛いC言語などの言語は使用せず、もっと初心者でも習得しやすい.NET系の言語やJAVA、PHPなどの高級言語が使われます。
そういった言語でプログラミングを多少でも習得しておくことで、その後ジョブチェンジで制御系などに行こうとした場合でも、業務システムの開発で習得したプログラミング経験は活かせます。
また、業務システムでは当然データベースサーバなどのサーバが必要になり、それらを配置する為のネットワークも必要になります。業務系エンジニアとして経験を積むことで、ネットワークやサーバの知識や技術も習得出来ます。更に近年はセキュリティもシステム設計するうえで考慮する必要もあり、セキュリティに関する知識やスキルも付きます。
また、WBSなどの考え方やウォーターフォールモデルでのシステム開発手法、スケジュールを立てたチームでの作業など、他の職種でも通用するようなITエンジニアとしての基本的な知識や技術を学ぶことが出来ます。
間口が広いと前述しましたが、業界未経験でも関わりやすい仕事も多く、例えば業務システムの開発におけるシステムテスト工程などは、SEやPGが作ったテスト仕様書を元に、動作が想定されている通りに動くか、データは設計通りに書き換わるかなどのテストをしますが、こういった作業はITスキルが比較的低くてもこなせます。
ただ、業務システムの開発は、ネットワーク構築の案件の様に機器の仕様上の制約に縛られるといったようなことも少なく、労力さえ掛ければ何でも作れます。顧客が急に要件を変えたり、追加をした場合に、その対応を行うと当然作業量が増えて納期に間に合わない場合も発生しますが、顧客が納期の調整を許容してくれないケースも多々あります。そうするとエンジニアは当初の納期を守れるように長時間労働を強いられるようになります。日本の業務システムの開発現場ではそういった理不尽な仕事の受け方が蔓延しており、所謂デスマーチ状態だったり、ブラック企業に陥りやすい業種だったりもします。
就職の流れ:
できれば基本情報技術者試験などは受かっておくと良いが無くても良い。
中小SIerであれば、極端におかしな経歴が無く年齢が若ければ、数を打てばどこかで採用してもらえる。
若くなくても何らかの資格でも取っておけばやっぱり数を打つことでどこかで採用してもらえる。
ただ、正社員として就職しても実際の業務は自社内ではなく客先常駐、一般的な言葉で言えば他社に派遣されて仕事をするようなケースも多い。
システム開発会社と謳っていても、実際は自社には事務の人が居るだけで社員は全員客先に居るといった派遣会社の様な会社も多くある。
その様な会社では仕事の幅は狭まり、スキルアップも難しくなる。
なので、出来れば自社内でもシステム開発を行っているようなSIerに入るべき。
いったん中小SIerで経験を積み、プロジェクトリーダーなどがを任せてもらえるようになれば、その後業務系エンジニアとしてより待遇の良い大きな会社に転職したり、ネットワークエンジニアや制御系エンジニアなどより何かに特化したエンジニアを目指して転職していく流れが良いかと思います。
長くなってしまったため、今回の記事はここまで。
また続きは次回の記事で・・・。