(I wrote this on Jul 19, 2024. I made some minor edits on May 4, 2026 before sharing more broadly)
Being Bad at Coding
I think I'm getting worse at coding.
Or maybe I've forgotten how to code.
To be more specific, I've gotten worse at building websites.
To be more accurate, I've started getting incredibly anxious every time I sit down to work on what I consider "product code".
What happened? I used to build websites all the time for people. Cool websites, with lots of really neat user interactions and large amounts of data. Now I'm looking at a 2-panel design and I'm getting sweaty and lying on the floor.
Do I need therapy to do what I used to do for a job back when I was way less qualified? Do I just need to move into management?
I Don't Build Products Anymore
The thing is, I really don't work on product code that much anymore. Even before my current role I was moving much more into a position where I was educating people, giving high-level architectural advice, and building demos and proof-of-concepts. I would also review a lot of code, tweak a lot of code, and refactor existing code. I'm pretty good at reading documentation, writing documentation, advising on documentation.
In my current role I now have to focus a good bit of time on marketing and branding. I think about tweets. I read other people's tweets. I engage with people's tweets. I block Twitter because I'm not getting anything done, comparing myself to others, and feeling both stressed out and completely unmotivated at the same time.
Sheesh, maybe I do need therapy.
What the hell happened? Probably just skill issues. Probably just a bad programmer now.
Is this Imposter Syndrome?
Wait, what? I'm bad at coding now? I can't do the job I used to do for years. I've lost those skills.
No, that's ridiculous. An exercise I often encourage other people to do, that I'll do now, goes like this:
Imagine a close friend of yours telling you the things you're telling yourself. What would you say to them?
To myself I'd say:
"Brooks, you haven't forgotten how to code. You're a bit rusty when it comes to actual product work, and that's okay! You've shifted your focus and have been working on gaining other skills, and especially improving your soft skills.
You don't forget how to ride a bike, but if you haven't been on a bike in a while, the first time you jump on you're probably going to be slow and not get very far. Giving up as soon as you start because you're not where you were is the only way you can fail."
Thanks Brooks, you really get me.
Now what?
I want to get better at my craft. I want to rebuild these muscles to the point I was at, and then grow beyond that!
The anxiety piece really sucks though. It feels like a very mild panic attack every time I open up a certain project I'm working on. I mentally know trying to "achieve my way through this" is pretty silly and not good for me long term, but that's what I keep trying to do. I keep trying to just brute-force my way into success.
So I'm gonna stop that.
Instead, I'll do what I used to do. I'll break the problem apart. I keep looking at the whole thing, the entire page I'm working on, and I get stressed out:
- "I don't have this piece of data yet, should I go update the DB?"
- "The designs don't address this yet, do I make up something?"
- "Should this be a reusable component?"
- "Why is this code so bad and confusing, should I just refactor it instead?"
- "Is the Tailwind config set up right? Should I go back to it and update things?"
I'm thinking waaaay too much, and not actually building. I'm not really a lateral thinker. I don't do great with free-association. I'm generally very at peace with that, and for the most part I like my mathematical, algorithmic, rule-following, do-the-steps-in-the-optimal-order brain. But when I'm staring at a blank web page, and then staring at Figma, I'm stressing out because I think taking designs and putting them into code is one big step.
So take a step back.
Breathe.
And start breaking it up. What are the steps?
- Identify the components we'll need
- Create an accordion component
- Identify the data that we'll need
- Identify the design pieces that are missing and leave notes for when we have them
- Create and style layout elements
- Add all the details/data-driven components, filling in placeholder data as needed
- Update the database with missing data
- Replace hard-coded data with real data
- Verify light and dark mode look correct
- Verify responsiveness is correct
And now just do the steps. I'll probably be a little rusty starting out, but that's okay. The first mile you run after a long break is generally the worst. But we're not going for perfect, we're going for the next step.
A resource that's helped
I didn't know where to put this, but the Dev Health OS from G2i has been a really helpful resource recently. It's helped me a lot in identifying my workaholic tendencies and setting up good boundaries for long term career success and mental health.
I will eventually write a lot more thoughts on it, but for now I just want to say that it's helped me a lot in avoiding just burning out over this little crisis-of-craft I'm dealing with.
Built from Markdown with a tiny Node.js script.