エンジニアの職種別で学ぶべきことと必要なスキル




どうも高妻です。Twitterでプログラミングのことや暗号通貨のことをつぶやいているのでよかったらフォローしてください。  

エンジニアの職種とは?

一口にエンジニアといってもいろんな職種があります。ざっくりまとめるとこんな感じでしょうか?

  • サーバーサイドエンジニア
  • インフラエンジニア
  • フロントエンドエンジニア
  • ネイティブエンジニア
  • ゲームエンジニア

サーバーサイドエンジニア

サーバーサイドエンジニアの役割はサービスの土台を作ることになります。

クライアントからのリクエストを受け付け、リクエスト別にデータベースへの読み書きを行い、最終的にクライアントに要求されたデータを返す処理を実装します。

サーバーサイドエンジニに必要となるスキル

  • リクエストを処理するプログラミング言語の選定と実装
  • データベースの選定と設計
  • サービスを実現するためのインフラの選定と設計

全て技術選定から仕事が始まります。サービスを実現するのに適したプログラミング言語の選定、データの用途別に使用するデータベースを決定し、最終的な全体構成をまとめあげます。

こう考えるとサービスを作る上でプログラミングをするというのは一部分であり、プログラミングをできるだけではサービスを作ることはできません。

チーム開発をするのは広範な専門分野を補うようにいろんな長所を持ったメンバーで構成するためですね。

インフラエンジニア

インフラエンジニアの役割はサービスのインフラ構成や監視機能の構築がメインになります。

最近ではAWSやGCPなどのクラウド環境が台頭してきたこともあり、サーバーサイドエンジニアがインフラ構築をすることが多くなってきているのが現状です。

それでもインフラというのはアプリケーションの実装と同じようにものすごく専門性の高い分野ですので極めるのはそれなりの時間が必要になります。

特にセキュリティ面に関しては今後より一層高いスキルが求められるようになると思います。

インフラエンジニアに必要となるスキル

  • セキュリティや耐障害性を考慮したインフラ構築
  • コードベースでのインフラ管理

インフラエンジニアのよくある立ち位置として、サーバーサイドエンジニアが考えたインフラ構成のチェックや構築サポート、セキュリティや耐障害性への対応を組織内の全サービスで横断的にみるというのが多いかと思います。

なので、各サービスでセキュリティレベルやインフラ構成を統一し、時間と費用の削減などを行うのも重要な仕事となることが多いです。

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

フロントエンドエンジニアの役割はサービスの見た目を作ることです。

デザイナーが作ったホームページやサービスのデザインをHTMLやCSS、Javascriptを駆使して実現することと、サーバーへリクエストを実行し、必要な情報の取得と表示を行います。

フロントエンドエンジニアに必要なスキル

  • デザインを実現するためのHTML、CSSでの表現力
  • サーバーにリクエストを行うためのJavascriptでの実装
  • UXを考えた技術選定と実装

フロントエンドエンジニアはUIとUXの両方を扱う非常に重要な役割となります。なのでデザインまで自分でできるエンジニアは強いですね。

注意点としてフロントエンド技術の移り変わりは他の職種の中でもトップクラスに早いです。どんどん新しい技術が出てきてそれを追いかけるのが結構大変になるかと思います。

ネイティブエンジニア

ネイティブエンジニアの役割はiOSアプリ、Androidアプリの実装になります。

言語はiOSがSwift、AndroidがJavaになります。

ネイティブエンジニアに必要なスキル

  • デザインを反映させる実装力
  • OS固有の機能を使う実装力
  • UXを考えたアニメーションや画面遷移の表現力

ネイティブエンジニアはiOSとAndroidで全く違う技術を使えるようにならないといけないため2つのアプリを作れるようになるにはそれなりの学習時間が必要となります。

最近だとObjective-CからSwift、JavaからKotlinへのプログラミング言語の遷移過渡期となるため大変な面もあります。

初心者の方であればどちらか好きな方を選んでそれをマスターするのがいいかと思います。

ゲームエンジニア

ゲームエンジニアという表現があっているか微妙ですが役割はUnity、Cocos、Unreal Engineなどを使ったゲーム開発になります。

ゲームエンジニアに必要なスキル

  • Unityの場合C#の習得
  • Cocos、Unreal Engineの場合C++の習得
  • UI、UX考えた実装
  • 描画負荷を考慮した実装

ゲームエンジニアは操作性のしやすさ、見た目の綺麗さ、快適なプレイ環境などユーザーにダイレクトに影響することがほとんどです。

2Dゲームと3Dゲームで考慮しないといけないことも多いので、深い知識と経験が必要となります。

まとめ

エンジニアの職種をざっくりですが理解できたでしょうか?

これからプログラミングを学びたい人は職種別に必要なスキルとやるべきことを最初に知っておくことで学習効率が早くなります。ぜひこれからも参考にしてみてください。

合わせて読みたい







コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です