[HN Gopher] The Pragmatic Programmer: 20th Anniversary Edition (...
___________________________________________________________________
The Pragmatic Programmer: 20th Anniversary Edition (2023)
Author : ahalbert2
Score : 204 points
Date : 2025-11-16 20:46 UTC (1 days ago)
(HTM) web link (www.ahalbert.com)
(TXT) w3m dump (www.ahalbert.com)
| rendleflag wrote:
| I bought the first edition when it came out. I was just 3 years
| into my SW development career and it provided a lot of good
| advise. I bought the second edition and enjoyed it, but the first
| edition had a special place in my heart.
| hamasho wrote:
| When I started a programming job, I read this book, Clean Code,
| and Code Complete. Code Complete is kinda old but still great,
| Clean Code is not bad but it's Java centric and has a lot of
| questionable tips. But The Pragmatic Programmer never gets old.
| smingo wrote:
| I got on very well with Van der Linden's _Deep C Secrets_. It
| 's from 1994, so misses out on the newer versions, but aside
| from that it's aged well, IMHO.
|
| And good news: it's been open sourced:
| https://freecomputerbooks.com/Expert-C-Programming-Deep-C-Se...
| and its well regarded on Hacker News
| https://hackernewsbooks.com/book/expert-c-programming-deep-c...
| .
| _kst_ wrote:
| Are you sure it's been open sourced? I'm reasonably sure
| you've linked to a site offering pirated copies.
|
| There are several links to PDF versions of the book. None of
| them include either a copyright page or a statement that it's
| been released as open source.
|
| The author's own website <https://afu.com/> includes errata
| for the book, but doesn't provide or mention a free copy.
|
| A free sample of the Kindle version of the book does include
| a copyright notice. A book published in 1994 is not public
| domain unless it's been explicitly released.
|
| Something that appears to be a legitimate PDF sample (not the
| while book) is here:
|
| https://ptgmedia.pearsoncmg.com/images/9780131774292/samplep.
| ..
| android521 wrote:
| This is my favourite : A philosophy of software design by John
| Ousterhout. I haven't found a better book.
| djeastm wrote:
| We only need to see one comment from you about this, don't
| we? Please give it a rest.
| arthurfirst wrote:
| I was given code complete by my first programming manager in
| around 99 -- maybe he thought I needed to read it heh
| r2ob wrote:
| The best programmer book i've ever read
| dripton wrote:
| A great book, but I read it too late, after I had already learned
| pretty much everything it says the hard way. So it was one of
| those books I enjoyed because it reinforced what I already
| thought, but didn't really get much from. Wish it had been
| written a decade earlier.
| rochak wrote:
| I'd say learning things on your own, even if they take time, is
| still better as you don't have to actively force yourself to
| develop that mindset. We often rush towards our goal without
| realizing how important the journey (small steps) is. Isn't
| reaching the goal more worthwhile if you have enjoyed the
| journey along the way? Isn't that what it means to be human?
| sfpotter wrote:
| Alternatively, consider being an idealistic programmer!
| - Fall in love with a single topic, regardless of how trendy.
| - Learn as much as you can about it. - Keep learning about
| it. - Learn about it some more. - Spend years of your
| life doing nothing but breathing and thinking about this one
| topic. - Let fads and fashion pass you by. - Don't
| settle for good enough. Try to build the best version possible.
| - Choose where you work based on your ability to reach staggering
| new heights with this one topic, and disregard whether it seems
| like an amazing CV line item. - Fail to even notice fads
| and fashions passing you by. - Become a master.
| manoDev wrote:
| Yeah, we need both types.
| shakabrah wrote:
| Amen
| theultdev wrote:
| I get you're comparing philosophies but none of those
| suggestions are mutually exclusive to the lessons taught in
| this book.
| emil-lp wrote:
| Not only are they not mutually exclusive, but if we're being
| honest, only idealistic programmers care enough to read
| Pragmatic Programmer, and they read it in the process of
| becoming a master.
| EagnaIonat wrote:
| Redundancy groups are full of idealists.
|
| It's ok to be passionate about a topic, but also understand if
| that topic is still relevant in 3-5 years.
| sfpotter wrote:
| Being an idealist doesn't excuse you from being a realist.
| begueradj wrote:
| Over specializatoin is the enemy of adaptation.
| sfpotter wrote:
| It is? I often find that I work really well with people who
| are highly adaptable generalists. They help me get random
| things done that I'm slow at, I help them get highly
| specialized things done that they're slow at.
| android521 wrote:
| I have read many books. If you can only read one book about how
| to program in your life , I would say that it is this book: A
| philosophy of software design: John Ousterhout. It is 10 times
| better than the next best book.
| garethrowlands wrote:
| It's very good. And quite short!
| ck45 wrote:
| For me "the problem with software, why smart engineers write
| bad code" is the prequel. Not as technical, but explains a
| big problem
| keyle wrote:
| Thanks, purchased.
| tmoertel wrote:
| This model of complexity from the book is very useful:
| complexity(system) = sum(complexity(part) *
| time_spent_in(part) for part in system)
| FrustratedMonky wrote:
| Did that, doesn't pay. Being a technology hipster is like being
| a master of jazz, it doesn't pay, so you sell out and play pop
| music.
| sfpotter wrote:
| What I'm describing is actually the exact opposite of being a
| hipster. From the dictionary, a "hipster" is "a person who is
| unusually aware of and interested in new and unconventional
| patterns (as in jazz or fashion)".
|
| And, for what it's worth, following my own advice (I wouldn't
| give it otherwise), I haven't had major problems finding
| work. I live a comfortable life: own a house, have a wife and
| a kid, with another on the way...
|
| Actually, knowing what it's like out there for a generalist
| programmer, I feel maybe _more_ recession-proof with my
| highly specialized skill set (knock on wood). There are fewer
| jobs out there for me, but when I apply to the ones that are
| available, people tend to be interested in talking to me.
|
| Of course, one thing that helps that I didn't mention in my
| original list: aggressively network with the other people who
| do the same thing that you do...
| FrustratedMonky wrote:
| I tend to agree with everything you said.
|
| Was just thinking of this
|
| " - Fall in love with a single topic, regardless of how
| trendy. "
|
| Sounded hipster.
| sfpotter wrote:
| Fair! Personally, I'm not sure how you can get good at
| something if you aren't at least a little in love with
| it.
|
| Here's another take:
| https://www.youtube.com/watch?v=75Ju0eM5T2c
| jimbokun wrote:
| All comes down to whether or not you picked a topic that will
| be financially viable several years later.
| netdevphoenix wrote:
| All those who fell in love with Silverlight, Flash or UWP
| likely agree with you
| sfpotter wrote:
| Yeah, but what were they doing with these tools?
| sfpotter wrote:
| Yup. There is certainly an element of strategy that enters
| into it. Doubling down on a single programming language or
| piece of tech is probably not a good idea. Maybe doubling
| down on a niche _field_ or _subject_ is...
| Xss3 wrote:
| An incredible book. One very near and dear to my heart. It always
| sits on the bookshelf behind me with pride of place in every
| video call or conference.
| dshah wrote:
| One of my favorite books on the actual practice of programming.
|
| The other one is "Code Complete".
| btilly wrote:
| _Code Complete_ is my favorite, hands down. _The Psychology of
| Computer Programming_ was also very much worth the read.
| dugmartin wrote:
| If you are into podcasts Steve McConnell (the author) was a
| guest a couple of months ago on the pragmatic engineer
| podcast. My one take away from that podcast was just how
| young and new in his career he was when he wrote that book.
|
| https://newsletter.pragmaticengineer.com/p/code-complete-
| wit...
| IgorPartola wrote:
| I have read a number of programming books but the only two that
| really stood out to me and that I still remember are The
| Pragmatic Programmer and K&R The C Programming Language. They are
| obviously very different but foundational in ways that enabled me
| to get a lot of things done.
|
| I do still encourage people to learn C only because you could
| understand how the language works or a long weekend and it will
| help you appreciate just how things actually work under the hood
| (and a bit above the assembly instructions level). And TPP is
| great for helping you understand what to do when actually working
| on a deliverable project and not just the exciting parts. It's
| the difference between building a toy that runs on your machine
| and a project others can run and use.
| kylecazar wrote:
| My first programming book was K&R as well. It was an excellent
| introduction to programming.
|
| You might think that coming from K&R, I wouldn't have liked my
| second and third books, which were two of the first _Head
| First_ series. They took essentially the opposite approach from
| K &R, but I enjoyed them too and learned quite a bit. Something
| about the content lended itself to a more visual approach to
| the material (maybe the nature of OOP).
| IgorPartola wrote:
| It was technically not my first. Really my first was around
| age 6 or 7 and it was a companion to my grandfather's Pravetz
| 8D which had a listing of BASIC commands and I think like 20
| or so listings of programs. His students had also programmed
| a few games that he had copies of which were cool. I ended up
| trying to modify them and writing some of my own but that's
| how I got into this whole thing.
|
| But K&R was the first book that I read that made me feel like
| I fully understood what was happening. Of course I was
| missing a lot of nuance a a bunch of abstraction layers that
| I learned about later but that book felt very self-contained.
| I read the first time it when I think I was 25 or 26 and at
| 39 I might want to do a refresher.
| android521 wrote:
| You should read A philosophy of software design by John
| Ousterhout. It might become your favourite book.
| breppp wrote:
| I second that, absolute favorite
| alkh wrote:
| I'm really glad I got it after stumbling across the original at
| my university library. It's really nice reading it from time to
| time and getting inspired to become a better developer
| hamdouni wrote:
| My first programming book was The ZX81 Basic. The best I ever
| read.
| android521 wrote:
| I have read many books. If you can only read one book about how
| to program in your life , I would say that it is this book: A
| philosophy of software design: John Ousterhout. It is 10 times
| better than the next best book.
| OrderlyTiamat wrote:
| Why did you repeat this comment all over this post?
| kartofflo wrote:
| Maybe the author
| nottorp wrote:
| Their "AI agent" did it.
| 1313ed01 wrote:
| When the first version came out, around the time I got my first
| job, it felt like everyone around me had read this book, and for
| a long time we were throwing around quotes from this book. Sadly
| after a few years it felt like the only thing that really stuck
| in the larger community was "Don't Repeat Yourself", which wasn't
| really something that at the time stood out as much more
| important than many of the other "rules".
|
| My personal favorite was always the one about "English is just a
| programming language", but when I read the 20th anniversary
| edition that one seemed like it had been toned down? I did not go
| back to find the original one to compare, but the way I remember
| it it was pretty hardcore about keeping text as text and using
| tools like for programming (use macros in text to avoid repeating
| yourself etc).
|
| Overall the 20th anniversary did feel a bit less idealistic? I
| guess for a "pragmatic" book that makes sense, but I remember the
| original like it was making stronger arguments for or against
| things. I really liked the (anti-)IDE chapter, or the parts on
| the importance of learning how to use a good text editor well,
| for instance, but now they basically cut that out. Did give me
| the impression that they were trying to be down with the kids at
| times.
| begueradj wrote:
| That's because being strongly opinionated about anything
| nowadays is viewed down.
| FrustratedMonky wrote:
| But was it actually changed? Or was it a memory of a strong
| opinion that upon re-read years later, wasn't that strong of
| an opinion?
|
| I am curious if they did change that much, or it is just
| peoples memory and nostalgia playing into the impression.
| marcosdumay wrote:
| Well, cutting the IDE out may happen because IDEs improved.
|
| AFAIK, all the hate from IDEs at the time came from the way
| Eclipse and the Microsoft ones work, and all the love came from
| the Borland ones. As Borland failed, the "correct" opinion
| became obvious, but it was actually only correct by accident
| and didn't reflect any inherent properties of the software.
| tantalic wrote:
| Twenty years ago, I was strongly anti IDE and pro text editor.
| In the last ~10 years or so text editors have gained features
| previously only found in IDEs and IDEs have improved their
| performance and brought in features from text editors. I would
| argue the distinction between text editors and IDEs at this
| point is academic.
| globular-toast wrote:
| The main difference is "IDEs" typically contain custom, ad
| hoc text editors in them. They don't allow you to build
| transferable skills that can be used to edit _any_ text.
| People who use them will typically use some other editor to
| make documents, another one for their notes, and one per
| programming language.
|
| I started using Emacs 15+ years ago because you can easily
| make it into an IDE, but it works for any text. Essentially
| it's like learning to use a kitchen knife vs buying a mincer,
| a grater, a food processor, a mandolin, and whatever other
| single-purpose tools they're peddling at the kitchen shop
| today.
|
| Since then, the Emacs way has caught on. I see stuff like
| Atom and VSCode as just vastly inferior forms of Emacs. They
| can all be text editors or IDEs if you want them to be.
| adzm wrote:
| > Keep Knowledge in Plain Text
|
| One of the smartest takeaways from all of this, which keeps
| getting proven over and over.
| lvl155 wrote:
| I don't know why seasoned veterans praise these books and then
| implement some of the worst interview practices to test people on
| writing convoluted bs code for hours. Just doesn't make sense. Do
| you want to hire pragmatic programmers or monkeys?
| arthurfirst wrote:
| Have the first edition and I had the PDF version before the print
| was released I'm pretty sure... it was a thing with those
| Ruby/Pragmatic books when they were 'in development'. Still have
| my K&R The C Programming Language from 97 with my notes in it.
| software_writer wrote:
| A classic book. I learn something new each time I read it.
|
| Also, Dave Thomas, one of the authors, is looking for a job.
|
| > So, I'm looking for a job!
|
| > Internal or external consultant, devrel, training, team fixing,
| design, architecture. WFH or travel the world.
|
| > So, if you know any company that has a Dave-shaped hole, please
| email me. Some more about me on my site. Links below.
|
| > Many thanks.
|
| > email: dave@pragdave.me
|
| https://x.com/pragdave/status/1978142569272877078
| huherto wrote:
| I know that there are many reasons for people to work after 65.
| I also know that sometimes life takes surprising turns. But it
| makes me nervous to see people so capable as Dave that are well
| known in our industry looking for a job. What is the hope of
| the rest of us ? I love software engineering but I still hope
| to be able to retire to work on my own projects.
| itpragmatik wrote:
| One of the best book on software as a craft - read it couple
| decades ago and still recommend it to anyone who wants to be good
| in this craft!
| jjice wrote:
| It's a very solid broad programming book! I thought it was going
| to be too generic or over hyped, but it was solid. That said, I
| do find the most interesting software books to be about
| specifics, but that's nothing against this book.
|
| Out of the classic broad books that get recommended all the time,
| this is one of the best IMO. I really don't like Clean Code
| (Martin's follow up, Clean Architecture is fantastic, though).
| Refactoring by Fowler is also a great generalist language and
| system book (but a specific topic).
| kristianp wrote:
| Was it this book that introduced YAGNI? (You Ain't Gonna Need
| It). I feel like it was back around peak Rails hype in 2009 that
| that was bandied about a lot.
___________________________________________________________________
(page generated 2025-11-17 23:01 UTC)