ホーム / コラム / しごと図鑑 / システムエンジニア(組込み、IoT)
SHIGOTO COLUMN

システムエンジニア(組込み、IoT)とはどんな仕事?未経験から就くには?

📚 技術・エンジニア

各種の製品や装置に組み込まれた、制御のための小型コンピュータ(マイコン: microcontroller)のソフトウェアを開発したり、製品や装置を含めシステム全体の設計や開発をする。

中卒・高卒・第二新卒の転職相談、無料で受付中

LINEで無料相談する

システムエンジニア(組込み、IoT)とはどんな仕事?

各種の製品や装置に組み込まれた、制御のための小型コンピュータ(マイコン: microcontroller)のソフトウェアを開発したり、製品や装置を含めシステム全体の設計や開発をします。最近はこのような製品や装置はIoTとして、インターネットを経由したデータ連携を行うことが多くなっています。以下では短くエンジニアとしています。

組み込まれる製品や装置では、センサーにより周辺環境の情報を収集し、それによって製品や装置が何らかの動作をしたり、IoTであればセンサーからの情報をサーバーに送り、サーバー側で処理した結果をまた製品や装置に送り、それによって製品や装置が何らか動作をします。このような処理には小型コンピュータが必要であり、このコンピュータのプログラムを開発します。センサーで取得した情報は誤差やノイズが含まれている場合があり、小型コンピュータはこれらを補正する役割もあります。製品や装置が行った動作も小型コンピュータで確かめ、適切に行われているか確認する必要があります。

多くの場合、小型コンピュータと周辺回路が乗るプリント基盤、そして製品や装置の機械的な部分(温度や湿度の上げ下げ、水流や送風の調節、照明や日照の調整、レーザーやGPSによる移動や定位、カメラ、等々)のエンジニアと共同で開発にあたります。ソフトウェア、プリント基板、機械的な部分のエンジニアをまとめ、システム全体を開発する場合もあります。自分でプログラミングを行う場合もあるが、プログラマーにプログラム作成を依頼する場合もあります。

ソフトウェアを開発する場合、既にあるソフトウェアモジュールを組み合わせて開発することが多く、足りない部分を自分でプログラミングしたり、プログラマーに依頼したりします。

仕事としては、製品や装置を動かすためにソフトウェアを開発する場合と(ここでは以下「組込み開発」とする)、その製品や装置を含めシステム全体を開発する場合の二つがある(ここでは以下「システム開発」とする)。

「組込み開発」の典型的な例がエアコン、テレビ、洗濯機といった家電等の制御です。例えば、エアコンであれば設定された室温に温度に保つよう、センサーが温度の上昇を感知すると冷却能力を高め温度を一定にします。リモコンからの指示を受け取り、エアコンをオン、オフしたり、温度を設定するのもこの小型コンピュータです。組込み開発は製品開発の中で平行して行われており、製品開発のエンジニアが行っている場合もあります。また、最近、家電もインターネットと接続されるものも出てきており、インターネットを介して指令を受け取ったり、逆に情報をインターネットに送信したりしています。

組込み開発は、大きく分けてハードウェア開発とファームウェア開発に分類されます。ハードウェア開発は、組込み装置の用途や、大きさや価格といった制約を踏まえて、どのような部品を使ってどう構成するのがよいかを設計し、プリント基板制作や部品の取り付けなどの実装を行います。ファームウェア開発はプリント基板に搭載されている小型コンピュータ(マイコン)の上で動作するプログラムを設計、作成します。組込み開発では多くはC言語系でプログラムを開発します。機会は少なくなっているがアセンブラなどを使うこともあります。組込み開発では処理時間や使用できるメモリ等が限られていることが多く、このような制約のもと、目的としたプログラムを開発する必要があります。

一方、「システム開発」では、まず、顧客の現状とニーズを把握し、開発の要件を明確にすることから始め、設計、開発という流れとなります。システム開発のための製品や装置を選択し、コンピュータ言語で制御プログラムを作成します。周辺環境からの情報を受け取る各種センサー、逆に何らかの動作をするパーツの選定もします。製品や装置はインターネットを介してサーバーに接続されており、サーバー側の設定をしたり、サーバー側のプログラミングも行います。出来上がったら顧客と共にテストしたり、実際の利用者に使ってもらい、不具合や改善点があれば、設定やプログラムを修正したり、場合によってはセンサー等を入れ替えることもあります。製品や装置は広範囲に多数、設置されるため、信頼性、耐久性、安全性等のチェックが重要となります。

