珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造

  • [著]ジョン ベントリー
  • [原著]Jon Bentley
  • [翻訳]小林 健一郎

カテゴリ:
単行本 (305頁)
ISBN:
4894712369
発売元:
ピアソンエデュケーション (2000/10)
価格:
¥ 3,570 (税込)
Amazonポイント:
35 pt
在庫状況:
通常24時間以内に発送
Amazon.co.jp で商品情報を見る

ユーズド商品:¥ 2,579 より

この商品をブログに貼り付ける

28,808 位
評価: 4.5

Amazon.co.jp

情報系の勉強をしたことのある人ならば、誰しもプログラムにおけるアルゴリズムの概念に触れたことがあるだろう。同じ動作をするプログラムでもエレガントなアルゴリズムを持つものとそうでないものの間には実行時間や堅牢性、リソースの利用量などにおいて大きな隔たりがあり、時には劇的なほどパフォーマンスの差があることも珍しくはない。一方でそのようなアルゴリズムを創出することがいかに難しいかも周知のことである。そのため現在では納期や効率に重点をおいたプログラミングが優先されることが多いが、単純で美しいプログラムを書くことは何より重要なことである。

本書は著者を含めたプログラマーたちが扱った問題をベースに、エレガントなプログラムを書く際のさまざまなアドバイスや手法について解説したものである。大学でのアルゴリズム講義に登場してくる探索やソート、データ構造といった内容に触れており、現実的な題材の下に要求の定義、リソースの活用の仕方、動作する環境などのさまざまな側面からどのようにアルゴリズムを組むべきかといった、プログラムを組む上での原理原則を学べるように構成されている。

このように題材となっている内容は決して特殊ではなく、プログラムを組んだ経験のある人ならば必ず触れたことのあるレベルなので、高級言語でのプログラムが書ける人ならば誰でも理解できる内容になっている。随所に登場する設問や読書案内も読者が学習する上で役に立つだろう。

数理的な解析に重点を置く大学でのアルゴリズム講義の内容は実際のプログラミングに生かしにくいが、本書では応用や実際のコード化といった面に重点が置かれて説明がされているので実務上も大いに役立つ。自分のプログラミングを原則的、一般的な見地からよりよいものにしていくために必ず役立つ本だ。(斎藤牧人)

2007
04/02
Mon

「プログラミング」と言う作業を見つめなおすのに最適。「設計する」と言う概念がよく分からない初級プログラマにも

100.0% (10 / 10)
[No.10] posted by コモヒコ

昨今のソフトウェア開発においては大抵がRDBMSベースのもので開発ツールも整っており、
アルゴリズムや計算量、メモリ使用量およびそれらの結果としてのパフォーマンスなどを
真剣に考えないと全く仕事にならないケースと言うのはあまり無いと思われ、それはそれで
幸せな時代とも言える。

本書はそんな「幸せな時代」に逆行する形となるが、上記で述べた内容(アルゴリズム、
計算量、メモリ使用量、パフォーマンス)をメインテーマとしており、それぞれ

1)提示された問題の解法を著者の視点で説明
2)ソースコードとして具現化
3)ソースコードについて更なる考察
4)同じテーマでの練習問題の提示

と言うスタイルで記されている。
特筆すべきなのは問題を解くにあたって筆者が最終的なソースコードにたどり着くまでの
「思考」(いわゆる設計作業)が文章や擬似コードや図表で表現されている事である。
他のアルゴリズム関連の書籍では大抵いきなり完成形のコードが出てきてそれらを説明して
終わりと言うパターンが多く、それではただの丸暗記であり、初級プログラマにとって
本当の意味でのトレーニングにはならないと思う。

個人的な見解だが特に初級プログラマのステップアップの壁に一つには「設計と言う概念の
理解」が挙げられると思っており、本書はそんな概念を掴みきれていない初級プログラマにとって

あぁ、プログラマの頭の中ってこんな風に試行錯誤しながらコードを紡ぎだすんだ!

