DEV Community

Cover image for What are some "classic reads" in programming?
Ben Halpern
Ben Halpern

Posted on

What are some "classic reads" in programming?

I'm thinking of blog posts and resources that are more than a few years old, but had a big impact and continue to be circulated as relevant and interesting reads.

Top comments (78)

Collapse
 
ben profile image
Ben Halpern

This one comes to mind for me:

"We can't send email more than 500 miles"

Collapse
 
chris_bertrand profile image
Chris Bertrand

That's such a good read! It's like an 90s private eye drama!

Collapse
 
madza profile image
Madza

hackernews? hahah xdd

Collapse
 
helderberto profile image
Helder Berto
Collapse
 
elfrasco2046 profile image
Adrian Paredes

I'm reading the 20th Anniversary Edition, from 2019. This book is a must for every developer.

Collapse
 
codercatdev profile image
Alex Patterson

Same here

Collapse
 
helderberto profile image
Helder Berto

I'm thinking to get the new version, do you recommend that?

Thread Thread
 
elfrasco2046 profile image
Adrian Paredes

Yes, I do. There are new chapters. Use cases and examples are upgraded, too. I recommend reading the introduction to the second edition and the free chapter to get an idea of what to expect. I'm reading the fourth chapter and it's living up to all my expectations.

Collapse
 
bernardbaker profile image
Bernard Baker

That's what I've recommended.

Collapse
 
_hs_ profile image
HS

Not a blog but hey. Also new book seams quite nice

Collapse
 
dana94 profile image
Dana Ottaviani

CSS-Tricks' post on flexbox.

css-tricks.com/snippets/css/a-guid...

Collapse
 
shofol profile image
Anower Jahan Shofol

It's really a great resource. I just return to it time to time.

Collapse
 
dechamp profile image
DeChamp

lol I used this last night for the 1000 time.

Collapse
 
eddycorderol profile image
Eddy Cordero
Collapse
 
perpetual_education profile image
perpetual . education • Edited

Shoot. We've been trying to put together a list!

But the problem with this stuff is - it always depends on where you are at.

A lot of people swear by "The Pragmatic Programmer" and "The Mythical Man-month" - and we think those are great. They're actually right here - within reach!

Image of "The Pragmatic Programmer" and "The Mythical Man-month"

But those are NOT the right books to read for someone who is just starting out. Those are like - fun thought-provoking essays and stuff for career programmers who are already advanced and experienced. (please argue this point if you feel differently)

Those are definitely "classic" reads. But - we're curious about what could become a 'classic' foundation for more than code.

"Clean Code" and "Code Complete" are also classic reads - but could devastate the reader if picked up at the wrong time in their learning path.

We think that these should be mandatory reading:

"Design for the Real World", "Ruined by Design" (both for understanding your impact and responsibility as a creator) and "Exercises for Programmers" as a practical (language agnostic) guide to learning programming.

Book covers of <br>
"Design for the Real World", "Ruined by Design", and "Exercises for Programmers"

Also required: "The Elements of User Experience."

"The Design of Everyday Things" is another one. (make sure you get the latest edition)

UX: "Don't Make Me Think", "The Inmates Are Running the Asylum"

BLOGS: "Coding Horror" "Joel on Software"

ESSAYS: "I, Pencil"

If you could just give someone only one book to help them learn to be a confident and responsible programmer, what would it be?

We would probably choose "The Elements of User Experience" - have the student practice things for a while - and then introduce "Design for the Real World" - or maybe we'll need to write a little collection from all of those books as an entry point.

Collapse
 
elmuerte profile image
Michiel Hendriks

But those are NOT the right books to read for someone who is just starting out. Those are like - fun thought-provoking essays and stuff for career programmers who are already advanced and experienced. (please argue this point if you feel differently)

They are indeed not entry level books.

The Mythical Man-month is for when you get to a position where you get/share responsibility for a team. This book is a foundation of a lot of (attempted) changes in the way we organize to develop software. You must understand the past in order to improve the future.

However, The Pragmatic Programmer is something you should start to read after a year (or two) in software development. Same with Clean Code and Clean Coder. These books are not complex and do provide critical insights.

Code Complete I would hold of on for 5 years. Simply because that book is massive, in size and density.

Collapse
 
perpetual_education profile image
perpetual . education

We haven't read all of Clean Code yet: but they are sitting over there on the shelf... just staring at us. "Web Dev" and "Software Engineering" and all of the "names" of the "things" - are certainly connected - but also have different primary concerns. Small design shops, marketing agencies, and even complex web applications just don't seem that complex! OOP often plays no real role. Hook up a few APIs + write some markup + test with users + iterate. Are "Web documents" really "software?" In many cases - we'd rather hire a developer that can think through UX and has empathy for the user - over someone who has read those books. BUT we'll have to see what happens after we finish reading Clean Code - and Code Complete. ; ) If memory serves - there were a lot of C type language examples that didn't land with us at the time.

