こんにちは、現役組み込みエンジニアのtomozoです。
今回は組み込み系ソフトウェアエンジニアが学ぶべきこと
についてまとめて解説します。
- 組み込みエンジニアを目指している学生
- 組み込みエンジニアになったばかりの人
- 組み込みエンジニア数年目で何をしたらいいのか悩んでいる人
- 組み込みエンジニアを目指して転職を考えている人
向けの記事です。
過去にこちらの記事でも紹介しますが、
![](https://tomozo-blog.com/wp-content/uploads/2020/07/015f6e458f967e6eef4b70c9f34ecdf5-520x300.jpg)
日本の社会人の勉強時間は1日6分といわれており、
ほとんどの人が大人になると学習をしていません。
また、日本の学校は授業とテストさえほどほどにしておけば、
卒業できるので大学生もあまり勉強していません。
このような状態では、勉強している人に置いていかれるので、
現状維持も難しくなります。
そうなれば、希望する会社に就職できなかったり、
希望する組み込み系の仕事ができないといった状況になり
希望の生活が送れなくなってしまいます。
やりたいことができて、お金がもらえるって幸せですよね。
しっかりやるべきことを知って、目標を達成しましょう。
tomozo
この記事を読めば、
- 組み込みエンジニアになる前に勉強しておいたほうがいいこと
- 組み込みエンジニアになってから勉強したほうがいいこと
が分かるようになります。
それでは解説を始めます。
目次
勉強してするべきこと7選
組み込みエンジニアになる前の人、
新人組み込みエンジニアが
先に勉強するべきことは以下の7つです。
- 組み込み系で使うプログラミング言語
- 関連ソフトウェア
- ハードウェア
- メカニズム・機構
- 学校の授業
- 関連ツール
- 今後の技術
順番に説明していきます。
組み込み系で使うプログラミング言語
組み込み系ソフトウェアエンジニアとして
専門で行うことはプログラミングです。
よく使われるプログラミング言語を優先的に勉強して習得しましょう。
組み込み系で使われる言語は以下の4つです。
C、C++、アセンブリ、JAVA
特にCは必ず習得しておきましょう。
プログラミング学習の順序は以下です。
- 書籍を読んだり、動画やサイトを見て基本的な文法を覚える
- サンプルプログラムなどを見ながら、自分の手で同じ内容を書く
- 自分で考えたプログラムを書く
特に3の自分で書くというのが習得するうえで必須です。
本や動画を見たあとは理解したつもりになりますが、
実際に一からやろうとしたら全然分かっていないことに気づけますし、
なにより自分で考えて書くことで自分の理解が深まります。
なりたい職業で使わない言語を勉強するのは時間の無駄であり遠回り
になるので注意しましょう。
例えば、組み込みエンジニアになりたいのに、
流行っていて人気だからといってPythonをやっても
組み込み現場の実践ではあまり役に立ちません。
tomozo
それと一緒で、
- 文法や単語を覚える
- 読んで書く
- 話す
のうち学校では1、2を徹底的にやり、実際に必要な3がないですよね。
また違うプログラミング言語を勉強するのは英語の通訳者になりたいのに、
英語を勉強せずに中国語が流行だからと
中国語を勉強するようなものです。
この位の違いがあります。
プログラミング習得にはある程度時間がかかるので、適切な学習を効率よくしましょう。
![](https://tomozo-blog.com/wp-content/uploads/2021/03/22413d89b45510c47846440ea289976f-520x300.jpg)
関連ソフトウェア
プログラミング学習と併せて組み込みで使用する
周辺ソフトウェアも勉強しましょう。
組み込み開発では以下のような周辺ソフトを利用します。
- バージョン管理ツール
- 文書作成ルール
- 評価・デバッグ用ツール
何か自分でソフトウェアを作るときに、
いきなりプログラミングをするのではなく簡単なモノからでいいので
設計書を書いてみることからやってみましょう。
ワードやエクセルでもいいですし、
エディタを使って、マークダウンやUMLで書いてみてもいいです。
そして作ったソフトウェアは、「git」という
バージョン管理ツールで管理する方法を理解しましょう。
これらはプログラミングと並行して作成・利用していく中で
勉強していけば理解を深めることができます。
![](https://tomozo-blog.com/wp-content/uploads/2021/03/d7741a60cc498180a3e5f9dec5bf4783-520x300.jpg)
ハードウェア
組み込み系がWEB系やアプリ系と大きく違うところは
モーターを使って動かしたり、センサーの状態を見たりと
ハードウェアが存在することです。
組み込みの経験とともにハードウェアの知識は増えていきますが、
経験がないことも意識して勉強しておけば、
開発設計する時に色々な提案ができるようになります。
モーターやセンサーの種類も色々あるので
どんな種類のものがあるか知っておくだけでも
全然違います。
またハードウェアの回路図も見れるようになっておきたいです。
いきなり経験の浅い人が、複雑な組み込み機器の回路図を見てもわからないので
簡単な回路図や構成図をみることからで問題ありません。
例えばラズベリーパイという電子工作キットなどがおすすめです。
ぜひソフトウェア、プログラミングだけでなく
積極的にハードウェアの知識・理解も深めていきましょう。
![](https://tomozo-blog.com/wp-content/uploads/2021/03/8aaf2731c5bbe3b0f4442d42baa7594c-520x300.jpg)
メカニズム・機構
メカ的な知識・理解を併せ持った
組み込みエンジニアは貴重な存在です。
組み込みエンジニアになるとソフトはもちろんのこと、
ハードウェアも必要に迫られるので
勉強していきますが、メカ機構はなかなか理解を深められません。
例えば、モーター1つで4つのタイヤはどう回すとか
クランク運動などなんとなくイメージできそうだけど
いざ設計するとなると難しいです。
tomozo
メカはソフトウェアとは違い目に見える実際のモノ・形があるので、
分解したりしてみれば答えはあります。
日ごろから日常生活の中で身の回りのモノ、
自動ドアってどう動いているんだろうとか
折り畳み傘の仕組みなど考えてみましょう。
実際、仕事を始めてからでも遅くないですが、
常に理解する意識は持っておきましょう。
![](https://tomozo-blog.com/wp-content/uploads/2021/03/19ca6938129af6a27fd0055decf9233b-520x300.jpg)
学校の授業
高校の授業や大学の講義で習う内容も組み込み系で使うことがあります。
日本の教育システム上、テスト前などに暗記する学習が中心になりがちですが、
暗記ではなく解き方や考え方を理解するようにしましょう。
そういった勉強方法を意識付けておけば、忘れてもしまっても
調べたら思い出せる可能性が高くなります。
組み込みエンジニアは、プログラミングや関連技術など
調べるのも仕事の一つなので「調べる」という習慣を持っておくことは
大事です。
しっかりと以下の科目は押さえておきたいです。
高校生:数学、英語、物理
大学生:プログラミング、電子回路
特に大学生は時間があるので、
プログラミングは授業のほかに自己学習を積極的に行いましょう。
学校で習うことなんて仕事で役に立たないと言われますが、
上で挙げた内容は組み込み現場では使われます。
![](https://tomozo-blog.com/wp-content/uploads/2021/03/63ae09282c9e7cb31d72fef96810ff72-520x300.jpg)
関連ツール
組み込み系エンジニアの関連ツールとして学習しておきたいことは以下の2つです。
- パソコン
- オシロスコープなどの計測機器
組み込みエンジニアの商売道具は何といってもパソコンで、
これがなければ仕事になりません。
周りの友人からパソコンで分からないことがあったら
あなたに聞いたら分かるって言われるようになるくらいが理想です。
また、学校の授業や研究でオシロスコープなど
測定ツールを使える機会があれば積極的に使って覚えるようにしましょう。
新人組み込みエンジニアとして基礎能力が高い人ほど、
パソコン周辺の理解度が深かったり、測定ツールの使用経験が多いです。
組み込みの開発環境は基本Windowsです。
macはほとんど使いません。
最近は組み込みでlinuxを使うことも増えてきているので
Windowsだけでなくlinux OSも使って見てコマンド操作など色々覚えましょう。
tomozo
プログラミング学習しながら、パソコンの知識も深めていくのが理想的です。
![](https://tomozo-blog.com/wp-content/uploads/2021/03/b8177e74ab922bafab82d99912f3438c-520x300.jpg)
今後の技術
組み込みの今後の技術であるAIやIoTなども
勉強しておけると理想的です。
なかなか独学では何をやったらいいか分からない分野ですが、
関連書籍や技術系の本に出てくる内容を眺めたり
ネットで調べてみるなど簡単なことからでいいので
何となくでも頭の片隅に入れておくと
将来何かの役に立つ時が来るかもしれません。
そうやって本を読んでいる中で、
自分で動かしてみたいと思うことが出てきたら
見よう見まねで同じことをやってみるだけでも
読むだけの何倍も理解度が深まります。
今後の将来を担うエンジニアのあなたは
最先端の技術動向にはアンテナを張り
情報収集するようにしましょう。
![](https://tomozo-blog.com/wp-content/uploads/2021/03/ceff7cb157ad22d341fd29ae19355b4a-520x300.jpg)
参考書・書籍
ここでは具体的な組み込みエンジニアに必要な勉強内容ではなく、
読書の習慣を推薦します。
最近はネットの教育コンテンツが充実していて
プログラミングなどは個人で発信されている方のサイトでも
満足できるものもあります。
このようにインターネットでも勉強できますが、
初学者の方は専門書で学習したほうが分かりやすいのでお勧めです。
tomozo
本の場合、専門家がまとめているので、
誤りが少なくその技術が順番に学べます。
また購入費用をかけたので勉強しようという動機にもなります。
無料のネット学習だと時間が空いたらやろう、
間違った情報をインプットしてしまう、
ついつい関係ないサイト見てしまい集中できないといったことも起こります。
まずは、C言語のプログラミングの本と
マイコンに関する本がおすすめです。
プログラミング学習に限らず、
色々な分野の本を読んで知識を身に付ける意識を持ちましょう。
![](https://tomozo-blog.com/wp-content/uploads/2021/03/7a01b6e0936e46191654febebbe1eb07-520x300.jpg)
組み込み系の資格
組み込みエンジニアになるのに資格は必要ありませんが、
関連する資格を持っていると知識の証明になり
就職時少し有利になります。
少しと書いたのは組み込みエンジニアで組み込み系の資格を
持っている人は少ないからです。
しかし、自分で勉強するのが苦手という人は資格を取るのも一つの手段です。
- 勉強のモチベーション維持
- 試験日があるのでいつまでと自分を追い込める
- やることがきまっているので迷わずに学習できる
といったメリットがあります。
組み込みエンジニアに関する資格は以下のようなものがあります。
- 基本情報技術者試験、応用情報技術者試験
- エンベデッドシステムスペシャリスト試験
- ETEC(組み込み技術者試験制度)
- OCRES(OMG認定組み込み技術者資格試験プログラム)
- JSTQB認定テスト技術者資格
もし何を勉強したらいいのか分からない、
自分の技術レベルを客観的に測ってみたい
と思ったら資格試験を受けてみましょう。
![](https://tomozo-blog.com/wp-content/uploads/2021/04/73f46dfa2b4fff87e7c05d991e4bb650-520x300.jpg)
まとめ
勉強してするべきこと7選
- 組み込み系で使うプログラミング言語
特にCは必ず習得
使わない言語は後回し
- 関連ソフトウェア
バージョン管理ツール
文書作成
評価・デバッグ用ツール
- ハードウェア
デバイスの知識や回路図を見れるようになろう
- メカニズム・機構
身の回りのモノがどう動いているか考える意識
- 学校の授業
暗記ではなく理解する
プログラミングは必須
- 関連ツール
パソコンや計測機器を使いこなそう
- 今後の技術
AIやIoTなどに興味を持って最新テクノロジー情報収集
組み込みエンジニアとして一線で活躍するなら
就職してからもずっと学習が続きます。
今回は目指している若手の方向けの学習を紹介しました。
何かのきっかけにしてもらえたら嬉しいです。
こちらの記事で組み込みエンジニアの仕事について解説しています。
![](https://tomozo-blog.com/wp-content/uploads/2021/02/2f495da9d206ad67a1e84d821d63514e-520x300.jpg)
また、学校や他の人があまり教えてくれない
人生において重要な資産運用についても紹介しています。
![](https://tomozo-blog.com/wp-content/uploads/2020/10/52520222fd507c8ca352a9b17b9bb6d3-520x300.jpg)