と言う感覚が味わってもらえるような造りとなっており、非常に好感が持てる。
練習問題が結構多いので勉強会のネタにも使えそうである。
理解しながら読み進めるのは意外と大変かもしれないが読み終えた時にあなたは
一皮むけたプログラマになっているはずである。

2005
06/19
Sun

納得!アルゴリズムは重要

73.3% (11 / 15)
[No.9] posted by 春峰

「珠玉」ってなんて読むんだろう?興味を持ち、「本質を見抜く」というサブタイトルに惹かれました。プログラマーならば、アルゴリズムが重要であることは誰もが知っている、そしていくつかのアルゴリズムを知っていることだと思います。しかし本書を読むと、なぜアルゴリズムが重要なのか?どうすれば高速化できるのか?わかりやすくなるのか?メモリを減らせるのか?といった疑問が解き明かされていくのです。ページをめくる毎に”納得!”させられます。今までの漠然とした理解ではなく、本質を見抜いた理解に達すると、視界が開け非常に気持ちがいいものです。
だまされたと思って、一読ください。決して損はしません!!

2004
05/02
Sun

プログラマなら読むべき本

76.5% (13 / 17)
[No.8] posted by 李牧

今までいろいろなアルゴリズムの本を見てきましたが、
ほとんどが理論的であり、眠気を誘うものばかりでした。

この本は、アルゴリズムが何であるか?データ構造とは?を
根本から解説しているのですが、プログラマであれば、
非常に興味をそそられる内容になっています。
サンプルプログラム等は、CやC++で書かれていますが、

他の言語しか知らなくても十分理解できるレベルです。

参考本情報が豊富にありますし、少しずつ読んで見ようと思います。

2004
04/27
Tue

アルゴリズムって何?

93.1% (27 / 29)
[No.7]

 今まで、アルゴリズム関係の本をいろいろと読んできた。しかし、この本は何なんだろう。自分ではベストだと思っていたアルゴリズムが、かなりの確率で否定される。

 「これ以上は無理かな?」と思っていた巨匠アルゴリズム+自己流アルゴリズムが、それ以上の高効率で処理されている。あるいは、「出来ないよ、そんなこと!」を「可能」にしている。まさに、「思い込み」は禁物だということを改めて感じさせてくれる、アルゴリズムにこだわる人には、まさに「目のウロコが落ちる」一冊。「速い」と「メモリを食う」は相反しないことに気づかされる。
 近年のコンピュータの高速化により、アルゴリズムの効率が無視されがちな企業プログラマには是非とも読んでいただきたい一冊。
 パズル的な面もあるので、アルゴリズムとパズルが好きな方は是非とも手に入れるべし!

2003
04/17
Thu

視点が変わる本です

83.9% (26 / 31)
[No.6] posted by takamasasuzuki

この本は、プログラミング言語を学ぶという本ではなく、どのようにしてアプローチをしていくかという本です。たとえば、ある著名人は、よいプログラマーとは、机上でまず詳細設計を完璧にするものだといっていましたが、まさにその通りのことが書いてあります。

いきなりプログラムを書くのではなく、色々なアプローチからプログラムの骨格を作り上げていくことが出来る一冊です。
中堅プログラマーの方が、上級プログラマーになるためには必須の本だと思います。私のバイブルでもあります。

2003
03/24
Mon

自信をなくしそう…

53.3% (16 / 30)
[No.5] posted by t-doi

内容は、古典的なプログラムの香りがしますが、この本が伝えようとしていることは、いつの時代のプログラマにも必要な感覚?(意識)だと思います。

しかし、そろそろプログラマとしても一人前になったかな?と思っている人が読むと、自信喪失するおそれがあるので注意が必要です。:-P

2001
10/30
Tue

"知的Programing"入門に最適です

71.4% (20 / 28)
[No.4] posted by dynamis

