Where these discussions trip up is different kinds of programming tasks vary in how mentality draining they are.
Some days I can spend 10 long hours working through straightforward problems and come home energized. Other days I mentally check out after spending 3-4 hours beating my head against a really difficult problem then go home and have little desire to do anything but zone out and recover.
Funnily enough, I find myself the exact opposite. Give me a really hard engaging problem and I can work 16 hours and barely realize any time has passed, but spending even 1-2 hours on something rote saps my energy for the entire day. My tolerant is even lower for the particularly challenging combination of tasks that are both uninteresting but also tedious.
I don’t think we are talking about the same kind of difficult vs straightforward problems.
Think professional chess players. While prepping they can spend very long hours playing/studding high level chess but tournaments are another level. Challenging is fun, the limits of human ability are always stressful. People can run for 11 hours in an ultra marathon but they can’t do it at 13+ mph pace of a half marathon.
Exactly. To me the difference is in scope, familiarity, and stress.
While I'm doing the task:
1) Do I have to hold 15 interdependencies in my head?
2) Is this something I did a million times in the past and do I already know exactly what the failure modes look like?
3) Is this something high-stress, e.g., is this the big project that's supposed to make my team look good or net me a promotion?
Wiring in a UI for a sophisticated CRUD can take 10 hours but it doesn't _really_ have that many interfaces, I've done it a million times, and nobody getes excited about it. It's just something you do.
Building a billing pipeline for a product is something I've never done before, is very-high-stakes for the business, and can go wrong in a bazillion ways, many of which are not my fault. There's no way I can imagine getting more than an hour or two of work on this per day.
rote work is not what was talked about though, yes rote is boring and tiring, a hard engaging problem (engaging meaning something you are interested in I take it) can keep one occupied. This is what I describe as the artistic personality type in programming, doing great impressive work when interested, awful crap work when not interested.
but what about a hard problem that you do not make any progress on and you are sure what you did should solve it and what is wrong, why is it not working? You can't say it's uninteresting, but it is debilitating.
There’s a thing in the wedding photography gig called a wedding hangover. Basically most of us are absolutely dead the next day after “just” an 8-12 hour wedding.
It seems stupid to a lot of people, but that many hours being hyper vigilant and stressed wrecks you. I did landscaping work as a teen on very hot days and that’s nothing compared to a wedding.
I concur. I shot a couple weddings and was absolutely burnt out at the end. Lots of stress; being in the right place at the right time with the right gear set to the right settings with all the expectations of the bride and groom and family.
I'm afraid that in my case it never got easier - maybe the opposite, actually. As you get better you expect more from yourself and your clients do as well.
Part of it in my case may be the fact I'm an introvert and just being "on" around so many people is tiring.
Some days I can spend 10 long hours working through straightforward problems and come home energized. Other days I mentally check out after spending 3-4 hours beating my head against a really difficult problem then go home and have little desire to do anything but zone out and recover.