Join Amazon Prime and ship Two-Day for free and Overnight for $3.99. Already a member? Sign in.

 

or
Sign in to turn on 1-Click ordering.
 
 
More Buying Choices
57 used & new from $24.50

Have one to sell? Sell yours here
 
   
Programming Pearls (2nd Edition) (ACM Press)
 
 
Tell the Publisher!
I’d like to read this book on Kindle

Don’t have a Kindle? Get yours here.
 
  

Programming Pearls (2nd Edition) (ACM Press) (Paperback)

by Jon Bentley (Author)
4.4 out of 5 stars See all reviews (34 customer reviews)

List Price: $39.99
Price: $32.57 & this item ships for FREE with Super Saver Shipping. Details
You Save: $7.42 (19%)
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.

Want it delivered Monday, July 13? Choose One-Day Shipping at checkout. Details
36 new from $25.00 21 used from $24.50
Also Available in: List Price: Our Price: Other Offers:
Paperback (1st) 27 used & new from $2.25

Special Offers and Product Promotions


Frequently Bought Together

Programming Pearls (2nd Edition) (ACM Press) + Programming Interviews Exposed: Secrets to Landing Your Next Job, 2nd Edition (Programmer to Programmer) + Puzzles for Programmers and Pros
Price For All Three: $67.95

Show availability and shipping details


Customers Who Bought This Item Also Bought

Code Complete: A Practical Handbook of Software Construction

Code Complete: A Practical Handbook of Software Construction

by Steve McConnell
4.8 out of 5 stars (106)  $31.49
Introduction to Algorithms, Second Edition

Introduction to Algorithms, Second Edition

by Thomas H. Cormen
4.1 out of 5 stars (171)  $58.90
Puzzles for Programmers and Pros

Puzzles for Programmers and Pros

by Dennis Shasha
4.2 out of 5 stars (6)  $16.49
Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series)

Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series)

by Erich Gamma
4.5 out of 5 stars (261)  $41.57
The Algorithm Design Manual

The Algorithm Design Manual

by Steven S. Skiena
4.6 out of 5 stars (31)  $63.96
Explore similar items

Editorial Reviews

Amazon.com Review
Fourteen years after it was first issued, C++ expert Jon Bentley reinvents a true classic with the second edition of his Programming Pearls. Completely revised and brought up to date with all new code examples in C and C++, this book remains an exceptional tutorial for learning to think like a programmer.

The "pearls" in question center not only on choosing the right algorithms (like binary searches, sorting techniques, or sparse arrays) but also on showing how to solve problems effectively. Each chapter frames a particular programming task--such as sorting numbers, creating anagrams, or counting the words in a block of text--many drawn from Bentley's experiences in his long career as a developer. The book traces the process of arriving at a fast, efficient, and accurate solution, along with code profiling to discover what works best. After refining the correct answer, each chapter enumerates programming principles that you can use on your own.

The author also challenges you to think like an engineer, and each chapter ends with about a dozen problems to get you thinking creatively about design issues. (Sidebars on such historical topics as the first computer solutions to computer chess, spell-checking, and even architectural design help create a perspective on successful problem solving and make for a truly educational and enjoyable tour of how to become a better programmer.) Bentley also asks the reader to think analytically about the world with "back of the envelope" estimation techniques drawn from engineering. Appendices list the algorithms and code rules covered in the book, plus some sample solutions.

Fans of the first edition of this title will be pleased to see this favorite computer text brought up to date for today's faster hardware. Whether you want to improve your command of algorithms or test your problem-solving skills, the new version of Programming Pearl is a challenging, instructive, and thoroughly entertaining resource. --Richard Dragan

Topics covered: Programming and problem-solving tutorial, sorting algorithms, merge sort, bit vectors, binary searches, program correctness and testing, improving performance, engineering and problem-solving techniques, performance estimates, designing for safety, divide-and-conquer and scanning algorithms, tuning code, tips for more efficient memory usage, insertion sort, quicksort algorithms, sparse arrays, searching algorithms, binary search trees, heaps, priority queues, searching text, and generating random text.

Product Description
The first edition of Programming Pearls was one of the most influential books I read early in my career, and many of the insights I first encountered in that book stayed with me long after I read it. Jon has done a wonderful job of updating the material. I am very impressed at how fresh the new examples seem." -Steve McConnell

When programmers list their favorite books, Jon Bentley's collection of programming pearls is commonly included among the classics. Just as natural pearls grow from grains of sand that irritate oysters, programming pearls have grown from real problems that have irritated real programmers. With origins beyond solid engineering, in the realm of insight and creativity, Bentley's pearls offer unique and clever solutions to those nagging problems. Illustrated by programs designed as much for fun as for instruction, the book is filled with lucid and witty descriptions of practical programming techniques and fundamental design principles. It is not at all surprising that Programming Pearls has been so highly valued by programmers at every level of experience.

