1. webフレームワークを用いた開発案件
難易度ふり幅:★★★★★
要求スキル
- 基本的に[UI][API][DB]の知見がある程度ないとすぐに詰まる。
- 共同開発ならgitの知識も最低限必要
- 案件によってフォルダ・ファイルが無限に増える。
- 人の作ったソースコードバグを数分で治すスキルを求めてくる客もいる。
- デバッグ方法のスキルも暗黙的に実用スキルを求められる。
- テストコードの知識も幅広さを求められる。
- webフレームワークが多すぎる。案件毎にそのwebFWと相性のいいORMやDBの知識もさらに求められる。
- 頻繁にwebFWがバージョンアップデートし、バージョン上げると今までのライブラリと相性悪くなるとかよく起きる。
- 頻繁なバージョンアップによる機能追加とそれに適応するためのライブラリ管理方式の最新知識が常に求められる。
- バージョンバグを防ぐためdockerなどの仮想化技術を用いた開発知識が必須になる。
- インフラをAWS等のクラウドで開発するとき、疎結合化するため各種サービスの知見が必要になる。
個人的考察:
- webフレームワークを用いた開発案件はITエンジニアの案件母数を占めているので、使えるようになると仕事に困ることはなくなる。
- webフレームワーク習得は、メジャーなものを1つ習得してから、node.js系しかやらないとか、python系しかやらないとか好きなほうにスキルを割り振っていきたい。
- (当方はrails/flask/django/reactを嗜んでいるが、難しすぎるやつは三か月位でおさらばする)
- webフレームワークは覚えておいて損はないが、求められる知識が広いが故に「出来て当然だろう?」と理不尽なことも結構起こる。
- インフラとかに自信があったら得意分野を伸ばすためにあえてwebフレームワークに関わる案件を避けても良いかも。
2. DPETL・MLOPS・インフラ設計でOSSやクラウドサービスでのソリューション提案力の使用を求められる案件
難易度ふり幅:★★★☆☆
要求スキル
- アプリパフォーマンスを最適化するために、アプリの知見も必要
- インフラ最適化のためのセキュリティ、ネットワークの知見は必要
- 要件定義では咀嚼力・設計段階では知識の幅広さを求められる
- 提案力はどんな技術を使ってもOKな所ほどOSSやクラウド等知識の幅広さが求められる。
- レガシー環境の移行案件だとレガシー技術を学ぶ必要が出てくる
個人的考察:
- 知識の広さがものをいう案件なので、資格試験の学習で得られる知識も役立つ
- 頻繁にバージョンアップするFWよりは求められるスキルにムラがなく、学習にやりがいを感じれる
3. SRE的な働きが求められる案件
難易度ふり幅:★★★☆☆
要求スキル
- 基本的にインフラコード化(IAC)のterraformのスキルを求められる
- リポジトリからのCICD自動化処理コードを書くスキル(github actions)(cloudbuild)等を求められる
- アプリパフォーマンスを最適化するために、アプリの知見も必要
- インフラ最適化のためのセキュリティ、ネットワークの知見は必要
- 一番詰まったり、設計開発で時間を使わせるのはIAMロール等の権限設計だったりする
個人的考察:
- インフラやデプロイの知見は求められつつも、慣れるとアプリ開発よりポジション的に求められるスキルが限定される所が楽。
- webフレームワーク以外の部分を担当する場合、要求難易度ふり幅が小さい印象。
- (AWSだったらIAMロール)など権限部分さえ理解できれば怖くない。