Back to the bookshelf

Typographic jacket · original cover not fetched

FROM THE SHARED SHELF · 2006–2026 SAMPLE

The Pragmatic Programmer

Andrew Hunt, David Thomas

62 readers recommend it across 38 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.

skydhash
The C programming language (ansi edition) - I had it before even leaning how to program properly. The explanations was so clear you could work out the examples with pencil and papers Mystical man-month and the pragmatic programmer. The former gave insight about managing a team, the other about managing yourself. Currently I’m reading: Unit Testing: Principles, Practices, and Patterns by Vladimir Khorikok Designing Data Intensive Application by Martin Kleppman And very recently completed Learning Domain-Driven Design by Vlad Khononov I think the three are quite good too
dusanh
The already mentioned The Pragmatic Programmer, 20th Anniversary Edition is so far the best I have read. It's not overly specific to one single thing, it tries to teaches general principles and good practice.[1] I also have a personal recommendation for when you want to better understand testing, QA, or want to/have to work with QA people. [2] [1] https://pragprog.com/titles/tpp20/the-pragmatic-programmer-2... (https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/) [2] https://www.amazon.com/Lessons-Learned-Software-Testing-Cont... (https://www.amazon.com/Lessons-Learned-Software-Testing-Context-Driven/dp/0471081124)
weinzierl
"A Philosophy of Software Design" by Stanford's John Ousterhout is excellent. It is quite concise (about 190 pages), but in my opinion, it includes all the essential information that the other books in that category would teach you. It leaves out a lot of cruft that over the years turned out to be non-issues (code styling, problems that come with object oriented programming, etc.) but occasionally - when the topic is popular and widespread (e.g. Uncle Bob advice) - addresses them as alternative opinions. It was first published in 2018 and is therefore not in the out-of-date category. So I would recommend it as essential read, hands down. If you want something a bit more elaborate: "The Pragmatic Programmer" has a 20th Anniversary Edition. It is a timeless classic, worth reading at any rate. That being said, I wish there was a single consistent resource[1] that summarizes truly modern software design philosophy in the sense that it leaves the object orientation inspired ideas behind that did not turn out to be useful and focusses on typed functional programming. Maybe with examples in Typescript and Rust.…

Also recommended in this reply

optymizer
I would split the books into two categories: those that improve the way you structure your code and deliver a software solution, and those that improve your technical understanding of the software platform and the computer you're using. The first are books like Pragmatic Programmer, Mythical Man Month, Code Complete, Design Patterns, talks by Alan Kay on software systems and OOP, even Game Engine Architecture etc. A lot of the content there is distilled experience which is much faster to learn from a book than gain the hard way on the job. The other books are practical deep dives. Here I would recommend a variety of books like Inside the Machine by Stokes, Computer Architecture by Hennessy, 21st Century C by Klemens, Crafting Interpreters by Nystrom, Compilers by Aho, Effective Java, Nature of Code by Shiffman, Ray Tracing Challenge by Buck, Hands on Hacking by Hickey, and others, depending on your interest and area of focus.
rado_stankov
The top book imho is The Pragmatic Programer. Here some other recomendations - Designing Data-Intensive Applications - Tidy First?: A Personal Exercise in Empirical Software Design - A Philosophy of Software Design - Refactoring UI - The Software Engineer's Guidebook - https://blog.rstankov.com/programing-books/
radicalbyte
It's in the same group as Pragmatic Programmer, Refactoring, Patterns of Application Architecture and the Gang-of-Four book for me. Still recommended for junior programmers as they're all teaching the core of good design. However seeing as the better frameworks/languages/IDEs have internalised a lot of the learnings and that the specific conventions may be outdated - so just follow the recommendations for your platform/framework.
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

