Best Object Oriented Design

Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Design Patterns: Elements of Reusable Object Oriented Software is one of those indispensable texts for anyone who develops software using objects. The heart of this title is the "pattern catalog" of 23 basic patterns, ranging from creational patterns, such as Factory and Builder, and structural patterns, such as Facade and Flyweight, to behavioral patterns, such as Command and Mediator. This book isn't an introduction to object-oriented technology or design. It's a book of design patterns that describe simple and elegant solutions to specific problems in object-oriented software design....Once you understand the design patterns and have had an "Aha!"
Reviews
Find Best Price at Amazon"Should be required reading for graduation - but I found this to be much more relatable a few years into my career where I had seen these patterns out in the wild having used or written them without terminology to match."
"Depending on on how you think of programming, this book could be incredibly insightful, or horribly abstract and impractical."
"I have been using this book as a reference on Design Pattern."
"This book will forever stand as a foundation of software development."
"OK, so this title has become almost a bible for the software industry - it seems to get cited by every other author I read, so I thought it was about time I actually bought a copy."
"Even though I program in ABAP, it helps me to translate the pattern into that code."
"Great book for who want to understand each pattern deeply."
"Excelent book."

By the time you finish this book, you’ll be able to take advantage of the best design practices and experiences of those who have fought the beast of software design and triumphed. - Mike James, VSJ, April 2005 Eric Freeman is a computer scientist with a passion for media and software architectures and coauthor of Head First Design Patterns. He just wrapped up four years at a dream job-- directing internet broadband and wireless efforts at Disney--and is now back to writing, creating cool software, and hacking Java and Macs. Eric spent a lot of the '90s working on alternatives to the desktop metaphor with David Gelernter (and they're both still asking the question, "Why do I have to give a file a name?"). When he's not writing text or code you'll find him spending more time tweaking than watching his home theater and trying to restore a circa 1980s Dragon's Lair video game.
Reviews
Find Best Price at Amazon"The book is lengthy in detail for each of the design patterns, and even though I was able to grasp the concept, but there was too much back and forth to get there."
"a nice intro to design patterns."
"I love these Head First books."
"I've always preferred and loved the idea of fun and learn being together, and this book does exactly that, it's a book so easy to read that helps you to keep reading, and invites you to actually do the excercises, and they look fun to do."
"Fun book."
"It presents exactly what you need to know in an easy and fun to read format, making it much less of a textbook and more of a "Hey look at all this cool stuff you can do with software!""
"Great book, I should have read it years ago."
"This book is definitely not the patterns Nirvana, and it may not make you the patterns guru, but it sure is a great book, extremely well written to welcome the beginner to the world of patterns. Once I master this book and practice the patterns, I am sure I will be able to move to the next level and maybe I will be better able to understand the GOF bible which I learn is a must read for any serious techie!"

It takes all the routine, ordinary, dull stuff and filters it to the background so it won't interfere with your brain's real work--recording things that matter. It's like the creators of the Head First approach say, suppose you're out for a hike and a tiger jumps in front of you, what happens in your brain? You'll learn everything from the fundamentals to advanced topics, including threads, network sockets, and distributed programming with RMI. If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. By exploiting how your brain works, Head First Java compresses the time it takes to learn and retain--complex information. More recently, she's been a master trainer for Sun Microsystems, teaching Sun's java instructors how to teach the latest technologies to customers, and a lead developer of several Sun certification exams. Bert Bates is a 20-year software developer, a Java instructor, and a co-developer of Sun's upcoming EJB exam (Sun Certified Business Component Developer).
Reviews
Find Best Price at Amazon"My only gripe is that sometimes they'll throw examples at you that you really can't understand, and often times I felt lost."
"I love Java!"
"Good product and fast delivery."
"Used this book for a master class as a refreshed and reference for java."
"This book kept me partially sane while also helping me understand the fundamentals of Java."
"Really explains concepts clearly and in a fun way."
"This book is both a fun and easy read, guiding you through the fundamentals of the language at a pace you don't even realize until you're done with a chapter."
Best Software Project Management

