Some general thoughts on learning

Tolerate unresolved references. Resist the temptation to traverse the knowledge tree depth-first, and take a breadth-first approach instead.

When learning something, especially if it is a topic within a very large subject, sometimes, although it may seem counter-intuitive and uncomfortable at first, it is beneficial to resist the temptation to start with the basics. When reading an article on, say, Wikipedia, upon coming across a theorem or an equation or a quote that you don’t immediately recognise, don’t be tempted to jump straight into the exponentially branching rabbit-hole that is the world of hyperlinks. If you’re anything like me, you’ll starting clicking through onto every page of information possible, including things you hitherto thought you understood, eventually beginning to doubt that you can even comprehend what it means to ‘think’ anymore.

Not understanding every bit of terminology to the highest degree and not understanding every single reference to another piece of knowledge is not in indication of a lack of real understanding, but is simply an indication of a lack of contextual grounding. These ‘lower level’ gaps can be filled in later easily, and sometimes, despite how wrong it may feel, it is, in my experience, far more painful to try to build up from these low level blocks than it is to simply fill in the gaps later.

Don’t worry about the possibility of someone coming up to you one day and saying, “Yeah, but do you actually understand how it works underneath? You may be able to program in C, but do you really understand what the machine code underneath is doing?”. You can achieve great things and have a solid, genuine understanding of a problem without ever needing to understand the lower levels. Sure, often it helps, and I will always recommend that eventually you do go back and fill these things in, but when you’re learning something for the first time, perhaps getting a grip of the layers from the top down is the best and most rewarding way in. I have always been a strong believer in ‘building it up from first principles’, but I realise now that actually, pragmatically, you’re better off just getting on with it and learning about the higher levels first.

This whole idea may be obvious to you—I don’t know. But it wasn’t to me, and so I am writing it down in the hope that I can remember it next time I feel like I’m about to stumble into hyperlink hell.

Don’t be afraid to let others handle the lower levels, and to build your understanding on top of theirs. To quote Isaac Newton in 1675:

If I have seen further it is by standing on ye sholders of Giants.

…remember that filling in the gaps later is still important though! Just don’t try to optimise prematurely. 🧠