読書ツイートシェアはてブ送るPocketこの記事はこんな方にオススメ!「組込みソフトウェア開発の勉強をしたいけど、いい本ない?」という組込み初心者の方。「コンピュータの動作原理についてもっと詳しくなりたい」という方。プログラミングをしよう組込み初心者は覚えることがいっぱい今まで組込み系のソフトを作ったことがない人って、最初はかなりとっつきにくいんですよね。覚えなきゃいけないことが多いんです。挙げると以下のような知識が必要ですね。CPUってどうやって動作しているのか。CPUはメモリをどう扱っているのか。ソースコードってコンパイルすると何が起きるのか。スイッチって押したらコンピュータの入力は0になる?それとも1になる?アナログ入力ってどうやって扱うのか。モータってどうやって回せばいいのか。フィードバック制御ってなにしてるのか。オシロスコープってどうやって使うのか。今どきのソフトウェア開発って、コンピュータの動作原理をしらなくてもどうにかなっちゃうんですよね。大概は既にあるライブラリやフレームワークでなんとかなってしまうんです。組込み開発はハードウェアそのものの制御が目的ですので、ハードウェアに対する深い理解が求められます。最近だと組込みでもOSが載せられるようなリッチな環境もありますが、OSが載らないソフトを作る機会もまだまだ多いです。今でこそ組込みの制御ソフト開発がメインになっていますが、わたしの最初のプログラミング経験は医療関係のシステムで、DBとのデータのやりとりがメインのプログラムでした。以前に書いた記事でも紹介したのですが、開発中の製品を壊したりといろいろ失敗しながら覚えた感じですね。マイコンプログラミングをするときに気をつける4つの...https://jobhopperxengineer.com/2018/06/28/%e3%83%9e%e3%82%a4%e3%82%b3%e3%83%b3%e5%88%9d%e5%bf%83%e8%80%85%e5%90%91%e3%81%91%e3%80%80%e3%81%af%e3%81%98%e3%82%81%e3%81%a6%e3%83%9e%e3%82%a4%e3%82%b3%e3%83%b3%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9/Webやスマホアプリのプログラミングはやったことあるけど、マイコンは初めてというエンジニアの方。IoTとかロボットに興味があるプログラミング初心者の方。今日は、わたしのメインの仕事であるマイ...わたしが試行錯誤しながら組込み開発を覚えていく過程で、「これは買ってよかったな」と思った本を紹介します。みなさんの知識習得の助けになれば幸いです。知っておきたいプログラムの基礎知識まずはこの一冊。CPU場でプログラムが動作する原理について、とても詳しく整理されている本です。先ほど挙げた例でいうと、CPUってどうやって動作しているのか。CPUはメモリをどう扱っているのか。ソースコードってコンパイルすると何が起きるのか。いうあたりの内容がおさえられています。組込みソフトウェア開発をやっているとマイコンのマニュアルをしょっちゅう読むことになるのですが、CPUの動作原理やそれに関する専門用語は知ってて当然という体でマニュアルが書かれているんですよね。この本は非常にオススメ、というよりこの本の内容を知らないとまともに開発ができません。プロとして組込み開発をしている方は是非とも内容をおさえておいてください。ビギニング―「機械」と「電子電気」と「情報」の基礎レシピこの本は、組込み開発でよく出てくる知識や技術について、広く浅くまとめられた本です。先ほど挙げた例でいうと、ソースコードってコンパイルすると何が起きるのか。スイッチって押したらコンピュータの入力は0になる?それとも1になる?アナログ入力ってどうやって扱うのか。モータってどうやって回せばいいのか。フィードバック制御ってなにしてるのか。オシロスコープってどうやって使うのか。いうあたりの内容がおさえられています。この本のメリットはとにかく情報が幅広いことです。一つ一つの情報量は大したことないので、この本を読めば組込み開発ができるというわけではありません。初心者がわからない言葉や技術についてパッと調べるにはちょうどいい説明の粒度です。内容も平易な文章で書かれているので、疲れずにサラッと読むことができます。抽象的に考えること・データ構造を理解することこの本は組込み開発に直接関係はしていないですが、プログラミングをする上での考え方や、特定の言語に依存しない抽象的なイメージを学べる内容になっています。中身も図解が中心で、アタマの中でイメージが湧きやすいように配慮されています。一般的なプログラミングの入門書って、プログラムの文法や一般的なアルゴリズムの書き方が中心であることが多いんですよね。「なんでこの書き方がいいのか?」とか「このアルゴリズムはいつ使うのか?」というようなことに触れている本は初めてだったので、非常に参考になりました。わたしのプログラミングに対する基本的な考え方に、かなり大きな影響を与えた本ですね。アタマの中でプログラムがどう動いているかがイメージできない人は、この本でイメージを湧かせてみましょう。プログラミングをしよういかがでしたか?この3冊の本は文句なしにオススメできる本ですが、プログラミングは本を読むだけでは決して覚えられません。これは別の記事にもまとめています。返事をしておきました。分厚い入門書を買ったりする暇があるなら、まずはコードを書きましょう。プログラミ...本はあくまで知識を補助するものです。組込みソフトウェアを作れる環境を整えてプログラミングをしつつ、わからなくなったら都度本を読むことをオススメします。まんがでわかる「ウシジマくん×ホリエモン」生き...プロフィール石塚幸司(@Kumikomi83)働き方やプログラミング、エンジニアとしてのテクニックについて発信しています。リツアンSTCのエンジニアです。既婚で妻と二人暮らし。メーカー正社員とエンジニア派遣会社の両方を経験。プログラムで機械を動かすのが得意&大好き!組み込みソフトがメインですがそれ以外もいろいろやります。