何エンジニアを目指す?ITエンジニアの職種や仕事内容をすべて紹介

プログラミング

ITエンジニアの職種や仕事内容について知りたいです。また、未経験からITエンジニアになる方法があれば教えてください。

こんな疑問に答えます。

近年、働き方改革や新型コロナウィルスの影響からテレワークが加速し、今まで以上にITエンジニアを目指す方が増えてきています。

ITの分野はハードウェア、ソフトウェア、Webなど領域が広く、一言でITエンジニアと言っても活躍の領域や職種は様々で、どの職種を選ぶかによって業務内容が全く変わってきます。

今回は、IT業界へ興味を持っている方、IT業界への転職を考えている方へ向けて、ITエンジニアの職種や特徴について解説していきます。

自分にあった職種が見つかり、ITエンジニアを目指すきっかけになれれば幸いです。

ITエンジニアとは

ITエンジニアとは

ITエンジニアは「情報技術」に関わる技術者の総称で、世の中の様々な課題を情報技術を使って解決することが仕事です。

働き方

ITエンジニアとして働くには、正社員、フリーランス、個人事業主、有期雇用派遣、無期雇用派遣などさまざまな働き方があります。

会社に勤める場合、会社によってはフレックスやリモートワーク(テレワーク)などの制度があり、働く場所や時間について他の業種に比べて、自由度が高く働ける環境が増えてきています。

Web系の企業だと、髪型や服装も自由な場合が多い印象です。

また、会社に所属せずに、個人事業主やフリーランスとして、より自由度の高い働き方を選択することも可能です。

【リモートワーク】自由な場所で働く新しい時代のワークスタイル

年収

例えば、企業に勤めるシステムエンジニアの平均年収は約550万円で、全業種の平均年収が約454万円のため、比較的高い水準となっています。

また、過去5年間の平均年収の推移を見ても500万円を超えており高い水準をキープしています。

有名なIT企業で働く技術力の高いエンジニアは、年収1,000万円以上を稼いでいたり、会社に所属せずに、個人事業主やフリーランスとして年収、何千万を稼いでいる方も多くいます。

年齢に関係なく、技術力によって年収を上げていくことができる点は、エンジニアの魅力のひとつでもあります。

厚生労働省:賃金構造基本統計調査(平成29年)より年収を算出

ITエンジニアの職種

ITエンジニアの職種

ITの分野は領域が広く「作るモノ」によって、エンジニアに求められるスキル(知識・技術)が異なるため、様々な職種が存在します。

同じ開発系のエンジニアであっても、iPhoneやAndroidで動作するスマホアプリとエアコンや掃除機などの家電に組み込まれるプログラムでは、エンジニアに求められるスキルが異なるため、それぞれ別の職種のエンジニアが開発するといった形です。

近年、ITの成長が加速しており、それにあわせてエンジニアの働く領域も細分化された結果、新しい職種が生まれてきています。

それでは、エンジニアの職種や仕事内容を詳しく見ていきましょう。

開発系エンジニア

システム開発(モノ作り)をする職種になります。

主にプログラミングをしたり、作ったシステムが正しく動くかテストをしたりします。

フロントエンドエンジニア

フロントエンドエンジニアは、Webページで動くプログラムを使った開発を担当するエンジニアです。

ユーザーが見るフロント部分を開発するので、フロントエンジニアと呼ばれています。

主にHTML、CSS、Javascriptなどのプログラムを使って開発を行います。

Webページは、HTMLやCSSで実装し、ボタンがクリックされた場合などの挙動をJavaScriptで実装していきます。

主に必要なスキル
  • HTML、CSS、Javascript
  • React、Vue.jsなどのフレームワーク

バックエンドエンジニア(サーバーサイドエンジニア)

バックエンドエンジニア(サーバーサイドエンジニア)は、サーバーで動くプログラムを使った開発を担当するエンジニアです。

