
The Pragmatic Programmer, 20th Anniversary Edition - duck
https://pragprog.com/book/tpp20/the-pragmatic-programmer-20th-anniversary-edition
======
alasdair_
The 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.

~~~
ilovecaching
I 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.

~~~
dawidw
> 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
That'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.

------
jkaptur
I 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.

~~~
jsperson
> I think that so many of the practices (like version control) have become so
> popular that reading an argument for their use seems superfluous.

This made me laugh - not because you aren't right (in theory), but because I
just took over a project from a big four consulting company. When I asked
about the location of the latest version of the code (after looking in VC and
not finding it)...answer: on the production server. "We could have checked it
into VC, but didn't want to take the time."

I've seen at least n=6 of these in the past couple of years.

Sometimes the oldies are goodies.

~~~
Godel_unicode
I was just told at my day job that the team will not be using VC for tracking
production analytics code because "using git is over-engineering".

~~~
Jtsummers
There's a set of projects in an adjacent work group that does not use version
control. Instead, they create snapshots at various stages of development
(before certain formal reviews). These snapshots are fine, actually they're
useful, but they don't replace version control. I had a chance to explain and
demo git to one of them, who'd written some 10k lines of code between
snapshots, to explain how git could help _him_ manage _his_ work better
(easier to try things and roll them back, as the primary one). This helped, he
had started to use it though I don't know if it's spread yet.

Fortunately there is no opposition to version control in their group, it's
just momentum keeping them from changing.

~~~
roland35
This reminds me of the comic which has a machine gun salesperson trying to
sell to a medieval king who says "I can't be bothered with that, I have a
battle to fight!"

------
tedunangst
There'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.

~~~
AnimalMuppet
People have a tendency to become extremists. I sometimes think of it as a
ridge, with cliffs on both sides. People look at one of the cliffs, and back
away from it, because it's a _cliff_ , and it's _dangerous_ , and so they're
going to make _sure_ that they don't fall off of it. But they get so focused
on that cliff that they forget that there's also a cliff on the _other_ side.

So in that sense, the advice is good and necessary. But it's kind of not,
because the kind of person who needs the advice isn't often the kind of person
who reads such a book.

~~~
tedunangst
I would argue that "the people who need to read this book" will read it and
then announce, yes, of course, that's exactly how I do things. Perhaps that's
why it's so popular. Everybody can see themselves in it.

------
milesvp
There’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...

~~~
nautilus12
Whats 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
You'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
Sink 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.

------
aprdm
This book is in my opinion the most important book for professional software
developers. It teaches you the craft.

------
codr7
I 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.

------
Scarblac
Anyone with an opinion on the new edition? Worth buying if you already read
the old one back when it came out?

------
pablooliva
The codingblocks podcast has a whole series discussing the various chapters:
[https://www.codingblocks.net/category/podcast/](https://www.codingblocks.net/category/podcast/)

------
tus88
The 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.

------
agentultra
Why 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.

------
sramsay
I 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.

------
beat
This book was a tremendous influence on me as a young professional programmer.
I still quote from it regularly. ("SELECT isn't broken!")

------
aerophilic
One 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.

------
gmiller123456
Though 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.

------
slowhand09
While your at it, please update "Pragmatic Project Automation".

~~~
slowhand09
I 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.

------
greyhair
Incomplete 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?

------
avgDev
Just 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.

------
TbobbyZ
[https://www.amazon.com/Pragmatic-Programmer-journey-
mastery-...](https://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)

~~~
CompanionCuuube
Buying 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.

------
pointblank002
So, worth buying ?

~~~
TheChaplain
I 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.

------
codesushi42
I... 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?

~~~
commandlinefan
> 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
This is exactly the type of answer I was looking for. Thank you sir.

------
flyGuyOnTheSly
I 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-20t...](https://pragprog.com/book/tpp20/the-pragmatic-
programmer-20th-anniversary-edition)

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

