ソフトウェア開発に10年以上携わってきましたが、もう仕事を見つけるのが難しくなってきています。ハードウェア業界は現在どうなのでしょうか。この年齢から転職できるでしょうか。業界に詳しい方に、転職先としておすすめの学習ルートがあれば教えていただけませんか。
兄弟、先に水を差すようで申し訳ないけど、ハードウェア業界は君が思うほどおいしい話じゃないし、転職コストも君が想像している以上に高い。
ソフトウェアの仕事探しが大変なのは本当だけど、ハードウェアも避難港ではない。ハードウェアエンジニアの落とし穴は、参入障壁が高いこと(アナログ回路、PCB、EMC、測定器の扱いを理解する必要がある)、育成に時間がかかること(卒業して3年くらいまでは基本的に初心者扱い)、そして給与の天井がソフトウェアよりかなり低いことだ。ソフトウェアを10年やっていればもうベテランだけど、ハードウェアに転向するならゼロから始めるようなもの。会社は君の履歴書を見ても「年齢が高め+ハードウェア経験なし+育成が必要」としか思わないから、チャンスを与えてもらうのは難しい。
さらに現実的な問題として、ハードウェアの求人はもともと少ない。ある会社でソフトウェア職が数十人いても、ハードウェア職は2〜3人しかいないようなものだ。採用する側も基本的に「来たその日から働ける人」を求めている。本当に動くつもりなら、いきなりハードウェアに転向するのではなく、組込みソフトウェアを試してみるのがいい。そこはソフトウェアとハードウェアの境界領域で、君のソフトウェアの基礎力がそのまま活かせる。マイコン、ドライバ、リアルタイムシステムを少し学べば、純粋にハードウェアへ転向するよりずっと現実的だ。
諦めろと言っているわけではない。よく考えてほしいということだ。君が怖いのは仕事探しではなく、この先10年でますます難しくなる未来なんだ。 ハードウェアではその問題は解決しない。そこにも年齢への不安がある別の業界があるだけだ。
私は実際に、バックエンドWeb開発を12年経験した後、約6年前にこの転向をしました。簡単ではありませんでしたが、絶対に実現可能です。そして正直なところ、ゼロから始めるのではなく、すでに持っているスキルを活用すれば、多くの人が考えるよりも移行の道筋は優しいものです。
私に効果があったのはこういうことです。いきなり「フルハードウェア」には行かず、まずファームウェアに入りました。STM32での組み込みC、次にドライバ、RTOS、そして組み込みLinuxです。私のソフトウェア的な感覚(バージョン管理、コードレビュー、テストの習慣、CIパイプライン)は、大きな強みになりました。多くのハードウェアエンジニアは、あなたが思っている以上にソフトウェアが苦手ですし、組み込みチームはクリーンで保守しやすいコードを書ける人材を切実に必要としています。
2年目には、実際のハードウェアにも手を伸ばし始めました。回路図を読み、ボードを立ち上げ、オシロスコープを使い、信号整合性の問題をデバッグするといったことです。すでに組み込みの文脈があったため、ハードウェアの学習は新しい分野に溺れているというより、穴を埋めていく感覚でした。
おすすめしたい学習ルートは次の通りです。
-
組み込みC / ベアメタルSTM32 — 開発ボード(Blue PillまたはNucleo)を手に入れ、GPIO → タイマー → UART → SPI/I2C → 割り込みを順に学ぶ
-
RTOS(FreeRTOSで十分です) — スレッド、セマフォ、メッセージキュー
-
開発ボードの回路図を読む — 各部品をすべて理解する
-
基礎回路理論 — オームの法則は簡単ですが、オペアンプ、フィルタリング、デカップリング、グラウンディングを学ぶ
-
ボードの立ち上げ+デバッグ — ソフトウェア出身者が最もつまずくところです。テスターとオシロスコープに慣れてください
組み込み分野では、年齢やソフトウェア経験は弱点ではありません。むしろ強みです。業界は、システム全体を理解している人材を評価します。
ハードウェア業界で15年やってきたベテランとして、率直なことを少し書きますね。楼主の参考になればと思います。
まずハードウェア業界の現状について:ハードウェアエンジニアは確かに「年次を重ねるほど重宝される」存在です。ただし、それには前提があります。人に見せられるプロジェクト経験を持っていることです。量産を経験し、EMCを調整し、電源障害の切り分けをしてきたエンジニアなら、40代後半でも引っ張りだこです。問題は、この経験の積み上げにとても時間がかかるということです。私も業界に入った最初の5年は雑務が中心で、毎日基板をハンダ付けし、波形を測り、回路図を修正していました。本当に成長したのは6年目以降でした。
次に転職の現実について:もし今から転向するなら、最初の1年はアシスタントとして、ベテランエンジニアの付き人で走り回る可能性が高いです。給与は今より半分、あるいはそれ以下になるかもしれません。それに耐えられますか。家庭の支出が許しますか。これは気合いや情熱の問題ではなく、現実的な問題です。
とはいえ、チャンスがないわけではありません:今ではソフトウェアとハードウェアが融合した職種が増えています。組み込みシステム、IoTゲートウェイ、スマートハードウェアなどです。こうした職種では採用時に明確に「ソフトウェアもハードウェアも分かる人材」を求めています。一方で、市場には純粋なハードウェア出身者はソフトウェアが弱く、純粋なソフトウェア出身者はハードウェアが弱い人が多いです。あなたのソフトウェアバックグラウンドは、こうしたクロスオーバー職種ではむしろ強みになります。
私のおすすめの進め方:
-
まず組み込みを学ぶ(STM32でもESP32でも可)。ソフトウェアの基礎をそこに活かす
-
同時に回路の基礎を勉強する。『The Art of Electronics』(Horowitz)は分厚すぎるなら、まずは『図解電子回路』を見る
-
組み込みの職種で1〜2年働けば、自然とハードウェアデバッグに触れる機会が出てくる
-
さらに進みたいなら、アナログ回路、PCB Layout、EMCを補強する
一言で言えば:いきなりハードウェアエンジニアに転向しようと考えず、「組み込みソフトウェア → 組み込みシステム → ハードウェア」という道を進んだ方が、ずっと堅実です。
組み込みソフトウェアに転向したほうがいい。ハードウェアはあまり転向しにくいから。
ハードウェアの仕事って、誰にでも口を出してあれこれ言えそうに見えるけど、本当にちゃんとやろうと思ったら、抵抗やコンデンサの一つひとつの設計にも根拠が必要なんだ。ハードウェアの仕事は細かい作業も多いし、考慮すべき工程も多いし、調整事も多い。ハードウェアをやるって basically ハードウェア+テスト+組み立てみたいなものだよ。うちは仕方なくハードウェアをやってるけど、機会があるなら俺は組み込みソフトウェアに行きたいね!あなたが転向するなら、組み込みソフトウェアか、テスト関連のホストコンピュータ向けソフトウェア開発にするといいと思う。