私の戦闘力は53万マイクロです

農夫のおっちゃんの10分の1程度の戦闘力で適当に生きる、意識低い系サラリーマンのブログ

【IT業界】組み込み系エンジニアが人手不足過ぎてヤバい、その理由とは?

f:id:ken530000:20180927224546j:plain

僕は組込み系エンジニアとして通算10年ほど働いていますが、 今日ほどこの業界の人手不足を感じたことはありません。

 

とにかく人がいない・・・より正確に言うなら、「即戦力になる経験者が少ない」のです。

 

2018年2月時点での求人倍率は4.77倍です。

今、カネで奪い合いになる「人気職種」 (溝上 憲文) | プレジデントオンライン

転職求人倍率職種のトップは「インターネット専門職」(Webエンジニア含む)の5.66倍、続いて「組込・制御ソフトウエア開発エンジニア」の4.77倍、建設エンジニアの4.22倍だ。

 

特別待遇が悪い職種、というわけでもないのですが、何故ここまで人がいないのでしょうか?

 

 

組込み系エンジニアとは

組込み系エンジニアとは、自動車や家電、工作機械などに組み込んでハードウェアを制御するシステムを開発するエンジニアのことです。

 

一昔前は残業地獄のきつい職種というイメージでしたが、近年は残業時間はかなり減りつつあります。というのも、組込み系エンジニアは大手メーカーへの常駐型案件が主となるので、大手企業ほど残業規制には敏感で労働時間抑制傾向にあるためです。

 

では何故人が足りないかと言えば、仕事の性質上ソフトウェアとハードウェア両方の知識が求められる敷居の高さが原因ではないかと思います。

 

 

ソフトウェア/ハードウェア両方の知識が必要とされる

「システムエンジニア」の求人というと、オープン系やWeb系では「未経験者可」「理系/文系問わない」という条件も珍しくありません。

 

しかし、「組込み系エンジニア」ではなかなかそういうわけにもいきません。仮に未経験者可の求人があったとしても、ある程度の知識の下地がないと入ってからが大変です。

 

 

組込み系独特のソフト開発スキルが求められる

組込み系開発で使用されるプログラミング言語は、たいていの現場では「C言語」です。C++やJavaを使っているところもありますが、多くはありません。

 

純粋にプログラムとして考えると、そこまで高度なプログラミング技術が必要であることは稀です。むしろ、どちらかといえばシンプルなプログラムを開発することが多くなるでしょう。

 

その代わり、組込み系開発独特の知識やスキルが必要となってきます。

 

スタートアップルーチン、ROM化、リアルタイムOS、レジスタ、割り込み、セマフォ・・・などなど、IT業界の他の仕事では聞きなれない言葉やあまり使わない技術が必須となります。

 

このあたりの知識・スキルは技術評論社の「標準テキスト 組込みプログラミング」でわかりやすく解説されているのでおすすめです。

 

 

他にも、「開発環境がチープで、アセンブリが必要となる場面がある」「コーディング規約が厳しい」など、組み込み業界未経験の人にとってはハードルが無数にあります。

 

 

ハードウェアの知識も必要になる

システムエンジニアなので基本的にはソフトウェアの知識さえあれば良いような気がしますが、現実的にはハードウェアの基礎知識はほぼ必須となります。

 

というのも、実際の開発では製品ハードウェアの仕様書や設計書がなかなかハード屋さんから上がってこないことが多く、開発初期の頃は回路図面のみ用意されている、ということが頻繁にあるからです。(さすがに回路図面がないと肝心のハードウェアを作りようがないので、先行して作成されることが多いです)

 

「俺はソフト屋だから回路図面なんて読めないよ。ハード屋さんはとっととハードの仕様書作ってよ」

 

と言いたい気持ちはすごくありますし、それなりに正論であるとは思うんですが・・・そんなこと言ってても納期が延びるわけでもなく、スケジュール通りに開発を進めるためには回路図面を読み解いて仕様を把握するしかありません。

 

「電子回路苦手だからソフト方面の職種についたのにな・・・」と嘆きながら、今日も回路図面とにらめっこするのです。

 

組込み系エンジニアになるなら、電子回路に関する基礎的な知識を身に着けておいたほうが絶対に良いです。

 

 

組込み系エンジニアは引く手数多だが・・・

繰り返しになりますが、組込み系業界は空前の人手不足なので、組込み系エンジニアになろうと思ったらおそらく未経験者でもなることができます。

 

しかし、(技術的な意味で)徒手空拳でこの業界に飛び込むと、高い確率で後悔することになります。実際僕の職場でも、未経験でいきなり組込み系の開発を任されて大変な思いをしている人が何人もいます。ちゃんと社内で教育できればいいのですが、そもそも人手不足なので教育係に回す人材もなかなかいない状態です。

 

組込み業界に興味のある未経験者の人は、最低限

  • C言語の基礎
  • 組込み開発で必要となる基礎知識(リアルタイムOS、割り込み、レジスタなど)
  • 電子回路の基礎

を事前に独学でも良いので学んでおくだけでも全然違います。

 

 

ARMプロセッサを搭載した教育用マイコンのラズベリーパイなどを使って、組込み開発の感覚をつかんでおくのもおすすめです。