ITエンジニアってすごく人気だけどそもそもどんな種類があって、どんなスキルが必要なのか全く分からない。
こういった疑問にお答えします。
これからプログラマになりたいけど何をしたらいいか分からない人にぜひ読んでいただきたいです。
エンジニアの職種とは?
一口にエンジニアといってもいろんな職種があります。ざっくりまとめるとこんな感じですね。
- サーバサイドエンジニア
- インフラエンジニア
- フロントエンドエンジニア
- ネイティブエンジニア
- ゲームエンジニア
やりたいことによって学ぶべきものが大きく変わるので効率的に学習したい方はエンジニアの職種をしっかりと把握しておきましょう。
ここを明確に理解することで目指すべき道がはっきりし、効率よくステップアップすることができます。
サーバサイドエンジニア
サーバサイドエンジニアの役割はサービスの土台を作ることになります。
クライアントからのリクエストを受け付け、リクエスト別にデータベースへの読み書きを行い、最終的にクライアントに要求されたデータを返す処理を実装します。
言語はPHP、Java、Go、Node.js、Pythonなどがよく使われています。
サーバサイドエンジニアに必要となるスキル
- リクエストを処理するプログラミング言語の選定と実装
- データベースの選定と設計
- サービスを実現するためのインフラの選定と設計
全て技術選定から仕事が始まります。サービスを実現するのに適したプログラミング言語の選定、データの用途別に使用するデータベースを決定し、最終的な全体構成をまとめあげます。
こう考えるとサービスを作る上でプログラミングをするというのは一部分であり、プログラミングをできるだけではサービスを作ることはできません。
チーム開発をするのは広範な専門分野を補うようにいろんな長所を持ったメンバーで構成するためですね。
サーバサイドを学ぶなら
プログラミングスクールは体系的に学ぶことができるので効率よく学習できます。
侍エンジニア塾はマンツーマンレッスンが特徴のスクールで、7000名以上の指導実績があります。さらに侍エンジニア塾では自分好みのカリキュラムを組むことができるのが利点でもあります。
アプリ、Webサービス、ゲーム、機械学習の中から学びたいものを自由に選択することができます。

インフラエンジニア
インフラエンジニアの役割はサービスのインフラ構成や監視機能の構築がメインになります。
最近ではAWSやGCPなどのクラウド環境が台頭してきたこともあり、サーバーサイドエンジニアがインフラ構築をすることが多くなってきているのが現状です。
それでもインフラというのはアプリケーションの実装と同じようにものすごく専門性の高い分野ですので極めるのはそれなりの時間が必要になります。
特にセキュリティ面に関しては今後より一層高いスキルが求められるようになると思います。
インフラエンジニアに必要となるスキル
- セキュリティや耐障害性を考慮したインフラ構築
- コードベースでのインフラ管理
インフラエンジニアのよくある立ち位置として、サーバーサイドエンジニアが考えたインフラ構成のチェックや構築サポート、セキュリティや耐障害性への対応を組織内の全サービスで横断的にみるというのが多いかと思います。
なので、各サービスでセキュリティレベルやインフラ構成を統一し、時間と費用の削減などを行うのも重要な仕事となることが多いです。
フロントエンドエンジニア
フロントエンドエンジニアの役割はサービスの見た目を作ることです。
デザイナーが作ったホームページやサービスのデザインをHTMLやCSS、Javascriptを駆使して実現することと、サーバーへリクエストを実行し、必要な情報の取得と表示を行います。
言語はJavascript、HTML、CSSは必須のスキルとなります。
フロントエンドエンジニアに必要なスキル
- デザインを実現するためのHTML、CSSでの表現力
- サーバーにリクエストを行うためのJavascriptでの実装
- UXを考えた技術選定と実装
フロントエンドエンジニアはUIとUXの両方を扱う非常に重要な役割となります。なのでデザインまで自分でできるエンジニアは強いですね。
注意点としてフロントエンド技術の移り変わりは他の職種の中でもトップクラスに早いです。どんどん新しい技術が出てきてそれを追いかけるのが結構大変になるかと思います。
ネイティブエンジニア
ネイティブエンジニアの役割はiOSアプリ、Androidアプリの実装になります。
言語はiOSがObjective-CとSwift、AndroidがJavaとKotlinになります。どちらも新旧のプログラミング言語が入り混じっているタイミングですがとりあえずは新しい方の言語を使えるようになればいいと思います。
ネイティブエンジニアに必要なスキル
- デザインを反映させる実装力
- OS固有の機能を使う実装力
- UXを考えたアニメーションや画面遷移の表現力
ネイティブエンジニアはiOSとAndroidで全く違う技術を使えるようにならないといけないため2つのアプリを作れるようになるにはかなりの学習時間が必要となります。
最近だとObjective-CからSwift、JavaからKotlinへのプログラミング言語の遷移過渡期となるため大変な面もあります。
初心者の方であればどちらか好きな方を選んでそれをマスターするのがいいかと思います。
ゲームエンジニア
ゲームエンジニアという表現があっているか微妙ですが役割はUnity、Cocos、Unreal Engineなどを使ったゲーム開発になります。
言語はUnityがC#、CocosがC++、Unreal EngineはC++, C#, UnrealScriptと複数あります。
ゲームエンジニアに必要なスキル
- Unityの場合C#の習得
- Cocos、Unreal Engineの場合C++の習得
- UI、UX考えた実装
- 描画負荷を考慮した実装
ゲームエンジニアは操作性のしやすさ、見た目の綺麗さ、快適なプレイ環境などユーザーにダイレクトに影響することがほとんどです。
2Dゲームと3Dゲームで考慮しないといけないことも多いので、深い知識と経験が必要となります。
まとめ
エンジニアの職種をざっくりですが理解できたでしょうか?
これからプログラミングを学びたい人は職種別に必要なスキルとやるべきことを最初に知っておくことで学習効率が早くなります。ぜひこれからも参考にしてみてください。
初心者の方におすすめの記事
目指すべきことが決まったら、次はどうやって学習していけばいいのか分からないですよね。
エンジニア歴5年以上のキャリアから最速でエンジニアになる方法をまとめたので下の記事を読んでみてください。
プログラミングを独学で学ぶためのおすすめサイトを紹介しているのでチェックしてみてください。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す