Collapse
 
elmuerte profile image
Michiel Hendriks

The Mythical Man-Month. After 45 years it is still relevant. It's like the industry hasn't learned much.

Collapse
 
benwtrent profile image
Benjamin Trent

Blogs

not really part of the original ask, but aren't books just long blogs?

Books

  • The K&R as an example of dense, well written technical prose
  • Pragmatic Programmer. Solid advice, always applicable
  • CODE Petzold's work still stands as one of the best intros into thinking like a computer
  • SICP. Tough, even for seasoned engineers. Helps mold your brain and expand your reasoning. Even though MIT switched to python for the class, everybody should learn a lisp. Makes you a better engineer, even if you never use a lisp in production.
  • The Phoenix Project. Originally published 7 years ago. Unsure if this is far enough in the past to be "classic". But every developer that works on a team with more than two people needs to read this.
  • The design of everyday things

videos

Collapse
 
daedtech profile image
Erik Dietrich

Wow, you've got me in there with some pretty impressive company. If you'd told me 10 years ago that I'd be mentioned alongside Dave Thomas, Andy Hunt, and Joel Spolsky in a a round-up, I'd have spit out my coffee. Thanks for the mention of the Expert Beginner posts :D

Collapse
 
edouardmangel profile image
edouard-mangel

Oh man, your blog post about expert beginner made such an impact on me and my career!

I hope you'll read this because I'm really grateful I got the chance to read it when I did. I was in a company for which what you describe in the article is the exact description. I am a junior dev, and I thought I was lame and that I would never be a good developper, and that my only way out was to get a project management job as soon as possible.
Since I read your post I quit from that company because I understood I would never learn anything good, I learned a lot from books, and even though I still have a lot to do to be good at what I do, your post was the tipping point where I decided to change my working environment. My clients have been happy about my job since that, and I learned to love coding again!

Thank you!

Collapse
 
abdullahdibas profile image
Abdullah Di'bas • Edited

@ Erik Dietrich I've just completed reading your post, and I find it very interesting. Thanks @Benjamin for mentioning this.

Collapse
 
benwtrent profile image
Benjamin Trent

It's good :D. I remember reading it when it came out. Sent it to everyone I knew.

Collapse
 
elmuerte profile image
Michiel Hendriks

For developers I would recommed reading The Unicorn Project. It is the "sequel" to The Phoenix Project. The same event but from a software developer's angle rather than ops. Obviously read them both.

Collapse
 
vsalbuq profile image
Vinícius Albuquerque

SICP is an awesome book. It divides information technology in data and procedures that transforms that data. It simplifies everything when you're dealing with the most common problem we have today, which is managing state. If you keep those two separated, you can reason about your code without having to be a genius.

Collapse
 
val_baca profile image
Valentin Baca

Excellent list!

Collapse
 
iggredible profile image
Igor Irianto • Edited

A few that I immediately thought of:

(Edit: now that it's expanded to include other resources, I'm adding one more)

Collapse
 
bravemaster619 profile image
bravemaster619 • Edited

Effective Java (by Joshua Bloch). I've read it when I was a post grad student and deeply amazed by it.

Collapse
 
colinmtech profile image
Colin Morgan • Edited

I know it's not directly a software book, but I think every developer should read How to Win Friends and Influence People. If there's one weakness the typical developer type suffers from it's an inability to talk to people in a way that fosters positive relationships. If every developer read this book we'd all enjoy working with each other much more.

Collapse
 
michi profile image
Michael Z
Collapse
 
bholmesdev profile image
Ben Holmes

I reference back to this all the time. It's a great post explaining how bundlers work at the fundamental level. Helps explain where the<script> tags stop and where the build tools begin!

medium.com/the-node-js-collection/...

Collapse
 
xowap profile image
Rémy 🤖

Modern Operating Systems is a definite must-read if you want to have any clue on what is happening in a computer

The Algorithm Design Manual will give you all the answers to your algorithmic problems

Collapse
 
xowap profile image
Rémy 🤖

Oh shit, it's about blog posts. Sorry :)

Collapse
 
ben profile image
Ben Halpern

I changed the ask to "blog posts and resources" to allow for a broader convo 😄

Collapse
 
sandordargo profile image
Sandor Dargo

If you really want a "classic read", take Donald Knuth's The Art of Computer Programming!

Collapse
 
ypedroo profile image
Ynoa Pedro

If you are a masochist: Design Patterns: Elements of Reusable Object-Oriented Software (Its not a critic, awesome book but i do prefer colored things haha!)
If you're like me and likes a more light reading the
Head first series
Head First Design Patterns Brain Friendly
Its awesome

Some comments may only be visible to logged-in visitors. Sign in to view all comments.