
Enjoy fast, free delivery, exclusive deals, and award-winning movies & TV shows with Prime
Try Prime
and start saving today with fast, free delivery
Amazon Prime includes:
Fast, FREE Delivery is available to Prime members. To join, select "Try Amazon Prime and start saving today with Fast, FREE Delivery" below the Add to Cart button.
Amazon Prime members enjoy:- Cardmembers earn 5% Back at Amazon.com with a Prime Credit Card.
- Unlimited Free Two-Day Delivery
- Streaming of thousands of movies and TV shows with limited ads on Prime Video.
- A Kindle book to borrow for free each month - with no due dates
- Listen to over 2 million songs and hundreds of playlists
- Unlimited photo storage with anywhere access
Important: Your credit card will NOT be charged when you start your free trial or if you cancel during the trial period. If you're happy with Amazon Prime, do nothing. At the end of the free trial, your membership will automatically upgrade to a monthly membership.
Buy new:
-23% $38.72$38.72
Ships from: Amazon.com Sold by: Amazon.com
Save with Used - Very Good
$20.69$20.69
$3.99 delivery Tuesday, March 25
Ships from: Friends of the San Francisco Public Library Sold by: Friends of the San Francisco Public Library

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the author
OK
The Clean Coder: A Code of Conduct for Professional Programmers (Robert C. Martin Series) 1st Edition
Purchase options and add-ons
Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care deeply about the practice of creating software. They treat it as a craft. They are professionals.
In The Clean Coder: A Code of Conduct for Professional Programmers, legendary software expert Robert C. Martin introduces the disciplines, techniques, tools, and practices of true software craftsmanship. This book is packed with practical advice–about everything from estimating and coding to refactoring and testing. It covers much more than technique: It is about attitude. Martin shows how to approach software development with honor, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty; and understand that deep knowledge comes with a responsibility to act.
Readers will learn
- What it means to behave as a true software craftsman
- How to deal with conflict, tight schedules, and unreasonable managers
- How to get into the flow of coding, and get past writer’s block
- How to handle unrelenting pressure and avoid burnout
- How to combine enduring attitudes with new development paradigms
- How to manage your time, and avoid blind alleys, marshes, bogs, and swamps
- How to foster environments where programmers and teams can thrive
- When to say “No”–and how to say it
- When to say “Yes”–and what yes really means
Great software is something to marvel at: powerful, elegant, functional, a pleasure to work with as both a developer and as a user. Great software isn’t written by machines. It is written by professionals with an unshakable commitment to craftsmanship. The Clean Coder will help you become one of them–and earn the pride and fulfillment that they alone possess.
- ISBN-100137081073
- ISBN-13978-0137081073
- Edition1st
- Publication dateMay 13, 2011
- LanguageEnglish
- Dimensions6.8 x 0.8 x 8.9 inches
- Print length256 pages
Frequently bought together

Customers who viewed this item also viewed
From the brand

From the Publisher

From the Preface of "Clean Architecture"
“…The rules of software architecture are the rules of ordering and assembling the building blocks of programs. And since those building blocks are universal and haven’t changed, the rules for ordering them are likewise universal and changeless.
But one thing has changed: Back then, we didn’t know what the rules were. Consequently, we broke them, over and over again. Now, with half a century of experience behind us, we have a grasp of those rules.
And it is those rules—those timeless, changeless, rules—that this book is all about.”
— Robert C. "Uncle Bob" Martin
![]()
Clean Code: A Handbook of Agile Software Craftsmanship
|
![]()
The Clean Code: Practical Advices for the Professional Programmer
|
![]()
Clean Craftsmanship: Desciplines, Standards, and Ethics
|
![]()
Clean Agile: Back to Basics
|
![]()
Clean Architecture: A Craftsman's Guide to Software Structure and Design
|
|
---|---|---|---|---|---|
Customer Reviews |
4.7 out of 5 stars 6,463
|
4.6 out of 5 stars 2,213
|
4.5 out of 5 stars 184
|
4.6 out of 5 stars 601
|
4.6 out of 5 stars 3,738
|
Price | $32.80$32.80 | $38.72$38.72 | $38.16$38.16 | $44.68$44.68 | $27.19$27.19 |
Best agile practices of cleaning code “on the fly” Software Craftsmanship. | Endure and succeed amidst swirling uncertainty and nonstop pressure. | Picks up where Clean Code leaves off, outlining additional ways to write quality and trusted code you can be proud of every day. | A clear and concise guide to basic Agile values and principles. Perfect for those new to Agile methods and long-time developers who want to simplify approaches for the better. | Direct, no-nonsense answers to key architecture and design questions. | |
"It is the best pragmatic application of Lean principles to software I have ever seen in print." —James O. Coplien, Founder of the Pasteur Organizational Patterns project | “Some technical books inspire and teach; some delight and amuse. Rarely does a technical book do all four of these things.” — George Bullock | ". . . [A] timely and humble reminder of the ever-increasing complexity of our programmatic world and how we owe it to the legacy of humankind--and to ourselves--to practice ethical development.” — Stacia Heimgartner Viscardi, CST & Agile Mentor | “What is in the world of Agile development is nothing compared to what could be. This book is Bob’s perspective on what to focus on to get to that ‘what could be.’ And he’s been there, so it’s worth listening.” — Kent Beck | "A good architecture comes from understanding it more as a journey than as a destination, more as an ongoing process of enquiry than as a frozen artifact." — Kevlin Henney |

