僕は組み込み系エンジニア*1として通算10年ほど働いていますが、 今日ほどこの業界の人手不足を感じたことはありません。
とにかく人がいない・・・より正確に言うなら、「即戦力になる経験者が少ない」のです。
2018年2月時点での求人倍率は4.77倍です。
今、カネで奪い合いになる「人気職種」 (溝上 憲文) | プレジデントオンライン
転職求人倍率職種のトップは「インターネット専門職」(Webエンジニア含む)の5.66倍、続いて「組込・制御ソフトウエア開発エンジニア」の4.77倍、建設エンジニアの4.22倍だ。
システムエンジニア全体の中でも年収は低いほうではないし(参考記事:組み込みエンジニアの年収ってどれくらい? | アトオシ)、特別待遇が悪い職種というわけでもないのですが、何故ここまで人がいないのでしょうか?
GeekOut
組み込み系エンジニアとは
組み込み系エンジニアとは、自動車や家電、工作機械などに組み込んでハードウェアを制御するシステムを開発するエンジニアのことです。
一昔前は残業地獄のきつい職種というイメージでしたが、近年は働き方改革の影響もあり、残業時間はかなり減りつつあります。というのも、組込み系エンジニアは大手メーカーへの常駐型案件が主となるので、大手企業ほど残業規制には敏感で労働時間抑制傾向にあるためです。
では何故人が足りないかと言えば、仕事の性質上ソフトウェアとハードウェア両方の知識が求められる敷居の高さが原因ではないかと思います。
ソフトウェア/ハードウェア両方の知識が必要とされる
「システムエンジニア」の求人というと、オープン系やWeb系では「未経験者可」「理系/文系問わない」という条件も珍しくありません。
しかし、「組み込み系エンジニア」ではなかなかそういうわけにもいきません。仮に未経験者可の求人があったとしても、ある程度の知識の下地がないと入ってからが大変です。
組み込み系独特のソフト開発スキルが求められる
組み込み系開発で使用されるプログラミング言語は、大抵の現場では「C言語」です。C++やJavaを使っているところもありますが、多くはありません。
純粋にプログラムとして考えると、そこまで高度なプログラミング技術が必要であることは稀です。むしろ、どちらかといえばシンプルなプログラムを開発することが多くなるでしょう。
その代わり、組み込み系開発独特の知識やスキルが必要となってきます。
スタートアップルーチン、ROM化、リアルタイムOS、レジスタ、割り込み、セマフォ・・・などなど、IT業界の他の仕事では聞きなれない言葉やあまり使わない技術が必須となります。
組み込み系エンジニアに求められる知識・スキルは技術評論社の「標準テキスト 組込みプログラミング」でわかりやすく解説されているのでおすすめです。
他にも、
- 開発環境がチープで、アセンブリが必要となる場面がある
- コーディング規約が厳しい
など、組み込み業界未経験の人にとっては厄介なハードルが無数にあります。
ハードウェアの知識も必要になる
システムエンジニアなので基本的にはソフトウェアの知識さえあれば良いような気がしますが、現実的にはハードウェアの基礎知識はほぼ必須となります。
というのも、実際の開発では製品ハードウェアの仕様書や設計書がなかなかハード屋さんから上がってこないことが多く、開発初期の頃は回路図面のみ用意されている、ということが頻繁にあるからです。(さすがに回路図面がないと肝心のハードウェアを作りようがないので、先行して作成されることが多いです)
「俺はソフト屋だから回路図面なんて読めないよ。ハード屋さんはとっととハードの仕様書作ってよ」
と言いたい気持ちはすごくありますし、それなりに正論であるとは思うんですが・・・そんなこと言ってても納期が延びるわけでもなく、スケジュール通りに開発を進めるためには回路図面を読み解いて仕様を把握するしかありません。
「電子回路苦手だからソフト方面の職種についたのにな・・・」と嘆きながら、今日も回路図面とにらめっこするのです。
組み込み系エンジニアになるなら、電子回路に関する基礎的な知識を身に着けておいたほうが絶対に良いです。
組み込み系エンジニアは需要が高く、未経験でもなれるけど・・・
繰り返しになりますが、組み込み系業界は空前の人手不足なので、組み込み系エンジニアになろうと思ったらおそらく未経験者でもなることができます。
しかし、(技術的な意味で)徒手空拳でこの業界に飛び込むと、高い確率で後悔することになります。実際僕の職場でも、未経験でいきなり組み込み系の開発を任されて大変な思いをしている人が何人もいます。ちゃんと社内で教育できればいいのですが、そもそも人手不足なので教育係に回す人材もなかなかいない状態です。
組み込み業界に興味のある未経験者の人は、
- C言語の基礎
- 組み込み開発で必要となる基礎知識(リアルタイムOS、割り込み、レジスタなど)
- 電子回路の基礎
を事前に独学でも良いので学んでおくだけでも全然違います。
ARMプロセッサを搭載した教育用マイコンのラズベリーパイなどを使って、組み込み開発の感覚をつかんでおくのもおすすめです。
組み込み系エンジニアの将来性
ここまでややネガティブな方向性で組み込み系エンジニアを紹介しました。しかし、組み込み系エンジニアの技術的ハードルが高いということは、裏を返せばスキルやノウハウを習得してしまいさえすれば、かなり強いということです。
現在でも相当人手不足な組み込み系エンジニアですが、今後はこの傾向がさらに加速すると考えられます。
- 生活の場面にますます広がっていくIoT*2製品
- 自動ブレーキの普及
- 自動運転時代の到来
etc・・・
組み込み系エンジニアの需要はますます増えていきます。この先10年20年を見据えて考えた場合、「組み込み系開発」のスキルや経験を持っていることはかなり強力な武器になるんじゃないでしょうか?
もちろん未来のことは不確定で誰にもわかりませんが、少なくとも食いっぱぐれる可能性はかなり低い気がします。
就職・転職の際の候補として「組み込み系エンジニア」を選択肢に入れてみるのはどうでしょうか?
組み込み系エンジニアとして転職を目指すなら、IT業界だけでなく製造業(IoT関連)の求人も豊富なエンジニア専用転職サイトGeekOutの利用がおすすめです。