プログラミング

組み込みエンジニアになるためのおすすめ勉強法

こんにちは。以前8年ほど組み込み業界でエンジニアとして働いていたボムクンです。

今回はこれから組み込みエンジニアとして就職して働いてみたいと思っている人に向けて、私の組み込み業界で働いていた経験を元におすすめの勉強法を教えます。どのように勉強すればいいのか悩んでいるならぜひ参考にしてくださいね。

ではどうぞ!

ステップ1:組み込みシステムとは何か知る

これから組み込みエンジニアになりたいという人はまず組み込みシステムとは何か知るという所から始めましょう。

「組み込み」と言っても一度も組み込みシステムに触れたことが無い人からすると、「組み込み」が何を表しているのかあまりピンとこないものです。また、なんとなく知っている人でも想像しているのと違いがあるかもしれません。組み込みシステムをまず知ることはとても大事です。

どのように知れば良いかですが、まずは組み込みシステムについての入門書を買って読んでみるというのが良いでしょう。

こちらの記事でおすすめ書籍を紹介しているので参考にしてみてください。↓

組み込みソフト初心者におすすめの書籍10選こんにちは、ボム君です。 最近はIoT(モノのインターネット)とかいうキーワードが話題になっていて、組み込み業界もどんどんアツくな...

ざっくり組み込みシステムについて浅く広く理解したいなら特にこちらの書籍がおすすめです。↓

とりあえず1冊本を読んで以下のような点が分かれば良いです。

  • 組み込みシステムって何のことか?
  • 組み込みシステムはどのような製品で使われているのか?
  • 開発にはどんな面白さと難しさがあるのか?

これらが分かったらステップ2に行きましょう。

ステップ2:組み込みシステムの構成技術を知る

ステップ1で組み込みシステムについてのイメージが付いたと思うので、ステップ2では実際どのような構成技術で組み込みシステムが作られているかを知りましょう。

ここで組み込みシステムの構成技術を知る目的は以下です。

  • どのようなスキルを身に付ける必要があるのか理解する
  • どのようなポイントでどのスキルが必要になるのか理解する

1つ目の「どのようなスキルを身に付ける必要があるのか理解する」ことで、組み込みエンジニアになるために必要なスキルを効率的に身に付けることができます。2つ目の「どのようなポイントでどのスキルが必要になるのか理解する」ことは、組み込み製品のどの機能で何のスキルが必要になるかイメージがしやすくなります。

ではどのように組み込みシステムの構成技術を知れば良いかですが、ある程度ソフトウェアやハードウェアの基礎知識がすでにある方はこちらの書籍を読んでみるのがおすすめです。

created by Rinker
¥3,456
(2019/09/19 23:25:56時点 Amazon調べ-詳細)

書籍の中で組み込み特有の専門用語(割り込み、オペレーションシステム、デバイスドライバ)等が出てはきますが、分かりやすく解説されているので理解しやすいと思います。

もし、ソフトウェアやハードウェアのことを何も知らない超初心者ですという方は書籍を読む前に基本情報処理技術者の資格勉強等から始めてみるのが良いかと思います。

基本情報技術者試験に一発合格するためのおすすめ勉強法IT業界で働いている方なら入社~5年目位の時に、一度は基本情報処理技術者試験という言葉を聞いたことがあるでしょう。 私自身も基本情...

資格を絶対取る必要は無いですが、資格勉強の中でコンピューターやネットワーク技術、2進数等の基礎を理解できていないとこの後が少しんどいです。後々ラクをすると思ってしっかり勉強しておきましょう。

ステップ3:C言語を学ぶ

構成技術について学ぶことができたら、次はC言語を学習しましょう。C言語というのはプログラミング言語の1つで、昔から使われているメジャーなプログラミング言語です。

なぜC言語なのかというと、組み込みシステムのプログラミングは9割がC言語が使われているからです。

C言語はポインタ等とても習得が難しい内容が多い言語ではありますが、その分C言語はシステムの重要な部分に直接アクセスができたりして便利です。また、組み込み用の開発環境でもC言語のみしかサポートしていないものが多かったりします。

世の中にはJAVA、JavaScript、C#、PHP等様々なプログラミング言語がありますが、組み込みの世界に飛び込むならまずはC言語をしっかり身に付けましょう。

独学で身に付けるなら先ほどのステップ2で紹介した基本情報処理技術者試験の勉強の中でもプログラミング言語としてC言語を学ぶことができます。

また書籍を読みながら独学で学んでみるというのでも良いでしょう。

