見出し画像

「IoT時代に必須!組み込みエンジニアの仕事内容とキャリアパス」

お疲れ様です! エンジニアの未来編集部 中村です。
今回取り上げるのは、機械系のエンジニアに分類され、昨今需要が高まっている一方で、供給が足りていないとされる「組み込みエンジニア」というお仕事についてです。

「組み込みエンジニア」とはどんな仕事なのか?また、その需要が高まっている理由をご紹介いたします。ぜひ最後までお付き合いください。


【組み込みエンジニアとは】

冷蔵庫や電子レンジなどの家電や自動車、パソコンなどの周辺機器やスマートフォンなどあらゆる電気製品には必ず小型のコンピュータ(ハードウェア)が搭載されており、その製品を動かすためのソフトウェアを開発するのが「組み込みエンジニア」です。

ここでのソフトウェアとは、OS上で動作するプログラムではなく、ハードウェア自体(IC、半導体部品)にプログラムすること、もしくは入っているプログラムのことです。単一の機能を提供する電気製品(掃除機、炊飯器、洗濯機、エアコンなど)は、ほとんど組み込みソフトウェア開発によって作られています。

近年ではIoT(Internet of Things)「ものをインターネットに繋げる技術」があらゆる業界で導入が進んでおり、「組み込みエンジニア」の需要が高くなっています。IoTデバイスには、マイクロコントローラ、マイクロプロセッサと呼ばれる小さなコンピューターが組み込まれており、デバイスが正しく動作し、セキュリティが守られ、必要なデータが正確に送られるための設計やプログラムをすることが「組み込みエンジニア」の仕事です。

組み込みエンジニアに必要なスキルとしては、以下のようなものがあり、どれも一定以上の理解が出来ている必要があります。

プログラミング言語

・C/C++:組み込みシステムで広く使われる言語。低レベルでハードウェアに近い操作が可能。
・アセンブリ言語:特定のマイクロコントローラやプロセッサの細かい制御が必要な場合に使われる。

ハードウェアの基礎知識

・電子回路:基本的な回路設計、抵抗、キャパシタ、トランジスタなどの電子部品の理解。
・マイクロコントローラ:マイクロコントローラの内部構造、動作原理、ピン配置、データシートの読み方。

リアルタイムオペレーティングシステム

・組み込みシステムで使われることが多いリアルタイムオペレーティングシステム(RTOS)の知識(例:FreeRTOSやZephyr など)

通信プロトコル:(プロトコル:デバイス間の通信を効果的に行うための「取り決め」や「規約」のこと。具体的には、データの送受信の方法、データの形式、エラー処理の手法など、通信に関する詳細な手順やルール)

・マイクロコントローラ同士や周辺機器との通信に使われるプロトコル。
・ワイヤレス通信のプロトコル

【組み込みソフトウェア開発の特徴】

1.半導体部品の知識はもちろん、コンピュータシステムの深いところまで専門的な知識が要求され、使われる部品も毎回違うため、同じ仕事がありません。

2.「小さい製品に収まるように、かつ様々な制限下で機能を実現するようなソフトウェアを作らなければいけない」「同時にコストダウンも要求される」という条件が常につきまとうため、創意工夫が求められます。ただし昨今では豊富な機能を搭載する潮流も増えてきています。

3.製品開発は電気チームが主導で行われることが多く、組み込みエンジニアは決められた仕様を実現するようなプログラムの設計を求められることから、「他分野のエンジニアと共同作業をしながらプログラミングの仕事をしていく」という稀有な経験が可能です。

以上のような技術を要求される仕事であるため、見方によればIT系エンジニアとしてのスキルが人一倍磨かれる環境であると言ってもいいかもしれません。この環境でプログラミングを勉強できたら、間違いなく他の職種としてのITエンジニアでも強力な戦力になれると言えます。

このように、「組み込みエンジニア」は特異性のある仕事ですが、多くの組み込みエンジニアはこの特異性を楽しんでいると聞きます。これは本当なのか、実際にはどんな仕事なのか、当社(セントラルエンジニアリング)に在籍している組み込みエンジニアのお二人に、実際の業務についてお話を伺いました。

【現役エンジニアインタビュー】


組み込みエンジニアインタビュー:W.Y さん

経歴:大学では情報通信工学を専攻。1999年 新卒入社。入社以来、鉄道関連のソフトウェアプログラマーとしてキャリアを形成。現在に至る。

ーーー まずはWさんがどんな業務をしているのか教えてください。

