書籍レビュー

 

このページは

プログラミングに関する本についてのレビューです。 言語別に分けてくださいな。

すべてのプログラムで役に立つ

オライリーの本 分厚い。高い。翻訳が上手。でも削られてる部分多いので原著が良い。 ~~の絵本 薄い。安い。浅く広く学びたい人向け

ActionScript

Adobe Flash CS3 詳細! ActionScript 3.0 入門ノート

立ち読みでしか読んだことがないが、
公式ドキュメントである「ActionScript3.0のプログラミング」を、
初心者向けにより細かく解説しているといった印象を持った。

AS3.0を勉強するなら、今のところこの本を薦める。

ActionScript 3.0 ゲームプログラミングブック

ActionScript 3.0でゲームを開発したい人向けの本。
基本的な文法の解説からサンプルゲームの解説までを行っている。
作者が携帯向けアプリの開発者であるためか、
サンプルソースがオブジェクト指向に沿っていないのが残念。

他言語に触れたことのある人、または2.0に触れたことのある人向けの本かな。
何も知らない人がいきなりこの本を読んでもチンプンカンプンかも。

C言語

独習C

まあ何というか並の本。
説明すべき所は余すところなくちゃんと説明してあるし、間違っているわけでもないのだが、如何せん読みにくい。
独習シリーズ全般に言えることだが、抑揚がなく、はっきり言ってつまらない。
それさえ我慢できればまあ普通の入門書です。

猫でもわかるC言語プログラミング

超初心者向け入門書。
基本文法は一通り学べます。
ただ問題点として、
・Cの肝でありアイデンティティーとも言えるポインタの説明が甘すぎる。
・練習量が少なすぎる。
分厚い入門書は読むのこそ大変ですが、練習課題を含めて全て読み終えた後に自信が付きます。~説明がくどい。良い点でもあり悪い点でもある。
他の入門書で挫折した人、本格的なC入門書への足がかりにはいいかも知れません。

C言語プログラミング

ダイテル親子によって書かれた本。アメリカでは教科書として使われてるだけあって、説明がくどい方です。

よいプログラミング作法、よくあるプログラミングエラー、性能をよくするための秘訣、移植性をよくするための秘訣、ソフトウェア工学の観点から、といった項目もあり、初学者がCを、またプログラミングを学ぶ上で非常に勉強になると思います。

また、練習問題も非常に豊富です。(答はありませんが^^; ただし、復習問題の方には答があります。)全てやりきることができれば、相当な力がついているでしょう。 (蛇足ですが、私は全てはできませんでした。。)

プログラミング言語C

K&Rと呼ばれているCのバイブルみたいな本です。Cをやるなら一度は読んどけというものです。他のプログラミング言語の経験者がCを学ぶ場合には、この本から入って良いと思います。ただ、プログラミング経験0の方にはおすすめできません。

それと、たしかに良い本なんですが訳がとても堅いです。

(追記)硬いというよりも完全に間違っている部分もあるので注意。個人的には正直翻訳版はお奨め出来ない。

エキスパートCプログラミング

ちょっと古めの本なので、理解し難いところもあるでしょう。それとUNIXかLinuxの知識がないと読み進めるのはきついかもしれません。

しかし、配列やポインタから始まり、リンクやロード、メモリ周りのお話しや実行時のスタックがどうのセグメントがどうのといった話も書いてあり、非常にためになります。

2, 3冊目にお勧めの本といったところでしょうか。 最後に、ユーモアを理解できない人には読むのがきついかもしれません。

C言語ポインタ完全制覇

ポインタ本。入門書を1冊やってポインタが理解できんという方はどうぞ。

新・C言語入門 ビギナー編

C言語の入門書。情報量はやさしいシリーズと同等程度かほんのちょっと多いくらい。しかし基本的なところに絞って丁寧に説明してくれるので初心者でも挫折することはおそらくない。細かいところは説明が省かれているので、知識を補うならシニア編をみるなりしたほうがよい。

