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.
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.
wow, you built that? That’s so cool man! Thanks for the advice
Your app is really impressive and something I’ve been explicitly looking for in the last couple of days. Installed!
Context, I am a full time professional developer with about 8 years of job experience.
I generally do not get motivated to study during my off hours. I tend to do what I want to do. I (used to) browse r/programming and every now and then an article would catch my eye. This sounds dorky as hell but sometimes I read technical documentation to help me fall asleep (can be very hot or miss though).
The few side projects I have carried to what I’d call completion have been related to things I was interested in apart from programming that I wanted to pursue. Without fail, everytime I look for inspirational ideas of things to make I have lost interest immediately. Recently I played through Breath of the Wild and was annoyed by all the armor trackers online so I made a super bare bones one I wanted to use. I learned some frontend stuff doing it. A year ago I built an irrigation controller for my yard. (This was a waste of money and effort though and I can’t say I enjoyed the process but I did still learn from it lol.)
The moral of the story is have your eyes open to gaps in your everyday life. Ask yourself “could I make that?” Give it a go and see. Give it a good weekend’s worth of effort and see what you get. Usually I can dedicate about 2 days to something before losing interest so I try to keep it as minimal as possible. Start small. Super small. The smaller the better. Willingly accept that it will be shitty. In fact, try to make it shitty so you don’t get discouraged by it not being perfect. I get hung up a lot on how to make things perfect from the start. Intentionally making it imperfect helps me get over that.
Thank u! Very interesting, I’ll read documentation to sleep from now on :D
I actually used to do the same thing. I read the Ceph documentation up and down. Eventually I tried to install Ceph and realized that what is written and what you actually do are really different, and that Ceph is an awful beast that you should not underestimate.
What helped me grow was my own drive to solve someone else’s needs. Look for what it is troubles them, figure out whether and if so how software can help, and then create a tool to do so.
IMO, my passion stems from helping others. Romanticizing it, it’s literally part of the first sentence in the Agile Manifesto:
We are uncovering better ways of developing software by doing it and helping others do it.
So with that, my passion is finding ways to help:
-
At university where I’d try to help by forming study groups and going over material or debug sessions for larger projects.
-
At work asking my lead/manager/seniors what pain points they’re facing and trying to figure out a way to fix/own that issue.
-
Spending time to check in with other engineers on my team and asking them how they’re doing.
-
Volunteering as a mentor for various Employee Resource Groups (or whatever your company might call them).
Maybe some of this is mental gymnastics for my brain, but by having more personal time with others it helps me feel like I’m actually driving an impact. Programming is a means to an end for me. The “drive” that stems from wanting to help has been far more powerful than any sort of “puzzle” that is some programming/architecture work.
This could also be my many years as part of the Scouting program and “helping other people at all times” …
IDK if that was what you were wanting to hear, but it might give you a slightly different perspective. Regardless if this was helpful, best of luck.
Edit:
If you really push me to give you a book of sorts …
https://quii.gitbook.io/learn-go-with-tests/
You don’t have to fully drink the Test Driven Development koolaid in your day to day life … but working through this book, it gives you an appreciation for how following good Design Patterns can make testing oh so much easier.
Plus, IMO, good code is easy to test. Easy to test code is less risky. Less risky code helps me not get called a 2am with a prod incident. Getting 8 hours a sleep is something I value very highly.
I love your advice. The most rewarding moments of my career have been mentoring and coaching engineers.
Thanks! I’m quite shy, so I didn’t bring myself to help anybody with coding. I’ll pay more attention to that.
-
- 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
A few years ago, when I was still learning rust. I started to read the raytracing in a weekend series and implement it in rust instead of cpp. I fell in love with both rust and computer graphics in general after that. Today I now work full-time (and as a hobby) as a computer graphics programmer with rust.
In general I just keep working on things I find interesting and never put any pressure on myself to actually ship anything. I do it because I want to not because I have to.
Here’s a link to the book series https://raytracing.github.io/
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.
I’ve been a developer for 7 years and at some point I felt like I had seen everything there is to see in my field (mostly PHP programming) so I started looking into other languages and came across the Fireship channel which covers a ton of different technologies in short and fun videos.
It’s nothing too deep but it’s entertaining and has helped me expand my interests/curiosity.
The videos on The Coding Train YouTube channel reignited my passion for programming about 3 years ago. I was very burnt out and cynical at that time. I highly recommend them, they are all super interesting projects with elegant, minimal code producing highly complicated results, by a wonderfully enthusiastic and silly guy who is impossible not to like.
Two that immediately come to mind are “NAND to Tetris” and “Crafting Interpeters”. Both are free and excellent.
Opened this to post Nand2Tetris.
Tangentially related (heavy emphasis on tangentially) are the Zachtronics games. They’re (mostly) programming puzzle games. While you don’t necessarily learn anything practical since they’re fake languages I still think it can be a good introduction to assembly (if you’ve never done it before) as well as giving you experience with learning a new language. (The games often come with PDF manuals as opposed to having tutorials.)
computerenhance.com, Rust, C and switching clients at work
I found TDD make programming more fun because it results in less debugging. Debugging can be frustrating and depressing when you get stuck.
I’ve found ChatGPT makes coding more fun, as I don’t get stuck as often on hard problems and it can generate boilerplate quick than I can.
Watch videos by Primeagen on Twitch and YT. He’s very high energy. Although successful, He has also struggled with depression, drugs, and ADHD in his past, which might be helpful to you. It’s inspiring.
I usually don’t consume much of that media, I’m more of an active person myself. So I enjoy some hobby projects and writing the occasional blog post every now and then.
If you haven’t learned a language with a new paradigm in a while, give that a shot. For example, if you have never done Functional Programming, learn Elixir
Since you didn’t specifically mention why you are looking to get more passion, I’d say don’t exhaust yourself with it. It’s fine if you are just in a phase of your career where work alone is enough. There might also be other parts of the field you could explore into, if you’re not feeling the programming part at the moment. Career paths aren’t linear :)
Thank u, I just started to learn rust. Looks quite scary for me as a js soydev.
Forget to mention my context, I’m a new engineer and wanting to read something awe-inducing and getting to know what can be achieve by just lines of code. Various perspectives from you guys are great too btw!