mooreds
Hiya, I'd consider these books/articles/podcasts: * Secrets of Consulting by Gerald Weinberg: http://geraldmweinberg.com/Site/Consulting_Secrets.html Every problem is a people problem. * Refactoring by Martin Fowler et. al: https://martinfowler.com/books/refactoring.html talks about how and why to refactor, as well as providing a nomenclature for the process. * Code Complete by Steve McConnell. https://stevemcconnell.com/books/ A bit dated (the last version I could find was from 2004) but a great overview of the entire software process, from requirements to maintenance. * The Mythical Man-Month by Fred Brookes: https://www.oreilly.com/library/view/mythical-man-month-the/... (https://www.oreilly.com/library/view/mythical-man-month-the/0201835959/) best practices about software development, written about a project from the 1960 and 1970s. * The Joel On Software Strategy Letters: https://www.joelonsoftware.com/2000/05/12/strategy-letter-i-... (https://www.joelonsoftware.com/2000/05/12/strategy-letter-i-ben-and-jerrys-vs-amazon/) is the first one. All of them (I think there are five) are great.…
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
drunpy
The Pragmatic Programmer (Andrew Hunt, Dave Thomas), The Manager's Path (Camille Fourier), How To Win Friends and Influence People (Dale Carnegie). These books helped me to realize that many insecurities I had where "common" in Software Engineering field. The last one is especially good if you're looking for improve your relations with people.
diego_moita
When I began programming it was a book I respected. I read it twice. But today it is a book I see with flaws. I think it is a dated book, made for an era changed by web development, agile and functional languages. My criticisms: * It worries too much about little details on verbose object oriented languages (Java, C++). It is overly obsessed about ahead planning. * it established myths that I am not sure to be true (cone of uncertainty, orders of magnitude different productivity among programmers). * it failed to understand the agile philosophy and why it's ideas generate more adaptable software I think Pragmatic Programmer is a more interesting book.
xupybd
> What are you reading and why? Audiobooks are a special case for me. They help fill the time when I'm driving to work, mowing the lawn or doing dishes. If I consume my entertainment during these productive times, I find I'm less drawn to television and other mindless distractions. They also help me to be motivated to do tasks that I otherwise find dull. The better alternative is to find a friend to share these tasks with, but that is not always a practical option. While I do read for entertainment, I really enjoy non-fiction as long as it's light. If I want to explore a topic and truly learn something, I often need to find a text version. That said, I have found some great audiobooks that I have learnt from: -The Goal -Pragmatic Programmer -Designing Data-Intensive Applications -Thinking Fast and Slow -Ultralearning The best entertainment so far have been -Dune -The Expanse series -The Bobiverse series -The Expeditionary force series.…
qorrect
Not sure this one counts but it's one of the best books ever: Code by Charles Petzold - https://www.goodreads.com/en/book/show/44882.Code . Others would be: Neural Smithing ( its now obsolete but was great at the time ) https://www.goodreads.com/book/show/1153223.Neural_Smithing The Pragmatic Programmer https://www.goodreads.com/en/book/show/4099.The_Pragmatic_Pr... (https://www.goodreads.com/en/book/show/4099.The_Pragmatic_Programmer) The Effective series by Scott Myers https://www.goodreads.com/series/160060-effective-c
chana_masala
I agree that the Pragmatic Programmer is well done in it's audio form, and I also agree that Grokking Algorithms is terrible. I am currently listening Designing Data Intensive Applications and it's phenomenally done - the author clearly worked with the narrator to adapt the content to audio format, and the narrator seems to have experience or familiarity with the subject because he pronounces the technical jargon very naturally. I hope to find other software related audiobooks as good as DDAI is.

Also recommended in this reply

jessehorne
Some interesting books... 1. What would Machiavelli do 2. The Tao of Pooh 3. The Conquest of Bread On programming or engineering? 1. Pragmatic Programmer 2. Mr. Neighborlys Humble Little Ruby Book 3. Programming in Lua I feel put on the spot. I thought there would be more but I can't think of any at the moment. If you ever make a post asking for YouTube video suggestions, I'll definitely be able to comment on that much better. There's some really helpful videos out there, featuring Alan Watts and George Thompson that have helped me tremendously when dealing with the day to day engineering stress. I find that I'm learning less about programming lately and more about dealing with the anxiety. That has always been the biggest road blocker for me, anyways. It's easy to find the motivation to sit down and read a book or write a piece of code... It's hard to always enjoy doing it.
PaulAJ
* Alan Turing: The Enigma of Intelligence by Andrew Hodges. The definitive biography, with lots of detailed explanations of his work. * Making Software, edited by Oram & Wilson. A bunch of papers about evidence-based software engineering. * Beautiful Code, also edited by Oram & Wilson. A bunch of papers about especially elegant pieces of software. * Eiffel, by Bertrand Meyer. What Java should have been. * The Devil's DP Dictionary, by Stan Kelly Bootle. A satirical look at the computer industry circa 1980. * The Jargon File. (http://www.catb.org/jargon/html/). The language of the Elder Days. * Facts and Fallacies of Software Engineering by Robert Glass. * The Pragmatic Programmer by Hunt & Thomas.
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.