In this revision, the first in 14 years, Bentley has substantially updated his essays to reflect current programming methods and environments. In addition, there are three new essays on * testing, debugging, and timing * set representations * string problems All the original programs have been rewritten, and an equal amount of new code has been generated. Implementations of all the programs, in C or C++, are now available on the Web.

What remains the same in this new edition is Bentley's focus on the hard core of programming problems and his delivery of workable solutions to those problems. Whether you are new to Bentley's classic or are revisiting his work for some fresh insight, the book is sure to make your own list of favorites.

See all Editorial Reviews


Product Details

  • Paperback: 256 pages
  • Publisher: Addison-Wesley Professional; 2 edition (October 7, 1999)
  • Language: English
  • ISBN-10: 0201657880
  • ISBN-13: 978-0201657883
  • Product Dimensions: 9.1 x 6.2 x 0.6 inches
  • Shipping Weight: 15.2 ounces (View shipping rates and policies)
  • Average Customer Review: 4.4 out of 5 stars See all reviews (34 customer reviews)
  • Amazon.com Sales Rank: #55,699 in Books (See Bestsellers in Books)

Look Inside This Book


What Do Customers Ultimately Buy After Viewing This Item?


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
Check the boxes next to the tags you consider relevant or enter your own tags in the field below.
(5)
(1)

Your tags: Add your first tag
 
Help others find this product — tag it for Amazon search
No one has tagged this product for Amazon search yet. Why not be the first to suggest a search for which it should appear?

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

 

Customer Reviews

34 Reviews
5 star:
 (23)
4 star:
 (5)
3 star:
 (2)
2 star:
 (4)
1 star:    (0)
 
 
 
 
 
