エンジニアの職種

エンジニアと一括りに言っても、実装する部分、担当する領域によって様々な名前が付いています。今回は、代表的なエンジニアの職種とその特徴(いいところ・つらさ)についてご紹介したいと思います。これからエンジニアになろうと考えている人、スキルチェンジを考えている人の参考になれば嬉しいです。


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

Webサービスにおいて、ユーザに見える部分を作成するエンジニア。デザイナーが作ったデザインを元にコードに落とし落とし込んで、動く画面を作る。

主な使用技術は、JavaScript, TypeScript, React, Vue.js, Node.js, Angular, HTML, CSS, Sass, Less, Stylus, Elm, webpack, jQueryなどがある。

いいところ
ユーザが直に触れる部分を実装でき、サービスを作っている実感を強く感じることができる。

大変なところ
毎年、新しい技術が流行る傾向にあり、フロントエンドエンジニアとして第一線で活躍するためには、常にキャッチアップする努力が必要。


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

サーバー側での処理部分を作成するエンジニア。主にはビジネスロジックを実装し、永続化データに対する処理を行う。また、映像を配信する仕組みを実装するエンジニアや、機械学習を使用した処理の実装をするエンジニアなど、一言にバックエンドと言っても、その作業内容は様々なものがある。

主な使用技術は、Java, PHP, Ruby, Python, Scala, Go, C#, Erlang, Rust などがある。

いいところ
バックエンドエンジニアを多く必要とするプロジェクトがあるため、社会からの需要が高い。

大変なところ
フロントや別システムとの連携部分を実装することが多く、ビジネスロジックを担っているため、様々な人との調整ごとが必要になることが多い。


3. (ネイティブ) アプリエンジニア

スマホアプリを作成するエンジニア。iOS用のアプリを作成する場合は主にSwift, Android用のアプリを作成する場合は主にKotlinかAndroid Javaが使用される。

いいところ
世の中の多くの人が毎日触れているスマホのアプリを作れるため、身近なものを作っている実感がある。

つらさ
iOSアプリの場合、開発環境やアプリを販売するプラットフォームがApple社に依存しているため、Apple社が決めた変更に振り回されることになる。Androidの場合も同様に、Googleに依存した開発となる。


4. ゲーム系エンジニア

ゲームにおける、ユーザが触る部分を作成するエンジニア。主に、Unity, Unreal Engineといったゲームエンジンを使い、開発を行う。2D, 3Dオブジェクトに対する実装はWebやスマホの実装方法とは大きく異なる。

いいところ
ゲームが好きな人にとっては、自分の好きなことを仕事にできてるという、やりがいを感じられる。

つらさ
急な仕様変更が多いため (メテオフォール型開発) 、開発スピードを求められることが多い。スピード重視の開発に対して、個人の気質が合わないと辛い。


5. インフランジニア

インフラ領域を担当しているエンジニア。サーバー構築やネットワーク設定、運用・監視など、インフラエンジニアが見る範囲は多岐にわたる。

主な使用技術は、AWS, GCP, Azure, Linux, Windows Server, Docker, k8s, Ansible, Terraform

いいところ
サービスを支える根幹となる領域を担当していると感じられる。インフラ領域での改善は、コスト削減・レスポンスタイムの改善といった、サービス品質向上のインパクトが大きいため、やりがいを感じられる。

つらさ
担っている領域に大規模障害に繋がる可能性の高い部分があることと、障害対応において短時間での復旧を要求されることが多い。


6. QAエンジニア

プロダクトの品質を保つために、主にテストに関わる領域を担当しているエンジニア。品質指標の設計やテスト計画、テスト実施や開発へのフィードバックなどを実施する。

いいところ
いろんなチームのいちメンバーとして作業をすることが多いため、様々な人やプロジェクトに関わることができる。

つらさ
一般には、テストの工程は実装よりも後のフェーズにあるため、スケジュールのしわ寄せがくることが多い。



これ以外にも、セキュリティエンジニアやDBエンジニアといった様々な切り口があるのですが、今回は一部割愛して記載しました。割愛した部分に関しては、今後、投稿したいと思います。

それでは、良いエンジニアライフを!