最高です。濃密です。凄く面白いです。笑ったり驚いたり唸ったり…(^^;
Programmerに必要とされる基本姿勢・基礎教養を学ばされます。小手先の対処法や、用意されたものを使ってなんとなく…ではなく、本当に美しいProgramingがどういうものであるかを教えてくれます。
私自身は初心者で、正直"敷居が高かったか(T T)"と思いもしましたが、あまりの面白さに、普段使わない言語についてもいろいろ調べながら読んだくらいです。
もう少しレベルが上がった時にまた読んで、また興奮するつもりです。(^^;

2001
06/14
Thu

いつでも師匠は必要だ!

82.5% (33 / 40)
[No.3]

コンピュータ・プログラムに手を初めて20年近くなる。最初の2,3年は先輩が色々手解きをしてくれたのだが、答えられない内容にまで掘り下げて質問すると別の仕事を与えられたものだった。4,5年で自立すると立場が逆転した。過去に苦い経験をもつ私としては、常に最新の情報や考え方、パラダイムの転換といった、この職に不可欠な知識(知恵)を探求し後輩達に伝授していったつもりである。10年も過ぎるとリッパなシニア・プログラマ(エンジニア)となる。それまでに獲得した知識を最大限に活用して仕事をこなしていく。が、ここ数年マンネリした技術に嫌気がさしていた時に、この1冊に巡り合った。プログラミングに携わる人には座右の書となるであろう。久しぶりに良い師匠に出会えた。わかる人にはわかる本である。初心者には敷居が高いかもしれないが丁寧に解説されているのできっと(数年後でも)役にたつはずである。技術的なことだけでなく、日々精進の仕方まで何気なく書かれている。著者にあってみたくなること請け合いだ。

2001
05/04
Fri

携帯電話むけプログラマにはお勧め

61.7% (37 / 60)
[No.2] posted by 国語辞典

本書は、「小さいメモリの中でいかにソートを行うか」や「いかに速い検索を行うか」というテクニックがぎっしり詰まっている。残念なのは、著者がアルゴリズム至上主義になってしまっておりコンピュータの内部生産性が低いコードを徹底的にけなしている。「いかにして小さく速いコードを書くか」がテーマになっている。そのためチームで開発する際に重要な「コードの把握性」などを犠牲にしているコードを推奨していたりする。しかし、現代においてはコンピュータのリソースなどよりもプログラマなどの技術者リソースの方が希薄になっている。たとえば、5万円余計にだしたり1年待ったりすれば倍速いコンピュータが手に入れられる可能性はかなり高いが5万円よけいに払ったり1年待っても倍速いコードを書いてくれる技術者が登場する保証は無い。しかし先人の苦労を伝えるという意味では非常に重要な書籍だと思う。ところで、携帯電話向けプログラマなどにはおすすめできる。

2000
11/17
Fri

全プログラマ必携

75.0% (9 / 12)
[No.1]

古典ともいえる本だが、内容は現在でもそのまま 通じることが書いてある。 すべてのプログラマーに読んでもらいたい本だと思う


CD・DVD・楽器 | インテリア・寝具・収納 | おもちゃ・ホビー・ゲーム | キッズ・ベビー・マタニティ | キッチン・日用品雑貨・文具 | ジュエリー・腕時計 | スポーツ・アウトドア | ダイエット・健康 | 水・ソフトドリンク | パソコン・周辺機器 | バッグ・小物・ブランド雑貨 | レディースファッション・靴 | 花・ガーデン・DIY | ペット・ペットグッズ | 家電・AV・カメラ | 車・バイク | 食品 | 美容・コスメ・香水 | 本・雑誌・コミック | 旅行・出張・チケット | 不動産・住まい | 学び・サービス・保険 | 百貨店・総合通販・ギフト | デジタルコンテンツ | 車用品・バイク用品 | インナー・下着・ナイトウエア | 日本酒・焼酎 | ビール・洋酒 | スイーツ | 医薬品・コンタクト・介護 | メンズファッション・靴