【初心者向け】独学でC言語を学びたい人へのおすすめ書籍10選こんにちは、ボムクンです。 今回はこれから独学でC言語を学んでいこうと思っているプログラミング入門者に書籍を紹介します。 C...

理解するのに時間はかかるかもしれませんが、たくさんコードを書きつつ学べば必ず理解できるはずです。

ステップ4:回路図を読めるようになる

組み込みのハードウェアエンジニアを目指すなら回路図の理解は必須です。ソフトウェアエンジニアを目指す場合でも回路図を読めるくらいにはなっておきましょう。

組み込みシステムというのはソフトウェアを作る時にハードウェアを意識しながら作らなければいけません。パソコンやスマホのアプリケーション開発のように、ハードウェアを全く意識せずとも作れるものでは無いのです。

ハードウェア性能がとても低いことが多いので、開発では以下のようなことが頻繁に問題になります。

  • メモリ量が少ないので、ソフトのメモリ使用量を減らさなければいけない
  • CPU性能が低いので、ソフトの処理速度を高速化しなければいけない
  • ポート数が少ないので、必要なデータが受け取れない・渡せない

これらについては回路図をある程度読めるようになることで事前に把握できるようになります。メモリのメガ数、CPUの種類、ポート数等が分かるようになるので開発の手戻りを減らすこともできます。

以下のサイトや書籍で学習するのがおすすめです。後は実際に様々な組み込み製品を作りつつ回路図を理解していくというのでも良いでしょう。

created by Rinker
¥2,484
(2019/09/19 23:25:57時点 Amazon調べ-詳細)

ステップ5:実際に組み込み製品を作ってみる

ステップ4までで組み込みシステムを作るうえでの基礎はみに付けれたと思うので、ステップ5では実際に組み込み製品を作ってみましょう。

どのような組み込み製品を作るかですが、私がおすすめするのはPICを使った製品です。PICというのはマイクロチップ・テクノロジー社という会社が開発している組み込み製品を作るためのチップ類が入ったコントローラのことで、組み込み入門の方には人気がある開発セットです。

こんな体験版キットもネットで売っているのでこれから試してみても良いかもしれません。

created by Rinker
マイクロテクニカ
¥6,600
(2019/09/20 02:26:44時点 Amazon調べ-詳細)

PICを使うことでLED点灯させたり、回路を組んで電気信号を流してみたりと結構遊べるので、初めて組み込み製品を作るにはちょうど良いでしょう。

組み込みシステム未経験の場合、開発環境のインストールやどのように作れば良いのか最初は分からないでしょう。いきなりキットを買って開発するとくじける可能性もあるので、まずはこちらの書籍を読みながらやってみるのもオススメです。

created by Rinker
¥3,456
(2019/09/19 23:25:57時点 Amazon調べ-詳細)

ソフトウェアやハードウェアのことを事前に学習するのも大切ですが、このように実際に作ってみることで組み込みシステムについての理解もさらに深まるでしょう。

ステップ6:組み込み製品の開発経験をアピールして働く

ステップ5でカンタン製品でも良いので、組み込みシステムで何か作ったらもう組み込みエンジニアとして働くための基礎力はあるはずです。

ですが組み込みエンジニアとして働くといっても、多くの場合(9割以上)は企業に属して働かなければいけないので企業への就職が必要になります。

新卒で就職する人はリクナビ、転職で狙っている人は転職サイト等に登録して各企業へエントリーしていきましょう。

この時大事なのが、自分で学習して実際に組み込み製品を作ったという経験です。

組み込みエンジニアは自分で調べて自分で学習するというスタンスがとても求められる職種です。多くの場合、上司や先輩はとても忙しいはずなので手取り足取り1~10まで教えてくれる職場ではありません。何でも自分でやり製品を作りあげることができる人材というのが求められているのです。

面接の際に自分がプライベートで組み込み製品を作ったことがあるという経験、作ったものの紹介をすることで積極性・自主性のアピールになるでしょう。

必ず組み込みエンジニアとして働けるはずです。

まとめ

今回は組み込みエンジニアになるためのおすすめ勉強法を紹介してきました。

世間的に今組み込みエンジニアは需要が多いのに供給が非常に少ない状態が続いています。それはスキル習得の難易度も高く、求められる技術範囲も広いからです。

ですがもし勉強して組み込みエンジニアになることができれば、引く手あまたの人材になれるでしょう。勉強は大変からもしれませんが、将来の自分のエンジニア像を思い浮かべながらがんばってみてください。