Also recommended in this reply

yingw787
I read through Code Complete 2 cover to cover my first year and I agree with parent it's more useful early on than later. There's a lot of discussion around best practices; I think there's an entire chapter on strategic whitespace. All the stuff in there makes sense, but it cements why it's important. Definitely check out "The Pragmatic Programmer"! There's definitely some good nuggets in there that helped me. Distinguishing full-blown prototypes vs. prototypical kernels that can be productionized, a.k.a. tracer bullet prototyping, is one.

Also recommended in this reply

wilsonnb
Our field is so varied that there is no good answer to this question unless you specify what you want to focus on. Some people are inevitably going to recommend The Art of Computer Programming, which hardly anyone has read and isn't that relevant to the work that 99% of us are doing. Someone will probably recommend The C Programming Language, also called K&R after the authors, but again it's not very useful unless you're going to be using a lot of C and even then I personally don't think it provides anything you can't get from guides on the internet. (I have actually read this one, but it's been a while) There are other classic textbooks that will probably be mentioned that are only useful to those in that domain. Many of us can get by without a deep understanding of algorithms and data structures, most people don't need to read a compiler book, etc, etc.…

Also recommended in this reply

mfrw
My take on some which I think should be atleast read once: 1) The unix programming environment 2) The design of the unix operating system 3) The Pragmatic Programmer 4) Programming Pearls 5) Computer Systems: A Programmers Prespective 6) K & R C 7) The art of Unix Programming. PS: I admit my bias towards systems.
chollida1
Three boks I'll recommend you read as soon as possible. 1) The Mythical Man month 3) The Pragmatic Programmer 3) Code Complete. The thing about these books, well atleast 1 and 3 is that when they were written they broke new ground. Or if that phrase bother you, they were the first mainstream publications that brought their core ideas to developers. Reading these books early in your career will help cement these best practices. Reading these books after you've been a practicing programmer means,IMHO, that the return you get from reading them goes way way down. You'll find that you've already learned all/most? of what they are trying to teach. You'll find yourself getting frustrated that they are preaching what you already know as common sense and first principles. Or put another way, I'm not sure there is much that someone who has programmed for 5-10 years can get out of those books that they haven't picked up somewhere else already or learned the hard way.

Also recommended in this reply

xstartup
McConnell, Steve. Code Complete. Redmond, WA: Microsoft Press, 1993. McConnell, Steve. Software Project Survival Guide. Redmond, WA: Microsoft Press, 1998. Maguire, Steve. Writing Solid Code. Redmond, WA: Microsoft Press, 1993. Ranade and Nash. The Elements of C Programming Style. New York: McGraw-Hill, 1992. Kernighan and Plauger. The Elements of Programming Style. New York: McGraw-Hill, 1982. Caner, Cem, et al. Testing Computer Software, Second Edition. New York: Wiley Computer Publishing, 1999. Hunt, Andrew, et al. The Pragmatic Programmer. Reading, MA: Addison-Wesley, 2000. Holub, Allen. Enough Rope to Shoot Yourself in the Foot: Rules for C and C++ Programming. New York: McGraw-Hill, 1995.
mathnode
- The Pragmatic Programmer - The Practice of Programming - The Mythical Man Month - The Cathedral and the Bazaar - The Art of Motorcycle Maintenance - Introduction to Algorithms - Hackers and Painters Some of these do contain mixed language code examples, but they are expressed in a way to be agnostic. A problem is a problem; in any language.
de107549
There were different book that impacted different stages of my career: As a programmer : 1. The C++ Programming Language by Bjarne Stroustrup. 2. Operating System Concepts by Silberschatz 3. Compilers by Aho As an agile software developer: 1. eXtreme Programming by Kent Beck 2. Pragmatic Programmer by Hunt and Thomas 3. Continuous Delivery by Jez Humble As an architect: 1. Domain Driven Design by Evans 2. Pattern-Oriented Software Architecture by Buschmann 3. Envisioning Information by Edward Tufte As a CEO: 1. Good To Great by Collins 2. Lean Startup by Eric Ries 3. Beyond Budgeting by Pfläging
amerkhalid
1. Head First Design Patterns - Didn't learn patterns in school. This book made a lot of difference in communication with more experienced programmers. 2. Pragmatic Programmer - A classic, learned many practical tips for day to day programming job. 3. Founders at Work - Motivated me to work on my side projects and be constantly learning.

