What are some of your recommendations for books, videos, podcasts, or any other media that inspire and spark more passion for programming and computer science in general? I’m interested in hearing how these resources have helped you grow as a programmer.
Jumping in to right a wrong. Nobody has mentioned Sebastian Lague on youtube. His programming demos are sheer magic and joy. He’s like the European Bob Ross of programming.
- The Pragmatic Programmer, by Andrew Hunt & David Thomas: How to not suck at programming.
- Algorithms, by Robert Sedgewick: Stick to the early C or Pascal editions, later ones are full of language-specific Java, etc. distractions.
- Programming Pearls, by Jon Bentley: Short snippets of how to design & optimize.
- SICP: Just do every exercise, take it seriously, you’ll learn super powers. Watching the lecture videos alongside is helpful, but the book and problem sets are mandatory.
- BASIC Computer Games, by David H. Ahl: The type-in listings are fairly hard to read & understand to newbies now, I suspect, but it’s still the master class in how to decompose gameplay problems into low-level programming.
Videos and podcasts won’t help you, they’re pleasant noise but you learn to program by programming, by taking a problem and solving it.
Hmmm
I know you specifically asked for books, videos and podcasts, but I have actually personally never found any books, videos or podcasts I tried super inspiring or helpful. The only thing I have done on occasion is to use Pluralsight courses to learn a particular language or platform really fast (Android development, React, …).
What I can really recommend though is to just read Hacker News and get inspired by what other people do. I find only about 10% or so actually interesting, but there’s always something fascinating.
Aside from that, I learned most of my programming knowledge (not necessarily engineering knowledge) from side projects. For about a year now I have worked on a push notification service called ntfy that truly fulfills me, and that forces me to constantly learn new things.