|
| Programming Pearls (2nd Edition) (ACM Press) | 
enlarge | Author: Jon Bentley Publisher: Addison-Wesley Professional Category: Book
List Price: $39.99 Buy New: $27.71 You Save: $12.28 (31%)
New (34) Used (7) from $27.71
Avg. Customer Rating: 34 reviews Sales Rank: 27864
Media: Paperback Edition: 2 Number Of Items: 1 Pages: 256 Shipping Weight (lbs): 1 Dimensions (in): 9.1 x 6.2 x 0.6
ISBN: 0201657880 Dewey Decimal Number: 005.1 UPC: 785342657883 EAN: 9780201657883 ASIN: 0201657880
Publication Date: October 7, 1999 Availability: Usually ships in 1-2 business days Condition: Brand new book delivered from the UK in 10-14 days.
|
| 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. 0201657880B04062001
|
| Customer Reviews: Read 29 more reviews...
Good topics, flawed presentation November 26, 2008 "Programming Pearls" summarizes many important topics in Computer Science, usually in a sub-par manner. About 10% of the book is dedicated to "thinking outside the box," and I'd say these parts really shine. Unfortunately, the other 90% isn't nearly as good. There are inconsistencies in notation, improperly explained terminology, and incomplete analyses. For example, his chapter on structured testing leaves out randomized testing (which I would argue is just as important), despite the fact that it takes little space to explain. I felt most chapters had deficiencies.
While I have a long list of complaints, my biggest one is his chapter promoting a colleague's work on the n-body simulation problem, which at times reads like an advertisement. He discusses each speed optimization without discussing the impact on the error rate. Although he states his focus is on performance, I can't imagine any good programmer ignoring something as important as the error rate (a fast answer may be worthless if it is incorrect)! He could have used this opportunity to have a great discussion of the trade-off between speed and accuracy. Ignoring this aspect struck me as odd because this kind of critical thinking (examining all aspects of a system) is a key tenet to being a good programmer. It felt like a very poor example, where the author was more concerned with promoting a colleague than teaching the reader how to think critically.
I'm sure this book will definitely be helpful to neophytes. However, I think there are better treatments of these subjects out there. No good book in its 2nd edition should have some of the mistakes that are present in "Programming Pearls".
Utterly essential to read and re-read October 16, 2008 1 out of 1 found this review helpful
I have a (very) short list of books that I re-read annually. This is the book at the top of my list.
I am a professional software developer working within the world's largest software company. I work in amongst (BY FAR) the most incredible software engineers on the planet. One of the things that I enjoy the most about working with the people around me is range and depth of experiences that are applied to solving a given problem. Oftentimes, the best solution is not the most obvious.
That's why I re-read this book every year: it's a short, easy-to-read reminder to think laterally about a given problem and to deconstruct a problem as much as possible before attacking it.
I first read this book back in 2000 whilst stood in a bookstore. I instantly wondered why Jon hadn't written it before.
Creative thinking is something that we all too often forget when we toil daily on our code, trying to make it more feature-complete, faster, more secure and more stable. Sometimes one needs to take a step back from the problem and consider things with a more open mind that may result in having to write less code overall, or to write just a little more code to completely transform the operational performance of a given routine. This book regularly reminds me how to do that.
I cannot recommend this book highly enough - absolutely essential reading for all developers - old and new - regardless of your chosen language / platform / toolset.
Good book September 21, 2008 This book deeply explains each alogirthm and its complexities. Teaches you how each line could affect the performance of the problem. Good thing is it has many exericised that gives more insight of the algorithm discussed.
Brief and cursory September 19, 2008 2 out of 2 found this review helpful
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 thinking this book is some sort of essential programmers' bible.
The advice so highly praised here is borderline commonsensical: ask why you need to change code before you do it, get as many specification details as you can before you start a project, consider running times and minimizing the amount of data you need to use.
Pearls is short on content for us non-newbies.
Must read September 15, 2008 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. I found it difficult to read this book in one go but I read this book almost twice. And every time I read this, I learn something new!
|
|
|
| |