There’s something unique about working in engineering: problem solving.
You are usually presented with a problem – be it a software bug, a performance issue, an engine that doesn’t start, or a mold stain on a wall – and work your way to find a solution.
I tend to be pretty decent in my (by now rare) software debugging sessions. I point in some direction and the cause of the problem is in fact there. Well, most of the time. This is due to experience, of course, but as irrational as it might seem, a little gut feeling is also at play.
What I noticed lately is that these problem solving abilities, often listed as soulless requirements in job listings, extend from one field to another. Being a good software developer (and hence able to squash nasty heisenbugs) means you’d also be a good mechanic, provided some training. You begin to develop a sixth sense for bugs which is surprisingly valid outside the software field. I reckon it’s due to logic (and maybe lateral) thinking, and to the fact that the human brain is a spectacular pattern recognition machine.
You start seeing problems and puzzles differently, and in your head some kind of non-trivial attack plan forms. This is wonderful, and it helps in real life as well, to fix all those small problems and issues you face everyday.