In my experience, learning requires these 3 things:
- Variety. The more mediums and sources of information consumed, and the more senses involved, the deeper the learning. If you’re only watching udemy tutorials, this is a problem.
- Retrieval. Knowledge needs to be packaged up, recorded and made easy to recall when you need it. Google and AI are helpful tools, but they will never replace the knowledge and big picture understanding required for any profession.
- Struggle. If you’re currently stuck on a project. GREAT. If you’re currently pulling your hair out because your code does not work like the tutorial says it will. BRILLIANT. Struggle, and then struggle some more. This is the main ingredient for the making of a talented, skilled developer.
This isn't something I've dreamt up. It is based on quantifiable evidence of effective learning methods, and most books on learning will focus on these topics. My favourite is Make It Stick.
The challenge was to always make sure The Great Sync addressed each of the 3 learning requirements above: variety, retrieval and struggle.
How many times have you heard the this variable described as a flying turtle? Or function scope as a lighthouse that can locate islands?
Silly? Yes. Effective? Extremely.
The default is learning coding via a 2d screen: your code editor. But although we write code as text, code actually lives in a three dimensional space. Reading text is too limiting to fully comprehend what is going on between the lines of your code.
This allows you to engage with the material in a whole new way, and push you to look at things ‘differently’ - perhaps the understatement of the year.
Retrieval is the step I firmly believe most courses and programs neglect. We need a systemic way of remembering what we learn, otherwise what’s the point? Consolidation of knowledge means taking what we have learned and storing it somewhere that makes it easy to remember when we need it.
But how do we do this? Do we keep a spreadsheet or Google Doc with everything in it? Do we maintain a comprehensive Notion space? Or go old school with a good-old fashioned notepad with thousands of scribbled pages?
I have used all of these, and from my experience this is a great first step for recording new information. But it does not help with remembering it.
Instead, there are 3 things that help with this.
1. Applying knowledge to projects (you have probably heard this a thousand times). It works because it increases struggle and problem-solving.
2. Spaced repetition and self-testing. This is incredibly powerful and will lead to long term retention. Tools like Anki make the process easier.
3. Mnemonics. This is the ability to turn concepts into easy-to-recall abstractions. There are many methods for this, but the underlying principle is that most people think visually, and have a much easier time thinking of an image rather than a word.
If there is one rule I try to base my career on, it’s to always embrace struggle. There is no greater learning merchanism than continued cognitive effort.
The trick is to keep an end in sight. If you step into a dark cave and have no idea why you’re there in the first place, it’s not your mountaineering skills you should be doubting, it’s your sanity! Always know what you’re trying to accomplish.
The Great Sync gives you a framework for expanding your knowledge. The first step is childish exploration. We play with concepts without pressure and expectation to understand. It’s the ‘pick it up and put it down’ mentality, which I call the investigation phase.
The next step is application and identification of patterns. Not just in your own code, but in other people’s code too. The light at the end of the tunnel is identifying the pattern. You might not understand all the code, or what the final outcome is. But if you can spot the bigger patterns and architecture, you’re no longer operating at the beginner or junior level.
What do you think? Is this learning approach for you?