ユーザーからは見えないサーバーのバックエンド部分を開発するので、バックエンドエンジニアと呼ばれています。

サーバーでは、主にWebページに表示するためのデータをデータベースから取得したり、データベースへ保存したりします。

Googleなどのインターネット検索で検索結果を見れるのは、サーバーでプログラムが動いているからです。

ユーザーが検索キーワードを入力した後、検索キーワードにマッチしたデータをデータベースから取得し、検索結果の画面にデータを返却しているのがサーバー上で動作するプログラムです。

サーバーで動くプログラムは様々ありますが、主にRuby、PHP、Java、Goなどのプログラムを使ってバックエンドの開発を行うことが多いです。

主に必要なスキル
  • Ruby、PHP、Java、Goなどのプログラミング技術
  • Ruby on Rails、Laravel、Springなどのフレームワーク
  • SQL、MySQL、PostgreSQLなどのデータベース
  • Linuxの基礎

モバイルエンジニア(ネイティブエンジニア)

モバイルエンジニアは、スマートフォンで動くアプリの開発を担当するエンジニアです。

スマートフォンのアプリはプログラムが動作するOSが異なることから、主にiOSとAndroidの2種類に分けられます。

そのため、モバイルエンジニアもiOSアプリを開発するエンジニアとAndroidアプリを開発するエンジニアに分けられ、iOSエンジニアやAndroidエンジニアと呼ばれることもあります。

iOSアプリは、SwiftやObjective-C、Androidアプリは、KotlinやJavaといったプログラミング言語を使って開発します。

iOSアプリ、Androidアプリの両方を開発できるエンジニアは当然、市場価値が高くなります。

主に必要なスキル
  • iOSアプリ:SwiftやObjective-Cなどのプログラミング技術
  • Androidアプリ:KotlinやJavaなどのプログラミング技術

機械学習エンジニア

機械学習とは、コンピュータが膨大な量のデータを学習することで、人間ができないようなデータの分類や予測をする技術です。

機械学習エンジニアは、機械学習に関する業務を担当するエンジニアです。

一部の例ですが、これらは機械学習によって実現されています。

  • チャットをボットが応答する
  • インフルエンザの発生を予測、追跡する
  • 画像から顔を認識する
  • リアルタイム音声を、テキストに変換する

機械学習に使われるプログラミング言語は、データ収集や解析をしたり、可視化するライブラリが豊富なPythonが使われる事が多いです。

主に必要なスキル
  • Python、Rなどのプログラミング技術

組み込みエンジニア

組み込みエンジニアは、家電製品や機器などに組み込まれているプログラムの設計や開発を担当するエンジニアです。

テレビや洗濯機、炊飯器などの家電製品中には、「マイコン」と呼ばれる小型のコンピューターが搭載されています。

組み込みエンジニアはマイコンで動くプログラムを設計、開発します。

洗濯機のマイコンには、「洗濯物の重さで水の量を決める」、「水が○リットル溜まったら○○分間洗濯槽を回転させる」などの手順がプログラミングされており、その手順に従って、接続している機械に命令をします。

私達の生活を支える家電製品などの機器を開発している重要な分野ですが、慢性的に人材不足な状態であると言われています。

主に必要なスキル
  • C、C++、Javaなどのプログラミング技術

QAエンジニア

QAエンジニアは、サービスの品質保証をする役割を担当するエンジニアです。

完成した製品に対して、リリースする前に不具合がないかを確認するテスト計画を立案し、実際に動作確認を行います。

プログラムを確認して不具合が起こりそうな箇所を重点的にテストしたり、不具合や改善点があれば自分で改修をしたりと作業内容は多岐にわたります。

QAエンジニアは、実際の実用性の観点などからもチェックを行うため、開発者の視点もユーザーの視点も持ち合わせておくことで、開発者では思いつかないような不具合のケースに対応できるようになります。

