組み込みエンジニアのおすすめ勉強方法 ハードとソフト両方できる人に

エンジニア

AI・IOTの時代に組み込みエンジニアがどんな技術・スキルを勉強するべきかをまとめてみました。「組み込みエンジニアを目指す方・現役の方」の勉強の助けになれば幸いです。

 

組み込みエンジニアの需要

現役のメーカのエンジニアに言わせてもらうと、組み込み系のエンジニアは常に需要があります(というか常に人不足状態)。

 

特に最近は「BtoCの企業がBtoBになって事業モデルを変更」「AI・IOTに向けた新事業を展開」など企業自体の方針変更も多く、組み込みエンジニアの環境も大きく変わっています。

 

特に組み込み系はWeb系とは違い「一度製品を出荷すると(ほぼ)修正対応ができないため」信頼性が特に求められています。新規製品が出荷されるまでエンジニアが大量投入されます。

 

そんな組み込みエンジニアが必要としている技術・スキルを検討して勉強方法を考えてみました

 

 

もし未経験から組み込みエンジニアに転職したい場合は…

もし「未経験だが、別業種から組み込みエンジニアに転職したく勉強を始めたい!」という方は一度思い切って転職するのも有りだと筆者は考えています。

 

正直な所この業界は勤める企業で環境・風土が全く別物になり、どうしても「相性的に合う・合わない」があります。また人の流動もそれなりにあります。

(個人的な経験談ですが、転職者は優秀な人が多いです)

 

大手の転職サイトのリクナビNEXTを見ても未経験で組み込みエンジニアを募集している企業は多くあります。興味がある方は一度探してみてもいいかもしれません。

 

ハードとソフトの両方できる組み込みエンジニアは貴重

正直なところ、組み込みエンジニアと言っても多種多様で「絶対にこれだけ勉強しておけば組み込みエンジニアとして大丈夫!」というものは無いと筆者は考えています。

(というかあったら筆者が教えて欲しいです…)

 

「分野がハード・ソフトと違ったり」「使うマイコン・OSの種類も異なる」「企業によって開発スタイルが全く異なる」といった感じで必要な技術・スキルも企業・時代によってバラバラです。

 

そして企業では大人数で開発し「全体の開発スピード」「個人の専門性」を高めている傾向にあり、最近ではハード・ソフト両方開発できるという方が大分少なくなっているのではと思います。

 

そのためハードとソフト両方できる組み込みエンジニアは非常に貴重な存在となっています。

 

ハードウェアとソフトウェアの違い

この類の記事は多くありますので、大分端折って書かせてもらいますがラズベリーパイ(raspberry pi)で例とすると下記といった形になります。

 

すごく簡単に言うと「目に見えるものがハード(ウェア)」「目に見えないものがソフト(ウェア)」となります

ハードウェア…ラズベリーパイ本体

ソフトウェア…ラズベリーパイを動かすOS・プログラム

 

AI・IOTの時代でソフトもハードも重要に

特にAI・IOTの時代ではCPUが「多くのセンサ情報を拾ってくる」「多くのデバイスを接続する」が重要になってきて、ハード・ソフトの両方で対応する必要があります。

 

少しでも他分野の知識・経験があると仕事が楽

筆者も本業はハードウェアで「ソフトウェアに関しては趣味レベルの素人に毛が生えた程度」ですがそれが重要だと考えています。

 

ちょっとした他分野の知識・経験が「組み込みエンジニアとして」「プロジェクトチームの一人として」細かい所で生きていきます。

 

当然である下記例ですがこの「当たり前のこと」を出来ない人が結構います。そして大体忙しい時に要求が来ます。(特に完全分業化している大企業が顕著です)

・ハードがソフトでデバッグしやすいようにUART等の予備IFを接続できるようにしておく

・ソフトがハードのテストをしやすいように簡易的なシェルスクリプトを用意してあげる

 

 

筆者が一番言いたいことは変に「ハードウェア」と「ソフトウェア」の括りで苦手意識を持たないでほしいです。

 

簡単なデバッグレベルならば個人でハード・ソフト両方出来ると組み込み系の仕事は捗ります。

 

どのようにハード・ソフトの勉強をしていくか

正直な所、仕事以外の勉強で培ったことがすぐに仕事の成果になることは少ないです。組み込み系の仕事は専門性が高く、一朝一夕の知識・経験では効果が出ないケースが多くあります。

 

また専門性の知識・経験は仕事の環境でしか身に付かない場合もあるので、プライベートで勉強する場合は自分の専門外の分野を学んで幅広い知識・経験を付けるのをおすすめします。

 

「ハードエンジニアの方はプログラミングを…」「ソフトエンジニアの方は電子工作を…」といったように自分の専門外の勉強をすると、エンジニアとしての知識・経験が高まっていきます。

 

ハードウェアの勉強をするには

やはりハードウェアの勉強で一番おすすめしたいのはラズベリーパイ(raspberry pi)です。

 

通信IF(I2C,SPI,UART)の回路を簡単に自分の手で作ることができます。例えば下記記事のように自分の手でI2CのEEPROMと加速度センサを接続することが可能です

I2CのACKとNACKの波形を見てみる
今回は筆者が持っているラズベリーパイとI2Cデバイスをつなげてアナライザを使い「I2CのACKとNACKの波形を見てみる」を紹介します 簡単にI2C通信でのACK,NACKを確認するまでの手順を紹介しています。 「自分でI2...

 

またハード的な波形も1000円ぐらいのアナライザを一緒に使うことで確認することができます。下記写真はRS232CとUARTの波形を比べたときのものです

RS232CとUARTの違いをアナライザで確認してみた
今回は筆者が持っているラズベリーパイとRS232Cを接続して「RS232CとUARTの違いをアナライザで確認してみた」を紹介します RS232CとUART通信の差を比較するまでの手順を紹介しています。「自分でRS232Cを色々...

 

ラズベリーパイ(raspberry pi)電子工作セットで簡単に回路作ることができるので、電子工作としてもハードの勉強としても非常におすすめです

 

ソフトウェアの勉強をするには

ソフトウェアの勉強をするにしてもラズベリーパイがあれば非常に楽です。プログラミング初心者におすすめな言語の「Python」を簡単に始められる環境が整っています。

 

筆者もラズベリーパイを使って機械学習による画像認識のプログラミングを日々勉強中です。下記動画のような実際に仕事で使えるようなプログラミングに取り組んでいます。

 

ちなみに筆者は少し前までPython初心者でしたが、下記記事で紹介しているUdemy で勉強することで今回のレベルのことは出来るようになりました。

未経験・社会人向け! Pythonと機械学習の勉強方法・始め方
未経験で社会人である筆者がPythonと機械学習を学ぶにあたって「今回の勉強方法はかなり実用的かつ効率的!」と強く実感した内容でしたので紹介したいと思います。 UdemyがPythonと機械学習の始め方に最適! 結論から言いますとの講座...

 

初心者が高い参考書を買って一人でPython勉強するよりは「非常に分かりやすく」「費用が抑えられる」はずですのでご参考ください。リンク先はこちらから

 

まとめ・感想

これからのAI・IOT時代で組み込み系でもハードウェアとソフトウェアの境目が薄くなっていくと筆者は感じています。

 

そんな中で筆者もハード・ソフト両方できるエンジニアになっていきたいと思います。

ぜひ皆様も自分の分野だけでなく幅広い知識・経験を身に付けることをおすすめします。

 

コメント