【エンジニアとは】わかりやすく業務内容と年収を現役エンジニアが解説

【エンジニアとは】わかりやすく業務内容と年収を現役エンジニアが解説

初めまして。

中堅Webエンジニアのrevenue-hackです。

プログラミング歴はもう10年程度になります。

普段エンジニアをやりつつ役員をやっている会社で、エンジニアを支援する業務を行っています。

そうするとWebエンジニアの市場ニーズというのをよく目にします。

またクライアントさんからも「こういうエンジニアほしいんだけどいますか?」というのをよくご相談されたりします。

今回はご相談される内容から昨今のエンジニアのニーズや初心者向けにどういう業務をするのかと言うのをご紹介していきます。

エンジニアとは一口に言っても色々な種類がある?

エンジニアと言っても実は色々な種類があります。

ざっくりご紹介します。

Webエンジニア

主にWebサイトったり、モバイルアプリのバックエンドを作ったりするエンジニアになります。

例えば楽天などのECサイトや社内の業務系ツール、TwitterなどのtoC向けのSNSなど、みなさんが一度は触れたことあるようなWebサイトなどを作るエンジニアになります。

また作ったサイトを保守・運用するのもWebエンジニアの役目となります。

Webエンジニアの中にも更に細分化されていて、フロントエンドエンジニア、バックエンドエンジニア、インフラエンジニア、主にこの3つに細分化されます。

Webエンジニアの技術トレンドはかなり速いので、1年前がデファクトスタンダードだった技術が翌年には古いと言われることはよくあります。

アプリエンジニア

アプリエンジニアとはモバイルアプリを作るエンジニアです。

iOSやAndroidのストアでアプリをダウンロードして使えるのは彼らが作っているということになります。

またモバイルアプリはほとんどが裏側のデータベースというものに連携していて、

そのデータベースとやり取りをするアプリケーションプログラミングインターフェース(API)と言われるものをモバイルアプリで呼ぶことで、モバイルアプリを使うユーザのデータを連携しています。

Webエンジニアとかなり密接に関わるエンジニアとなります。

システムエンジニア

システムエンジニアとはWebエンジニアの中でも受託開発をするエンジニアのことを指します。

ただ実はシステムエンジニアはWebエンジニアやアプリエンジニアと明確に定義が別れているものではないためか、

実際に使い分けている人をあまり見たことがないので、イメージ的には請負で開発するエンジニアというイメージで良いと思います。

Sler(エスアイヤー)

Slerとはシステムインテグレーターの通称で、

プログラムは書かずに、ITサービスを作る際の上流工程を担う人を指します。

具体的には要件定義、基本設計、詳細設計などを行います。

いくつか紹介しましたが、次はWebエンジニアの業務や実際の市場から年収やニーズを観ていきたいと思います。

実際のWebエンジニアの業務とは?

先程Webエンジニアの紹介の中でWebエンジニアはフロントエンド、バックエンド、インフラと3つに別れるという話をしました。

その3つに分解してそれぞれの業務、ニーズ、年収をご紹介していきます。

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

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

業務内容

フロントエンドエンジニアとはWebサイトの画面を構築するのがメインの業務となります。

例えば記事メディアの記事画面や、よくある企業HPのお問い合わせフォーム、企業HPなど見た目を作る部分が業務になります。

またクリックした時にスクロールしたり、アニメーションが起こったりするのもフロントエンドの業務になります(後述しますがこれはJavaScriptという言語で作られます)。

具体的な技術スタックはHTML, CSS, JavaScript(JS), TypeScript(TS)となります。

HTML、CSSは画面のデザイン部分を司るマークアップ言語と呼ばれるもので、プログラミング言語ではないです。

JSは画面のアニメーションを作ったり、ブラウザからAPIを呼ぶなどの処理ができるプログラミング言語です。

TSはマイクロソフト製のJSに型というものが入った言語になります。

昨今このTSの需要が上がっていて、というのも型がある言語の方が堅牢なアプリケーションを作ることができるためです(この辺についてはまた別途詳しく書きたいと思います)。

フロントエンドとしてHTML, CSS, JSはmustで出来なければならないですが、TSの必要性はその会社によるので、必ず出来なければフロントエンドと呼べないというわけではないです。

またJSをより簡単に書くためにjQueryというライブラリがあり、昔はjQueryを使えることも必須の条件だったりします(後述しますがモダンな会社ではもう殆ど使われていないです)。

最近のトレンドは?

フロントエンドはとても技術の流れが速い領域です。

昨年使われていたツールがもう使われないなんてこともザラにあります。

そんなフロントエンドで昨今流行っているトレンドはシングルページアプリケーション(SPA)と言われるWebサイトの構築ができることです。

SPAとは単一のWebページで出来たWebサイトで、画面遷移は一つのページを部分的に変更することで動的に変わるようにしています。

画面遷移の際にブラウザではXMLHttpRequest(XHR)でバックエンドのサーバからデータを取得するなどして、動的に変更をするようにしています。

そのSPAのWebサイトを作るための技術として昨今で有名なのはReact.jsVue.jsというフレームワークになります。

初学者でも学びやすいのはVue.jsの方になりますが、

僕の仕事をしている所感だとReact.jsのほうが需要が高いです。

理由はおそらくReact.jsがTSとの相性のよいフレームワークという点です。

なのでまず初学者の場合はReact.jsとReactをさらに効率よく使えるフレームワークのNext.jsを覚えることをおすすします。

