IT人材のためのキャリアライフスタイルマガジン

「組み込み系エンジニア」とは|使用する言語・勉強方法・資格

職種研究

ソフトウェアの求人でよく見かける「組み込み系」とは、一体どういうものなのでしょうか。また、仕事内容や使われる言語、就職する際の勉強方法、持っておくべき資格などは、どんなものがあるでしょうか。需要のある組み込み系についてご紹介します。

更新日時:

組み込み系ってなに?

組み込み系という言葉を聞いたことがありますか?組み込み系についてよくわからない、という方のために、詳しくご紹介します。 私たちが普段使う家電製品にも、小さなCPUが組み込まれているおかげでソフトウェアが作動しています。例えば電子炊飯器は、お米を炊く加減をプログラムで制御しています。デジタルカメラでも、シャッター速度や露出を変更したり、シャッターを押して写真を撮ったり、それらはプログラムで制御されています。 このような電子機器に組み込まれるソフトウェアの開発の仕事は「組み込み系」と呼ばれます。他のソフトウェア開発の仕事に比べて、プログラミング能力が重視されます。

組み込み系で使われるOS

電子機器に組み込まれるCPUは、コストや発熱等を考えたうえで処理能力の低いものになっています。OSは軽くてレスポンスの早いものが搭載されています。

リアルタイムOS

今までは「リアルタイムOS」が使われてきました。リアルタイムOSの中には、例えば「ITRON」や「VxWorks」といったものがあり、今でも組み込み系OSの主流になっています。これからも複雑な処理を必要としない電子機器には使われていくOSと思われます。 ITRONは、日本の「TRONプロジェクト」の仕様です。日本製OSも、組み込みではまだ頑張っています。VxWorksは、航空・宇宙・防衛分野のように、安定性と正確に動作が要求される分野で使われてきました。安定度が高いので家電分野でも使われます。

汎用OS

昨今の電子機器は複雑な処理を求められるようになっています。UIの表示も複雑な液晶表示になり、ネットワークに接続して通信するものも増えてきました。こうなると、従来のリアルタイムOSでの処理は難しくなり、もっと処理能力の高いOSが求められるようになりました。 そこで、汎用OSの組み込みバージョンが今増えてきています。具体的には「Linux」や「Android」であり、「Windows」にしても組み込み版が登場しています。 これらはCPU性能もメモリも多く必要なのですが、CPUやメモリの性能向上と価格低下により、選択肢として成り立つようになりました。 汎用OSはレスポンスが良くないのですが、その点についても改良が進んでいるので、これから普及が進むと思われます。

組み込み系エンジニアの仕事は?

組み込み系の開発ではプログラムの処理はそれ程複雑ではありません。しかし、品質は非常に高いものが要求されます。 なぜなら、一度製品となって出荷された後にバグが見つかっても、ネットワークを通じて書き換えることはできないからです。例外もありますが、一般の人にはかなり難しいでしょう。リコールによる回収となれば、会社は大損失を被ることになるので、業務系では考えられないほど慎重にプログラムの開発が行われます。 組み込み系で仕事をする人は、アルゴリズムの勉強をしておくと役に立ちます。業務系では結果に重きが置かれますが、組み込み系ではプログラムの小ささや動作の速さ、総合的な品質の高さが重要です。

言語の習得

C言語

OSにより変わってくることもありますが、まずC言語を学びましょう。一番関わる可能性が高いですし、多くの言語の基礎ですから学ぶのは重要です。 C#やJavaでは、メモリを確保した後の開放をせずに済みます。しかし、C言語では自分で開放をしなければなりません。 目に見えなくなってしまった処理でもC言語を学ぶことにより理解することができます。

C++言語

