I love Fermat's Little Theorem, both for its own sake and because it's an intermediate step in proving the Two Squares Theorem. My equivalent to "counting sheep" used to be to review the proof of the TST. The simplest proof I know of Fermat's Little Theorem is induction, assuming that we already know the Binomial Theorem. Suppose a^p == a. (== is my symbol for "is congruent to mod p" in this post.) Expand (a+1)^p, an…
In programming we slowly gain a big grab-bag of patterns and approaches to certain problems and build an intuition of what to apply where. It doesn't nearly cover your full experience but helps break problems down.
Do you find there is an analog to this with theorems? If so what's the essentials from your 'grab bag' and, beyond just reading more, what practices help build your feeling of where to use them?