新・C言語入門 シニア編

解説書というより、辞書的に説明が書かれていて、情報量は非常に多い。 他のプログラミング言語をほんの少しでもかじったことのある人には向いているかもしれない。

他にスーパービギナー編、ビギナー編、応用編があるが、読んだことが無いので分からない。応用編はC言語の説明ではなくC言語を使ってどのようなことができるかの例が書かれていて知識として興味深いが、直実用可能なものではないと思われる。

やる気のある人間であれば、読むことで中々の知識を得ることが出来ると思うが、実践的な課題に乏しいのでプログラミング問題集でも解きながら読むと吉。

持っていて損はない。

入門ANSI‐C

教科書的な本。基本はきっちり網羅している。とても読みやすいが、まじめすぎて面白みに欠ける。応用の部分が足りない感じなので本当に入門用。 大学や専門の教科書としてオススメ

ビジュアルコンピューティング・ここからはじめるC言語

名前にだまされてよい入門書。プログラミングのプの字も知らない人にも 優しく教えてくれる良著。絵が大量にあるけど内容は失っていない。 これの姉妹版「ここからはじめるJava」は、あまりお勧めでない。

Cの絵本

その名の通りイラスト満載、字が大きい、薄いと三拍子そろった1冊(注:誉めてます)
何より「わかりやすさ」に重点を置いた本かと
ただ、これ1冊では当然役者不足なので、他の入門書を読んでもわからなかった時に読むといいと思われます

ポインタの絵本

上の兄弟本
当然ポインタの話

C++

やさしいC++

レビュー

C++の入門書。柔らかい文体と丁寧な説明が特徴で、プログラミング未経験者でも充分ついていけるでしょう。 ただし、文法の解説に終始しているため、これを読んだだけでは実用的なプログラムを書くのは難しいかもしれません。 初心者の方、他の入門書で挫折した方におススメ。

簡易評価

  • 良い点
    • とにかく簡単
    • やさしい語り口
    • プログラミング経験が問われない
  • 悪い点
    • 当然ながら、深いところまでは書かれていない
    • 多言語経験者だと、ゆっくりしたテンポにいらいらするかも

独習C++

レビュー

厚さ34mm、幅230mm。 幅は標準的だが、寝返りを打つには少々心許ない。 厚さはこれ1冊では足りないため、組み合わせて使用することをおすすめする。 同シリーズの独習Cがよいだろう。 紙質は良好で、程よいやわらかさが快眠へと誘ってくれる。

Accelerated C++

レビュー

C++の入門書。C経験者向けに書かれています。 他のC++言語の入門書に比べて

  • まず問題(学生の成績管理システムなど)があり、それを作る過程で必要になった機能をそのつど説明していく
  • 配列やポインタより先にSTLのvectorやstringを利用してとにかく動くプログラムを作成する といった非常に珍しい構成をしています。 さらに、ポインタを学んだあとはvectorやスマートポインタなどを実際に作成してみるなど、実践的な内容となっています。 C言語(または多言語)経験者がざっとC++の機能を体感しながら学ぶのに良いでしょう。 また、C++の文法はわかるがC++っぽいプログラムが書けないという人、C++をbetter Cとして使っている人にもおススメ。 ただし、上述のように必要になった段階で機能を説明するので、リファレンスとしては使いにくいです。

簡易評価

  • 良い点
    • better Cでない、C++らしいプログラムが書けるようになるかも
    • STLの入門書としても使える
    • 実践的。入門書でvectorを実装する本は他にないかも
    • 内容のわりには薄い
  • 悪い点
    • 翻訳特有の読みにくさがある
    • 構成上、リファレンスとしては使いにくい
    • 普通の本屋ではまず売っていない。通販または大型書店で

プログラミング言語C++(第3版)

  • C言語におけるK&Rのようなもの。名前も似てるし。1000ページのボリュームと7000円という価格に慄くがいい。一度基本を見つめなおす為に通読する分にはいいかもしれないが、1000以上と言われる正誤表に手を焼くのは間違いない。もちろん、初心者・初級者には向かない。

