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

  • 桐原書店
3.55
  • (24)
  • (36)
  • (77)
  • (2)
  • (2)
本棚登録 : 702
感想 : 24
本ページはアフィリエイトプログラムによる収益を得ています
  • Amazon.co.jp ・本 (305ページ)
  • / ISBN・EAN: 9784894712362

作品紹介・あらすじ

本書の第1部ではプログラミングの基礎である、問題定義、アルゴリズム、データ構造、プログラムの検証とテストを考えます。第2部には、効率に関するコラムをまとめました。第3部はこれらのテクニックをソート、探索、文字列などの重要な問題に応用しています。

感想・レビュー・書評

並び替え
表示形式
表示件数
絞り込み
  • この本で、プログラミングにおける問題の本質(そもそも何が問題なのか?)を考えることの重要性を学んだ。しかし、それはシンプルだが難しいことなのだけど。
    内容は少しレベルが高く、1回読んでなんとなく、5年後にもう1回読んでようやっと理解できた。けれど、とても読み応えがあって、レベルアップ!した感じ。

  • 前職の同期、アッサムの人にオススメされて読み始め。

    この本は自宅で、週末ごとにちまちまと読んでいった。考えながら読むタイプの本で、非常に時間がかかった。
    私の専門は生態学だったので、コンピュータサイエンスを専門に学んでいないせいもあるかもしれない。

    今のプロジェクトで作っているプロダクトは動作の「サクサク感」が要求されるもので、この本で重点的にかかれているパフォーマンスの話は興味深かった。と同時に耳が痛い部分もあり、アッサムの人がすすめてくれたのはありがたい。

  • 【要約】


    【ノート】
    ・はてなブックマークの「プログラミングコンテストチャレンジブック」からamazonの関連本で知った。

  • 本書は、C/C++によるアルゴリズムの解説本である。第1部では・問題定義の方法により、問題自体がどれだけ単純化できるかなど・昔から解説されているようなアルゴリズムやデータ構造・プログラムの検証とテストの解説。 第2部には、効率に関するイロイロな話題。たとえばプログラムの使用メモリサイズを小さくすることで、ページ・イン、アウトが少なくなったり、キャッシュヒット率が上がったりして、プログラムが速くなったりするようなこと。 第3部は、1,2部で紹介されたテクニックをソート、探索、文字列などの重要な問題(やり方によっても非常に時間がかかってしまう)に対して適用し、実測値などを示す。 例題に使われているソースコードはレベルが低いが、それを指導する本ではないのでしょうがない。アルゴリズムを正確に記述するための手段だと思って、このことは切り捨て批評すると、非常にレベルが高いといえる。アルゴリズムに詳しくない人にはもちろんのこと、アルゴリズムに詳しいと自認しているプログラマーも、これまでの経験の総括と言う意味で非常に有用だろう。

  • 問題を解決するために、アルゴリズムとデータ構造を活用する能力を養う本です。

    以前は別の出版社から発刊されていましたが、技術書の取り扱いを終了した後、新たな出版社に引き継がれました。 そのため、出版年は新しめに見えますが、実際には 2000年に出版された割と古い本です。

    限られたメモリで問題を解く方法や、十分な実行速度を得る方法についての話題が豊富にあります。 扱っているアルゴリズムとデータ構造は、他の入門書でも取り上げられているようなものが多いですが、 大抵のアルゴリズムとデータ構造の本とは逆で、 まず現実の問題があって、そこにどんなアルゴリズムやデータ構造を適用していくか検討するという順序になっています。 そのため、より現実に近い形で、問題解決の考え方を学ぶことができます。
    どんどん読み進めて思考の過程を楽しむのも良いですし、立ち止まって自分なりに考えを巡らしてみるのも良いでしょう。

    各章の終わりに豊富な練習問題があります。 現実の問題を解決に導く方法をあれこれと考えさせられるような良問が多いですが、 解答例があったりなかったりするのが、ちょっと残念なところです。 「考えること自体が大事」といったところでしょうか。

    最近では、メモリも速度も十分なことが多く、この手の話題を気にすること自体が少ないかも知れません。 本書の内容を実際のプログラムに無理に適応しようとするのではなく、 考え方・思考の過程を学ぶことが重要だと思います。

  • 小難しくて頭にあまり入ってこなかった。内容を把握するには、数学の知識は必要かも。なので、さらっと読む感じの本ではない。

    書いてあることは、達人プログラマー的な内容かなと思う。問題に取り組む姿勢とか、それを解決するために考慮すべきこととか、そういった普段の心構え的な話+アルゴリズムみたいな。

    興味があれば読むといいけど、特にお勧めはしない。

  • 似非プログラマーにとって、プログラミングに真剣に向き合うとはこういうことかとうならされる一冊。
    はっきり言って、ここまでシビアなプログラミングはしたことがない。

    ある問題に対して、一般的な問題解決方法は割とすぐに見つかる。でもよく問題を精査するとアルゴリズムやデータ構造、コードチューニングでもっと効率よく、もっとエレガントに解決できるということを教えてくれる。

    初学者としてはアルゴリズムとコードチューニングという別の方法が名づけられているロジック的な解決手段の線引きがよくわからなかった。
    何となく、コンピュータの挙動に依存する箇所で実行時間を短くするのがコードチューニングという印象を受けたが、それってアルゴリズムの変更ではないんですかと思う箇所もあり、まだまだ勉強不足。

    少なくとも一回では内容をとても理解できない(良い意味で)。ポイントとなる箇所を何度も読み返して吸収していくことの沢山詰まった良書である。

  • ソフトウェアをただ動くものとして書くのではなく、パフォーマンス、効率や生産性などについて一歩踏み込んだ見識を養うことができたと思う。

    各考察は実例そのままというより、取り出したエキスを解説してあることが多く、その分本の厚みの割に内容が濃い。懇切丁寧ではないので、書いてあることを自分の中でゆっくり咀嚼しながら読み進める本だと思った。

    ソフトウェアエンジニアリングで大事なステップ(問題の理解、抽象化、デザイン空間に落とし、コードにして、考え直す)のような事を改めて考えてみたりすることで、今後のエンジニアリングが少なからず洗練されたと思うし、「プログラマへの10の提案」は示唆に富み、今後原則としていきたいと思う。

    実利としてはヒープがすごく使いやすいアルゴリズムだと気づいて、すぐにコードで役立ちそう。

    スルメ本です。

  • 問題のポイントを捉え適したデータの構造化を行う事の大切さと具体例が説明されている。扱っている問題に時代を感じるものが多いが、知らないとハマる事項が多い。最後にソート、サンプリング、探索、ヒープ構造、テキスト列の扱いをみながら基礎事項を確認する。

  • 再読( ´・‿・`)数年起きに読み直すべき本( ´・‿・`)

全24件中 1 - 10件を表示

ジョン・ベントリーの作品

この本を読んでいる人は、こんな本も本棚に登録しています。

有効な左矢印 無効な左矢印
Randal L...
Joel Spo...
蒲地 輝尚
有効な右矢印 無効な右矢印
  • 話題の本に出会えて、蔵書管理を手軽にできる!ブクログのアプリ AppStoreからダウンロード GooglePlayで手に入れよう
ツイートする
×