At one point, I started questioning my own approach to learning, especially in the fast-evolving field of software development and equally applicable to all other professions.
Is learning only about new skills, tools or techniques? It took me years to realize growth isn’t just about unidirectional progress(going forward) ; it’s about questioning how you learn and refining that process.
Over the years, my journey of learning—moving forward to explore new ideas and looking back to uncover gaps—has taught me a valuable lessons and my further exploration to it has lead me to a framework of learning.
I realized that simply learning more wasn’t enough. To grow meaningfully, I needed a framework for learning that not only helped me learn new skills but also addressed gaps in my understanding. Through this exploration, I discovered three impactful principles inspired by educators and learning frameworks that have transformed how I approach growth:
These principles are my roadmap to building a stronger foundation and growing smarter. Through my experience, I’ve discovered a powerful framework that combines Kolb’s Experiential Learning Cycle, The Feynman Technique, and Interleaved Learning—a model that helps me learn deeply, teach effectively, and connect ideas across topics.
Following three techniques are discussed in brief:
David Kolb's Experiential Learning Theory provides a good framework for understanding and enhancing the learning process to grow as an efficient engineer. It is divided into four stages of learning.
Step 1: Try It Out (Concrete Experience)
Simply jump in and immerse yourself in practical hands-on activities. Don’t overthink how it works.
For example, if you are trying to learn JavaScript or Node.js, the first step is to start building a small project like a to-do list app or a record-keeping app. In this step, don’t struggle to understand how the server is created, how it works, and so on.
Step 2: Analyze and Understand (Reflective Observation)
Understand how each thing is working on the surface or why something isn’t working when it should, and try to debug and experiment. Study documentation, error messages, and so on. Tweak the code, analyze the results, and start to understand why something works and others don’t.
Step 3: Formulate a Mental Model
Now, it’s time to dig deeper into the topics. Break them down into smaller chunks and build your mental model.
For example, learn about how Node.js works, what the event loop is, how it handles each HTTP request, and so on.
Step 4: Try Again (Active Experimentation)
Use the overall understanding of the topic and apply it to improve the same code or enhance what you are learning. Use your latest understanding of the topic to experiment.
Repeat this process for each topic you encounter, continuously improving your understanding.
A classical mistake most people make in learning is that they treat reading itself as learning. But in reality, learning is an active process. While reading can be passive, it’s possible to grasp only 10% of the lessons.
The Feynman Technique revolves around a simple idea: **If you can't explain it simply, you don't understand it well enough**. There are always blind spots in learning. You can’t figure them out until you try explaining it to someone else. Teaching solidifies your understanding, reveals blind spots, and builds confidence.
You can teach or share your topic in any way—writing a blog post, creating a video, teaching someone else, or even explaining it to yourself. Explaining can be simplified by adding analogies and stories to make it more interesting.
According to Feynman, learning involves four steps:
Interleaved learning is a technique that enhances overall understanding of topics. Instead of focusing on a single subject for extended periods, it’s more effective to mix and switch between different topics. This approach broadens your understanding by allowing you to compare and contrast various problem-solving methods across multiple subjects. By interleaving your learning, you develop a more comprehensive grasp of concepts and their applications.
For example, instead of spending all your time learning about Node.js, try switching between Node.js and another programming language like Python. By alternating between the two, you’ll gain a broader understanding of different programming concepts. You’ll start to see similarities and differences, like how both languages handle variables, loops, and functions. This will help you grasp the fundamental principles of programming more effectively.
Since you’ve come this far reading this article, I don’t know if you enjoyed it or not, but here's my framework to learning from this day forward:
1️⃣ Reflection: Regularly look back at my journey to identify areas I didn’t fully grasp or overlooked.
2️⃣ Sharing: Turn my learning into opportunities to teach, post insights, and solidify my knowledge by explaining it to others which will be on my LinkedIn as well.
3️⃣ Feedback: Actively seek guidance and fresh perspectives from YOU—my amazing network—to refine and strengthen my understanding.
If you spot something I’ve missed, misunderstood, or could improve, I want to hear it! Your feedback, no matter how small, will be invaluable in helping me refine my understanding. And hey, maybe my learnings will inspire or help you, too!
🌟 The Exciting Part: This is not just about me -it’s about building a community where learning is collaborative and fun. I believe the best way to grow is by sharing and connecting, so let’s make this a two-way street!
Are you in? Let’s create, learn, and inspire each other. Drop your thoughts, challenges, or advice in the comments—I’m ready to dive in and learn from all of you! 💡