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?
1–10 of 15 posts
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?
- 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.
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.
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.
Then I go to sleep, wake up, and I finally solve the bug.
Rinse and repeat.
Whenever I finish a software project and return to electrical engineering, where I have to worry about parasitic capacitance, inductance, thermal noise, propagation delays, and pages of datasheets for something as simple as a single transistor, I realize how much easier and more satisfying electrical engineering is than programming, where I have to deal with truly unpredictable phenomena like libraries, APIs, and dev…
Whenever I finish a software project and return to electrical engineering, where I have to worry about parasitic capacitance, inductance, thermal noise, propagation delays, and pages of datasheets for something as simple as a single transistor, I realize how much easier and more satisfying electrical engineering is than programming, where I have to deal with truly unpredictable phenomena like libraries, APIs, and dev…
I think that also has to do with the fact that if you do something wrong in electrical engineering, things can literally go boom.
A majority of software only does that in a figurative sense, but in return we get very lazy docs, practices, etc. Somewhat of a double edged sword.
I’d suggest pushing work further in the day if possible. So that you live your life, then code, then go to sleep.