Also recommended in this reply

msluyter
1. Godel, Escher, Bach -- Because it sparked my interest and got me started down the path. 2. The Pragmatic Programmer -- a classic. Reminds me that I need to re-read it. 3. Effective Oracle by Design, by Tom Kyte -- Not that I use Oracle any more, thankfully, but really provided a lot of insight about how databases function and how it pays to deeply understand their internals when writing webapps.
autokad
let me know if you guys find better replacements, but this is what I got on my list: O'Reilly - Scott Murray - Interactive Data Visualization for the Web Data Visualization with D3.js Cookbook A First Course in Probability Rails AntiPatterns - Best Practice Ruby on Rails Refactoring Bayesian Data Analysis Andrew Gelma The Pragmatic Programmer Code Complete Bishop - Pattern Recognition and Machine Learning O'Reilly Mining The Social Web
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.
kirang1989
Computer Systems: A Programmer's Perspective and NAND2Tetris: Elements of Computing Systems are the best books to learn the internals of computer hardware and solidify your understanding of how a computer works. The Pragmatic Programmer - My all time favorite. Awesome book to learn best practices of various aspects in programming. The Code Book: The Evolution Of Secrecy From Mary, Queen Of Scots To Quantum Cryptography, if you have a thing for cryptography.
a3n
They're both good. I'd definitely read Pragmatic before Complete, and I wouldn't feel bad for not finishing Complete. Outside the box, I'd recommend Heinlein's Time Enough For Love, for the attitude. Be as self reliant as possible, be as skillful as possible, be as useful to your team as possible. Find or grow an excellent team.

Also recommended in this reply

cldrope
Anytime I'm going to poke into a topic I like to nab one of the Head First books. They're a fast, easy way to learn a topic and after I'm done with it and into it deeply I'll find a dry reference. The Pragmatic Programmer Meta-programming at it's finest. Be a better programmer. Joel on software blog: Here's an example post. http://www.joelonsoftware.com/articles/fog0000000043.html There's quite a bit to learn in there. Many other books available free online. Primarily I suggest you read to an end, and as you get to a stagnation point you alternate between reading to learn new technologies or languages and reading to improve yourself as a programmer.

Also recommended in this reply

jing
Here's a few I've really liked that have a broader subject matter than only what you asked for. I figure that if you like to read you'd like these books. --- NON-FICTION --- Darkness Visible A Mathemematician's Apology Omnivore's Dilemma Fermat's Enigma The Code Book Born to Run Judgement of Paris Siddhartha Killing Pablo The Victorian Internet Lone Survivor I Hope They Serve Beer in Hell Surely You're Joking Mr. Feynman Papillon Into Thin Air Born on a Blue Day Touching the Void Got Fight The Conquest of Happiness --- FICTION --- Switch Bitch Lost Horizon The Cuckoo's Egg The Simlarillion The Time Traveler's Wife The Alchemist The Count of Monte Cristo A Canticle for Leibowitz Neverwhere My Uncle Oswald Stories of Your Life and Others Invisible Cities Life of Pi Atlas Shrugged --- WALL STREET / FINANCE --- When Genius Failed Liar's Poker Buffett (Lowenstein) Bull! Black-Scholes and Beyond (textbook) Fixed Income Securities (textbook) The Road to Serfdom The Smartest Guys in the Room Fortune's Formula The Fourth Turning Inside the House of Money --- ENTREPRENEURSHIP / COMPUTERS (non-textbook) --- Masters of Doom It's Not About the Bike Dot. Bomb Founders at Work The PayPal Wars…

