Ask HN: How to recover interest in programming?
I've been working at my current place for almost two years. I'm not the best engineer, but I get my stuff done on time and mostly with no issues, so I can definitely program. While I'm not the most "passionate" person for my job, I don't hate coming into work.
For the past few months, I've noticed that my interest in programming outside of work has waned. There are things I'm interested in (iOS/macOS development, Elixir, Clojure, some frontend stuff) but I lack motivation or impetus to actually do them long enough to learn or make anything.
One problem I have is that I have no itch to scratch. When learning something new, I can't apply it because I have no problems I need solving with computers... I've tried to come up with some but it always feels like I'm forcing technology intro a problem that doesn't need it or forcing myself to do OSS when I don't even use the library I'm helping out with.
I'm sure I'm not the only one that feels this way. Have you gotten over it and how?
3 comments
[ 3.3 ms ] story [ 14.1 ms ] threadAfter ~18 years of Java I was feeling very burnt out. Initially it was the concurrency model and how it was being widely used. This itself drove me to find alternatives.
I started off knowing that Go, Scala, and Clojure (among others) offered cleaner abstractions on this. I figured I'd learn them a little and see where that took me - Seven Concurrency Models in Seven Weeks was the book I first looked at.
It honestly didn't take long, but something with Clojure just clicked with me. Concurrency aside, the REPL experience and immutable data grabbed me and said "Keep learning this language!"
So I took an old game that I'd done in Java (with OpenGL bindings) and started rewriting it in Clojure. Loved the experience and kept working on any problems I could find to try out the functional approaches I was learning.
The punch-line is I fell in love with programming again. I was able to find my passion, to realize again why I went into this field. Slowly turned the career direction and now work full time with Clojure.
I was looking for a tool, and it didn't exist. But I did find an abandoned open source repo that could do the core 70% of the job - including the tiny core part that I didn't have the skills to even begin to implement.
So I began working on getting it to run at all and then to build the application I wanted around that core.
I would not have found so much joy in this project if it weren't for the following factors:
It was solving a problem that I really had. Maybe not anything important or urgent, but something that had been annoying me for ages.
It was within my grasp. I was able to make visible headway within minutes and more progress within hours. I didn't have to spend weeks buried in textbooks before even getting started.
It was challenging. It required learning technologies that are adjacent to the ones I work with every day but that I'd never touched. With every feature I wrote and issue I debugged I was learning something, and something potentially useful outside this project.
I was able to build momentum. A friend reminded me early on to skip the "make it right" and focus on just building the proof of concept. It had been years since I'd done that. It resulted in much faster progress and a much more rewarding experience. This was reinforced a few days in when I started to get bored with the project after an afternoon away from it - but as soon as I picked it up again and spent 20 minutes implementing another bug fix, I was utterly engrossed again.
And now that I'm feeling good about the project it's no longer arduous or intimidating to go back and add test coverage and proper configuration and to refactor things.
Finally, I made it unintimidating. As I built the project out it started to grow a backlog of notes about things to add or fix or improve. At about 20 items, though I didn't notice it, that list began to unconsciously weigh me down; by 50 it was paralyzing. I solved that by breaking out a separate document with just the next 3 small changes I want to make. That document isn't allowed to grow longer than 5 SMALL items.
Basically, the trick turned out to be hacking my brain to reassociate programming with a steady stream of tiny dopamine hits instead of a continuous stream of frustrations and "it's not good enough" judgements from both myself and external project stakeholders.