- 「組込みソフトウェア開発の勉強をしたいけど、いい本ない?」という組込み初心者の方。
- 「コンピュータの動作原理についてもっと詳しくなりたい」という方。
そんな時は、本で基礎知識を学びましょう! オススメの本を紹介しますよ!
目次
組込み初心者は覚えることがいっぱい
今まで組込み系のソフトを作ったことがない人って、最初はかなりとっつきにくいんですよね。
とにかく覚えなきゃいけないことが多いんです。
ざっと挙げると以下のような知識が必要ですね。
- CPUってどうやって動作しているのか。
- CPUはメモリをどう扱っているのか。
- ソースコードってコンパイルすると何が起きるのか。
- スイッチって押したらコンピュータの入力は0になる?それとも1になる?
- アナログ入力ってどうやって扱うのか。
- モータってどうやって回せばいいのか。
- フィードバック制御ってなにしてるのか。
- オシロスコープってどうやって使うのか。
今どきのソフトウェア開発って、コンピュータの動作原理をしらなくてもどうにかなっちゃうんですよね。
大概は既にあるライブラリやフレームワークでなんとかなってしまうんです。
ですが、組込み開発はハードウェアそのものの制御が目的ですので、ハードウェアに対する深い理解が求められます。
最近だと組込みでもOSが載せられるようなリッチな環境もありますが、OSが載らないソフトを作る機会もまだまだ多いです。
今でこそ組込みの制御ソフト開発がメインになっていますが、わたしの最初のプログラミング経験は医療関係のシステムで、DBとのデータのやりとりがメインのプログラムでした。
以前に書いた記事でも紹介したのですが、開発中の製品を壊したりといろいろ失敗しながら覚えた感じですね。
わたしが試行錯誤しながら組込み開発を覚えていく過程で、「これは買ってよかったな」と思った本を紹介します。
みなさんの知識習得の助けになれば幸いです。
わたしが初心者だった時に役に立った3冊
下の3つがオススメです!
プログラムはなぜ動くのか
プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識
まずはこの一冊。
CPU場でプログラムが動作する原理について、とても詳しく整理されている本です。
先ほど挙げた例でいうと、
- CPUってどうやって動作しているのか。
- CPUはメモリをどう扱っているのか。
- ソースコードってコンパイルすると何が起きるのか。
というあたりの内容がおさえられています。
組込みソフトウェア開発をやっているとマイコンのマニュアルをしょっちゅう読むことになるのですが、CPUの動作原理やそれに関する専門用語は知ってて当然という体でマニュアルが書かれているんですよね。
なのでこの本は非常にオススメ、というよりこの本の内容を知らないとまともに開発ができません。
プロとして組込み開発をしている方は是非とも内容をおさえておいてください。
メカトロニクス The ビギニング
メカトロニクス The ビギニング―「機械」と「電子電気」と「情報」の基礎レシピ
この本は、組込み開発でよく出てくる知識や技術について、広く浅くまとめられた本です。
先ほど挙げた例でいうと、
- ソースコードってコンパイルすると何が起きるのか。
- スイッチって押したらコンピュータの入力は0になる?それとも1になる?
- アナログ入力ってどうやって扱うのか。
- モータってどうやって回せばいいのか。
- フィードバック制御ってなにしてるのか。
- オシロスコープってどうやって使うのか。
というあたりの内容がおさえられています。
この本のメリットはとにかく情報が幅広いことです。
一つ一つの情報量は大したことないので、この本を読めば組込み開発ができるというわけではありません。
ただ、初心者がわからない言葉や技術についてパッと調べるにはちょうどいい説明の粒度です。
内容も平易な文章で書かれているので、疲れずにサラッと読むことができます。
センス・オブ・プログラミング
センス・オブ・プログラミング! 抽象的に考えること・データ構造を理解すること
この本は組込み開発に直接関係はしていないですが、プログラミングをする上での考え方や、特定の言語に依存しない抽象的なイメージを学べる内容になっています。
中身も図解が中心で、アタマの中でイメージが湧きやすいように配慮されています。
一般的なプログラミングの入門書って、プログラムの文法や一般的なアルゴリズムの書き方が中心であることが多いんですよね。
「なんでこの書き方がいいのか?」とか「このアルゴリズムはいつ使うのか?」というようなことに触れている本は初めてだったので、非常に参考になりました。
わたしのプログラミングに対する基本的な考え方に、かなり大きな影響を与えた本ですね。
アタマの中でプログラムがどう動いているかがイメージできない人は、この本でイメージを湧かせてみましょう。
本を読むだけじゃダメ プログラミングをしよう
いかがでしたか?
この3冊の本は文句なしにオススメできる本ですが、プログラミングは本を読むだけでは決して覚えられません。
これは別の記事にもまとめています。
本はあくまで知識を補助するものです。
とりあえず組込みソフトウェアを作れる環境を整えてプログラミングをしつつ、わからなくなったら都度本を読むことをオススメします。
本を読んで知識がついたら、すぐにプログラムを書いて知識をアウトプットしましょう!
組込みソフトウェア開発って、覚えること多すぎてわけわからん!