- Dealing with documentation that lies to you
- Trying to understand and modify code written by people who didn't give a damn to whoever was going to read it some years later -- and resisting the urge to refactor the problematic bits because it would risk the schedule
Sometimes I wonder if I'm good enough at the technical side (I have never outright failed at it) that I was never pushed/suggested to look at roles that are more human-facing. I have done -- and greatly enjoy! -- public speaking at user groups and even conferences on technical topics and the number one comment I have gotten both from programmers and non-technical people is how I can communicate concepts that were previously opaque in an easy to approach and understand manner. I definitely like people more than machines, even though I know the machine side well enough to hold my own with the most advanced architects and lead devs.
What would be the ideal role for someone like me? I don't think "software developer" is it.
The next day you spend 10 minutes moving a few buttons around on a simple dialog and you get an 'atta boy' from your manager as if you solved a real problem.
Everything else you can mostly do by googling and doing what the glowing rectangle says.
Math and driving require real understanding of nontrivial things with multiple parts that all interact in different ways.
Math is what makes CS hard, because CS is just math, and CS or EE is what seems to really open doors for a lot of people.
I mostly work jobs where programming is only a small part, and I'll even have to do things like hand crimping hundreds of harnesses.
Everyone is saying interpersonal stuff, but I mostly only work with small companies, where things are a bit different, and there isn't that much stress from that.
When there is, it's almost always from various factors that can cause you to be the only one who knows a certain technology, and the effort needed to prevent that and avoid being on call for everything at all times with no help.
It's not like programmers are any harder to deal with than other people, although talking to some of them can feel really isolating, since so many of them are constantly talking about obscure personal tinkering stuff that I can't relate to, and sometimes it's literally the majority of their life outside of work, and it kind of puts up a bit of a barrier between them and those of us who aren't part of that culture.
Most devs seem to have a very different way of thinking, very first principles focused, always going down rabbit holes, always thinking on multiple levels of abstraction, always looking for a chance to explore. It's actually pretty amazing to watch.
Sometimes it can result in some actual conflicts because the other devs will always want to try something simple and hackable, and I'll always just want to slap a proven framework on it and move on to functionally, but other programmers seem to have a "If you didn't learn a new technology, the project wasn't worth doing" mindset.
- server(s) setup (either on prem or cloud)
- keeping the server secure
- auth
- logs
- monitoring
- backups
- HA/scalability
It's even worse if you don't like such topics.
Maybe something with VR?