Pragmatic Programmer, The: From Journeyman to Master
by Andrew Hunt; David Thomas
Head First Design Patterns
by Eric Freeman; Elisabeth Robson; Kathy Sierra; Bert Bates
Clean Code: A Handbook of Agile Software Craftsmanship
by Robert C. Martin
Head First C#
by Andrew Stellman; Jennifer Greene
Hello World!: Computer Programming for Kids and Other Beginners
by Warren Sande; Carter Sande
Head First Object-Oriented Analysis and Design
by Brett McLaughlin; Gary Pollice; David West
How do the experts solve difficult problems in software development? In this unique and insightful book, leading computer scientists offer case studies that reveal how they found unusual, carefully designed solutions to high-profile projects. You will be able to look over the shoulder of major coding and design experts to see problems through their eyes. This is not simply another design patterns book, or another software engineering treatise on the right and wrong way to do things. The authors think aloud as they work through their project's architecture, the tradeoffs made in its construction, and when it was important to break rules. This book contains 33 chapters contributed by Brian Kernighan, Karl Fogel, Jon Bentley, Tim Bray, Elliotte Rusty Harold, Michael Feathers, Alberto Savoia, Charles Petzold, Douglas Crockford, Henry S. Warren, Jr., Ashish Gulhati, Lincoln Stein, Jim Kent, Jack Dongarra and Piotr Luszczek, Adam Kolawa, Greg Kroah-Hartman, Diomidis Spinellis, Andrew Kuchling, Travis E. Oliphant, Ronald Mak, Rogerio Atem de Carvalho and Rafael Monnerat, Bryan Cantrill, Jeff Dean and Sanjay Ghemawat, Simon Peyton Jones, Kent Dybvig, William Otte and Douglas C. Schmidt, Andrew Patzer, Andreas Zeller, Yukihiro Matsumoto, Arun Mehta, TV Raman, Laura Wingerd and Christopher Seiwald, and Brian Hayes. Beautiful Code is an opportunity for master coders to tell their story. All author royalties will be donated to Amnesty International.
Average Amazon.com® Rating: ![]()
![]()
![]()
![]()
Based on 39 Ratings
In the eye of the beholder - 2008-12-22
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
I liked the idea of the book (real code, solving non-obvious problems), but it turned out to be a mixed bag in practice. 33 chapters, in different languages and at different levels. Some were pretty good and well worth reading; others not so much.
Unfortunately, I feel like I didn't learn all that much from this book - I'd already been exposed to just about all of the ideas presented therein. I think the problem most people are going to have with this book is: if you can read it without it being a hard slog, then you are experienced enough that you won't get that much out of it.
As another commenter has already said, a better plan might have been to have had a roundtable of programmers from different backgrounds to critique the designs and discuss how they might have looked using different languages. Now that could have been really interesting.
As it was, some of the presentations seemed distinctly un-beautiful, and the approaches taken raised serious questions in my mind. For example: a CGI program written in C - and a good part of the discussion was the effort to make the program look more polymorphic ... why then choose C? Why would one do such a thing? I assume there were good reasons, it would be enlightening to know what they are.
Or the chapter discussing how beautiful the Fortran routine SGBSV(N, KL, KU, NRHS, AB, LDAB, IPIV, B, LDB, INFO) is. Where is the beauty in unintelligible names - was that absolutely necessary (that's a real question - not being a Fortran expert, I don't know)?
Or the chapter where the author wanted to use a Java switch statement with over 10,000 cases but was stymied by JVM limitations. I might call that "unfortunate, but necessary" code, but never "beautiful".
Or the J2EE application which uses two levels of EJBs to stream files. The architecture sounded like overkill; it would have been useful to have had more discussion as to why that wasn't the case. This example also quoted code with boilerplate J2EE snippets like
Context context = MiddlewareUtility.getInitialContext();
Object queryRef = context.lookup("FileReaderLocal");
FileReaderLocalHome = (FileReaderLocalHome) PortableRemoteObject.narrow(queryRef, FileReaderLocalHome.class);
FileReaderLocal reader = home.create();
I've written too much tedious code like that in my life, and none of it goes into my book on beautiful code.
On the plus side, I enjoyed a number of chapters - the debugging and testing essays were well-done. Ditto for MapReduce, and the Python chapters (design of the dictionary, and an implementation of multi-dimensional iterators). I also liked the chapter on designing an accessibility-limited UI that had exactly a single button for user input. My favorite might have been the chapter on image-processing (emitting an algorithm tuned for a given data set). Those were well worth reading.
Great inspiring read - 2009-09-04
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
The code described in this book really live up to the books title. Reading how this code was written is inspiring, even if the programming language it has been written in is not the one you program in yourself.
Excellent in Every Way - 2009-06-29
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Great seller! Very prompt with delivery and product arrived just as described. Highly recommend doing business with this seller. Thank you!
Expect a lot of code and text intertwined in this book - 2009-03-30
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
My appreciation of Beautiful Code is like the one I have for the Justice League or the X-Men-- a band of exceptional individuals moving towards a common, altruistic end. (Proceeds of the the book will go to Amnesty International. ) This compendium of insightful essays and articles is edited by Andy Oram and Greg Wilson.
The talent of the contributors is undeniable and the text reminds me of the Algorithms class I took in college. The book relates how various software design architects and experts attack and solve problems while maintaining the elegance of the implementation. The range of topics include Perl, Haskell, Python and Ruby. This should give the enthusiastic developer a fresh and broad perspective on software. I have to mention that the book is developer oriented, so expect a lot of code and text intertwined.
They say beauty is in the eye of the beholder. The book hopefully will be able to give you a new way to look at software.
Nice idea for a book, but didn't quite do it for me... - 2009-02-04
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Like others, I found the concept for this book intriguing, but in implementation, turned out to be a pretty significant borefest with little to no meaningful value that could be extracted from its contents. Disappointed - but I think I was doomed to be with my expectations of the book from its title and the plethora of respectable folks contributing.
Top Level Categories:
Computer Science
Software Engineering
Sub-Categories:
Computer Science > Coding
Software Engineering > Quality
Some information on this page was provided using data from Amazon.com®. View at Amazon >