Pick Up Where Clean Code Leaves Off
"As software developers, we have to continually solve important problems for our employers, customers, colleagues, and future selves. Getting the app to work, though difficult, is not enough, it does not make you a craftsman. With an app working, you have passed the app-titude test. You may have the aptitude to be a craftsman, but there is more to master. In these pages, Bob expresses clearly the techniques and responsibilities to go beyond the app-titude test and shows the way of the serious software craftsman."
— James Grenning, author of Test-Driven Development for Embedded C and Agile Manifesto co-author
Editorial Reviews
Review
From the Back Cover
Noted software expert Robert C. Martin presents a revolutionary paradigm with "Clean Code: A Handbook of Agile Software Craftsmanship." 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.
What kind of work will you be doing? You'll be reading code-lots of code. And you will be challenged to think about what's right about that code, and what's wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft.
"Clean Code" is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. 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. The third part is the payoff: a single chapter containing a list of heuristics and "smells" gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.
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.
About the Author
Robert C. Martin (“Uncle Bob”) has been a programmer since 1970. He is founder and president of Object Mentor, Inc., an international firm of highly experienced software developers and managers who specialize in helping companies get their projects done. Object Mentor offers process improvement consulting, object-oriented software design consulting, training, and skill development services to major corporations worldwide. Martin has published dozens of articles in various trade journals and is a regular speaker at international conferences and trade shows.
He has authored and edited many books, including:
- Designing Object Oriented C++ Applications Using the Booch Method
- Patterns Languages of Program Design 3
- More C++ Gems
- Extreme Programming in Practice
- Agile Software Development: Principles, Patterns, and Practices
- UML for Java Programmers
- Clean Code
A leader in the industry of software development, Martin served for three years as editor-in-chief of the C++ Report, and he served as the first chairman of the Agile Alliance.
Robert is also the founder of Uncle Bob Consulting, LLC, and cofounder with his son Micah Martin of The Clean Coders LLC.
Product details
- Publisher : Pearson; 1st edition (May 13, 2011)
- Language : English
- Paperback : 256 pages
- ISBN-10 : 0137081073
- ISBN-13 : 978-0137081073
- Item Weight : 14.4 ounces
- Dimensions : 6.8 x 0.8 x 8.9 inches
- Best Sellers Rank: #55,888 in Books (See Top 100 in Books)
- #11 in Software Design & Engineering
- #26 in Microsoft Programming (Books)
- #52 in Software Development (Books)
- Customer Reviews:
About the author