C言語では、生産性や品質、保守性に難しいところがあります。そこで、「C++」を使った開発ができるように対策する場合もあります。 C++ならばメモリのアドレスも操作できますし、C言語に近い処理ができます。また、C++はオブジェクト指向言語なので、UMLで設計できることにより生産性も上がります。だから、C++を勉強し、さらにオブジェクト指向も勉強するのがよいでしょう。 他の言語では、Javaを使う機会が増えるかもしれません。Androidは今後活躍する可能性の高いOSですが、JavaはC++からの拡張言語です。だから、/C++を勉強すれば習得にはそれほど時間がかかりません。 組み込み系のためには、まずC/C++言語を習得しましょう。

組み込み系になるためにはどうすればいい?

自分の環境で勉強したい場合、電子工作におけるPIC等のマイコンを使うのが有効かもしれません。しかし、手軽にできる作業ではありません。楽しくできる作業ではありますが、一方で電子工作をするための時間と費用がかかります。また、最近は電子工作をしたことがない人も多いです。 より、手軽にC言語を学ぶとすれば、WindowsのVisual Studioで「Win32 コンソールアプリケーション」などでプログラムを作成するのが良いのではないでしょうか。 更にLinuxをパソコンにインストールして、Cコンパイラを使いアプリを作成し動かすと、より良い勉強ができると思います。 Visual StudioでC++を勉強する時は、アプリケーションをMFCライブラリで作成してください。それ以外の.NETやUWPアプリケーションのC++は純粋なC++とは言い難いのでお勧めできません。 MFCを使ってアプリを作る人は少ないと思いますが、今でも作成することはできます。 仕事に就く前に組み込み系を体験するのは難しいので、就職する前にC/C++言語をマスターし、オブジェクト指向を理解しておくことをお勧めします。UML図は設計でよく使われるので、マスターしておくと良いでしょう。

組み込み系の資格

国家資格

国家試験の中に「エンベデッドシステムスペシャリスト試験」があり、これを取得しておけば強力なスキル証明になります。しかし、最難関といっても過言ではありません。 まずは「基本情報技術者試験」と「応用情報技術者試験」を通過しましょう。この2つの試験に合格するためには真剣に取り組む必要があります。 これら資格がなくても組み込み系の仕事をしている人は多いですが、実力の世界なのであるに越したことはありません。

ETEC

「組み込み技術者試験(ETEC)」は、「社団法人組込みシステム技術協会(JASA)」が運営している試験制度です。組込み業界が作った試験なので、スキル判断の目安として優れています。 「クラス1」と「クラス2」の2つの資格があり、クラス2の方がエントリレベルになります。クラス1は、クラス2で500点以上を取得していないと受けることができませんどちらも800点が満点になります。 合否判定はなく、「グレードA」~「グレードC」で評価します。クラス2でグレードCであればスキル不十分に該当するため、クラス2でグレードB以上は必要でしょう。 (レベルは点数だけで判断されるわけではなく、各出題分野の正答率も考慮されているようです)

組み込み系になろう!

組み込み系の仕事は特にプログラムの作成能力が要求されます。プログラム能力が他の人よりも突出している人が集まっていることが多く、チームの中でやっていくにはプログラムに自信がある人でないと難しいでしょう。プログラムは普通程度の実力しかないという人は、他のSEの仕事の方が良いと思います。 組み込み系の仕事のメリットは、自分が担当した製品が店先等で並んでいるのを見ることができる喜びです。作成にあたって大変なこともたくさんありますが、製品になっているのを見ると感慨深いでしょう。 これからはIoTがどんどん普及し、組み込みプログラムの重要性が更に加速すると思われます。今後の安定性も考えると、組み込み系の仕事は有望でしょう。選択肢のひとつとして組み込み系を検討してみてください。

おすすめの「エンジニア転職サイト・エージェント」

良質な求人情報が期待できそうな、エンジニアにおすすめの転職サイト・転職エージェントランキング形式でご紹介します。 IT業界やエンジニア職に特化した転職サイトを中心にまとめていますので、転職を検討しているエンジニアの方は、ぜひ参考にしてみてください。

関連タグ

アクセスランキング