Finding the Joy in Programming

Finding the Joy in Programming

Hey Friends 👋,

Before I start this week's issue, a small announcement. I am taking a mini break from this newsletter so that I can finish the course I have been working on for the past 4 months. Don't worry the next issue will be back on 3rd March. I just don't have enough time to fit everything in at the moment.

This week I started reading Ali Abdaal's debut book, "Feel Good Productivity" (affiliate link). I enjoy his writing and YouTube videos, so I thought I would give it a go. I don't think I am spoiling the book (I have only read 2 chapters so far) to say the main concept is, we are more productive when we enjoy what we are doing.

This seems pretty obvious, when work feels like play we get more done without even realising it. However, even the most fun game in the world can feel a little boring when you have been doing it from 9 to 5 for over a decade.

I have been a professional software developer for 14 years now but have been programming for 28 years this year, and there have definitely been times in my career when the job has seemed anything but joyous.

Whether it be the January blues or you are starting to feel burnt out hopefully one of these tips will help you find the joy in programming again.

Make it feel like play

In the book Ali describes the moment where Richard Feynman (the Nobel Prize winning physicist) had given up on physics after his wife died and really couldn't find the joy in it any more. It was only when he started playing with physics that he managed to get back into it and eventually get his Nobel Prize.

Play is a very important part of creativity and is very difficult to be creative if you aren't enjoying what you are doing. Back in my first issue, when The Curious Engineer was called Sunday Syntax I wrote about Programming = Creativity. As programmers our job is to create things that didn't exist before and does require a fair bit of imagination. It is not something that can be forced if you are not enjoying it.

I think that is why so many developers suffer from burnout. It is like an artist being forced to draw the same picture every day. Even if they enjoy painting, turning yourself into a factory is going to have a negative effect on your mental health.

The key is to try and get some play back into your life when it comes to programming. I always like to have some form of side project on the go that I can tinker with at the weekends or my days off.

Some of these projects are public like my website. It has been a few years since I have redesigned my website, and I am feeling like a change. Once my course is finished my next project is to build something more lightweight out of eleventy instead.

The other project I often fall back on is my home server. I self-host a lot of software that I use every day, and I am always looking for other software to host. I don't need to self-host these tools as there are always free alternatives, but I find it fun, and it helps me brush up on my DevOps skills.

Find yourself a project that involves a bit of programming, and it might help spark your interest again and give you something to look forward to at the weekend.

Some suggestions off my own to-do list:

  • Build a retro gaming console from a Raspberry Pi
  • Set up home automation system
  • Build an automatic plant watering system
  • Set up a Pi-Hole to block all ads and spyware on your network
  • Set up a matrix server for your friends and family to use
  • Create a mobile game using Godot or Unity
  • Create a magic mirror that shows your calendar and the weather
  • Set up a personal blog

Find joy in the little things

One of the things that drew me to programming was that I love problem-solving. I thought this was exclusive to solving problems and creating solutions for them, but it is more than that.

This week I was looking at a bug that caused a null where there shouldn't have been one in the database. It wasn't an area of code that I was familiar with, so involved picking through the codebase looking at the logs and piecing together the steps that led to the data not being written correctly.

It turns out it was to do with the ordering that events had been processed that caused this particular problem but as a result I now have a much better understanding of how that piece of code works.

I actually really enjoy debugging code or just systematically working out why something doesn't work. I know this isn't everyone's idea of fun, but it is something I can always fall back on if I need to have a change.

Which is a nice segue to ...

Change it up

I have a definite limit in how long I can do the same thing before I get bored. It might be a sign of mild ADHD or something else, but it is definitely there.

I find I can't work on the same project doing the same thing for more than 6 months. The only way I can last longer is if there are different parts of the application that I can switch between such as Frontend, Backend and DevOps. I like to get involved in the full application and I would struggle if limited to just backend.

Beyond that I think my limit is around 2 years at the same company. Once I have learnt all there is to know about a particular area the boredom begins to set in again. The only time I have managed to go beyond the 2-year marks is when I have internally switched teams.

A lot of this depends on how much autonomy I have over how I work and what I work on.

If you find you are getting sick of programming you might just be bored with the area you are currently working in. Try and see if you can get involved in another part of the application you haven't worked on. Learning something new is often a great way to rekindle your interest in the subject.


❤️ Picks of the Week

📚 Book - Feel Good Productivity by Ali Abdaal - an obvious choice as I started reading it this week. So far it is pretty good and has some interesting examples and anecdotes in it.

🛠️ Tool - feedle: Search and Discover Quality RSS Feeds from Thousands of Blogs and Podcasts - the internet used be more about people and their quirky interests. It still is, but it gets buried in all the algorithm recommended content and now AI generated rubbish. If you are looking for something a bit different give feedle a try.

📝 Article - What happened with the Web Monetization API? – Chris Coyier - I have worked in finance for most of my career, and it is one of the main gatekeepers impacting the small indie web. I would love there to be an open source way for people to send money without having to rely on Stripe, Paypal or cryptocurrencies.

📝 Article - Deplatforming Myself: A Tech Manifesto – Haste Makes Waste - This was quite a long read, but I enjoyed it, and it resonated a lot with my own thinking recently. My plan is to self-host as much as possible, so I am not reliant on others and have more control over my content.

📝 Article - Only 90s Web Developers Remember This - In some ways I miss the 90s web, it was a simpler time without all the social networks stealing everyone's attention. Although, I don't miss using tables for layouts!

📝 Article - Breaking Free from DRM: The Story of Hacking My Air Purifier – Unethical Info - I mentioned the other week how a lot of the tech we use becomes useless if the company goes bust. Of course if you have the skills you can always hack them and break the DRM chains. I admit this beyond my ability, but it is definitely interesting to see how it is done.

📝 Article - Zed is now open source - It is funny I often don't here about tools until they announce they are going open source. If anything it is good marketing. I think more products should go this route and charge for hosted services instead. I am going to give Zed a try this week and see if it can replace VS Code for me.

📝 Article - Zayd's Blog – Why is machine learning 'hard'? - I did start reading a book on machine learning, and it is ridiculously complicated. Given how hard it is I do wonder how much effort has been wasted producing the current generative AI capabilities. Sure, it is fun, but I am sure all that brain power could have been put towards more productive problems.

📝 Article - Meta now lets EU users unlink their Facebook, Messenger and Instagram accounts - I still have my Instagram account as my wife likes sending me reels, but I will be deleting it this year. It is good that those in the EU and EEA can now unlink them, even it has been mandated by the EU instead of Meta coming up with the idea.


💬 Quote of the Week

In the accumulation of material things, no deep satisfaction is to be found, other than fleeting pleasure and the temporary delight of impressing others. Both of these are short-lived (before we return to our default level of happiness), and ultimately controlled by other people or things. We choose whom to impress based on how impressive they seem to us, and if they fail to be convinced by our attempts, then we tend to feel anxious. This is neither a healthy nor a happy cycle.

From Happy: Why More or Less Everything is Fine (affiliate link) by Derren Brown.