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."

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"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!""
"While GOF book covers more patterns, it's not as nearly as much fun to read as Head First Design Patterns. Bottom line: - I definitely recommend this book to any junior developer who wants to get familiar with Design Patterns. - Experienced developers will skip quite a few pages (like I did), yet it's still a good read."
"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!"

Early in his software developer career, John Sonmez discovered that technical knowledge alone isn't enough to break through to the next income level - developers need "soft skills" like the ability to learn new technologies just in time, communicate clearly with management and consulting clients, negotiate a fair hourly rate, and unite teammates and coworkers in working toward a common goal. Plus how helping your manager with his goals can make you the MVP of your team The technical skills that every professional developer must have - but no one teaches you (most developers are missing some critical pieces, they don't teach this stuff in college, you're expected to just "know" this) An inside look at the recruiting industry. Brand New Developers In this book you'll discover what it's like to be a professional software developer, how to go from "I know some code" to possessing the skills to work on a development team, how to speed along your learning by avoiding common beginner traps, and how to decide whether you should invest in a programming degree or "bootcamp." Not Just For Beginners--Guaranteed To Make You A Better Developer When I first started reading this book I was skeptical. Rui FigueiredoSoftware Developer and Computer Science PhDDublin, Ireland Deals With The Human Side Of Software Development. This book is different from all other software development books I have read because it deals with the human side of software development. Even though as software developers we are surrounded with the latest technology, we are still people with feelings, fears and dreams, and John's book focuses on that. The Complete Software Developer's Career Guide is a great resource that I wish that I had years earlier in my career and in my education. Fernando Z.Senior Software Developer, Blogger and Programming FanaticCentral Texas Get It Even If You're NOT In Software Development. Invaluable advice for any software developer, from entry-level to senior. John Sonmez is a software developer and the author of two bestselling books, The Complete Software Developer's Career Guide and Soft Skills: The Software Developer's Life Manual. He's also the founder of the Simple Programmer blog and YouTube channel, where he reaches 1.4 million software developers yearly and helps them develop the unique blend of skills that made him a highly paid, highly sought-after developer and consultant.
Reviews
Find Best Price at Amazon"The book meets the breadth and depth requirements one would expect of a software developers' career guide. I wish I had a book like this when I was starting out as a software developer back in the days."
"I have been an engineer and architect for nearly 20 years now and have found that all of the topics covered in John's book ring home."
"You will learn many new things and some things might be a refresher, but hey who doesn't need a refresher every now and then."
"Having been involved in all aspects of software development, John does a very good job of giving good advice, and providing sufficient information for anyone to succeed in the software industry."
"John has successfully taken the big picture and broken it down into manageable chunks."
"The Complete Software Developer's Career Guide continues on the path blazed by Sonmez's Soft Skills of taking the complexity in our life (and in this book's case, your software engineering career) and breaking it down into manageable & actionable chunks."
"I first heard of John Sonmez from his Soft Skills book."
"Well much of the information you can get online, but if you prefer to know software career development by reading book, then this is a good book."
Best Machine Theory

In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. Charles Petzold's latest book, Code: The Hidden Language of Computer Hardware and Software , crosses over into general-interest nonfiction from his usual programming genre. From Louis Braille's development of his eponymous raised-dot code to Intel Corporation's release of its early microprocessors, Petzold presents stories of people trying to communicate with (and by means of) mechanical and electrical devices. The real value of Code is in its explanation of technologies that have been obscured for years behind fancy user interfaces and programming environments, which, in the name of rapid application development, insulate the programmer from the machine.
Reviews
Find Best Price at Amazon"For a reader like me, who asked every teacher from elementary school through college "why do we count to 10" and clung to the best answer of "it's arbitrary - it's just how it's always been done" until reading this book (and who struggled to convert binary to base ten), this book was gold."
"Added as an addition to my computer library."
"I just finished this book and got way more out of it than I expected."
"It is not meant to be intensive and, for that reason, I would not recommend this to anyone as a "supplementary book" for a digital design class but rather a concise introduction for a young, curious mind."
"Before I read this book, I already knew about logic gates, but I did not know (1) how electric and electonic devices can in the real world perform the function of logic gates and (2) how by arranging logic gates wisely one can perform addition and subtraction and (3) more complicated mathematical operations can be performed by doing "a lot of" additions and subtractions. But overall I think I have learned a lot from this book."
"This book takes a look at the most basic building blocks of modern technology."
"This book is a really great book."
"However, lately, there are still several books that do better job if you really want to learn more about machines."
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 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."