Effective C++(改訂2版)

  • 言語仕様を理解し、一歩上のプログラミングを目指す貴方に捧げる。このような本では珍しく、硬くない文章でとても読みやすい、と思う。

Effective C++ 原著第3版

みんな大好き、Effective C++が新しくなって帰ってきた!
改訂2版から半分以上が新しくなり、出版社が変わって紙質もアップ、2色刷り(キーワードとかが赤い)で読みやすい! イエッフー!
C++の文法はだいたいわかってる人や、書いたプログラムが意図した動作にならないと嘆いている人など、レベルアップにぜひどうぞ。

C++ IN A NUTSHELL(洋書)

レビュー

非初心者向け。C++の文法及びライブラリについて網羅的に解説した本。全てのSTLのプロトタイプと、解説、使用例が載っている。(ライブラリリファレンスだけで400pも。)
これだけ広範囲の情報がすべて網羅された本はなかなかない。
めったにお目にかかれない allocator, traits, policy などに関する説明や、細かな文法の説明(左辺値がどうとか名前空間がどうとか)も詳しく載っている。

日本語版も存在するが、文法解説(C++ランゲージクイックリファレンス)と ライブラリ解説(C++ライブラリクイックリファレンス)が別本になっており、両方買うと英語版を買うよりもかなり高くついてしまう。

簡易評価

  • 良い点
    • 全ての文法、STLが載っている
    • allocatorなどのマニアックな部分も詳しく解説されている
  • 悪い点
    • 厚い
    • お高い

新・C++言語入門 ビギナー編

C++入門書。基本的なことに絞って丁寧に説明してくれる。内容は新・C言語入門の内容もカバーされている。C++を学びたいという人は無理に新・C言語入門を読む必要はないかもしれない。が、一応読んでおくと理解の助けになることは否めない。細かいところは説明されていないのでシニア編などで知識を補うといいかもしれない。

新・C++言語入門 シニア編上下巻

新・C言語入門 シニア編のC++版。
はっきり言って辞書。かなり詳しい本だが分厚い上に上下巻に分かれている。
上巻はC言語版と大きな違いはないが、持っていて損はない。
下巻はクラス編。C++の機能が一通り網羅されている。
どんな雰囲気の本なのかは新・C言語入門 シニア編を参照。

C#

独習C#

Objective-C

Objevtive-C 逆引きハンドブック