学習時間でいうと僕の知り合ったエンジニアの方々を見てると、大体2年程度でReact.js、Next.jsを使いこなせている印象です。

年収は?

あくまでこれは参考値になります。人それぞれ大分能力に差があるので、必ずしも全員が当てはまるというわけではないです。また業務委託で入った場合になります。就職する場合は会社によって様々なので一概には言えないです。

スペック報酬額
HTML+CSSのみできる(規模にもよるが)1サイト10~30万
HTML+CSS+JS(jQuery)300万~400万程度
HTML+CSS+JS+Vue(Nuxt)500~800万程度、フリーランスだと80万/月も稼げるケースも有る
HTML+CSS+JS+React(Next)600~800万程度、フリーランスだと80万/月も稼げるケースも有る
HTML+CSS+JS(TS)+React(Next)700~1000万程度、フリーランスで100万/月も可能

参考文献: https://freelance.levtech.jp/project/search/?keyword=React&fw%5B%5D=49&sala=7

まとめると

初学者の場合はHTML、CSSの基本的な部分を出来るようにして、簡単なJSも勉強したら、Reactを勉強するのが良いと思います。更にReactもできるようになったらTSも学ぶとより就職は簡単になると思います。

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

バックエンドエンジニア
バックエンドエンジニア

業務内容

バックエンドの業務内容は結構幅広いです。

  • Webサイトに表示するAPIの作成
  • データベースの設計、構築
  • (必要な場合)バッチの構築
  • (インフラエンジニアが担う場合もある) CI/CDの構築
  • フロントエンドとAPIとのつなぎ込み
  • ログの設計
  • (必要な場合) Dockerの構築
  • バックエンドの保守運用

ざっというと上記になりますが、バックエンドはフロントエンドやインフラとも密接に関わる領域になるため、どちらもある程度の理解が必要です。またインフラはアバイによってはバックエンドがやるケースも多々あります。

バックエンドの言語でよく使われるのは

  • Ruby(Ruby on Rails)
  • PHP(Laravel)
  • Go
  • TypeScript
  • Java
  • Kotlin
  • Scala

このあたりが多いです。

初学者だとRubyやPHPあたりがとっかかりやすい言語となります。

またGoは型がちゃんとあって、言語仕様的にも簡易的になっているので使いやすい言語です。

年収は?

バックエンドの年収はどの言語でどの程度の年数をやっているかが重要になります。

なので一概には言えないです。また以下は業務委託で受けた場合になります。

スペック報酬額案件
PHP,Ruby3年程度600~800万程度豊富
Go3年程度800~1200万程度普通
Java600~900万程度豊富

参考文献: https://freelance.levtech.jp/

まとめると

初学者であればPHPかRubyでかつLaravelかRuby on Railsを学んで行くのが良いと思います。

スクールでも多くがPHP、Rubyの教材があります。

詳しくはこちらの記事でご確認ください。

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

インフラエンジニア
インフラエンジニア

業務内容

  • Webサービスを稼働させるインフラの構築
  • ログ基盤の構築
  • サーバ監視の設計・構築
  • エラー時のアラート設計・構築
  • (必要な場合)Docker構築、CI/CDの構築
  • ネットワークの構築
  • サーバの保守運用

主にこれがインフラエンジニアの業務になります。

昨今だとAWSAzureGCPなどのマネージドサービスを使うケースが多いです。

僕自身もWebエンジニアとしてやっていて、マネージド以外のサービスを使ってインフラを構築するクライアント様を見たことがないです。

なので上記の業務内容には書かなかったですが、マネージドを構築するための知識は必要かと思います。

そうすると

  • Infra as A Code(IaC)の作成
  • マネージドサービスでインフラを構築する知識

これが必要になってきます。

年収は?

インフラエンジニアはアプリケーションエンジニア(フロントエンド、バックエンド)と比べるとそもそも業務委託としては案件があまりないです。

というのもWebサービスを作るのに一番リソースがかかるのがアプリケーションを作る部分になります。なので業務委託ではあまり案件がないのが現状です。

求人ボックスナビによると、平均年収は533万程度になるようです。

これはあくまで正社員での金額になるので、業務委託だともっと高くなると思います。

まとめ

今回は実際にエンジニアをやっている身からわかるエンジニア市場や、実際の業務、年収を紹介しました。

僕は基本的に(その人の趣味嗜好によりますが)初学者にどの領域を最初にやるべきかと問われると必ずバックエンドエンジニアをオススメします。

理由はバックエンドエンジニアがテックリードやCTOなどを担うケースが多いからです。それはWebサイトを運用しているとバックエンドの業務はボトルネックになる部分が多く、その知識がない人がテックリードなどエンジニアチームの中枢を担うことが難しいからです。

なのでバックエンドを目指す場合は僕もそうでしたが最初はPHPをRubyを学んでWebサイトの構築を出来るようにしてから、

徐々にフロントやインフラの知識をい深めて行くのが良いと思います。

ただ僕の肌感だと昨今はフロントエンドのエンジニアが足りておらず、

特にReact(Next)が出来る人が少ない印象です。

なので戦略的にReact(Next)を学んで、仕事をするというのも良いかと思います。

その場合はHTML、CSSをある程度出来るようにしてから、JSを学び、React(Next)を勉強していく、その後TSなどに幅を広げていくのが良いと思います。

初学者のためのエンジニアの勉強法に関してはこちらに記事に詳しくあるので、是非参考にしていただければと思います。

エンジニアリングカテゴリの最新記事