"There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors."
Then there's the unrelated problem of dealing with other peoples' personalities. The bigger the project, the more different people, and the more this aspect is a problem as well.
I've made horrific technical mistakes at various points in my career - but at least it is possible to learn straightforward lessons from those. Learning about people - now that's a challenge!
It needs to be built into every phase of computing, starting with the CPU micro-code, going through network protocols, up to the topmost JS framework layer.
Screw up one piece and you may end up with a major vulnerability.
Many software project owners avoid it due to complexity. To some extent, even academia sometimes eschews it.
PS: I find them the hardest.
“Everything should be made as simple as possible, but no simpler.”
-Albert Einstein
2) Dreading visiting my parents, because you always hear:'Oh good, come here and look at this problem I have'. My wife even volunteers me to fix other peoples stuff, which is real annoying.
I'm like you in that I enjoy just making things work, even when they're trivial. I particularly like doing it for other individuals.
On the other hand, I also enjoy harder research problems. Obsessing and learning new things quickly is probably the biggest joy I get out of work.
What I hate is the middle ground. I hate solving trivial problems, but in a high-pressure environment, for people I'm only circumstantially committed to.
https://en.wikipedia.org/wiki/List_of_unsolved_problems_in_c...
More seriously, robustness/security. Everything we “engineer” is incredibly fragile. Nothing is built and able to be “done” if it needs continuous security maintenance for its entire life.
- Concurrency
- Building distributed systems (databases, messaging systems, distributed file systems, etc)
- Low level programming
Other words: there's no CS topic which helps you during an estimation meeting.
- https://thomasvilhena.com/2019/10/why-is-it-hard-to-name-cla...
In my case, web development.
IMHO Complexity, in general, is good. Nature conserves it when its adaptive.