Back to the bookshelf

Typographic jacket · original cover not fetched

FROM THE SHARED SHELF · 2006–2026 SAMPLE

Clean Code

Robert C. Martin

27 readers recommend it across 16 discussions

Topics are model-inferred labels.

Keep it on your reading list

THE WORD OF MOUTH

What made it worth passing on?

Original Hacker News comments, in the readers’ own words.

scrapheap
I suspect that one of the main reasons is that people read it and think they have to adopt all of it. Personally I still recommend it to people but with the caveat that they need to think about what aspects from it they adopt and which don't make sense for them in their environment. E.g. if function calls are expensive in the language they use and its compiler doesn't optimize their code by inline the ones it can, then they probably don't want to break things down to the level that Clean Code recommends.
ImPleadThe5th
I think it depends. For me, I can see how it helps a brand new developer get a feel for code style. That being said, some of the advice in the book is simply dated, some of it seems to break code down arbitrarily instead of on responsibility. On top of this, you get people who pedantically follow it and don't let a team of experienced engineers develop a style that works for them it's really annoying and it can make the codebase a bitch to work on. In the end, it should be a guide. And you should be thinking about what bits to take. But what ends up happening is "uncle Bob says...".
soheil
There are many books, articles, and other resources that can help you to become a better software engineer. Some popular choices include "Clean Code" by Robert C. Martin, "The Pragmatic Programmer" by Andrew Hunt and David Thomas, and "Code Complete" by Steve McConnell. These books provide practical advice and guidance on a range of topics, including design, testing, debugging, and refactoring.

Also recommended in this reply

summertime42
I have all of these on my shelf. Fantastic reads. * Extreme Programming Explained by Kent Beck * Clean Code and The Clean Coder by Robert C. Martin * Soft Skills by John Sonmez (1st edition) * Pragmatic Programmer by Andrew Hunt and David Thomas * Working Effectively with Legacy Code by Michael Feathers * The Mythical Man-Month by Frederick Brooks (Selfish plug) Additionally, I wrote my own book concerning the entire industry, from just starting out to becoming a self employed consultant when you get sick of fulltime work - all soft skills from my decade or so of the industry, as well - https://www.amazon.com/dp/B0B43V1JJW
Ologn
Code Complete has chapters on classes, functions, then several chapters on statements and several on variables. McConnell also refers to studies throughout - for example, he says studies show it is not necessarily that long functions are bad in and of themselves, but that the longer a function is, the more odds it will introduce more variables, and using too many variables in one function is bad. Somewhat dry, academic, great detail about the topics I mentioned with references to studies. I also like Clean Code by Bob Martin. It covers similar ground to Code Complete but it is more opinionated, and was an easy read for me and has a narrative drive. As opposed to the more academic Code Complete which covers things thoroughly, and with references to studies. Both are good books, covering similar ground, I like them both.

Also recommended in this reply

Jtsummers
Eric Evans' Domain-Driven Design. I've heard enough about DDD over the years that I figured I'd just go to the source. Liking it so far, I have some good takeaways but we'll see how effectively I'm able to use the ideas over the next couple years. Martin Kleppmann's Designing Data-Intensive Applications. Based on the frequent praise it receives here, haven't gotten far yet. I have some project ideas (for personal and professional projects) that could benefit from reading through it. Martin Fowler's 2018 update to Refactoring. I read the original one a long time ago. In context, we have a work lunch & learn series and I'm interested in doing some presentations on the topic of refactoring (why, how, and when in particular) so it seemed appropriate to refresh my memory on some specific terminology from the book as well as to see if it's an appropriate book to recommend to colleagues. My recollection of the first edition is that I'd recommend it to colleagues, but it's been so long I'd rather read it once more before actually recommending it.…
ozim
You start career. If you already have been programming like in high school or something and finished CS university don't focus much on technical books. Learn how to work with people not computers and listen. I assume you know objects, ifs, for loops. It is enough for technical start. I don't expect more from junior. "The pragmatic programmer" is quite good start on it. If you lack technical background and have problems with structure because you have not worked through university/school in structured way then "Code complete", "Clean code". Pick also something in depth for your specific area you are going to start, for C# good would be "C# in depth" to get really details of tech you will be working on. Get details in one programming language really well then you can pick up some other tech.
busterarm
I've read most of the recommended books, but as far as what I think has delivered immediate real value, I'm going to go with: 1) Clean Code 2) The Phoenix Project 3) UNIX and Linux System Administration Handbook I'm sure #2 will be something folks want to fight over shrug. If you want to sidestep years of headache it's a must-read though.
framebit
2340 (the mandatory group project course) also covered a lot of this stuff, though not in as much detail. The suggested reading for that course is a book that blew my mind when I first saw it as an undergrad: Clean Code by Robert Cecil Martin. I believe the examples are all Java, but the lessons are applicable to any language. Stuff like naming your variables more carefully than you name your children. https://www.amazon.com/Clean-Code-Handbook-Software-Craftsma... (https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882)
auganov
The classic Clean Code by Robert C. Martin <- probably won't learn much new, but worth it, just to let the concepts reenter your consciousness. The Secret War Against the Jews by John Loftus <- Changed the way I think about inner workings of the government. But at the same time, many claims are hard to verify. The life changing magic of cleaning up by Marie Kondo <- not life changing but decent and a quick, 2-3 day read. Nassim Taleb books, pretty sure everyone on here read it or plans to so, don't need my description. Halfway through The Undoing Project by Michael Lewis at the moment, it's pretty good, a joint biography of Kahneman and Tversky (of the "Thinking, Fast and Slow", which I guess is another HN classic).
cfeduke
Any book written by Charles Petzold is an enjoyable read, though particularly the non-MS specific titles Code and The Annotated Turing. Java Concurrency in Practice (2006) is older but relevant and clearly describes concurrency on the JVM. A must read for any Java, Scala, Clojure, etc. software engineer; well-written, enjoyable, concise. Practical Object Oriented Design in Ruby by Sandi Metz is a fun read packed with good principles for working in Ruby that are applicable in general to object oriented programming. Smalltalk Best Practice Patterns by Kent Beck is worth a read because the general principles are applicable to any OOP language. Clean Code by Robert Martin is excellent but a time commitment. (If you had to pick between SICP and Clean Code because time is at a premium I'd err on the side of Clean Code for practicality. Writing maintainable code is paramount.) The Joy of Clojure (Fogus/Houser) is excellent and mentally digestable even if you have no Lisp or Clojure background.
eddie_31003
For me, there have been more than one. I'll list them in the order I read them. I have them all in an eBook form to read in my Kindle App on my Nexus 7. 1) Clean Code 2) Pragmatic Programmer 3) Patterns for Enterprise Application Architecture There's some overlap in contents, but I feel they complement each other very well.
DanielBMarkham
Clean Code, by Robert Martin. Excellent book that dives in deep on how to write solid code. It's like having the ultimate code review in book form. Shameless plug: I just finished writing the first in a series of books about Backlogs. Good backlogs can make programming a lot easier. Conversely, horribly formed backlogs can turn coding into a death march. http://bit.ly/1fJd5Gg