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.
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.
For further actions, you may consider blocking this person and/or reporting abuse
This one comes to mind for me:
"We can't send email more than 500 miles"
That's such a good read! It's like an 90s private eye drama!
hackernews? hahah xdd
I really enjoy this one:
The Pragmatic Programmer: From Journeyman to Master
I'm reading the 20th Anniversary Edition, from 2019. This book is a must for every developer.
I'm thinking to get the new version, do you recommend that?
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.
Same here
That's what I've recommended.
Not a blog but hey. Also new book seams quite nice
CSS-Tricks' post on flexbox.
css-tricks.com/snippets/css/a-guid...
It's really a great resource. I just return to it time to time.
lol I used this last night for the 1000 time.
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!
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.
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"
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.
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.
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.
Books
Clean Code
Clean Architecture
Refactoring: Improving the Design of Existing Code
The Mythical Man-Month. After 45 years it is still relevant. It's like the industry hasn't learned much.
Blogs
not really part of the original ask, but aren't books just long blogs?
Books
videos
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
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!
It's good :D. I remember reading it when it came out. Sent it to everyone I knew.
@ Erik Dietrich I've just completed reading your post, and I find it very interesting. Thanks @Benjamin for mentioning this.
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.
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.
Excellent list!
A few that I immediately thought of:
(Edit: now that it's expanded to include other resources, I'm adding one more)
Effective Java (by Joshua Bloch). I've read it when I was a post grad student and deeply amazed by it.
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.
Donβt Let Architecture Astronauts Scare You
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/...
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
Oh shit, it's about blog posts. Sorry :)
I changed the ask to "blog posts and resources" to allow for a broader convo π
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
If you really want a "classic read", take Donald Knuth's The Art of Computer Programming!
One of my favorite things in all programming literature: Parsing HTML with Regex
Came here to post this. This one is hilarious.
How do I exit the Vim editor?
stackoverflow.com/questions/118282...
The Art of Unix Programming by Eric Raymond: catb.org/esr/writings/taoup/html/
Introduction to Algorithms by Thomas H. Cormen, et al: amazon.com/Introduction-Algorithms...
The clean code by Uncle Bob: amazon.com/Introduction-Algorithms...
Refactoring: Improving the Design of Existing Code by Martin Fowler: martinfowler.com/books/refactoring...
I loved Clean Code.
This book changed the amount of comments on my pr to zero
Would you expand on what gains you've had by eliminating comments on your PRs?
Personally, I'm a big fan of leaving comments for context for future me/colleagues. I've found that commenting on what the code does isn't really helpful as it is more of an indicator that the code is likely too complex to begin with, and should probably be broken down more, and named better, however, there is immense value in having breadcrumbs about what will this change mean for the codebase going forward, and also implementation guides if the particular PR is for code that will be used in other parts of the applications.
Comments are really good when they evolve with your code.
But I want to say that when I start working as a developer, my pull requests were full of similar comments, rename this variable or delete this space and a coworker recommends "Clean Code" and this book helped me change this .
I see! Yeah, in that situation, I completely agree that comments were probably not super helpful.
I've found that in my own experience, PR and code comments aren't a good way to explain the code itself as it quickly gets stale and comments go out of sync with the code they are for.
No mentions of the Design Pattern by the gang of four? en.wikipedia.org/wiki/Design_Patterns
Even though modern webdev use some of these design patterns without knowing it (most of time) the principles underlined in the book are still quite valid I think.
Ted Neward's The Vietnam of Computer Science which makes the case that Object/Relational Mappers are a terrible idea. Especially interesting to think about today when you have projects like Prisma that provide similar functionality to an ORM while insisting that they be referred to as a query builder instead.
Programming Pearls by Jon Bently is a great book to practice algorithms. Also Design Patterns: Elements of Reusable Object-Oriented Software by the Gang of 4 is also great. There are a lot of 20-30 year old books that still remain as great references.
I loved these books to get more in-depth knowledge about Javascript.
And the online versions are absolutely free which is absolutely ridiculous!
I also liked "SQL Database for Beginners" to get acquainted with the basics on SQL. Would love to have a similar book on MongoDB (or another non-relational database).
Clean Code was great. It's just important to have a good grasp of Java first, or at least read it twice if you don't.
Love that quote from Bill Gates on Knuth's books: "You should definitely send me a rΓ©sumΓ© if you can read the whole thing.". Which makes me believe my dad is right when he calls me crazy for wanting to read it... It's probably way too mathematical most people, including myself.
In "Deep Work", Cal Newport also describes that Knuth went for very long stretches of extreme concentration (blocking out all forms of communication during work hours) at the time of writing. Which is also cited as one of the reasons why it became such an absolute classic, and I'm inclined to believe that.
Those are my classics:
I also just got sent "The Story of Mel" which apparently is a classic story (more on the humorous side; also I haven't read it yet myself)
UTC is Enough for Everyone, Right?. It'll take you a long time (pun intended) to read this, but it's totally worth it.
I read this article at the beginning of my programming journey when I was trying to figure out how to do something with time in Java. I stumbled across this and it explained why I was having so much difficulty. I later shared this article with a peer who was working on a group project and wanted to do something unusual with time (can't remember what) and she immediately decided it was not worth implementing after reading!
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) β Joel on Software
joelonsoftware.com/2003/10/08/the-...
As I think that relevant long reads most often do not equate to directly useful in the day-to-day, my list of programming "classics" tend to revolve around historical and critical commentary. All the tools, jargon and conventions we use are part of a history of computer abstractions, and gaining depth necessarily involves not only understanding general concepts but also having some notion of where they come from. Interesting reads on the subject span from mainstream non-fiction like Steven Levy's Hackers to Eric Raymond's The Art of Unix Programming and Richard Stallman's collection of essays (the FOSS world is rich with writing of this kind).
Clean Code
Talks about how to write and structure readable code, and why you should do it. Also talks about TDD
Refactoring
Shows you how to refactor code effectively and progressively, the last edition uses JavaScript for the examples
Pragmatic Programmer
Probably the most popular book. Talks about soft skills, tooling, development, everything that makes you a better developer. Should read this at least once in your life
Code Complete
Bit old but still relevant. It's a compendium of techniques
Design Patterns - gang of four
Self explanatory title, teaches you how to write better and scalable code depending on what you're trying to solve
Not "classic" but I think useful anyway: Cracking the coding interview
Teaches algorithms and data structures (+ how to pass interviews at the big companies)
If you want to pick just one I would read clean code or pragmatic programmer
I liked "The C programming language".
Even if you do not end up using C, this is a really good read. And since we are talking about classics I thought we count this in.
And "Refactoring" by Martin Fowler and gang is really useful one. It helped me a lot.
And "Structure and interpretation of computer programs" for people who are naughty enough. You may think this meaningful or crazy recommendation. It is useful for somebody. It helped me.
These two books helped me a lot in my career with how to think about coding, and business logic.
Domain-Driven Design: Tackling Complexity in the Heart of Software 1st Edition
Extreme Programming Explained: Embrace Change US Ed Edition
They are the two that stuck out the most for me
Recently as I was looking into some youtube tutorials i have come across this channel youtube.com/user/1kingja this is one of the best channels i have seen on Programming..
The pragmatic programmer pragprog.com/titles/tpp20/
Design of everyday things amazon.in/Design-Everyday-Things-D...
Great question. I did a survey when I first joined Red Hat to find out what my colleagues considered to be the essential reads. Some of these were hard slogs, but these in particular were impactful for me (and them).
A pretty essential history of computing told through the lens of open source, but IMHO superbly summing up some major computing shifts through the eyes of the people and technology at that time.
At the moment I'm having fun with:
And you could do worse than read any of Alan Kay's favourite books, as he summarises here on Quora. Oh and for those that don't know who Alan Kay is, you're in for a treat. Computing is a wonderful topic that, if approached right, unlocks so much other science for consideration. So it's no surprise many of the above are move than just "learn this syntax for programming output".
Falsehoods Programmers Believe About Names by Patrick McKenzie (better known as patio11 on the Internets.)
Structure and Interpretation of Computer Programs, aka "The Wizard Book."
And, at least as far as I'm concerned, JavaScript, the Good Parts.
I β€οΈ logs
SICP!
Going through it right now (book and lectures).
Have to agree 100% a true classic CS book!
The Phoenix Project by Gene Kim!
How come no body mentioned Patterns of Enterprise Application Architecture (Martin Fowler). It is excellent (i mean Excellent read).
The Mythical Man-Month
en.m.wikipedia.org/wiki/The_Mythic...
The pragmatic programmer π€Έ
Production-ready microservices
Bulletproof web design is a bit backdated and not as useful as I would have thought.
I remember reading a list of most favorite programmer books and on place two was something like "Living with RSI" π€£π₯
The cathedral and the bazaar
One book I re-read is DevOps handbook
I have this in classic 'red cover' paperback, it's influence has been large!
archive.org/details/DesignOfTheUni...
I must mention: