「エンベデッド(組み込み)エンジニアに興味があるけど、実際どんな仕事なのかイメージできない」 「エンベデッドエンジニアに必要なスキルや、エンベデッドエンジニアになる方法を知りたい」 この記事ではエンベデッドエンジニア、すなわち組み込みエンジニアの仕事内容などについて、就活生に向けて解説していきます。 後半には平均年収や将来性についても執筆させて頂きましたので、就職活動を行う際のご参考になれれば幸いです。
エンベデッド(組み込み)エンジニアとは
エンジニア職の求人を見るとしばしば「組み込み系」というワードを見かけると思いますが、そちらがエンベデッドエンジニアの求人となります。 仕事内容のご紹介の前に、そもそも組み込み系とはどんなジャンルなのかをご説明します。
組み込み系とは
組み込み系とは、家電製品や機器など「独立した機械の中に組み込まれたコンピューターを制御するためのシステム」の総称で、「組み込みシステム」と呼ばれることもあります。 簡単に言うとスマートフォンや家庭用電話、冷蔵庫、電子レンジ、自動車、さまざまな電気製品の機能を作動させる際に必要なソフトウェアのことを指します。 さらに近年ではロボット技術やIoT(Internet of Things:物のIT化のこと)実現のためのセンサーに活かされるなど、エンベデッドエンジニアの活躍するフィールドは多様化していると言えます。 一つ例に出すと、洗濯機や炊飯器といった家電製品の中には「マイコン」と呼ばれる小型のコンピューターが搭載されています。 このマイコンには、 「水が一定の量に達した場合、○○分間洗濯槽を回転させる」 「このモーターは毎分▲▲回転させる」 などの手順がプログラミングされており、その手順に沿って機械に作業を指示しています。これが組み込みシステムです。
エンベデッド(組み込み)エンジニアの「仕事内容」
さて、ここからはエンベデッドエンジニアの仕事内容について詳細をみていきます。
①製品スペックの決定
システム開発では、まず始めに開発したい製品のスペックから考えていきます。 ブルーレイレコーダーであれば、接続したテレビの信号を受信し、HDDに保存する機能がメインです。 それ以外にも、他の番組と同時録画できる機能や動画編集、再生を制御する機能など様々な機能が必要だと考えられる、といった具合です。 これまで見てきたように、この段階では、その機械にどのような機能を搭載したいかを洗い出して、整理・決定します。
②システム設計
製品スペックが決まった後は、システム設計に入ります。 まず組み込みに必要なハードウェアとソフトウェアを分析することからはじめます。 ハードウェアを考える場合、ブルーレイレコーダーであれば外部とつなげるものとしてテレビや外付けHDD、スマートフォン、タブレット、USBメモリーなどがあります。 テレビと接続するなら現在ではHDMI端子が主流で、HDDならSATA端子です。 スマートフォンやタブレットであれば無線LANが必要になります。 こういったものがハードウェア分析になります。 ソフトウェアを考える場合、まず始めにハードウェアを動かすための組み込みOS(Operating System)が必要です。 その組み込みOSを動作するために必要なCPUを決めたり、画面を作ったりするのがソフトウェア分析となります。
③ハードウェア、ソフトウェア設計
次に、システム設計で決定した事項を元に、外部ホストなどを使用するために適した構成に配慮しつつ、ハードウェアを設計していきます。 ハードウェアの設計を終えると、部品同士をつなげる電子回路図の作成や基盤レイアウトなどを行います。 ソフトウェア設計ではハードウェアの管理や抑制するためのドライバー開発が行われます。 組み込みシステムの場合は独自構成でハードウェアが構成されることがほとんどなので、それに適応するドライバーの開発が必要です。 さらに、企業やプロジェクトによってはアプリケーションやミドルウェアの開発を行う場合があります。
④実装
ハードウェア設計の段階で回路図からベース基板をつくり、部品の実装が行われます。 そしてソフトウェア設計でも関数の実装が行われ、完成すると基板が出来上がります。 ここで接続が適切か確認し、電源が入れられるのです。 この時点ではソフトウェアにCPUがないのでプログラムの動作は不可能ですが、基板が完成するまでの動作確認ができる体勢を整えて作業が行われています。
⑤クロスデバッグと環境テスト
パソコンを使って基板にプログラムを搭載し、実行の結果を必要に応じてデバック(プログラムの誤りを見つけて修正すること)し、基板に備わるチップの接続を確認します。 プログラムの実行が確認できたら、最後は製品の品質を確認するための環境テストが行われ、各環境で一定品質が保たれれば作業終了となります。
エンベデッド(組み込み)エンジニアに必要な「知識・言語」
ここまで仕事内容について詳しく見てきましたが、ここではエンベデッド(組み込み)エンジニアになるために必要な知識や言語をご紹介します。 知識としてITの基礎知識があることに越したことはないですが、エンベデッドエンジニアになるにあたり1番求められるのはプログラミング能力なので、まずは必要な言語の学習をしましょう。 エンベデッドエンジニアがメインで使う言語としては ・C言語系 ・Java ・アセンブラ言語 上記3つに分けられますので、順に見ていくとします。
①C言語系(C、C++)
以前、企業の新人研修としてほとんどの企業が採用していたC言語ですが、最近のプログラマー・システムエンジニアは別の言語で受けていることが多くなり、近年ではC言語は落ち目だと思っている方も少なくないように感じます。 しかし、エンベデッドエンジニアの世界では、未だにC言語は最重要言語と言っても過言ではありません。 組み込みシステムを作成するときに重要視されるのが安価な反面、演算装置の性能やメモリの搭載量が制限されたハードウェア(マイコン)上でも、フリーズせずに安定稼働できるか、という点です。 ちなみに、C言語はオブジェクト指向ではないと思っている方もいますが、C言語を拡張したC++はオブジェクト指向を取り入れており、C言語でもオブジェクト指向として開発することが可能となっています。
②Java
現在、世界で最も利用されている言語と言われ、新人研修でもC言語に取って代わってJavaが使われるケースが多くなりました。 Javaはかつて組み込みシステムに不向きだと言われていました。 その理由は様々な環境で動作する反面、仮想環境の作成・維持を行う分、C言語系と比べてハードウェアリソースを大食いしてしまう、という考えが強かったためです。 しかし、近年のハードウェアの進化は目覚ましく、そこまでカツカツ考えなくても良くなったこともあり、むしろJavaで書かれたソースコードは、他の同等機種に移植するなどの再利用性が高い点が注目され、Javaで組み込みシステムを作ることも一般的になりつつあります。 JavaはC言語よりも処理が遅いという欠点があるので、即時性を求められる環境では使えないなどの制約はありますが、組み込み系の主要言語の一つと考えて間違いありません。
③アセンブラ言語
具体的なアセンブラ言語として、UNIX用のasやMicrosoft Macro Assembler(MASM)などが知られています。 機械の動作は、機械語で記述したソースコードがもっとも効率的にハードウェアリソースを制御することができます。 しかし、機械語をそのまま人間が読み書きするのは難しいので、機械語を人間でも読み書きできるようにしたのがアセンブラ言語です。 上述したJavaとは対称的に、最近はやや縮小気味の言語です。
エンベデッド(組み込み)エンジニアの仕事における「やりがい・喜び」
エンベデッドエンジニアの仕事では「自分がプログラミングによって書いたコードにより、機器が狙い通りに動作する」という、プログラミングの本質に通じるおもしろさがあります。 エンベデッドエンジニアの開発物は、Webエンジニアやインフラエンジニアと違い、形として市場に並ぶことが多く、自分が開発者として携わった機器が市場に出回った際は、社会の役に立っているという実感が得られ、そこに1番やりがいを感じているエンジニアが多いようです。 また基本的に開発は一人ではなくチームでの開発となります。 全員の苦労が集結したものが実際に動いた瞬間の達成感は、何事にも変えられないものがあります。
エンベデッド(組み込み)エンジニアの「平均年収」
2016年9月~2017年8月の1年間にdodaエージェントサービスが調査した結果によると、組み込み/制御設計エンジニア(エンベデッドエンジニア)正社員の平均年収は20代で391万円、30代で513万円、40代で592万円、50代で673万円と発表されています。 また使用するプログラミング言語によっても差が発生し、C言語とアセンブラ言語を比較した場合C言語の方が100万円近く高いというケースもあるようです。 余談となりますが、スタートアップ企業などに所属することが多いWebエンジニアは、実力やサービスの成長度合いによって年収の格差が著しく激しい傾向にあるのに対し、メーカー系企業に入社することが多いエンベデッドエンジニアは、Webエンジニアと比較した場合収入の格差は比較的穏やかと言われています。 プログラミング言語による収入の差もありますが、キャリアアップによって年収をあげる方法もあり、プロジェクトリーダーやプロジェクトマネージャーを目指す方法や、専門知識を磨いてスペシャリストになることができれば大幅な収入増加が見込めます。
エンベデッド(組み込み)エンジニアの「需要と将来性」
エンベデッドエンジニアが活躍できるフィールドは増加傾向にあります。 家電製品をはじめ情報・通信機器・産業機械など、コンピューターを内蔵するあらゆる機械には組み込みシステムが必要であり、それを開発するエンベデッドエンジニアは欠かすことができません。 最近ではIoT分野の成長が著しく、昔は家電やPCなどの一部製品にのみ搭載されていましたが、Google GlassやApple Watchなどに代表されるように、日常で身に着けるアイテムにもセンサーやマイコンが搭載されるようになり、過去には想像もできなかった物がインターネットにつながる時代となってきています。 こうした理由もあり、今後エンベデッドエンジニアとして生き残っていくためには、さらに高度な組み込みシステムが要求されるようになっていくと思われます。 現在の技術レベルや知識の幅広さの高度化が求められるのはもちろんのこと、新しい言語や技術が世間に出回った時に積極的に習得しようとする姿勢が非常に重要です。 当然、開発案件数自体が増加していくことで、エンベデッドエンジニアに対する需要も増えていきますので、未経験者に対しても就職のチャンスが広がっていくことが見込まれます。 エンベデッドエンジニアとして就活する場合、「将来どんな開発案件に携わりたいか?」 「その案件に1番早く関われそうな企業はどこか?」 という軸を明確にしてから動きだすことが、企業選びに失敗しない1番の方法であると考えています。
IT業界を目指すならエージェントを活用しよう
エンジニア就活には、IT業界・SEに強いエージェントがいます。彼らに話を聞いてもらうことで、自分が何をやりたいのか、自分が大切にしているのが何なのか、就活するうえでの軸が見えてきます。さらに、各人に合った未公開の求人情報も紹介してもらえるので、まずは気軽に相談してみましょう。会員登録や相談・セミナーなど、すべて無料で活用できます。