Other "difficult" things to understand -- Haskell's monads, or the way Git represents the world -- also took some effort but once understood become so simple that it became difficult to recall what there was that was difficult to get. The understanding seems qualitatively different, permanently etched in my head; I'd describe it with a word like "intuitive".
Having written the above out, the latter category seems to be maybe just simpler at its core, which produces the proselytizing aspect: "look at this beautiful geometric proof of the Pythagorean theorem!" But this makes me suspect there's some sort of hierarchy-of-difficulty thing going on, where somewhere else there's someone who really gets linear algebra in this same way and would also itch to watch me struggle along.
(PS: A bit of Git zen. You have a base branch A and another B that has some extra work relative to A. Say B has a complicated history, with work-in-progress commits and reverts and merges and you really want to just commit its change as a single commit on A. How to do it? The novice would say
git rebase -i
and then squashing, or maybe merge --squash
, but now I see that the commit graph is merely annotations as to the relationships between trees and the trees are already in the proper state; the right thing is git reset --soft A; git commit
.)