主に必要なスキル
  • 利用者目線
  • プログラミング技術
  • テスト技法
  • ISOなどの品質管理基準に関する知識

SRE(Site Reliability Engineer)

SREは、Googleが提唱するエンジニアの新しい役割として、近年注目されるようになってきました。

システムは開発したら終わりではなく、ユーザーに問題なく継続的に使ってもらえるように運用を続けていく必要があります。

SREは、サービスの信頼性を向上させるために、サービスを安定的、継続的に稼働させたり、システム運用に伴う手動の作業を自動化・効率化する役割を担当するエンジニアです。

大きく分けて「サービスの可用性を保つ」「パフォーマンスを向上させる」「システムの変更内容を管理する」という3つの重要な役割が与えられており、ITインフラの運用管理を担当する技術者ではありますが、ソフトウェアエンジニアとして開発も行いますので、幅広い知識、技術が求められます。

主に必要なスキル
  • Windows、Linux、Unixなどのサーバーの知識
  • AzureやAWSなどクラウドサーバーの知識
  • Ruby・PHP・Java・Pythonなどのプログラミング技術
  • アプリケーションやデータベースのパフォーマンスチューニング
  • ネットワークの知識
  • セキュリティの知識

インフラ系エンジニア

システムが動く土台となるサーバーやネットワーク、データベースなどの構築や監視、セキュリティや品質、信頼性などを高める業務を行う職種になります。

開発系のエンジニアが作り上げたシステムは、土台となるサーバーやネットワーク、データベースがあるからこそ、ユーザーへ提供することができます。

インフラ系エンジニアは、「縁の下の力持ち」としてITサービスを24時間365日動かし続けるために必要不可欠なITの根幹を担う重要な仕事になります。

インフラエンジニア

インフラとは、コンピューターやサーバー、ネットワークなどITを支える基盤を言います。

インフラエンジニアは、ITインフラの設計や運用、管理を担当するエンジニアです。

新型コロナウイルスの影響でテレワークやリモートワークが増えてきましたが、リモート環境から会社のサーバーに接続できるのは、インフラエンジニアがネットワーク管理をしてくれているからです。

近年、クラウドサーバーを使ったインフラの構築が主流になってきていますので、今後はクラウドサーバーのスキルは必須になっていくと考えられます。

主に必要なスキル
  • Windows、Linux、Unixなどのサーバーの知識
  • AzureやAWSなどクラウドサーバーの知識
  • ネットワークの知識
  • セキュリティの知識

データベースエンジニア

データベースエンジニアは、データベースの設計や開発、運用、保守などを担当するエンジニアです。

Googleなどのインターネット検索で検索結果を見れるのは、検索キーワードに関する記事の情報がデータベースに保存されているからです。

このように、データをデータベースに保存したり、データをデータベースから瞬時に取り出せるようシステムを構築・運用したりすることがデータベースエンジニアの仕事です。

また、データベースに関する業務だけでなく、サーバーやネットワークといったITインフラ全般に関わることも多い職種です。

近年は、ビッグデータという言葉が話題になっています。

企業のIT戦略や情報技術の活用に関する方針を理解し、どのようなデータを集めて、どのような形で分析すれば、企業の戦略に活かせるかなど、経営戦略を経営者と一緒に考えることができる人材が求められており、活躍の場は広がってきています。

主に必要なスキル
  • Oracle、MySQL、PostgreSQL、Microsoft SQL Server、MongoDB、Memchached、Redisなどのデータベース製品の知識
  • SQL

未経験からITエンジニアになる方法

未経験からITエンジニアになる方法

これまで様々なITエンジニアの職種をご紹介してきました。

ITエンジニアは、医師や弁護士、パイロットのように、働くために特別な資格は必要ありません。(IT系の資格はたくさん存在します)

目指す職種に必要なスキル(知識、技術)を身に付けることができれば、エンジニアとして働くことができます。

極論、求められるスキルを持っていれば、学校を卒業していなくても、10代でも50代でも、ITエンジニアになれるということです。