入社当初から鉄道関連の装置の組み込みソフトの設計、開発をしています。鉄道関連の設備というのは、列車を安全に運行するために、駅構内であったり、線路脇にもさまざま設置されているのですが、主にそれらの設備の状態を監視するような装置を作っています。もう少し具体的には、設備が動く時の電流だったり電圧の変化を測定したり、その情報を上位の集中監視装置などに、有線や無線で通知するような装置です。

ーーー ありがとうございます。早速(上記の)組み込みエンジニアの記事を読んでいただきましたが、いかがでしたか?

全体的に違和感はありませんが、IT系と機械系の区分のところだけ、当社の場合ははっきりと区分しにくい部分がありますね。通信分野の仕事を請け負っていますので、一般にはIT系の区分の中で組み込みの業務をしているんです。特に近年は、IoT化が進んでいますので、その境界線も曖昧になってきています。

ーーー 「組み込み」という分野は昔からあったのですか?

いわゆるウィンドウズで出来る仕事と、そうでない仕事(組み込み)というくくり自体は昔からありました。

ーーー Wさんはセントラルに入社後に組み込みエンジニアの道を選んだのですか?

選んだということではなく、配属されました。大学で情報通信を学んでいたので、そのつもりで入社しましたし、今やっていることは当時イメージしていた仕事に概ね沿ったものになります。とはいえ、学生時代はC言語の勉強はしていましたが、組み込み系だとかウェブ系だとかの切り分けは理解していませんでした。

ーーー 組み込み系の仕事は、仕事ごとに内容が違うと聞きました。となると、「事前に学ぶ」ということが難しいのかなと思うのですが。

確かに装置ごとの機能が違うとか、デバイス自体が違うということはありますが、基本的な考え方は似通ったところがありますので、流用ができます。カスタマイズするようなイメージですね。とはいえ、私もハードウェア系の細かいところまでは理解しているわけではないです。

ーーー 記事の中で、必要なスキルとして、リアルタイムオペレーティングシステム(RTOS)という言葉が出てきました。これはどういうものなのか、教えていただけますか?

パソコンで言うところの、OS(基本ソフト)、Windowsのような存在なのですが、もっと小規模で、組み込み専用のやや専門性の高いosですね。いろいろな種類があるのですが、私は業界標準の「μITRON(マイクロアイトロン)」(という「仕様」)を使っています。上記記事の例に出てきた「FreeRTOS」は使ったことはないです。

ーーー ひとつの案件(仕事)はどれくらいの期間をかけるものなのですか?

いろいろありますが、半年くらいのものが多いです。お客様から注文が入ったら、仕様の検討と用件定義をして、定義した内容から設計書を作成します。ここまでで長くて2か月間程度。実際に手を動かす作業で2か月。できたものを実装して評価試験で2か月というところですね。

ーーー HP制作と似た工程ですね。要件定義して、作って、試す。

セントラルはハードウェア(基板から筐体まで形のあるもの)の設計もしているので、この工程をまるまる受注できるところも当社ならではかもしれません。ハードウェアの設計とソフトは全然違う仕事なので、インターフェイス(接点、仲介する部分)はお互いに確認し合います。

ーーー 苦労した案件などはありますか?

最近は減りましたが、昔なら純粋に短納期であることがありました。一つ印象に残っているのは、未経験の通信規格を使った装置で、お客様からいただいた規格書が全部紙ベースで、全部英語で表記されていた時は苦労しましたね。

ーーー 組み込みエンジニアは大変だと聞きましたが、実際どのように感じていらっしゃいますか?

そうですね、その仕事によって必要な知識だとか経験は違うと思うので、組み込みのエンジニアが特別大変だと考えたことはないですね。私自身が組み込み一筋だからなのかもしれません。

逆にハードのエンジニアだったり、私はコミュニケーションが得意ではないので、営業の方や採用など、他部門の方の方がたいへんそうに見えます。

ーーー やりがいや面白さ、醍醐味を感じる時はどんな時でしょうか?

醍醐味で言えば、やはり自分の設計したものが形になって残るというところで やりがいを感じます。あとはそうですね。難しい案件であればあるほど、それがうまく動作してお客様が満足していただけると嬉しい気持ちになります。

ーーー この仕事に向いている人はどんなタイプでしょうか?

そうですね。やっぱり論理的思考ができる人ですね。 物事を考える時に、論理的に考えて、情報を整理して、 そこから答えを導き出すということが必要です。そういうことができない人が書いたプログラムは見づらい、読みづらいことが多い気がします。あとは学生のうちにプログラム言語を1つでも学んでもらって、プログラムを組んだことがあればいいですね。さらに、組み込みでなにか装置を動かしたことがあればなお良しというところです。

ーーー 技術者として戦力になるには何年くらいの経験が必要でしょうか?