Average Customer Review
4.4 out of 5 stars (34 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

 
70 of 73 people found the following review helpful:
5.0 out of 5 stars The Pearls Still Glitter After a Decade, March 2, 2000
By Charles Ashbacher "(cashbacher@yahoo.com)" (Marion, Iowa United States(cashbacher@yahoo.com)) - See all my reviews
(TOP 50 REVIEWER)      
Without any doubt, my favorite article in _Communications of the ACM_ in the 1980's was the regular `Programming Pearls' articles by Jon Bentley. When the first edition of these collected gems was published, I read it with great delight. Now, over a decade later, a second edition has been published, containing the same problems with additional modifications and notations. Given the enormous changes in programming since the mid 80's, your first reaction might be that this book is dated and therefore irrelevant. Nothing could be further from the truth.
Elegant solutions to complex programming problems are free from the rot of time. Programming is a thought process largely independent of the notation used to write it down. The solutions are sketched and explained rather than coded, and the solutions are complete. There is a certain mystique about taking a complex problem, finding an initial solution and then refining it down until it kicks some big time. There are some major lessons in program refinement explained in these solutions.
Coding a binary search is covered quite extensively, which may seem like a waste of space, as this problem was solved decades ago. However, that solution took decades to get right, and this is one of those "separates the coders from the key bangers" type of problem. Other problems examined include performance tuning, squeezing space and program correctness. While the improvement in the performance of the hardware has been astounding since these solutions were written, that does not make them obsolete. The complexity of the programs that we now build has risen even faster, so performance and space considerations are just as critical.
Some problems were here at the beginning and will still be here at the end. Even though there may be canned code to handle them, these problems are generic enough that the solutions can be applied elsewhere, so we must learn how to solve them. Understanding these problems and their solutions will give you a fundamental skill set that will serve you well for a long time.
Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
50 of 52 people found the following review helpful:
5.0 out of 5 stars A course in how to think like an experienced programmer, June 17, 2000
By Mike Christie (Austin, TX USA) - See all my reviews
(REAL NAME)   
The thirteen columns in this book appeared in the Communications of the ACM between 1983 and 1985. There can't be more than a couple of technical books on computing from that era that are still worth reading. Kernighan & Ritchie's book, "The C Programming Language", is one that springs to mind; this book is definitely another, and will probably outlast K&R as it has almost no ties to existing or past hardware or languages.

What Bentley does in each of these columns is take some part of the field of programming--something that every one of us will have run into at some point in our work--and dig underneath it to reveal the part of the problem that is permanent; that doesn't change from language to language. The first two parts cover problem definition, algorithms, data structures, program verification, and efficiency (performance, code tuning, space tuning); the third part applies the lessons to example pseudocode, looking at sorting, searching, heaps, and an example spellchecker.

Bentley writes clearly and enthusiastically, and the columns are a pleasure to read. But the reason so many people love this book is not for the style, it's for the substance--you can't read this book and not come away a better programmer. Inefficiency, clumsiness, inelegance and obscurity will offend you just a little more after you've read it.

It's hard to pick a favourite piece, but here's one nice example from the algorithm design column that shows how little the speed of your Pentium matters if you don't know what you're doing. Bentley presents a particular problem (the details don't matter) and multiple different ways to solve it, calculating the relationship between problem size and run time for each algorithm. He gives, among others, a cubic algorithm (run time equal to a constant, C, times the cube of the problem size, N--i.e. t ~ CN^3), and a linear algorithm with constant K (t ~ KN). He then implemented them both: the former in fine-tuned FORTRAN on a Cray-1 supercomputer; the latter in BASIC on a Radio Shack TRS-80. The constant factors were as different as they could be, but with increasing problem size the TRS-80 eventually has to catch up--and it does. He gives a table showing the results: for a problem size of 1000, the Cray takes three seconds to the TRS-80's 20 seconds; but for a problem size of 1,000,000, the TRS-80 takes five and a half hours, whereas the Cray would take 95 years.

The book is informative, entertaining, and will painlessly make you a better programmer. What more can you ask?

Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
18 of 19 people found the following review helpful:
5.0 out of 5 stars Packed with programming wisdom, December 18, 1999
By Russell Belfer (San Mateo, CA United States) - See all my reviews
(REAL NAME)   
It's great to see they've come out with an update to this book. The essays in this book are easy to read and touch on many valuable things, such as tuning and optimization of algorithms, using mini languages to provide robust tools, doing back-of-the-envelope calculations, and much more. I have recommended this book to several beginning programmers that I know as an excellent introduction to thinking effectively about the challenges of software engineering.
Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)


Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews

2.0 out of 5 stars Good topics, flawed presentation
"Programming Pearls" summarizes many important topics in Computer Science, usually in a sub-par manner. Read more
Published 7 months ago by Lance Vambridge

5.0 out of 5 stars Utterly essential to read and re-read
I have a (very) short list of books that I re-read annually. This is the book at the top of my list. Read more
Published 8 months ago by Rich Turner

4.0 out of 5 stars Good book
This book deeply explains each alogirthm and its complexities. Teaches you how each line could affect the performance of the problem. Read more
Published 9 months ago by Prashanth Jaligama

2.0 out of 5 stars Brief and cursory
It's a collection of lessons appropriate for college students, nothing more. If you've seen your fair share of sorts and trees, don't feel pressured by my fellow reviewers into... Read more
Published 9 months ago by Dan

5.0 out of 5 stars Must read
One of the must read for S/W Engineers. These essays make you really think and teach you basics of s/w development. I also liked the exercises under each essay. Read more
Published 9 months ago by Prashant

5.0 out of 5 stars true pearls of programming wisdom
If this book doesn't get you excited about programming, I don't know what will. Bentley writes about programming problems that are as glamorous as hollywood. Read more
Published 13 months ago by Atul Shenoy

2.0 out of 5 stars For Absolute Beginner Programmers
This book is really addressed towards absolute beginner programmers. Maybe if you've only taken an introductory course or two at college, or just have the syntax of one language... Read more
Published 17 months ago by Kurt Burnside Rose

5.0 out of 5 stars A must for everyone serious about software engineering
great book. guaranteed to transform you into a better and more professional software engineer
Published on November 3, 2006 by Guy Tavor

5.0 out of 5 stars a must
Read this book, the sooner the better! This IS the Computer Science as it's supposed to be in the same row with Knuth and Sedgewick.
Published on September 9, 2006 by Maxim Krivokon

5.0 out of 5 stars Programming insight
Derived from a popular series of columns from the ACM flagship magazine (Communications of the ACM), this book takes you as near as possible to a professional programmer's way of... Read more
Published on March 17, 2006 by Fernando Berzal Galiano

Only search this product's reviews



Customer Discussions

 Beta (What's this?)
New! See all customer communities, and bookmark your communities to keep track of them.
This product's forum (0 discussions)
  Discussion Replies Latest Post
  No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
  [Cancel]


Active discussions in related forums
  Discussion Replies Latest Post
C# or Java? 32 4 days ago
   


Product Information from the Amapedia Community

Beta (What's this?)



Look for Similar Items by Category


Up to 50% Off Hot Brands in Skin Care

Skin Care Sale
Get favorite name brands in skin care for face, body, and sun care, now up to 50% off at the skin care sale, only from Amazon Beauty.

Shop all skin care

 

Best Books of 2008

Best of 2008
Find our top 100 editors' picks as well as customers' favorites in dozens of categories in our Best Books of 2008 Store.
 

Buy Three Books, Get a Fourth Free

4-for-3 Books
Order any four eligible books under $10 and get the lowest-price book free in our 4-for-3 Books Store. See more details.
 

Best Books

Best of the Month
See our editors' picks and more of the best new books on our Best of the Month page.
 

 

Feedback

If you need help or have a question for Customer Service, contact us.
 Would you like to update product info or give feedback on images?
Is there any other feedback you would like to provide?

Your comments can help make our site better for everyone.


Where's My Stuff?

Shipping & Returns

Need Help?

Your Recent History

  (What's this?)
You have no recently viewed items or searches.

After viewing product detail pages or search results, look here to find an easy way to navigate back to pages you are interested in.

Look to the right column to find helpful suggestions for your shopping session.

Continue shopping: Top Sellers

Conditions of Use | Privacy Notice © 1996-2009, Amazon.com, Inc. or its affiliates