具体的な例として、農業の例を挙げると、農業用ハウスで以前は手動で窓の開け閉めをしたり、時間によって開け閉めをしていました。農業用ハウスに装置を設置し、その装置で室温、湿度、日照等の情報を集めサーバーに送り、この情報をもとにハウスの窓の開閉を行ったり、送風機を回したり、ハウスの環境を整えることができるようになっています。この装置の選択と設定、装置のプログラム作成、サーバーの設定とプログラム開発等をこのエンジニアが行っています。

以上のように製品や装置を制御する組込みのソフトウェアを開発する場合と、システムとして全体を開発する場合があるが、IoTが広がる今日、実際の開発や仕事の内容は類似してきています。

よく使う道具、機材、情報技術等

OS(オペレーティングシステム:Linux 、ITRON)、データベース(MySQL)、プログラミング言語(C言語系、JAVA、Python、Ruby等)、サーバー、パソコン、表計算ソフト(Excel、Googleスプレッドシート等)

実際にどんな作業をするの?

厚生労働省「job tag」のアンケートをもとに、実際にこの仕事をしている人が「やっている」と答えた作業を実施率の高い順に紹介します。

  • 要件の定義を行う。(実施率 93%)
  • 関係者と開発について検討する。(実施率 93%)
  • ソフトウエアを設計する。(実施率 89%)
  • テストを行う。(実施率 89%)
  • ソフトウェアモジュールを組み合わせて開発を行う。(実施率 87%)

賃金・労働条件はどうなの?

厚生労働省の統計データによると、システムエンジニア(組込み、IoT)の年収は578.5万円、平均年齢は37.1歳、月間労働時間は159時間です。

有効求人倍率は4.77で、求人賃金(月額)は34.3万円となっています。

未経験からシステムエンジニア(組込み、IoT)になるには?

入職にあたって、特に学歴や資格は必要とされないが、大学・大学院卒、高専卒が多い。新卒採用に場合は、電気、電子、情報等を履修している者が多い。中途採用の場合は、学部学科よりも、どのような開発をしてきたかという経験が重視されます。

開発では最新の情報も必要になるが、大学・大学院、高専等で開発手法や各種部品の基礎知識を身につけておくことが重要です。なお、このエンジニアに求められる詳細なスキルとしては情報処理推進機構(IPA)の「組込みスキル標準」が参考になります。

入職後、仕事をしながら経験を積み、技術やスキルを身につけていきます。複数の開発を経験し、顧客の要件を聞き取り、実際の開発までを過不足なくできるようになれば、一人前のエンジニアと見なされます。一つの領域を深めるだけでなく、機械的な部分、通信など複数のジャンルにわたって幅広く経験することも重要です。開発実績を積み、プロジェクトマネージャー等となっていきます。

転職する場合は、同業他社に移ったり、技術が生かせる周辺分野の他社に移ることがあります。しかし、この分野のエンジニアは、他社に移動することが比較的少ない。経験を積み、人脈を広げ、独立して自分の会社を始める人もいます。

製品や装置の小型コンピュータのプログラム開発では、プログラミング言語の選択肢は概ね決まっていることが多く、C言語系などが使われ、OS(オペレーティングシステム)はLinuxやITRONが多い。サーバー側のプログラム開発では言語はC言語系、PHP、Javaなどが使われます。また、サーバー側の開発ではOSはLinux、データベースはMySQL等が使われます。今日ではセキュリティに関する知識も重要になっています。

開発で必要となる情報は日本語のものもあるが、英語のものも多い。海外メーカーの部品やソフトウェアを利用することも多く、それらを不自由なく読める英語力が必要となります。

開発は共同作業となることから、チームワークが重要であり、人柄も重視されます。言われたことを実現するだけでなく、新たな仕組みを提案するような能動的な姿勢も求められます。

転職のこと、一人で悩まないで。

学歴・職歴不問。まずは話すだけでOK。無料で相談できます。

LINEで無料相談する