#そもそもエンジニアは多様な世界
#1.アプリケーション系エンジニア
未だ需要が高く、引く手あまたな現状ではある。
比較的学習サービスも豊富であり、特化型のエンジニアと比べてとっつきやすい部分ではある。
そのため、迷っている人はアプリケーションエンジニアから挑戦してみると面白いプログラミングライフを過ごせるかもしれない。
##フロントエンド(FE)
主にUIをコードに落とし込んでいるエンジニア。
【必須スキル】
HTML
CSS
JavaScript
モダンな開発ツール(Vue等)
AIが発達しても置き換わるのはもう少し先。
##バックエンド
やることが多くて語り尽くせないエンジニア。
【必須スキル】
主要なプログラミング言語(1つを深く)
データベース
AWS等のIaaS。主要なものをいくつか。
##iOS
iPhoneアプリやMAC OSで使用するものを開発。
割とAppleの盛衰に左右される部分は多分に含む。
【必須スキル】
Xcode(開発環境。多機能なので使いこなすのは難しい。)
Swift
##Android
Androidアプリを開発するエンジニア。
【必須スキル】
Android Studio(XcodeのAndroid版)
Java
Kotlin
JavaとKotlinは互換性があるので、どっちから学んでも大きな問題なし。
しかしながらPWAによって置き換わる可能性もあるので、iOSエンジニアに比べて少し逆風か。
#2.インフラ周辺
##SRE (Site Reliabilty Engineer)
サイトの障害の際にアラートを提示したり、運用業務周辺を担うエンジニア。大企業を中心に採用が広まりつつある。しかしベンチャー系企業はバックエンドとして採用される可能性もある。
「バックエンドもできるが、SREが特に得意」のようなイメージ。
【必須スキル】
バックエンドの知識
インフラの知識
##セキュリティ
サイバー攻撃の防御等、セキュリティに纏わる業務を遂行する。
しかしこちらもLINEレベルでセキュリティエンジニアという職種があるレベルで採用自体は少ない。狭い門ではある。
【必須スキル】
Linux/Unix等のOS周囲の知識
セキュリティの知識
##ネットワーク
資格が活きるらしい。あまり追えてません…。
ただネットワークもIaaS等で置き換えられるため、あまり伸びる部分ではないのかもしれない。
【必須スキル】
ネットワークの知識
#3.専門系
##機械学習エンジニア
数学的素養が必要になるエンジニア。修士・博士課程で終えている人が多い印象。求められる範囲が広く、様々なライブラリを動かすPythonを使えるかどうかは必須条件である。ただ将来性は間違いなくある。
【必須スキル】
統計解析
機械学習
データベース
Python
##ブロックチェーン技術
Dappを作るのにJavaScriptやSolidtyが必要。間違いなく高難易度職種の一つであり、常に最新の情報をキャッチアップすることが何より重要。
【必須スキル】
ブロックチェーン技術
→コンセンサスアルゴリズム等々
JavaScript
Solidity
##VUI(Voice User Interface)
画面を通してのUIから、声を通してのサービス開発に関わる。音声大和に関する知識は必要。
マネタイズモデルがそこまで確立されていない点が厄介。発展途上のフェーズである。
【必須スキル】
音声対話の知識
各種SDK(Alexaスキル等)
##Game開発
Gameを好む人が多い印象。しかし開発に当たり物理演算等の知識が必要になるため、数学的な素養も一定求められるかもしれない。
【必須スキル】
Unity(メインのゲームエンジン)
プラットフォームに応じた知識
→家庭用ゲーム、アプリケーション、ブラウザ等
数学的知識
#4.特殊系
##QA(テスト)エンジニア
品質保証の動作テスト等を行ったりするエンジニア。
【必須スキル】
テストに関する知識
各種テスティングツール
##セールスエンジニア
営業×エンジニアという非常に面白い職種。
toB向け商品の導入提案、導入後の運用保守を担当したりする。
【必須スキル】
取り扱うシステムに関する周辺知識
営業スキル