本記事では、現役組み込みエンジニアの私がオススメしたい
プログラミングの考え方で参考になる本
を紹介します。
本当はもっと紹介したいのですが、巷に溢れている20選とかになってしまうと厳選してないように思えるのでやめました。
これらの本では、プログラミング言語によらず、プログラミングの考え方について述べられています。「プログラムが動く仕組み」から「どういったプログラミングが良いのか」まで、独学でコーディングしているだけでは身につかないであろう知識が書かれています。
これらの本の内容は初心者が読んでも理解できないかもしれませんが、いつかスキルが身についてくると「このことだったのか」と後から自分が追い付く内容ばかりです。
個人的には、独学でプログラミングは学べるが実用的なプログラミングは学べないと考えています。実用的なプログラミングは仕事や実践でこそ身につくと考えています。
ここで紹介する本の内容に頷ける人はきっと実用的なプログラミングをしている人です。
プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識
これは基礎的な知識として知っておきたい内容です。特に組み込みエンジニアであれば、なぜプログラムが動くのかは知っておくべきです。たまにC言語を書けるだけの人がいますが、やはり仕事としては不十分です。組み込み開発ではC言語を書けるのは当然であって、プログラムがどのようにハードウェア制御しているかまで理解しておく必要があります。
珠玉のプログラミング 本質を見抜いたアルゴリズムとデータ構造
この本は論理的思考を鍛えるのに最適です。プログラミングは論理的思考で構築する必要があります。プログラムは感情では動きません。
また、仕様検討・設計・プログラミングという行為は、アルゴリズムを設計することにもなります。本書では、アルゴリズムの考え方も詳細に説明されており非常に参考になります。ぜひ著者の思考をトレースしてみて欲しいですね。
プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則
本書は定期的に読み返したいですね。プログラミングに精通した人なら基礎的に思える原理原則ですが、改めて「疎かになっていたかもしれない」と気付かせてくれます。
逆に知識としては知っているが「どこで使うの?」、「ありがたみが分からない」という方は、おそらく初心者か、まだ出会っていないのでしょうね(出会わずに済むならそれが一番良いのかもしれません)。
新装版 達人プログラマー 職人から名匠への道
本書も先述の「プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則」と似たような内容が書かれています。ただし、項目数が絞り込まれて深堀りされています。
新装版になる前の版は「プリンシプル オブ プログラミング」より以前に出版されており、私はそちらを購入しています。今でも非常に示唆に富みますので、エンジニアとしてのスキルを磨きたいなら一読することをオススメします。
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック
コードを書く上で非常に重要なことが書かれています。本書は何度でも読み返しても良いですし、早めにコーディングルールとして取り入れるのも有効です。
チームで開発している場合はコーディングルールに取り入れることをオススメします。
コードの書き方ひとつで生産性は大きく変わります。本書のありがたみはコードを書いた後に分かります。
あとがき:本当はもっと紹介したい
本当はもっと紹介したいのですが、多すぎてもありがたみが薄れるので厳選してみました。
プログラミング言語のお作法的なスキルアップは独学でどうにでもなりますが、実用的なスキルアップは独学では限界があります(知識はついても活用は難しいでしょう)。
実用的なソフトウェア開発者としてステップアップを図りたいのであれば、これらのような先人の知識を参考にしながら実開発を行うことが効率的です。
プログラミングではなく、人生の指針となりそうなオススメしたい本をまとめた記事もあります。
実践スキルを効率的に学ぶならオンラインスクールがオススメ
プログラミング言語の知識だけならインターネットを活用すれば無料で身に付きます。
しかし、実践的な能力は身に付きません(独りよがりなコードになる)。
もし、今は素人だけどプログラミングスキルを磨いて仕事にしたいのであれば、オンラインスクールを活用されることをオススメします。
オンラインスクールには以下のようなメリットがあります。
- 今の仕事を続けながら空き時間に学べる
- 実際のソフトウェア開発者に教えてもらえるので実践的なノウハウが身につく
- 独学でイチから調べなくても体系的に学ぶ環境がある
デメリットは「本よりお金がかかる」ことでしょうか。しかし、本気度合いによっては時間をお金で買うと考えればコスパが良い可能性もあります。自分と相談して判断しましょう。
ソフトウェア業界への転職を本気で考えているのであれば、オンラインスクールも検討してみてください。
コメント