Also recommended in this reply

warewolfe
Last three books I read were; Atlas Shrugged, Code Complete, The Mythical Man Month, The three books I'm currently reading; flex and bison, Mastering Algorithms in C Expert C programming, The next three books on the "to read" stack are; Cyptonomicom, The definitive guide to GCC, Managing projects with GNU make, Did anyone else find "Code Complete" to be a bit repetitive, in places a bit redundant, and sometimes repetitive? I think the "pragmatic programmer" was a better read, and I could not put down "programming pearls"

Also recommended in this reply

jerf
I would recommend a classic that you haven't read that isn't directly about a specific programming language, since it would seem to me that the virtue of reading a book about a specific language when you aren't in front of a computer is dubious. (Note I didn't say it had no virtue, I just find it dubious. YMWV.) Already mentioned is Code Complete and The Pragmatic Programmer. I'd add The Mythical Man Month, still a classic, but note that's a relatively short book and may not last long enough. (A depressing read in some ways; decades have passed and what's in the book is arguably common wisdom, yet I still encounter the errors outlined in that book every year.) Godel, Escher, Bach (mentioned by caffeine) is a love it or hate it book; check out a couple of summaries and see what you think. Personally, I don't recommend the SICP unless you're actually working through the exercises to some extent, and without a computer it's too easy to think you understand it when you don't. If you have already read all those, well, I'd suggest replying and saying so. :)
trotzke
On my desk: Getting Real (37Signals), Hardball (Chris Mathews), Prioritizing Web Usability (Jakob Nielsen) Nearby shelf: The Design of Everyday Things, Maverick, Founders at work, A Brief History of Time, A Pattern Language, Peopleware, Made to stick, Web Standards Solutions, Designing Interactions, The Pragmatic Programmer, The Mythical Man-Month, Oh, the Places You'll Go! Other good reads: Blink, Tipping Point, Long Tail, Freakonomics
rdoherty
* The Pragmatic Programmer * Becoming a Technical Leader * In Search of Stupidity * Hackers & Painters * Blockbusters * Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity * The Best Software Writing I * Behind Closed Doors * Managing Humans * The Mythical Man-Month * Peopleware: Productive Projects and Teams * The Non-Designers Design Book * Founders at Work * Good to Great * Dreaming in Code * The Art of the Start * Maverick * The Design of Everyday Things * The Art of Project Management * The Art of Innovation
hbien
http://farm4.static.flickr.com/3087/2325563013_d62ca9cde5.jp... (http://farm4.static.flickr.com/3087/2325563013_d62ca9cde5.jpg?v=0) I'm a fan of "The Pragmatic Programmer". Other books I thought were a good read: getting things done, 4 hour work week, and founders at work. I've also got all 6 seasons of 24 on my bookshelf =/, probably not the most productive times of my life.
Locke
A few sort of random selections from my bookshelf (in no particular order): * GEB:EGB - Hofstader * The Pragmatic Programmer - Hunt / Thomas * Peopleware - DeMarco / Lister * The Mythical Man Month - Brooks * Paradigms of Artificial Intelligence Programming - Norvig * Nausicaa of the Valley of the Wind - Miyazaki
nostrademons
My list, categorized: Business & Management 1. Innovator's Dilemma and Innovator's Solution by Clayton Christensen 2. Built to Last and Good to Great by Jim Collins. Built to Last is more applicable for startups. 3. Mythical Man Month by Fred Brooks. Anyone who has to manage a team of programmers and hasn't read this will fail utterly, unless they've already failed before (or been on a failing team). There's a lot that's counterintuitive about software project management. 4. Peter Drucker's work. Kinda long and repetitive, but some good insights. Marketing 1. All Marketers are Liars by Seth Godin. I like this better than Purple Cow, Guerilla Marketer's Handbook, and The Big Red Fez. Most of those have fairly obvious stuff. 2. The Tipping Point by Malcolm Gladwell 3. Crossing the Chasm by Geoffrey Moore Technical 1. Building Scalable Websites by Cal Henderson 2. High Performance MySQL by Jeremy Zawodny 3. Pragmatic Programmer by...well, it's mentioned elsewhere here. There are lots of other technical books I like, but most of them aren't directly relevant to the startup I'm building