こんにちは、フリーランスエンジニアのサカイです。
今回は僕がC言語、C++プログラマー時代に役に立った本をご紹介したいと思います。
C言語、C++の本は10冊以上は読んだと思いますが、
その中でも本当に役に立ったと思える本だけをご紹介したいと思います。
参考になれば嬉しいです(^^)
目次
1.C言語の本
基本的にはC言語に限らず、プログラミングを勉強する時の最初の1冊目は何でもいいと思っています。本屋さんに行って、何冊かパラパラめくって「あっ、見やすそう」という本を買えば良いです。特にプログラミング自体初めての場合は、内容の質より見やすさ、わかりやすさ重視ですね。
本物思考の人は見やすさ重視の本を否定したりしますが、挫折してしまったら意味ないですから。いきなりK&R※を読んだら挫折するでしょうね。
C言語を開発したDennis MacAlistair RitchieがBrian Wilson KernighanとC言語について書いた書籍『プログラミング言語C』のことです。KernighanとRitchieの頭文字をとってK&Rと呼ばれたりするんです。「C言語プログラマーならマストだ!」という人もいますが、それはC言語愛からくるコメントなので絶対に読まなきゃいけないという訳ではありません。
『C言語 ポインタ完全制覇』
プログラミング本の中でも名著と言えるのではないかと思います。
著者は前橋和弥さんというプログラマーの方です。
ポインタについて書かれている本はたくさんありますが、どれも分かりやすさを意識し過ぎていて、結局は実体を掴みきれないものが多いんですよね。。
この本では「そもそもなぜポインタなんてものが誕生したのか?」から始まり、
「どうやってポインタにつまづいていくのか?」を説明してくれるので、ふに落ちやすいです。そして「c言語がどのようにメモリを使っているのか?」についても解説されているので実体をつかむことにも役立ちます。
また著者の前橋さんがちょこちょこ毒を吐きながら説明している感じも、個人的には楽しめました(笑)ポインタにつまづいている方、曖昧な理解のままになっている方には是非オススメしたい一冊です!
ただプログラミング初心者の方にはオススメしません。おそらく内容がよく分からなくて挫折すると思います。C言語の文法を一通り覚えて「あとはポインタだけがよく分からない、、」というタイミングでこの本を読まれると良いかと思います。
『組込み現場の「C」プログラミング基礎からわかる徹底入門』
組み込みの業務をされている方限定でおすすめしたい本です。
組み込み系のプログラミング本って、あまり見かけないので、この本にはすごく助けられましたね。
組み込みだろうと何だろうとC言語には変わりないのですが、組み込みならではの書き方ってあるんですよね。定義の仕方とか、エラー処理の仕方とか。
あと組み込みでプログラミングをするには、ある程度ハードウェアの知識もないと、コードを見てもピンとこないので、そのあたりの前提知識も説明されているのが助かりました。
組み込み系のプロジェクトにいた時は、この本の内容がそのまま役立ちました。
お勉強の本ではなく、実践的な本です。
この本を通勤電車で読んでから現場のコードを読んだ時に、本の内容にそのまま出会ったりして面白かったです。
2.C++の本
C++の本って、自分に合った本を探すのに苦労します。
- 内容が多いので読むのが大変(本がでかい)
- 逆に薄い本はC++のほんの一部しか紹介していない
ですので、まずは入門レベルの本で一冊学習して、プラスこれからご紹介する本でも学習すると良いかなと思います。
ただ「C++を極めたい!」という場合は、やはりストラップの
『プログラミング言語C++』を読むのが良いと思います。
僕も読みましたが、分厚くて大変なので初心者の方にはおすすめしません。
気が重くなるだけだと思います、、、
どこの現場でもC++の全てのテクニックを使っている訳ではないので、
段階を経て覚えていけば良いかなと思います。
『C++ クラスと継承 完全制覇』
C++の本は5冊ぐらい読みましたが、オブジェクト指向が初めての人が最初に読む本としては、この本を一番オススメしたいです。
オブジェクト指向が身につかない理由は、巷にある本の「説明の微妙さ」にあります。
- 文法の説明だけで何に使うのかよく分からない
- わざとらしい説明だらけで理解したような気になるだけの説明
オブジェクト指向は「必要だから」作られたわけです。なので「じゃあ何で必要だったの?」を説明してもらった方が腹に落ちやすいし、業務に活かしやすくなります。オブジェクト指向はコーディングの利便性から考えた方が理解しやすいし、実践にうつしやすいです。
変な優しい例えでオブジェクト指向のイメージがつかめたつもりになったかと思いきや、
いざコードを書こうとするとまたわからなくなる、、、そんな状態であば是非オススメしたいですね。
この本は、自然と腹に落ちるような内容と説明順序になっているので、
読み終わる頃にはオブジェクト指向を感覚としてつかめるようになります。
また、C言語の構造体から話がスタートしますので、特にC言語経験者には入りやすい内容です。
3.プログラマーの本
『センス・オブ・プログラミング!』
個人的には1番「読んで良かった」と思っている本です。
著者はC言語の『ポインタ講座』と同様、プログラマーの前橋和弥さんです。
この本は現場を経験されている方だからこそ書ける本です。実践で役立つ本です。
新人プログラマーから中級に上がりたい時に読むといいのではないかと思います。
現場にいない教授が書いた本ではなく、現場を経験している方の本なので、
ちゃんと現場の苦労もふまえた上でのベストプラクティスを提示してくれています。
現場では色々とカオスなこともあるし、謎のコードにも出会うけど、
こうやって対応した方がいいよね。みたいな。理想と現実のバランスを取るヒントにもなります。
僕はこの本を読んでから自分のコードに自信が持てるようになりました。
もしあなたがある程度プログラミングを覚えて、少しレベルアップしたいなと思っていたら、一読されることをオススメします。
ちなみに、この本はC言語を使って説明がされているので、
他の言語の方は若干ピンとこないかもしれません。
「センスオブプログラミング」というタイトルからすると
プログラミング全般のセンスについて書かれているように思いますが、
内容としては、C、C++のセンスオブプログラミングかなと思います。
『達人プログラマー』
僕はこの本にプログラミングの奥義が書かれているのかと思って買ったのですが、
内容は少し違いました。
「達人プログラマーはこんな仕事をする」という仕事術的な内容が結構書かれている本です。買った当時は本のタイトルが内容と合っていない気がして、ちょっとがっかりしました。
でも、プログラマーはプログラミングだけできればいいわけではないので、
達人になるには色んな仕事の仕方を極める必要があるんですね。
「達人プログラミング」ではなく「達人プログラマー」だから
やっぱりタイトルは合っているのかな、、、
「プログラマーという仕事を極めたい!」という人には一読をオススメします。
まとめ
- 『C言語 ポインタ完全制覇』
- 『組込み現場の「C」プログラミング基礎からわかる徹底入門』
- 『プログラミング言語C++』
- 『C++ クラスと継承 完全制覇』
- 『センス・オブ・プログラミング!』
- 『達人プログラマー』
いかがでしたでしょうか?
読んだ本を全て紹介すると結構なボリュームになってしまうので、
本当にオススメのものに絞ってご紹介してみました。
興味のある本があれば、是非読んでみてくださいね!
コメントを残す