One of the best and most challenging things about building a course is you get to decide what kind of experience you want to deliver. This has really forced me to reflect on the learning process.
Developers are craftsmen. And just like anyone who takes their trade seriously, constant reflection and analysis are key to maintaining a high level of performance.
One of the things I like to analyse is how we learn new things.
If ever there was a trade that relied on your ability to learn, it is programming and web development. No matter how experienced you are, the learning does not stop.
Currently, I personally have two areas of focus.
Secondly, my job requires me to pick up smaller things at a much faster pace:
My question is this: should I be learning Less styling the same way I study AWS?
In other words, would you learn how to operate your new digital camera the same way you would French or Spanish?
The first is more procedural and practical. The second requires a broader approach, combining theory, immersion and practical application.
And yet, I find developers turn to the same dusty processes for every new subject. Usually it involves reading the documentation and doing the tutorial. OR, taking an online course and completing the exercises or course project. Are these approaches any different?
Of course the online course is meant to be much deeper and richer in content. But the pattern is the same: read or watch stuff, then try to apply it yourself. Sounds to me like exchanging a small manual for a giant oversized one, with a lot more information to digest!
The phrase ‘learning experience’ sums it up. For subjects that require broader understanding, the experience of learning is the key to retention and application. Watching, reading and applying is simply not enough - just like learning vocabulary and the rules of sentence structure and applying it in a test is not enough to grasp a language.
Really, it was the combination of everything that accelerated and deepened my knowledge. Things like:
Sustained and effective immersion is how one masters one’s craft.
Honestly, I am atrocious at any kind of drawing. Just ask the poor artists who work with me creating the TGS illustrations. But I strongly believe in its power to reveal the relationships between things. Have you ever been confused trying to work out a FOR loop inside another FOR loop? Drawing it can make it much easier to understand!
Reading is a fundamental skill of being a developer, and it’s not always about the code itself. The language we use to describe things can be just as important as the concepts themselves.
Listening is another important yet undeveloped skill. We can practise listening to others discuss subjects, without a visual representation.
Some argue that beginners need not and should not be introduced to source code. My belief is the sooner the better - reading other people’s code is half the job as a developer.
This is a personal favourite. Investigating and reflecting on concepts on your own should always be a starting point. This means running countless snippets in your console, and crashing your browser over and over.
I am a big believer of regular, routined testing to consolidate and deepen comprehension. This is something we will build upon throughout the course.
And of course, interwoven between all of it is the fictional, mnemonic universe I call The Great Sync, which provides a memorable reference point for every concept.
This is what I am building. Do you like the track I am on? Let me know what you think a good learning experience is, and if the approach I have outlined above excites you.