12 ms·
The Pragmatic Programmer, 20th Anniversary Edition
- slowhand09 7y agoWhile your at it, please update "Pragmatic Project Automation".
- slowhand09 7y agoI should elaborate. Excellent book by Mike Clark, under the Pragmatic Programmers umbrella. Based an Ant and Cruise control. An updated version using a modern stack would be awesome.
- alasdair_ 7y agoThe original version of this book is something I'll always treasure. It sits next to "Code Complete", the Gang of Four's "Design Patterns" book and Martin Fowler's "Refactoring" on my top shelf and I still read parts of it every year.
- caseysoftware 7y agoAdd Fogel's "Producing Open Source Software" and Brooks' Mythical Man Month and you've perfectly described my shelf too. I found most of those when I was a lowly junior developer and they were instrumental in shaping my thinking, approach, and understanding of tradeoffs. I'd love to see more people pick them up.
- JustSomeNobody 7y agoKernighan and Pike’s “the practice of programming” is up there with those on my shelf.
- martininmelb 7y agoYes. That book has probably shaped my thinking and coding more than any of the others above (although they are also very good).
- tunnuz 7y agoWould you still recommend the original version? I have a printed copy and tried to read it ages ago, but gave up (it bore me). I am sure I'd appreciate it better now, but with a new edition coming out I'd be wondering whether I'm missing out.
- anderspitman 7y agoWhen I first read it 5 years into my now 10 year programming career, it felt timeless. I've been meaning to reread it ever since. Curious what I would think now.
- ralphc 7y agoHunt and Thomas themselves don't really recommend it anymore. Large parts of the industry have changed over the years. They're interviewed in episode 352 of The Changelog podcast. It's worth a listen if you're a fan, or interested in either edition.
- leetrout 7y agoThat was a great listen. Thanks for the recommendation.
- deleted 7y ago[deleted]
- sideshowb 7y agoSsh you're not meant to confess to design patterns these days ;-)
- mav3rick 7y agoTo any new grad reading this...Code Complete is still relevant !!
- maaaats 7y agoI bought a rubber duck for fun after reading the first passages as a student. Sincr then I've been known as the rubber duck guy and people constantly gift me them. They are all over the office.
- james_s_tayler 7y agoI couldn't bring myself to do it for real with an actual rubber duck. But I recently came up with the concept of "comment ducking" which is when you just start writing a comment in the source code as if you were explaining to someone and that actually works as a substitute!
- ilovecaching 7y agoI used to think those books were great before I got my first job at FAANG. Literally the only thing that matters is moving fast. Technical debt is just the price of scaling and beating the competition. Code quality is really not important at all as long as the product works and is bug free. So I’ve become extremely nihilistic about software development. It isn’t that I don’t think the properties of clean code and software craftsmanship aren’t worth it, it’s that companies and the engineers who build them from startups don’t care and are focused on keeping their doors open. Long term health is a very secondary concern. I’ve done my fair share of preaching that we should refactor and start focusing on quality during code reviews and it’s basically just shouted down with “don’t fix what isn’t broken” and YAGNI.
- taneq 7y agoWhile I share your nihilism about engineering quality in a startup environment, if you don't keep your doors open, the long term health of your codebase will fall to zero. If you have an established, cashflow-positive company that's not hell-bent on scaling fast (or being forced to scale unnaturally by VC backers) then the balance swings back and it becomes worth investing in your codebase.
- dawidw 7y ago> Literally the only thing that matters is moving fast > Code quality is really not important at all as long as the product works and is bug free According to Robert C. Martin is not possible to move fast without good quality.
- ilovecaching 7y agoThat's the thing though. Martin says that, but then you watch a company scale to billions of people ignoring all of his advice. So the question is - does Martin actually have quantitative proof that what he is saying is correct, or is he just selling wishful thinking? The field of software engineering as an academic discipline is the least understood of the computer science subfields because it's qualitative not quantitative field. Of course scaling to billions of users only proves that it can be done without quality, not that they could have done it better with quality software.
- deleted 7y ago[deleted]
- TbobbyZ 7y agohttps://www.amazon.com/Pragmatic-Programmer-journey-mastery-Anniversary/dp/0135957052/ref=sr_1_2?crid=SI7SPML1G35K&keywords=pragmatic+programmer&qid=1568907959&s=books&sprefix=pragmatic%2Caps%2C270&sr=1-2 https://www.amazon.com/Pragmatic-Programmer-journey-mastery-...
- CompanionCuuube 7y agoBuying from the pragprog site gets you a 50% discount on the hardcover when it comes out, if you have any interest in the paper version.
- deleted 7y ago[deleted]
- beat 7y agoThis book was a tremendous influence on me as a young professional programmer. I still quote from it regularly. ("SELECT isn't broken!")
- aprdm 7y agoThis book is in my opinion the most important book for professional software developers. It teaches you the craft.
- tedunangst 7y agoThere's some good advice in the book, but I found the majority of it seems to be rather goldilocks flavored. Implement the features you need, but don't add too many, but don't omit important ones either. Write some documentation, but not too much or too little. Etc. You read it, and oh yes, very wise, but not really helpful? Not much here would be useful in resolving a dispute between two programmers, one who wants to do things one way and one who wants to do it a different way.
- ergothus 7y agoI'll agree with your summary, but I'll also argue that moderation is often a lesson coders need to learn/remember. It is easy to "know" in theory but become dogmatic in practice. There are reasons we are still learning the lessons from 30+ years ago - we keep getting dogmatic about concepts that interfere.
- TeMPOraL 7y agoI think GP's point is that saying "you need to do X, Y, Z" in moderation" carries nearly zero bits of information. Of course I don't want to overdo or underdo something. But how much is too much? How much is too little? How do I know? And since code is something that accumulates over time, how do I maintain the balance? Answers to these questions is what's needed for coders to do a good job. The original book does encourage you to think about it, but doesn't provide many answers. The way I remember it, it was very useful at introducing you to concepts, so that you know that X, Y and Z are a thing in the first place.
- prepend 7y agoYou’re lucky it’s intuitive for you. I think it’s valuable to have credible sources backing up my intuition because I’ve worked in orgs that document way too much and way too little. So just calling out a desire for just right documentation (with copious examples) is handy to me so that people don’t idealize no doc systems or spend half their time documenting.
- Scarblac 7y agoAnyone with an opinion on the new edition? Worth buying if you already read the old one back when it came out?
- avgDev 7y agoJust read the DRY chapter, you can read it for free to get a feel of the book if you follow the link. Looks good to me, I will be picking this up.
- milesvp 7y agoThere’s been a lot of love for this book, but I found the title to be jarring. When I was given the book to read, I was doing a lot of maintenance work, and was doing a lot of ‘duct tape and bailing wire’ kinds of fixes to keep the systems functional, while slowly addressing the root causes of downtime and issues. To me this was truly pragmatic programming, but nothing in the first few chapters even tries to deal with the levels of pragmatism I needed in my day job that had far too many night time wake up calls. I couldn’t finish it. Any wisdom the book may have was lost to me, and I’ll likely never pick up the book again, I associate it with too much PTSD from that time in my life...
- mieseratte 7y ago> I couldn’t finish it. Any wisdom the book may have was lost to me, and I’ll likely never pick up the book again, I associate it with too much PTSD from that time in my life... I have that problem with a few unfortunately good albums, but never would have thought that might apply to someone with a book.
- nautilus12 7y agoWhats with companies constantly throwing people in the trenches and forcing them to be in constant maintanence mode all the time? I feel like they are just asking for burnout and turnover. If its that bad, give it to someone to greenfield some painful part of it rather than spend their life on the hamster wheel.
- jshowa3 7y agoYou'd be surprised how much companies operate in silos without any training, design, or planning. Most of the time, you're just throwing crap together at the last minute. Doing things without saying no.
- ok_coo 7y agoSink or swim is poor management, but if you're young, at your first tech job or haven't experienced anything better, how would you know? My first dev job was so terrible, I almost quit this career entirely.
- codesushi42 7y agoI... I don't know. I have never read this book. Ironically, I have read and enjoyed many books from PragProg. But this one always struck me as a "fufu" book, written around giving advice that one can independently reason and acquire during one's career. Am I wrong? Is this book worth reading if you already have many years of experience under your belt?
- rubinelli 7y agoIt's one of those books that is so widely read, that most of the lessons become common knowledge.
- commandlinefan 7y ago> Is this book worth reading If you have a day to kill, it's an entertaining read, and if you're an experienced developer, you'll find yourself shaking your head or nodding along throughout. But it's mostly just entertaining, well-written anecdotes - there's not really that much to _learn_ there.
- codesushi42 7y agoThis is exactly the type of answer I was looking for. Thank you sir.
- gmiller123456 7y agoThough I've never read the book, I've seen it mentioned so many times, I've gone to look at and skim pieces of it many, many times. My impression, which I agree could be completely wrong but I'd still be willing to bet money on it, is that the book is poorly organized and really just seems to be a really long rant. It's impossible to tell what a chapter or section is about from its heading. To me, that tells me the authors really didn't have a solid concept of what point they wanted to make before they started. From what I've skimmed, most of the knowledge seems like things that shouldn't need to be said, perhaps some people need to hear them. Without some sort of organization it's impossible to tell which parts of the book might be worth reading for me, I certainly don't need to read all of it.
- codr7 7y agoI read the first edition back in the days; and again, and again. Back then, during my first years working as a programmer, it was a gold mine and definitely helped push me in the right direction. One of my favorite authors wrote that every book eventually becomes a prison for the mind. At some point you will transcend the content which means it's time to move on. But that doesn't change anything about the book, it's still as excellent as ever for others. The only constant in this universe is change.
- tus88 7y agoThe main lesson of value I took away from this book is to value working software above all the trendy tools and tricks and languages and processes - including what "Agile" itself has become.
- pointblank002 7y agoSo, worth buying ?
- TheChaplain 7y agoI believe it is. Not all of it may appeal to you, but if there are just a few points that help you become a better programmer then it's worth it.
- sramsay 7y agoI read this book -- well, twenty years ago! I wasn't a very experienced developer at that point, and I found the book extremely helpful. What I've never been able to figure out is why it has never been updated in all that time. Does anyone know? I heard from someone who heard from someone that there was some kind of legal reason they couldn't update it, but I can't really imagine what that would be. Obviously, lots of books don't go into multiple editions, but given what this one was about, I felt like it couldn't possibly be entirely full of "timeless advice" that wouldn't ever show its age.
- agentultra 7y agoWhy concurrency? And why advocate a particular solution? A good solution, in my experience, isn't any particular implementation: it's to think about it, really hard, using tools that help you think about hard things... like math. "Actors," is like... soy sauce. However there were nuggets of gold in the original. Looking forward to finding the new bits and gems again.
- jkaptur 7y agoI was underwhelmed by this book. I think that so many of the practices (like version control) have become so popular that reading an argument for their use seems superfluous. That also makes it really jarring when it recommends something that decidedly hasn't taken off, like the blackboard design pattern. I had the same experience reading "The Design of Everyday Things". To some extent, these books seem most valuable as historical artifacts of what the tech world was like thirty years ago, rather than current references.
- jkmcf 7y agoThere are quite a few people at my company who resist “new” techniques, even if they are things like static linters. 20 years ago this stuff wasn’t prevalent, and now people should at least be able to make educated decisions. But, alas...
- 16bytes 7y agoI found it curious that you felt a lot of material was anachronistic. Perhaps that's because I was around as a professional before it was the normal and have recommended this book so many times. When I review the list of tips--which for those unfamiliar, is basically a list of take-aways sprinkled through each chapter--I find the list more timeless than anything. https://pragprog.com/the-pragmatic-programmer/extracts/tips https://pragprog.com/the-pragmatic-programmer/extracts/tips The number of times I've told people that "select" isn't broken, or to use tracers, or fix broken windows is more than I can count.
- WalterBright 7y agoWhen I finally read Romeo and Juliet, I was surprised at how many cliches and tropes were in it.
- billforsternz 7y agoFirst time ever I've wanted to upvote multiple times on HN
- gridspy 7y agoWhen I finally read Romeo and Juliet, I was surprised at how many cliches and tropes were __from__ it. There, I fixed that for you. ;)
- flyGuyOnTheSly 7y agoI visited the link with noscript enabled, and was redirected immediately to https://pragprog.com/no_js https://pragprog.com/no_js So I disabled noscript, which refreshed the page automatically, so of course I was still on https://pragprog.com/no_js https://pragprog.com/no_js and not https://pragprog.com/book/tpp20/the-pragmatic-programmer-20th-anniversary-edition https://pragprog.com/book/tpp20/the-pragmatic-programmer-20t... ...Not very pragmatic of them IMHO. I do quite enjoy my copy of the book, however :P If only to reassure me that I am generally doing things correctly, it didn't really teach me a whole lot. Never hurts to brush up on the basics.
- aerophilic 7y agoOne thing I have used over and over again out of this book is the concept of a “Tracer Bullet”. I find it works extremely well for not just code, but any complex system you are working to define. I don’t think a month goes by that I don’t quote this concept to a group or individual. Really appreciate how they put all these ideas together.
- pablooliva 7y agoThe codingblocks podcast has a whole series discussing the various chapters: https://www.codingblocks.net/category/podcast/ https://www.codingblocks.net/category/podcast/
- greyhair 7y agoIncomplete response received from application That is what I got from the link. I haven't read that book in fifteen years. Are there any interesting changes since the first edition?