After a day of programming, it takes me a while to get used to talking to a human being. During the day, my feelings reflect those of a computer - it is dry and unemotional, so I am too.
Does anyone else experience similar things? How do you deal?
It turns out quantum mechanics and pages of empirical analysis are a plus, because they are well documented and everything behaves as expected. When I program, I spend more time reverse engineering other software, to try and make sense of the lacking, outdated, and often outright incorrect documentation than I spend writing my own software. I can't spend any extended period of time doing that and still keep my sanity.
If I hit a wall working on coding logic, I kind of get annoyed and take a short break and come back and try some more.
If I'm doing _anything_ involving databases and API calls I get actually ANGRY when something doesn't work.
My theory: Explaining logic in syntax feels natural, since we do it talking to each other all the time.
Exchanging information in structure feels unnatural, since we don't do it in interpersonal communication. If we're talking about a subject we don't have to first define a schema and endpoints. Our brains do all that automatically.
Imagine trying to use migrations and API routes to represent the memory access, changes in data, and relation mapping our minds do when studying new subjects or learning new information about old topics.
I HATE DATABASES.
I recently reworked a CI pipeline over two weeks, and it was a nightmare to make tiny changes, push it, and wait 5-10 minutes to see another error because of a YAML typo.
If possible, I try to shorten this feedback loop early.
Another option is picking something radically different to work on for a while, if possible.
I’d suggest pushing work further in the day if possible. So that you live your life, then code, then go to sleep.
Then I go to sleep, wake up, and I finally solve the bug.
Rinse and repeat.
I want to just get some shit done. And I have now spent 5 hours trying to patch up a problem that should never have even existed. I work at a place with 50+ eng teams sharing this code base. This simply shouldn't even be a thing. I should be able to clone, run a setup script, and just code.
So, yeah, I'm in a shit-ass mood now. And the worst part is that my feelings are totally self-imposed. _I_ want to feel productive. Apparently the org doesn't really care, so if they want to pay me to not be able to work, so be it I guess? I don't like it.
- Listen to calming music, not anything aggressive or angry. This makes a huge difference for me.
- Take time to prepare so that I expect speed bumps, not an easy ride. This can be in the form of just taking a beat to think about a problem right before starting or general, preparatory journaling in the morning.
- Take breaks when I’m stuck. Getting away from the problem or talking to someone else (rubber ducky style) really does help.
- Learn and reflect on what went wrong. Sometimes it’s easy to blast by and solve a problem without thinking about it. For me, at least, that’s a recipe for getting myself into the same problem again in the future and not remembering how I solved it. Sometimes, this is something I can proactively take time to fix so myself or others don’t encounter it again.
- Scheduling my day. I try to schedule my day so that I have meetings as early as possible in the morning and then I do programming in blocks in the late morning and afternoon. Being able to avoid distractions removes some compounding frustration.