All of them except programming, I'd say. That sounds like a 2000's-programmer-centric view of the world. Modern software is unique among all the fields I've worked in, in that it combines:
- people routinely working on systems far too complex for them to ever understand fully, and which often change completely on the timescale of weeks or months
- all the relevant data on the web in a format (like error messages or function names) that's easy for google to index, and easy for users to type
- people sitting in front of internet-connected computers anyway, and sufficient time slop that the team doesn't need an instantaneous answer
When I was knee-deep in water at an archaeological dig 15 years ago and my professor called out "What species of tree is that by your knee?", or when I was working on the catwalk last week and my lead called over "Check that the instrument in front of you is safe", googling it would have been completely infeasible, for several reasons. They'd just replace me with someone who knows what they're doing.
> Learn the conceptual framework, and you'll remember the details by partial reconstruction as you need them.
When I took organic chemistry, they taught the special cases of each reaction type first, and then generalized them at the end of the year. When I took engineering physics, they made us start with the generalized form first, and then we had to derive the specifics as needed. At the time, I was frustrated by the chemistry approach (why didn't you tell us there was a simpler form?!), but 20 years later, I remember a lot more chemistry than physics (even though my grades in physics were much better). I might be able to fumble through an SN2 reaction if I needed to, but I'm sure I couldn't do anything at all useful with Maxwell's Equations.