The last couple of weeks have been just amazing (coginitive bias maybe :) )
I am really not sure of when i last experienced this quality of flow. Not for a few years atleast.
The inflection point came from reading an interview of Terry Tao, in which he compares math to advanced piano playing, stressing upon the importance of sheer technical practice. I always thought there was something more to intellectual insight than mere overlearning of basics, and maybe there is, but overlearning of basics appears to be a necessary thing for hitting the topmost(or any non trivial) points of performance. This is one fact i am eager looking forward to applying in my own field (software for now, possibly finance at some point in time). At the very least , overlearning of basics assures of flow while trying to solve incrementally harder problems. It makes the work fun and engaging at the very least even if it may not be top notch.
As goes for the hammer and nail thing, everything in life looks like skill to me now. Every area of life looks like an art and a science. Interacting with people looks like an art to be mastered, so does conversation, so does fitness and so does bargaining and negotiation (these are my not so great points). So does pool.
This may be overgeneralizing and all these areas may require differing degrees of experiential learning and practicing rule based techniques. Some may actually involve quite a bit of luck too.
However, it can surely not harm to overlearn (and overpractice) the basics of any field. The next steps to peak performance can be contemplated after i overpractice this principle of flow.
For the time being, i notice that my work in software needs systematic and detailed thinking as a base skill. Something which is not my natural strength , but something i think is worth stretching to the limit. It requires clear and patient thought involving systems, mechanisms , causality (yes, minus the philosophical debate on it and the fuzziness causality assumes in other areas like finance). In software, its usually sufficient to trace causes to a certain mechanism, or a certain detail and there is generally no ambiguity. Designing is about building of software components with certain guidelines in mind (which can be overlearnt and overapplied). Debugging is a lot more about patient enquiry into causal mechanisms, and requires building incremental models of the underlying systems and its neighbouring and dependent systems (It is therefore a harder skill to acquire and people with natural impatience (like me ) can have a hard time with it)
I feel more clearheaded right now than in a very very long time. Hopefully, the overlearning continues :)