また、ITエンジニアというと、理系のイメージを持つ方が多いのですが、文系出身のITエンジニアはとても多いです。

僕自身、文系の学部を卒業してITエンジニアになっています。

もちろん、研究職や機械学習エンジニアなど数学的な専門性の高い職種においては、理系の知識が強く求められると思いますが、これら以外のITエンジニアになるために、理系か文系はあまり重要ではありません。

では実際に、未経験からITエンジニアになるためにはどうしたらいいでのしょうか?

例えば、Web系のバックエンドエンジニアを目指すなら、次のようなスキルが必要になってきます。

  • HTML
  • CSS
  • Javascript(Vue.js、React)
  • Ruby、Ruby on Rails(PHP、Laravel)
  • MySQL
  • SQL
  • Linux基礎
  • Git
  • Docker

これらのスキルを身に付ける方法としては、以下のいずれかが一般的です。

  • 独学(書籍やオンライン学習)で学ぶ
  • プログラミングスクールで学ぶ
  • 未経験OKの企業へ入社して研修や仕事を通じて学ぶ

それぞれ、どのようなメリットやデメリットがあるのか比較していきます。

独学(書籍やオンライン学習)で学ぶ

Progateなど、良質なサービスのオンラインのプログラミング学習サービスがあるので、まずは、プログラミングが自分に向いているかを判断するために、オンライン学習サイトで学んでみるのも良いかと思います。

独学は、1人で学習を進めるのでモチベーションの維持が難しく、詰まっても教えてもらうことができないのがデメリットですが、未経験から独学でエンジニアになる方法で解決方法を解説していますので読んでみて下さい。

また、プログラミング関連の書籍は、個々のレベルに応じた書籍がありますので、まずは初心者向けの書籍を読みながら学習することをおすすめします。

プログラミングスクールで学ぶ

本気で未経験からエンジニアを目指すなら、プログラミングスクールへ通うことをおすすめします。

数年前よりもプログラミングスクールのレベルは高くなっていて、現役のエンジニアによるサポートのもと、開発現場で本当に必要になるスキルだけを習得して就職までサポートしてくれるスクールもあります。

プログラミングスクールはオンライン型と通学型の2種類あり、自分にあったスタイルを選ぶことができます。

オンライン型

オンライン型はインターネットを利用して学習するタイプのスクールです。好きな時間に好きな場所で自分のペース学習できるのがメリットです。学習スケジュールを自分自身で管理する必要があり、モチベーションの維持が難しい点がデメリットです。授業料は、通学型と比べて割安です。

通学型

実際に通学して学習するタイプのスクールです。分からないところがあった場合は講師に質問することができるため、学習がスムーズ進めれられることや、同じ目標を持ったスクールの仲間と学習できるのでモチベーションが維持しやすい点がメリットです。通学に移動時間や移動の費用がかかることがデメリットです。

未経験OKの企業へ入社して研修や仕事を通じて学ぶ

この中では一番ハードルが高いように思われがちですが、未経験の人材を積極的に採用する企業もあります。

とにかく働きながら実務経験を積みたい方におすすめですが、自分が習得したいスキルが習得できなかったり、自分が描くキャリアが望めなかったりという可能性があります。

入社前には、業務内容をしっかりと確認して自分の描くキャリアとマッチするかを判断する必要があります。

まとめ

ITが社会全体へ浸透した現代において、ITエンジニアの活躍の場は確実に拡がってきています。

ITエンジニアは、自由に働けて技術次第で年収を上げることができる魅力ある職業です。

そして今、人材不足である職業の1つでもあります。

未経験からITエンジニアを目指したいという方は、まず行動しましょう。

自分が目指したいITエンジニアが決まったら、まず一歩を踏み出してみてください。

未来は変わるはずです。

未経験から独学でエンジニアになる方法

コメント

タイトルとURLをコピーしました