Cocoa + Objective-C本は、1冊で小さな1〜数アプリケーションを仕上げると言う、
チュートリアル形式本が多いのですが、この本はGUI系は基本無視で、小さなサンプルが
多数掲載されており、学習用途として読むには非常に良いかと思います。
良い点: 使い回し可能なサンプル多数
悪い点: 厚い/重い(笑

Objective-C 2.0プログラミング言語

アップル公式のObjective-C解説書。
http://developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjectiveC/ObjC.pdf
からタダでpdfが入手可能。
良い点: タダ
悪い点: 文章が平易でない/画面で読むのがツラい/印刷が面倒
Web版はこちら
http://developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjectiveC/

Xcodeプログラミング大全

Xcode+Interface Builderアプリケーション使用方法の解説本。Objective-C言語の解説などは一切なし。
良い点: Objective-C言語やCocoaの知識はある程度あるが、Xcode+Interface Builderアプリの
使い方がイマイチ分からんと言う人には○。
悪い点: 「ここをこうすればこうなる」的書き方でアプリケーションの使用方法を解説しているので、
Objective-C言語やCocoaの知識がある程度ないと×。

Java

Java言語プログラミングレッスン(下)

(上)は読んでないので、(下)だけ。。

結城さんのJava本です。結城さんの本は非常に丁寧に書かれており、とても読みやすいです。 私はこの本を読んだとき、すでにC言語を学んでいたので、下巻のみ読みました。上巻はCやC++を知っている人は読まなくてもいいと思います。

やさしいJava

書いてある内容は初心者レベル。これ一冊で実用レベルまで持っていくことは不可能だが、「プログラミングって何それ?おいしいの?」というような人には足がかりとしてちょうどいいかもしれない。が、実用レベルまで持っていくのは不可能なので読み終わったらより詳しく解説している参考書に移るのが吉。

Perl

独習Perl

演習問題が多数掲載されているので演習書としては悪くないが、解説書としては微妙。 これ一冊でPerlが網羅できるという本ではないので当然玄人には向かない。 PerlとCGIの区別が付かないようなレベルの初心者、あるいはPerlってCGI専用の言語でしょ?なんて思っている初心者は初めの数ページで確実に挫折する。

というかその認識を改めて下さい。その点が分かっている脱初心者な人向け。

Perlで作るCGI入門(基礎編)

なるべく詳しい説明を省き、初心者でもPerlで簡単なCGIが作れるように書かれた本。これを読んでもPerlの知識はあまり身に付かない。

PerlというよりむしろCGIの解説書と考えた方が良い。

Perl&CGI 言語リファレンス

よくありそうな名前なので詳しい説明を加えるとSteven Holzner著 IDEA・C訳のBlack Bookシリーズの本。

本自体の厚さは先述の2冊と同程度の厚さなのだが、1ページが薄い紙でできているので目次索引あわせて約500ページもある。(ちなみにPerlで作るCGI入門はほぼ同じ厚さで359ページ) 非常に説明が詳しく、逆参照演算子、型グロブ、無名配列など日ごろ聞きなれない言葉も説明されている。 専門用語が羅列されているだけの辞書的な本かと思いきや簡単な使用例も豊富に書かれており、後半にはチャットやカウンタの作り方も載っている。 全部読んで全部を身につけようとすると死ぬかもしれない。

Black Bookというのがどういうシリーズなのかは知らないが玄人にも素人にもお勧めの一品。これが業者の自演なのかどうかは書店で確かめてもらいたい。 と言ったそばからこんな事を言うのも難だが書店であまり見かけないので注文しないと手に入れるのは難しいかもしれない。

初めてのPerl

通称リャマ本。
Perl開発者、LarryWall氏が執筆に携わっており、Perl入門の王道本。
ただ、変数・関数の概念など基本中の基本部分について多少説明が省かれているのと、元々UNIX由縁の言語のため説明がUNIX寄りなので、プログラム自体初心者の人には敷居が高いかもしれない。
Perlについて基礎からしっかり学ぶ本なのでそれなりにボリュームがあります。お値段もそこそこ。
軽くCGI作ってみたいだけの人にはおすすめできない。
これだけでも十分だが、Perlを極めたい方は続・初めてのPerlもどうぞ。

Ruby

Rubyプログラミング入門

  • 版:オーム社
  • 著:原信一郎
  • 監:まつもとゆきひろ
  • ISBN 4-274-06385-2 古め。Rubyのバージョンは1.6系。

しかし網羅的。重箱の隅を突くというか、そんな感じ。

サンプルスクリプトのくせに、軽い正規表現エンジンまで 作っちゃったりしてわりとこってりした一冊。

Rubyist Magagine出張版 正しいRubyコードの書き方講座

  • 版:毎日コミュニケーションズ
  • 著:青木峰郎
  • ISBN 978-4-8399-2320-4 Ruby Webマガジン「Rubyist Magagine るびま」に連載した 「あなたのRubyコードを添削します」という記事のまとめ+ 書き下ろし+Rubyistのコラム。

「動けばぉk」なんて言いながら書いたコードは 後々本人すら保守できなくなるもの。本書はサンプルソースと して書き下ろされたわけでもない、実際のRubyソースコードを 公募し、添削している。

Python

エキスパートPythonプログラミング

ミドル~ハイレベルな文法上のテクニックやPythonプロジェクトの始め方、
pypiへの投稿用パッケージの作り方およびその自動化、その他諸々が1冊でわかる。
その代わりいろはレベルなことは書いていないので2冊目以降が望ましい。
本書で使用しているPythonのver.は2.6.5。

Windows API, MFC

新Visual C++ 6.0入門ビギナー編

林 晴比古の本
猫と同じくよく叩かれる
が、まぁわかりやすいんじゃないかと思う
MFC使ったアプリケーションの作り方について解説してる
情報系の研究室をのぞいたら高確率で発見できる

新Visual C++ 6.0入門シニア編

同じく林本
こっちはMFCのコントロールの解説
辞書的な使い方をする本

Visual C++逆引き大全

これも辞書的な本
Visual C++と書きながらやってることはIDEを使わない、ソースレベルでのコントロールの追加

Windows ゲームプログラミング

Windows APIの入門書
入門書なので痒い所に微妙に届かなかったりする
2版は2色刷りでみやすい・VC++EE2008対応という違いがある
ゲームプログラミングなのでダイアログ・IDEは解説していないので注意
CDが付属しており、サンプルコードが入っているが、サンプルコードにミスがある箇所がある

UNIX/Linux

ふつうのLinuxプログラミング

Cを用いてのLinuxプログラミング入門書。通称『ふつリナ』と呼ばれている。
本書では開発環境のインストールからLinuxのディレクトリ構造や、各種システムコールの使い方、
はたまたコンピュータアーキテクチャや、ネットワークプログラミングまで浅く広く扱っている。
またCの基本的な文法さえ理解していれば読み進めていけるよう工夫されている。
著者の青木峰郎さんはRubyの開発にも携わっており、それなりに信頼できる一冊である。

数学

プログラマの数学

プログラミングをする上で役立つ数学(二進法、論理演算、順列・組み合わせ、再帰など)、
または数学的な考え方を扱った本。内容は比較的簡単で、四則演算と累乗さえ分かっていれば
読み進めていける。文科系の人や数学が不得意な人でも読みこなせる内容。
本書ではテーマに沿ったクイズが多々出題されており、内容の理解を手助けしてくれる。
第8章では"プログラムできないプログラム"という興味深い話題を扱っており、
プログラミングの奥深さの一端をうかがい知ることができる。

新書

あなたはコンピュータを理解していますか?

本書では、エントロピー、チャネル、有限オートマトン、参照の局所性・メモリ階層、という概念について、
お味噌汁や自動販売機などのユニークな例を用い解説している。普段向き合っているコンピュータに対して
俯瞰的な視点を与えてくれるとともに抽象的な意味でのコンピュータについて理解できる。

Software Reverse Engineering

解析魔法少女美咲ちゃん マジカル・オープン!

お兄ちゃん(ダメ人間で負け犬でM、しかし中盤から廃スペ化)と妹の美咲ちゃんの会話形式で進んでいく。
萌え本だと思って舐めてかかるとヤケドする。不親切な点もあるがこの手の本では一番初心者向け。
C言語の入門書を終えてから読もう。デバッガによるx86プログラム解析入門も併せて読むといい。

デバッガによるx86プログラム解析入門—コンピュータとプログラムの仕組みを覗 く

ツールの使い方や解析だけではなくVisual C++Express Editionで簡単なデバッガを製作する。
またデバッガ対策や近年、解析をとりまく動向についても触れられている。

リバースエンジニアリング――Python によるバイナリ解析技法

俺らが愛してやまないオライリーからついに出ました解析本!
/ART/OF/REVERSINGシリーズ第一弾!イカした表紙だぜ!
PythonでC言語のライブラリを利用できるctypesなるものを使いデバッガを作っていろいろ遊ぶ本。
上記二冊よりもかなりきわどくて危ない内容である。Pythonは初心者レベルでおk。
なおWindows環境限定である。またPythonのバージョンは2.5。