In the third episode of The Impact Engineering Newsletter, we talk about learning.
How to save yourself hours and hours of learning
How to get results fast
How to find clarity in your learning path
The 4 elements of learning
Let’s start with the structure of learning:
Theory
Practice
Experience
Time
Theory
Some of us like books, some like podcasts and others like videos. Find what works for you the best. There is no single best medium of learning.
What’s important is that theory is the least impactful on your overall learning process. No matter how much you read and how many courses you take you won’t become an engineer if you won’t write a single line of code.
We like to be prepared for what we’re about to do but there is a limit. You’ll never learn everything up front.
I know some people that achieved great results without a single bit of prior theory. I think it’s not that great as you can have a better start with some preparation but it proves theory has a minimal impact on the overall process.
Practice
You’ve read a few books. Now it’s time to take action and transform what you read or watched into skills.
When you’re learning a programming language you have to build software. You build small programs doing simple things first and moving to more and more complex solutions. We’ll talk about the progression in the next section.
Learning is less about what to do (what you get from the books) and more about what not to do. In programming, there is an infinite number of ways how to write a program. Experienced developers differ from those who just started in their experience of what not to do. That leads them to better solutions.
The practice is also the part that’s the most scalable. You can decide to practice all day for a month and I can guarantee you get results at the end of that time. Just focus on making the same mistakes only once. A new error means you’re moving forward!
Skill
The more you practice the more you build up your skills. The more skills you have the more compounding effect of your learning will be.
If you learned one programming language, learning the second one is much easier. After you repeat that across 10 languages all you need is to look at how the syntax looks like and you can write programs without even trying.
The second dimension is having learned the basics you can learn more and more complex topics and pull yourself out of the people who know only the simple ways. It’s a decision you make about how deep you want to go. It’s good to get the depth in at least one programming language so you can be called an expert.
The risk here is that you learn a lot of things that aren’t related to each other. For example, I like photography and photo editing. I had to drop it a few years ago and the skillset of using Photoshop as it can be useful doesn’t align with my career and goals I have. Photo editing as great as it is doesn’t help on my path of programming and leadership.
Time
Skill is a practice over time. The more you practice the more you learn the more skill you accumulate.
To be competent you need about 20 hours of practice. That’s all you need to start and compound on skills you’re learning. Add 4 hours of theory (or less) before that and you get a skill every 24 hours of time you spend on it.
It’s the 3rd most impactful metric of learning. The second is how much time it takes you to start.
The fear of failure, being swamped in watching yet another youtube video or postponing learning to tomorrow. All that time keeps you from real learning.
It took me weeks to start writing on LinkedIn
It took me months to start this newsletter
It took me years to start working on building my personal brand
It took me two decades to make the first steps towards building a business
The shorter your time to action the faster your iteration time. If it takes you 3 weeks in between the 30-minute sessions of practice you won’t get anywhere any time soon. You’ll most probably forget what you’ve learned in that time.
We can’t rewind time but we can make a decision to not waste it more than necessary.
There is truth in saying “There’s no better time than now”.
Factors summary
To learn fast you have to prioritise action and speed. The more you do and the faster you are with taking the next step the higher your velocity of learning.
But it doesn’t matter how fast you are if you don’t know where you going.
Hope is not a plan
There is a valid case when I say that at the start you have no idea what you’re doing. What I found often it’s not a problem of learning itself and more of what to learn and in what order.
Hoping that learning a particular programming language will land you a job in the industry is not good enough. You need to plan what you learn so you won’t waste time on skills you don’t need. Like me and Photoshop.
The way I figure things to learn is through job offers. They describe the skills needed for a position. I note what’s mentioned and cross reference with similar positions across the market.
What I end up with is the list of core skills used across the globe in a given position. You can use the same method to figure out what your priorities should be.
Booster #1 - find a mentor
The best way to boost your learning is to find someone who will point out your mistakes before you can see them. Someone who can point you in the correct direction when you get stuck.
This will additionally speed up your iteration speed and you’ll learn from their failures so you will make fewer errors during your learning.
If you don’t have people with the knowledge in your network you can get on LinkedIn and just ask. There are also mentoring websites and organisations connecting mentees with mentors.
Keep in mind that mentoring 1-to-1 takes time and effort and you will need to prove yourself to your future mentor you’re someone worth their time. Learn by yourself first and ask specific questions instead of asking someone to do work for you.
The best way to find help is to help yourself first.
Booster #2 - pay for other people’s experience
You can learn nearly anything for free. It doesn’t mean it’s an effective strategy.
You can watch youtube for hours and learn what you need or you can buy a step-by-step guide.
You can fight your way through problems you’re stuck at or ask someone to review your code.
You can try and fail to learn what works and what not or you can know what to avoid before you start.
When you decide to buy your knowledge you trade your money for time. You pay the creator or coach to deliver you value in a shorter time than you’d need to find it on your own.
I think that money (and time) spent on education is always an investment. You will gain new skills and compound what you know already. It will never expire, be depreciated by inflation or be taxed.
The perfect deal.
Summary
Learning is a process. It takes theory, practice, experience and time. You need to focus on practice and how fast you iterate. You have to listen to the feedback loop of results to avoid making the same mistakes over and over again. And you need a plan so you’re learning the right things.
...and it took me weeks to decide to start reading your newsletter!
Never too late.
I like your style, and the content is absolutely valuable.
Keep going Darius.
PS: My preferred learning method is from books.
Thank you for sharing these helpful insights on the four elements of learning. I appreciate the emphasis on the importance of practice and experience in the learning process, as well as the need for a plan and prioritization of skills. The tips on finding a mentor and paying for other people's experience are also valuable suggestions for accelerating the learning process. Overall, this article provides a great framework for effective learning, and I look forward to applying these principles to my own learning journey.