Efficiency in learning
Working in an environment which requires the ability to consistently learn new things at a fast pace, you would think that placing some time and effort into the process of how I approach new things would be a priority. But consideration and deliberation so far have not always been involved with my learning strategies and looking back on the last year and even longer before I find myself wondering "How much time have I wasted relearning things I should have gotten the first time around?"
This article is a declaration of my intention to approach the new things I learn in 2024 with a method aimed at increasing knowledge retention, filling in gaps of knowledge in areas I'm supposed to be exploring and reducing the time spent revisiting topics or concepts that I should have been confident with before moving ahead. If you feel that your approach to learning may also be inefficient, then there might be something of value here for you too.
The theory discussed here is known as Kolb's Experiential Learning Theory. Kolb's theory has 4 stages in the following order: 1. Concrete Experience, which involves hands on learning where the learner engages in an activity or has a direct experience. 2. Reflective Observation involves the learner reflecting on the experience evaluating the outcomes, feelings or observations about what happened. 3. Abstract Conceptualization, after the learner reflects, they form ideas or concepts in an attempt to make sense of the experience. 4. Active experimentation involves the learner applying their newly formed ideas or concepts in a new situation furthering the learning process through action.
There is a slight adjustment to this theory that I think is more suitable for people working in tech or more specifically in my case web development. What I'm going to be focusing on in my learning are these three stages: 1. Theory 2. Action 3. Reflection
I believe theory being the first stage makes the most sense for my situation as surely you would agree first one should learn how to build before building. This stage involves exploring how to use this technology, where are the pitfalls? What are the tradeoffs? If it's a new language what is the syntax? how does it behave compared to other languages you may be familiar with? This stage can be fulfilled by reading official documentation, articles or following along in tutorials or listening to people who know discuss the topic.
Action is where we put the knowledge we have gathered from the previous stage to good use and build something ourselves with what we've learned. This is probably the most important of the 3 stages because actually using what we have just learned commits it to memory more so than reading about it ever will. This stage can be fulfilled by creating personal projects utilizing what you've learned. Maybe instead of creating a new project you could integrate the new tech into an existing project. I would recommend starting small with a new project before you try out integration because there is less room for issues to arise in a project exclusively using one thing rather than finding out the new tech you are trying to learn doesn't play nicely with other things in your current project. Then you could also try getting involved with an OSS project using the tech that you've learned. In my opinion this should be last on the agenda as you should only be trying to contribute to projects after the initial work has been done on your end.
This is the final stage and in my case probably the most overlooked. This stage involves actively reflecting on the experience from the previous 2 stages. This stage is necessary for the learner to identify if there is room for improvement in either of the 2 previous stages because spoiler alert after reflection you repeat the cycle. This stage allows the learner to prepare for the next cycle and figure out what adjustments need to be made. This stage can be fulfilled by asking and answering useful questions like what were the biggest issues I faced in the Action stage? Was it due to something I could have done better in the Theory stage? In my next attempt to utilize this new tech, what can I do to improve the results? What can I do better? What should I do differently? Why?
Now that you have finished reflecting it's time to jump back to the start and use stage 1 to answer any questions you might have about why something didn't work the way you thought it should or maybe everything worked perfect and you're diving deeper into a more advanced area of the topic.
So moving forward into 2024 I will be more conscious of how I'm learning new things, I will consider the 3 stages I laid out above, am I neglecting one? Will this potentially slow me down or take longer? It's possible, but here are some words worth remembering:
"Short cuts make long delays" - Peregrin Took
It may seem like it's taking longer but by solidifying your knowledge and using this well rounded approach you minimize the chance of needing to revisit what you have already explored.
"It does not matter how slowly you go as long as you do not stop." - Confucius