Robert Cecil Martin (colloquially known as Uncle Bob) is an American software engineer and author. He is a co-author of the Agile Manifesto.
Bio from Wikipedia, the free encyclopedeia. Photo by Tim-bezhashvyly (Own work) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonCustomers say
Customers find the book easy to read and enjoyable. They appreciate the common sense advice and philosophy about programming professionalism. The author's writing style is inspiring and heartfelt. The book provides valuable concepts and best practices for developers. Readers find the stories entertaining and funny. The book is clear and uncomplicated, with a clear objective for each chapter.
AI-generated from the text of customer reviews
Customers find the book easy to read and useful for entry-level professionals. They appreciate the writing style and real-world examples that help them understand. The time investment is worthwhile, and the author articulates the substance of his points clearly.
"...rather, there’s a great deal of creativity that goes into it – an artistic quality, if you will...." Read more
"...But it is definitively an important book and worth reading, especially when you want to help building a true profession." Read more
"...grasp of the concepts, this one feels so relatable that it reads in a breeze. What more can you ask for?..." Read more
"...The book expresses the concept of professionalism in the clear, simple (not simplistic,) unapologetic style that Bob uses in all his writing...." Read more
Customers find the book provides useful advice and examples for improving software development processes. They appreciate the common sense recommendations and good philosophy about programming professionalism. The book covers mentoring and craftsmanship, answering many fundamental questions during software development.
"...The book is chock-full of other applicable advice as well, from numerically-driven ways to handle estimates to suggestions for interacting with..." Read more
"...cover more cases to test, and even write in such a way the code seems to document itself without the huge effort I've had to make in the past just..." Read more
"...Chapter 14, the ending chapter, covers mentoring and craftsmanship...." Read more
"...What this book aims to do is to help you identify these situations, explain why these are harmful and provide you with the tools to better respond..." Read more
Customers find the book inspiring and enlightening. They appreciate the heartfelt anecdotes that guide everyone. The writing style is well-written and the stories make the content memorable. Readers mention it's an engaging read that opens their eyes to taking responsibility for their actions.
"...It will show you bad habits to avoid and drive home the professional behavior that will earn you respect...." Read more
"...The Clean Coder is also a very personal book...." Read more
"...then, if only to get a better grasp of the concepts, this one feels so relatable that it reads in a breeze. What more can you ask for?..." Read more
"...from mentoring, project management, test driven development, career enhancement, handling pressure etc...." Read more
Customers find the book's development style valuable for developers. They appreciate the good ideas, examples, and clean code design. The book introduces them to test-driven development and best practices. It provides a starting point for collaborative creating their own developer code. Readers also value the author's insights into social and organizational factors that affect programmers' lives.
"...to some set of industry best practices; rather, there’s a great deal of creativity that goes into it – an artistic quality, if you will...." Read more
"...It did introduce me to Test Driven Developement (that in itself ought to reinforce that professional coding is new to me)...." Read more
"...covers a lot of topics from mentoring, project management, test driven development, career enhancement, handling pressure etc...." Read more
"...Better, they're good ways to try out something new, to explore a problem, or to isolate some issue so that you can examine it without getting lost..." Read more
Customers enjoy the book's entertainment value. They find the stories entertaining and funny, with moments that make them laugh.
"...And it seems to make even some of the dreary parts more fun because you can almost imagine it as a game you play against yourself...." Read more
"...His lessons learned are great and at times can be entertaining...." Read more
"...Now look, I am a big fan of toy problems. They're fun, they're relaxing, working on one is roughly the equivalent of a situation comedy: everything..." Read more
"...There are lots of anecdotes which can be fun to read. However, there is no science here, just opinion...." Read more
Customers find the book clear and straightforward. They find it basic and unemotional, with a story of how the lesson was learned.
"...There’s not much fluff, other than a story of how the lesson was learned, but taking those principals back to my own work, I can see how just in a..." Read more
"...Not much fluff here. Just a lot of readily applicable content...." Read more
"I found the book clear and relatively unemotional as it worked systematically through some very touchy issues...." Read more
"There is no try!..." Read more
Customers find the book provides useful tips and anecdotes with clear objectives. They say each chapter fits a learning need on the software development cycle.
"This book is filled with anecdotes, hypothetical conversations, but mostly filled with different ways to say "be responsible."..." Read more
"This book is easy to read and have a lot of short stories that make the content more digestible and memorable...." Read more
"...Full of real stories and really great advice, I'd recommend it for anyone, especially those who are just starting their lifes as professional..." Read more
"Good book, a lot of useful tips, good stories with a clear objective about what a professional programmer should be." Read more
Customers have mixed opinions about the book's estimation accuracy. Some find the chapter on estimation helpful, with numerically-driven ways to handle estimates and suggestions for interacting with others. However, others feel it lacks references to further study on important practices, lacks answers, and preaches instead of providing science.
"...chock-full of other applicable advice as well, from numerically-driven ways to handle estimates to suggestions for interacting with colleagues...." Read more
"...Similarly, I felt the book is seriously lacking references to further study on the important practices that are covered...." Read more
"...The chapters on Saying Yes, Saying No and Estimation really spoke to me. I have had many experiences where I have agreed to "try."..." Read more
"...There are no answers in this book, just preaching...." Read more
Top reviews from the United States
There was a problem filtering reviews. Please reload the page.
- Reviewed in the United States on April 15, 2016Programming is an interesting profession. It’s not just an engineering exercise, where you’re building the most logical, structured, and well-designed application according to some set of industry best practices; rather, there’s a great deal of creativity that goes into it – an artistic quality, if you will. Instead of solving a particular problem the same way for every project, you must creatively adapt your thinking and communication to meet the expectations of each project’s stakeholders. Programming is not well understood like other professions. You know what lawyers, accountants, and doctors do. Their workflows and processes are well known since their professions are mature and a good portion of the population has interacted with them directly or indirectly. Programming, on the other hand, is different. To many people, a website or software solution magically just “appears” after a programmer spends time at his or her computer. Enter Robert C. Martin’s The Clean Coder.
The Clean Coder helps demonstrate how programmers can conduct themselves as professionals, removing that black-box quality and holding themselves to standards as other professionals do so they garner the same respect from their peers and can help others do more with technology.
I’ll talk about some of the lessons that really resonate with me:
In the forward, Matthew Heusser relays a story about how his colleague, Joe, considers “estimates” from the technical team and “estimates” from the legal team with completely different mindsets. In short, Joe considered legal estimates to be final, whereas technical estimates were negotiable. Why weren’t estimates from the two teams treated equally? In my career, I’ve seen the same thing many times, largely stemming from three reasons. First is the assumed “magic” that non-technical people think programmers wield. Throughout the book, Martin explains how to remove the veil of mystery regarding said magic. Second is that I’ve run across others that compared us with their profession and made some assumptions, such as, though a harsher example, we’re being lazy or noncommittal. Here, the author discusses how to address such assumptions when confronted with them. Third, and the most important part that we can influence, is the tech person’s mindset and approach to work. From the text, the programmer learns how to craft their own mindset and workflows to handle these. In essence, we can’t make things perfect, but we control a lot of parameters to make things better.
The first three chapters cover the conduct that a software developer professional should exhibit. A recurring theme within all three chapters is that software developers should take responsibility for what they say and do. Martin gracefully simplified this down to: how/why to say “no” and how/why to say “yes.” For example, if a developer agrees to a timeline, then they should make the timeline. If there are risks or unknowns on something you’re defining a timeline for, don’t agree to it, but rather just agree to what you can commit to if possible. The key is to not let yourself get bullied into agreeing to something you know you can’t meet with confidence. Others will build their own schedules and commitments around what you say, and there may be serious repercussions and loss of face if you fail to deliver. If you’re not as accurate as possible, you’ll erode the trust you have with your colleagues.
Along with controlling and defining your commitments, you need to take responsibility for your work output. Specifically, being a professional means that you certify and guarantee that your work output functions. For example, accountants ensure that their accounts balance when they finish closing out the books monthly, quarterly, and year’s end. If they left discrepancies, they would soon find themselves out of work. However, developers seem to be able to deliver questionable code or features that just plain don’t work, again and again. I understand why: development is hard. There are a lot of moving pieces and people in a software development project; as a result, there are a lot of rules that get balanced when you go in and change something. None of that takes away from the fact that developers lose trust of their peers when they fail to deliver working solutions for the tasks assigned to them. They’ll probably remember the failure (their label, not yours) instead of the nuanced “whys” that caused that failure.
Luckily, software developers have tools available to them to prevent this from happening, but only if the tools are actually put to use. Martin’s philosophy around testing is something with which I completely agree. The only way you can truly know that what you’ve added or changed doesn’t break everything else on a project – regardless of size – is to test it and have a structured, scalable approach to testing. Manual testing takes time, sometimes A LOT of time, and you leave a lot to chance that way. Hence automation. When automated, a test can be written once and then just be executed. It makes it trivial to repeatedly ensure that your code matches all the criteria it needs to meet. (Note: I wouldn’t recommend this approach across the board, particularly if an MVP, pilot system, or feature with a lot of changing specifications is being created, which is quite common with my startup customers. For something mature, scalable, and maintainable in a financially feasible manner, it’s required.)
Martin’s discussion of “expected criteria” is another area that is really important for developers to understand and put to use. Ultimately, a customer or stakeholder will have to accept the software that a developer builds. When is the software done? What do clients judge the system’s success by? What aspects of the software do they value, and how do they prioritize what they value? To address this, I've always operated from the mindset of: the software is done when the customer tells me it's done. Part of that determination is working with the customer to define the acceptance criteria, though that can be difficult if the customer is non-technical or busy. Even high-level criteria are helpful, such as "Search for a product, and buy it” or “Load fast.” That’s fine so long as the stakeholders are open to iterations later to arrive at what they truly want. Conversely, the criteria could be very specific. Ideally, the developer helps the customer put more definition on their acceptance criteria throughout the process. The more quantitative, the better. The developer is finished with the work when they deploy or deliver the software or functionality that meets all the acceptance criteria. In conclusion, it’s not so important how the acceptance tests are written even though there are best practices; what is important is that you and the client know what is “done” and agree to it.
The book is chock-full of other applicable advice as well, from numerically-driven ways to handle estimates to suggestions for interacting with colleagues. All of the recommendations align to the goal of helping developers comport themselves as professionals so they’ll be treated as such by other professionals. It’s very important because our work is nebulous and our profession is new. I highly recommend this book to anyone who wants to be a professional software developer for the long-term or works a lot with them.
- Reviewed in the United States on August 8, 2014I thought this would be about details of a type of coding or coding practice. I can't say I enjoyed the book but I learned a great deal from it. This book deals with the philosophy and ethics of being professional first, and being a coder second. It brought home a lot of flaws that I've displayed across the years. That's why it wasn't all that enjoyable; the writing was all too clear and direct.
Although I've been around IT for some time, I've only recently started working directly with professonal developers. That was my motivation for buying the book -- so I could do a better job and maybe earn a bit of respect. It did introduce me to Test Driven Developement (that in itself ought to reinforce that professional coding is new to me). After just one day of trying it I find that I pick up after distractions much faster, cover more cases to test, and even write in such a way the code seems to document itself without the huge effort I've had to make in the past just to get so-so results. And it seems to make even some of the dreary parts more fun because you can almost imagine it as a game you play against yourself. So I'm sold on TDD.
I'd begun to realize the importance of having good estimates and honest, timely reappraisals before starting to read the book, but the author certainly drives home how very critical this is to a professional coder and the rest of the team.
If you've programmed essentially for yourself (as a systems admin or database admin) but are moving toward true development, this is an essential book to read. It will show you bad habits to avoid and drive home the professional behavior that will earn you respect. I admit that is based on only about three months of experience in working with developers, but over the past two weeks (since I started the book) I'm sure that I sense a greater acceptance and respect.
Top reviews from other countries
- EnvyReviewed in Canada on June 7, 2023
5.0 out of 5 stars A must read for any serious professional
I'm about halfway through and already its one of the most meaningful books in my career. It tackles a lot of the non-code issues in programming, such as being consistent on deliverables and communicating effectively.
No matter how good of a coder you are, following the advice in this book will make you a better professional and more employable. Absolutely worth every penny.
- Client KindleReviewed in Brazil on August 20, 2021
5.0 out of 5 stars Amazing book. I'd say it's a must for those who call themselves professionals.
Uncle Bob brings up quite a few important insights on how to behave professionally in as much aspects and situations as he could cover. It's a really good recipe on how to succeed professionally as a developer/team lead/tech lead/architect etc.
- CARLA MARIELA GONZALEZReviewed in Mexico on June 18, 2021
5.0 out of 5 stars Excellent book!!
This book is perfect for those who want to see and learn tips to improve as a professional, an excellent book for my taste.
- Average commieReviewed in India on January 26, 2024
5.0 out of 5 stars Eyeopening book
This is the best book to understand how to skill-up. From the first chapter till the last, you as a software dev will get evergreen wisdom and knowledge on how to become a professional developer. This book contains some terms which some freshers might not recognise, but that is for good. Robert Martin is a too good of an author and software developer. Do buy this book! It's a very good investment in your career!
Average commieEyeopening book
Reviewed in India on January 26, 2024
Images in this review
-
Martin M.Reviewed in Germany on March 24, 2020
5.0 out of 5 stars Must have für alle Software Developer und Ingenieure
Tja, was soll man dazu sagen. Die ganze Reihe (Clean Code, Clean Coder und Clean Architecture) gehört in die Sammlung eines jeden Software Ingenieures. Uncle Bob mag hier und da sehr weit in seine Vergangenheit abschweifen aber A) es macht doch Spaß diese Einblicke zu bekommen und B) ist die Serie voll mit Wissen dass lieber früher als später aufgesaugt werden sollte um identische Fehler nicht zu vermeiden. Eine schöner Aufbau ist auch die Reihenfolge der Serie. Zuerst Clean Coder lesen, dabei geht es eher um die persönlichen Eigenschaften eines "Coders". Dannach mit Clean Code direkt an sein eigenes Handwerk machen. Und mit Clean Architecture das ganze dann ein Level höher auf Enterprise Applikationen heben. Super Serie (ich copy paste das Review zu allen 3 Büchern, da sie für mich Hand in Hand gehen und alle uneingeschränkt empfehlenswert sind). Das neue "Clean Agile" ist als nächstes dran.