A "fundamental" is one of the basic things you can do in a domain that's easy enough to understand, but takes years of work to master. You know the memes: a BJJ black-belt isn't a black-belt because of a huge library of extremely complex skills, but because of a supreme command of the core motions and forces and positions; an excellent chef uses a few simple, fresh, well-sourced ingredients, in reasonable proportions, cooked in a straightforward way--all done with robust precision and taste. Be prepared; amateurs talk tactics, professionals study logistics. Notice when you're rationalizing. Don't optimize your code prematurely. Try the obvious easy thing first.

A key thing to keep in mind about fundamentals (a metafundamental, if you insist) is that most people don't do them. Maybe it's too obvious to seem worth spending much effort on, or you're too easily satisfied with a basic familiarity, or you get distracted and forget, or you focus on complicated shiny intricacies, or no one can convince you that it's a fundamental except the hard way. Or the simpler reason: it takes a lot of work and doesn't always pay off immediately.

Forgotten fundamentals are a curse and a wellspring. The curse: a forgotten fundamental might very well doom your efforts from the outset--in retrospect none of your efforts had any hope of succeeding. The wellspring: at any time, you could come back to a fundamental you forgot, apologize, and again start walking down that path toward mastery.

What are the fundamentals of thinking about hard problems? What are the forgotten fundamentals?