最低で5年ですね。「任せられる」ようになるのはもっと先になります。いろいろな経験をすることで、知識も積みあがっていきますので、やはり時間はかかります。

ーーー 技術は一日にして成らずですね。本日はありがとうございました。

こちらこそありがとうございました。

☆~~~☆~~~☆~~~☆~~~☆

組み込みエンジニアインタビュー:H.Mさん

経歴:情報処理専攻 2023年 新卒入社。鉄道関連のソフトウェアプログラマーとして日々奮闘中

ーーー Hさんは入社2年目でWさんの指導の元で勤務されているのですね。

はい、入社2年目の私のスキルを考慮して適切なスケジュールを組んでいただくなど、いい環境で仕事をさせていただいています。

ーーー 学校ではどんなことをされていたのですか?

ソフトの専攻でした。Windows上で動かすもので、例えばテキスト情報だけのロールプレイングゲームなどを制作したりしていました。

ーーー なぜセントラルに入社されたのでしょうか?

もともと鉄道に興味がありましたし、ダムや車など、いろいろな分野にも挑戦できそうだからということと、面談の際に、10年後のことなど真摯に考えてくださって、安心感を感じたこともあります。

ーーー これまでに関わった「組み込み」の業務はどんなものがありますか?

センサーの部品検査です。センサーで測定したデータを、ソフトで受け取って修正して、またセンサーに戻すことでさらにセンサーの精度が上がっていくというようなことをしました。

ーーー 組み込みの仕事は難しいと聞きましたが、実際はどのように感じていますか?

めちゃくちゃ難しいです(笑)単純に求められる知識もとても多いので。

ーーー そうなのですね、それにはどうやって対応するのですか?

とにかく調べるしかないです。マイコンなどのマニュアルも見るのですが、3000ページぐらいあるんです。その中から必要な知識を抽出するとなると、とんでもない時間がかかりますし、「調べる力」も必要になってきます。業務の特性上、ハードウェア(ここでは筐体ではなく、基板のイメージ)との情報共有などにも時間はかけなくてはいけないところですし、時間がいくらあっても足りないように感じています。

ーーー そんなに大変なのに、Hさんはそっちの方向に行きたいのですね。

そうですね。やはりものづくりが好きなので、機械に触って自分で動かしていきたいんですよね。ハードウェアにも精通していきたいですし、習得するまでに何年かかるんでしょうね。

ーーー これまでの業務で達成感を感じたことなどはありますか?

実機単体試験と言って、実際に装置で試験を行うんですけど、そこで自分が作ったプログラムで動いているのが目で見れるのは楽しかったですね。そして、それを実際に納品まで持っていけた時には、「やった完了だ!」という達成感がありましたね。機械いじりが好きな人は多分みんな確認が面白いと言うと思います。

ーーー うまくいかないこともありますよね?

あります。物理的にはケーブルで接続しているのですが、データの送受信ができないということがありました。その際は、プログラムの不具合を上からさらっていって、 どこが問題なのか探していく作業になったのですが、その時は心が折れそうでしたね。

ーーー どのくらいの時間がかかるものなのですか?

装置の規模にもよると思いますが、その時は3日ぐらいかかりました。 その対処のためにまた別の装置が必要になり、取り寄せたりもしたので時間がかかりましたね。

ーーー 不具合を見つけるのも大変なのですね。

そうですね、組み込みでは多いかもしれません。原因を調べて、自分が知りたい情報を得るというスキルが必要かもしれないです。実際、同じ基板を見たときでも、先輩方と自分では得られる情報量が全然違うんですよね。先輩は基板を見ただけで不具合を見つけられたりするので、なんでわかるんだろうと。自分も早くそのようなレベルになりたいです。

ーーー この仕事に向いている人はどんなタイプでしょうか?

まず大前提としてものづくりが好きな人。それから、地道にエラーをつぶしていける、根気強さが必要だと思います。

ーーー Hさんが今後やっていきたいことは?

まずはハードウェアに精通したいですね。やってみたいこととしては、 発注書から納品までの全部を1人でやってみたいってのはありますね。1年目の最初の頃に、1度やらせてもらったのですが、それから1年経って、自分がどれだけ成長できたのか確認したいです。

ーーー 最後に情報系の学生さんに向けてメッセージをお願いします。

視野を広くもちましょうでしょうか。プログラムをしていると、自分のことばかりになってしまいがちですが、それでは後々不具合が出てきて余計に苦労しますので、客観的な視点での確認をすることをおすすめします。

ーーー 実務経験者ならではのアドバイスですね、本日はありがとうございました。

お役に立てれば幸いです。ありがとうございました。


最後までご覧いただきありがとうございます。「エンジニアの未来」は毎週月曜日更新!次回もお楽しみに!