The added chapters contain (1) a crisp condensation of all the propositions asserted in the original book, including Brooks' central argument in The Mythical Man-Month: that large programming projects suffer management problems different from small ones due to the division of labor; that the conceptual integrity of the product is therefore critical; and that it is difficult but possible to achieve this unity; (2) Brooks' view of these propositions a generation later; (3) a reprint of his classic 1986 paper "No Silver Bullet"; and (4) today's thoughts on the 1986 assertion, "There will be no silver bullet within ten years." My co-authors of that study, and our executive secretary, Robert L. Patrick, were invaluable in bringing me back into touch with real-world large software projects. In preparing my retrospective and update of The Mythical Man-Month, I was struck by how few of the propositions asserted in it have been critiqued, proven, or disproven by ongoing software engineering research and experience. In hopes that these bald statements will invite arguments and facts to prove, disprove, update, or refine those propositions, I have included this outline as Chapter 18. For a wonderful willingness to share views, to comment thoughtfully on drafts, and to re-educate me, I am indebted to Barry Boehm, Ken Brooks, Dick Case, James Coggins, Tom DeMarco, Jim McCarthy, David Parnas, Earl Wheeler, and Edward Yourdon. I thank Gordon Bell, Bruce Buchanan, Rick Hayes-Roth, my colleagues on the Defense Science Board Task Force on Military Software, and, most especially, David Parnas for their insights and stimulating ideas for, and Rebekah Bierly for technical production of, the paper printed here as Chapter 16. Analyzing the software problem into the categories of essence and accident was inspired by Nancy Greenwood Brooks, who used such analysis in a paper on Suzuki violin pedagogy. Two persons' contributions should be especially cited: Norman Stanton, then Executive Editor, and Herbert Boes, then Art Director. Boes developed the elegant style, which one reviewer especially cited: "wide margins, and imaginative use of typeface and layout."
Reviews
Find Best Price at Amazon"Fred Brooks was a software engineer at IBM for some decades and later chair of the UNC CS department."
"A great book that tells you everything your project manager and lead architect are doing wrong, leading to the depressing realization that there is nothing you can do."
"Classic book which is proven by time."
"It contains four additional chapters: No Silver Bullet, yet another influential essay by Brooks that was not in the original edition; an overview of all his points (the entire book) in an easy-to-digest format; his thoughts 20 years on from writing the original, and how the industry has changed in that time; and finally, his responses to various criticism he has received over the years specifically in response to the "No Silver Bullet" essay."
"Other topics include the distinction between the "essential" and "accidental" elements of software design; the distinction between building a computer program vs. designing a "programming a systems product" (and the ninefold difference in complexity and time between the two); the quest for software engineering's elusive "silver bullet"; the importance of documentation; the surprisingly small percentage of time that actual writing of code occupies on the timeline of a typical software-development project (as contrasted with time needed for testing and debugging); large teams vs. small "surgical teams" (and why the latter isn't always the answer for all projects); the "buy versus build" dilemma; and many others."
Best Software Development

Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer–but only if you work at it. Clean Code is divided into three parts. How to tell the difference between good and bad code How to write good code and how to transform bad code into good code How to create good names, good functions, good objects, and good classes How to format code for maximum readability How to implement complete error handling without obscuring code logic How to unit test and practice test-driven development. You'll be reading code--lots of code. Each case study is an exercise in cleaning up code--of transforming a code base that has some problems into one that is sound and efficient. Readers will come away from this book understanding. How to tell the difference between good and bad codeHow to write good code and how to transform bad code into good codeHow to create good names, good functions, good objects, and good classesHow to format code for maximum readabilityHow to implement complete error handling without obscuring code logicHow to unit test and practice test-driven developmentThis book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.
Reviews
Find Best Price at Amazon"What's sad about the reality is that 'bad code' will continually increase over time because people don't realize what 'bad code' can do in the long run."
"This is one of the books that I keep multiple copies of around my office for my developers to read."
"Best book for programming, period."
"I believe that mastery of computer programming involves mastery of both the science & the art of programming, and this is the go-to book for the art of computer programming."
"Although highly opinionated, applying the principles and practices here will make any programmer more productive than they might otherwise be."
"This is a great book for learning to write easy, readable, testable code."
"Great writing, with clear examples and explanations."
"Stop reading reviews, start reading the book."