高いスキルで夢やアイデアを実装でき、投資収益だけで生活費を賄うことができ、成長中の若い分野に挑戦している -- これはエンジニアにとって、ひとつの理想だと思います。しかし、そんな理想から私の現状はかけ離れています。
そこで、以下のように考えて、非IT分野のエンジニア(計算科学シミュレーション開発者)から、"なんちゃって"データサイエンティストを経て、きちんとソフトウェアとサービスを開発できるデータサイエンティストにキャリアチェンジしたいと思っています。
1. 背景:なぜ、ITスキル・お金・若さ が求められるのか
IT分野と非IT分野のどちらでも、
中高年エンジニアがマネージャーになるのではなく、現場で開発を続けようとするときには、それなりの強みを持つ必要があります。
1.1 ITスキル -- 様々な産業でのアイデアを実装する力
高いITスキルが中高年エンジニアにとって強みになるのは、
新しいアイデアを具体化してソフトウェアサービスを提供するためには必須のスキルだからです。
例えば、自社サービス開発企業では、サービスのアイデアをソフトウェアとして開発して、そのサービスをウェブで提供する仕組みや、サービス料金を集める仕組みを実装するために、ITスキルが求められます。
そして、エンジニアがこのようなスキルをフルスタックで持っていれば、個人サービス開発者として独立して、自由に生きることができます。
また、IT分野以外の産業でもITスキルが必要とされつつあります。これまでに、材料開発や航空機設計でシミュレーション開発のベースが情報技術であったように、これからは、様々な産業でエンジニアリングのベースは情報技術になっていきます。
1.2 お金 -- 仕事を選ぶ自由を買うため
給与が高くなくとも、資産運用には真剣に取り組む必要があります。
なぜなら、投資収益だけで生活費を賄うことができれば、ブルシット・ジョブを強制してくる職場を辞める自由を手にでき、好きな仕事を選ぶことができるからです。
エンジニアという好きな仕事を選ぶためには、その選択の自由を保障できるだけの資産が必要なのです。
ちなみに、このように投資収益だけで生活できるだけの資産を作って、会社勤めから引退してしまうことを、最近ではFIRE(Financial Independence, Retire Early)と呼んでいます。また、引退と言ってもセミリタイアで部分的に働き続ける場合を、セミFIREと呼び、引退後に完全に働くのを辞めてしまう場合を、完全FIREと呼んで、区別することもあります。
1.3 若さ -- チャンスを手に入れやすい
新しい技術が成長して果実が実るまでには、時として長い期間が必要です。
なので、新分野で働くチャンスは、人生の残り時間が長い若者のほうに与えられやすいのです。
裏を返せば、これが中高年エンジニアが新分野でのチャンスを得るのが難しい理由だと思います。
2. 考察:どのように、ITスキル・お金・若さの不足を補うか
上記のように考えて、これらの不足は、すなわち、仕事の能力・自由・チャンスが小さいという問題なのだと思っています。そして、最も重大な問題は、成長分野で働けるチャンスが制約されていることです。
というのは、成長分野で働いていなければ、能力が高くとも十分に発揮できませんし、自由に仕事を選べても衰退分野のなかで選べることに価値はないからです。
そこで、非IT分野の中高年エンジニアとしては、キャリアチェンジしてIT分野のなかの成長領域で働くチャンスを掴みたいところです。しかし、ここで難しいのは、IT企業は中高年をエンジニアとして採用したがらないことです。
かといって、この難しさを避けて非IT企業にITエンジニアとして転職するとしても、別の苦労を覚悟せねばなりません。
私の場合、計算科学シミュレーション開発者から”なんちゃって”データサイエンティストとして、非IT企業へ転職したものの、機械学習による測定データ分析の自動化を仕事として認めてもらうのに苦労しています。自動化よりも労働集約という企業文化のなかに、ITを持ち込むのは非常に骨が折れます。
これに対する理想的な解は、企業から独立して、データサイエンス分野での個人サービス開発者として稼げるようになることですが、今の私にそれだけの力はありません。そもそも、そのような力があれば、自社サービス開発企業に転職できます。
ですので、成長領域で働くチャンスを広げるために、仕事のための能力を高めることも重要です。
2.1 計算機科学を系統的に学ぶ
個人サービス開発者を目指して、計算機科学をきちんと学び直し、データサイエンティストとしてのレベルを証明できるような資格が欲しいです。
というのは、現勤務先でデータ分析するには、機械学習フレームワークの上っ面でAPIを利用するだけで出来てしまいますが、独自のデータ分析サービスを開発して提供するには、フレームワークの深いところでソースコードを追加・拡張できるような専門スキルが必要だからです。
また、計算機科学のなかでも計算科学との相乗効果を生み出す領域、量子コンピューターを深く学びたいです。というのは、昔の専門である計算科学シミュレーションからの興味で、3年〜5年ほどのうちには、NISQ(Noisy Intermediate-Sata Quntum)デバイスで小分子の量子化学シミュレーションができるのではと期待しているからです。
また、技術トレンドとしてデータサイエンスが幻滅期から安定普及期に入りつつあるために、
必要となる専門知識やスキルのレベルが上がっていることと、
年齢差別の少ない米国企業では、機械学習やデータサイエンス分野で
計算機科学の修士号以上の学歴が高く評価されることを、
中高年エンジニアとしては無視できません。
そうなると、米国のオンライン大学院で学ぶのが良さそうです。
と、高い目標を考えてばかりでは何も始められなくなりそうですが、
まずは、自宅の開発環境を改善して、学んだことを実践しつつ、単純な機械学習のウェブサービスを作ってみるくらいなら、
すぐに始められそうです。
2.2 生活を守りつつ経済的自立を目指す
いきなり完全FIREではなく、ステップ・バイ・ステップで経済的自立を目指すつもりです。
まずは、セミFIRE可能な資産を準備した状態で、セミリタイアしてオンライン大学院で学び、次に、自社サービス開発企業に就職して働きながら、完全FIREを目指し、最終的に、個人サービス開発者として独立するというように。
2.3 年齢差別されづらい分野で働く
日本企業が中高年をソフトェア開発者として採用したがらないという問題は、私の転職活動の経験からいっても、
かなり深刻です。
ただ、自分のウェブサービスを買ってくれるお客さんを見つけて、個人サービス開発者として独立できれば、
この問題は解消できます。
とは言うものの、独立する前に、ソフトサービスを開発している企業で、実務経験を積みたいところです。
すると、この問題に向き合わざるをえません。
だから、計算機科学を学ぶときに、個人サービス開発者として独立するという目的だけでなく、
ソフト開発者として企業に採用されやすくなるためという目的もあわせて、考えねばなりません。
そして、中高年のソフト開発エンジニアを採用する可能性が高いのは、
高レベルの専門知識とスキルを必要としているために、若者だけでは人手を確保できていないような日本企業か、
あるいは、年齢差別が禁止されている米国のIT企業です。
また、ソフト開発企業に採用されるには、専門知識やスキルだけでなく実務経験も必要です。
日本企業の採用担当者には、若さや現場経験のほうを高いレベルの専門知識よりも重視する人が多いです。
米国企業でも実務経験や実績は求められるのだと思います。
ただ、採用のための求められる実務経験や実績が非常に高いレベルなのだとすれば、
実務経験や実績を積むために企業で働こうとしている中高年が採用される見込みは、
非常に薄くなります。
そこで、この問題に対処するために、
高い専門スキルを持っていることをデータサイエンス(計算機科学)の修士号などで証明できるようになりたいですし、
また、スキルや知識を学ぶのと並行して、
フリーランスでの仕事を受注して実務経験を積んで行きたいと思っています。
3. まとめ:ちょっとした冒険から始める
以上をまとめると、次の3ステップになります。
セミFIRE可能な資産を貯め、セミリタイアしてオンライン大学院で学びながら、フリーランスのエンジニアとしてデータ分析とソフト開発の実務経験を積む。
計算機科学(データサイエンス)での修士号取得の見込みがついたら、インターンとして働ける自社サービス開発企業を探し、ソフト開発エンジニア(データサイエンティスト)として就職する。完全FIREが達成できるまで企業で、あるいは、フリーランスとして働き続ける。
個人サービス開発者として独立する。
これはかなりの冒険で、ステップ2. の前半が最大の山場です。しかし、欧米ではキャリアチェンジのためにステップ1.2.のように、退職して大学院で学びなおしてから再就職することはありふれています。ITスキルのない電子工学エンジニアが計算機科学を学んでデータサイエンティストにキャリアチェンジしたり、50代の数学教師がデータサイエンティストになろうとしているという話を聞いて、彼らの勇気を本当に尊敬します。
あれこれ考えましたが、まずは、オンライン講義を受講しながら、自宅で小さな機械学習ウェブサービスを作ります。