高単価・高収入エンジニアへのステップアップ(2019-2020年版)

## 概要

2020年現在、高単価を得るために求められる技術とは？を調べてみました。

なかなかの高単価を得ることができましたが、更に単価を得るためには、今後何を学びどういった姿勢が良いのか、と考えている方に向けて書いてみます。

更に上を目指すために調べた結果の自戒を含めての共有です。

### 前提

まず、**プログラムが書けるだけ**というのは天井が見えてしまいます。

プログラムはある程度書けるようになりました、じゃあそこからどうするのか？ということを考えていきます。

### インフラのコード化

いまや、dockerでインフラ構築をコード管理することができるようになっています。docker-composeでコンテナ同士の関係性を書くこともできます。

AWSでは、[AWS ECS](https://aws.amazon.com/jp/ecs/features/)といってコンテナ管理も可能になっています。

ここで出たキーワードで「初耳」と感じたのなら知識だけでも得てみましょう。またぜひ触って技術を獲得していきましょう。

### CI/CD

このキーワードを初めて聞いたということは[CI/CDのエキスパートが解説：CI/CDとは何か？ なぜ今、必要とされるのか？](https://codezine.jp/article/detail/11083)を見てみてください。

「継続的インテグレーション／継続的デリバリー」です。自動的にテストをして、自動的にデプロイしましょうね、ということです。

今までの環境、レガシーな現場であれば、

- ソースをZipにして本番サーバにUSBで移して反映
- FTPでソースをアップロードする

というのがメインでした。私もそういうことはいくつも経験してきました。この「面倒」を自動化する技術ができるといいですよね。

これもぜひ習得すると良いですね。

### 上流工程・新規開発の経験

これは話を聞いたとき「そりゃそうだろなあ」って思ってました。

保守ばかり、人の作ったコードの修正ばかり。それだけだと技術レベルも高くなく、自然と単価は低いままかなと思います。

特に上流工程。これは正社員などでうまく経験しておけると良いと思います。コーディングができるだけではなく、しっかりと設計ができるか、お客さんと折衝ができるか、提案ができるか。これらのコミュニケーションスキルはエンジニアとはいえ必要になってくるのでしょうね。

### CxOの経験

例えば今私はCTOにならないかとお声がけいただいていますが、そういった経験も高単価の一つとなります。

CTOを経験してサービスやチームをスケールさせる経験を得ることで、

- 駆け出しCTOの方たちのアドバイザー
- CTO だけでなく CxO(CIO, COO, CFO) を経験しておくとそのアドバイザーとして高単価が稼げる
- VPOE (Vice President of Engineer)： CTOよりもチームマネジメント側の上位職

といった仕事も得られるということは私も知りませんでした。


### 機械学習エンジニア

ここ数年話題となっている「機械学習」。Pythonや少し前はR言語も機械学習やAIの言語として話題になりましたね。

機械学習のエンジニアは、需要が高くてもいまだ供給が少なく、自然と高単価になるそうです。

そもそも機械学習エンジニアとはというところなのですが、私も定義が曖昧だったので調べてみました。

[参考](https://www.bigdata-navi.com/aidrops/1086/)にどうぞ。

### DevOps開発

DevOpsもここ数年聞きますよね。

ただ私もDevOpsと聞いて「開発と運用の技術体系なんだな」という程度の知識でした。

参考までに[調べてみました。](https://www.cloudtimes.jp/dynamics365/blog/devops-and-agile.html)

引用してみますと、

> DevOpsとは、製品が持つビジネス価値を高め、さらにユーザーが感じる利便性を高めるために開発チーム（Dev）と運用チーム（Ops）が協力体制を取り、開発・運用を推進するための開発モデルを指します。

とのこと。開発と運用を意識した開発をどのように行ってきたか、立ち上げてきたか。これを経験して説明できると依頼者としては「おっ」と思うのかもしれません。

### Searchableであること

高単価を目指す云々の前に、自己PRをしていくことは大切なことです。

こういったQiitaももちろんですし、自分のポートフォリオを持っていることももちろん。
- [Wantedly](https://www.wantedly.com/)
- [Linkedin](https://jp.linkedin.com/)
といったサービスに登録して、こまめに技術経歴を更新することは必要なようです。Linkedinは最近Web系企業さんは見るようですね。

ちなみに私は登録してなかったので反省です。

こういったSearchable(検索可能)であることは自分を売り込む上で必要だと思います。

### 人を大切に

私は現在フリーランスとしてエージェント経由とそれなりの単価をいただいていますが、そもそもエージェント経由だと単価は低くなりがちです。

以前仕事をもらった人から「あなたは優秀だからまたお願いね」と**自分を指名**してもらえることが非常に高単価に結びつきます。エージェント経由だと単価交渉がしにくいが**自分を指名**してもらえると単価交渉がしやすくなるという理由が挙げられます。

### 技術の分散投資

はじめのうちは、プロフェッショナルを目指すより、分散投資をして自分のできることを増やしていくのが良いと思います。

エンジニア講師をしていて、初学者さんにも散見されますが、「この言語を100%わかるようになってから先に進もう！」と意気込んでいる人が稀にいます。

それはそれで素晴らしいことだとは思いますが、私はあまりおすすめしていません。いろんな言語を触ることで「あの言語のこれってここにも通じているんだな」って発見ができることが面白いと思いますし、動的型付け言語、静的型付け言語の違いを肌で感じることも重要だと思ってます。

賛否両論あるかと思いますが、私は技術を実務で使えるレベル(理解度6割程度)まで持っていけたら他の技術に触れてみます。今100%を目指してしまうと仮に今後その技術が廃れてしまうと悲しいことになりますし、分散投資をすると自分のスキルの振り幅が広がるので良いと考えています。
仕事にしてしまえばキャッチアップすれば良いのです。

※ ただこれはあくまで**仕事にするなら**という話であって技術的な追求は100%でも120%でも満足のいくまで追求しても良いと思います。

仕事にすることを考えると例えばPHPの案件は今ないけどjsだった行けるかも、といった持ってるスキルの振り幅によるメリットも考えられます。
例外としてLaravelの制作に貢献しました、というようなプロフェッショナルはそのメリットを活かせることもありますが。

### アウトプット

私はなかなかできていないですのでこれからブログなどで自分の技術情報をアウトプットしていけたらと思いますが、やはりこういった自分の持ちうる技術のアウトプットは必須ですね！
それだけ！

### 高単価じゃなくても良いじゃない

高単価を目指している人向けの記事で何を、、というかもしれませんが、
私の見た動画や、参加したセミナーでも言っていたことで、私の持論にもある言葉です。

これは低単価で満足しろということでは決してありません。
ただ、**技術を好きな心**を忘れないでということです。テクノロジーを楽しむ心を忘れずにいれば自然とお金は着いてきます。
お金ドリブンではなく、好奇心ドリブンで進んでみましょう。

## 最後に

「ここ数年聞きますよね」というものが多く挙げられているなか、それらを習得していないことを改めて実感しました。時代に追いついていないのは行けないので、**アンテナ高く**というのが優れたエンジニアなのかもしれません。

この記事で紹介したものは私も習得していないものもあり、質問いただいても答えられないものもあるかと思います。

今回、いろんな動画や、セミナーを受けての感想をまとめただけなので、様々な意見もいただけると面白いかなと思います。

前回 [「ただのプログラマ」で終わらないためには](https://qiita.com/sorabin/items/3cae75d4428a96ccbbd3)という記事を書いたのでそちらも見てみてください。

以上、ご覧いただきありがとうございました。