ITエンジニア|プログラマの職種別で学ぶべきことと必要なスキル




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

エンジニアの職種とは?

これからプログラマになりたいけど何をしたらいいか分からない人に読んでいただきたいです。

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

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

やりたいことによって学ぶべきものが大きく変わるので効率的に学習したい方はエンジニアの職種をしっかりと把握しておきましょう。

ここを明確に理解することで目指すべき道がはっきりし、効率よくステップアップすることができます。

サーバサイドエンジニア

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

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

言語は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ゲームで考慮しないといけないことも多いので、深い知識と経験が必要となります。

まとめ

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

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

合わせて読みたい

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら



コメントを残す

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