I love to learn new things, in part because I want to explore my next-self, in part standard curiosity. When it comes to learning or in general consuming optimally content to achieve a goal I see a gradient between visual people and audio-minded folks. In my case I’m definitely on the audio side, with learning/exploration paradigm being somewhere between audiobook and podcast, spending a good amount of time on books, some of the more relevant I put on my good reads which for me should be more like GoodListens since most of the title I consumed in the audio format while doing normal living stuff : drive, doing sports, dishes. With the right audiobook I love washing dishes
I recently listened to John Sonmez’s Soft Skills. The book is pretty good, that could be very useful when I started my developer career, but still useful right now. I find particularly useful the part about learning. The author is describing his learning process, something he tries to explain and sell for 💰💰💰 in this post.
I think we always need to learn, and the solid framework of yesteryear and just plainly obsolete now, but learning takes time and purpose. Back in the days of college, when knowledge evolution was slow learning was an easy 4 step process:
- Define a general goal - for me get into the tech world
- Get into a college aligned with #1 and refine - in college for some unexpectedr reason I wanted to become a hardware engineer, and work for the good guys doing cool stuff. Where good guys were AMD, the underdog, which try to change the status quo. Some 20-ish years later, AMD is still the underdog, but recently doing better on the status quo update.
- Get myself accustomed to the knowledge sourced from professors which pre-chewed the ambiguity of knowledge into relative clear-cut/no-questions-asked courses
- Get myself immersed into the subject matter and become the “journeyman” This learning strategy is partially funny looking retrospectively, but also incredibly open for improvement:
- add time efficiency
- think of the return of investment: a) is the college right? b) are the professors unbiased? c) do they have up-to-date knowledge? d) is the information worth absorbing or just reference material? e) will I become my next-self that I want to be?
Sonmez is spot on: today’s knowledge worker is always expected to learn, and while spending years to get imbued with the light of true knowledge and become a Jedi master is desirable, it is also unfeasible when one need to learn 4 frameworks, 2 protocols, and a new language by the end of the year, not to mention the flâneur mindset to get ready for the next big thing.
Sonmez’s strategy is a 10 step plan that actually is realistic, and I plan to apply it for my next projects:
Step 1: Determine the size of the field
- Get 20% that covers 80%
- Get skim some blogs
- Get the understanding of the size
- General -“learn Linux”, or “learn ML”
Step 2: Get the scope
- What exactly, focus want to know
- Proper scope " learn Linux - how to install and use basic features"
- If you don’t scope it - it could be too big
- Define the purpose of why you want to learn what you want to learn
- Be extra focused so that you have a chance to succeed
Step 3 Define success
- Be extra specific about what you can measure to prove if you attained success
- Example of good success criteria I can learn machine learning in order to obtain good results in a Kaggle competition
Step 4 Find good resources
- Seek valuable resources
- Sick more resources like podcasts and blogs not only books
- Think of top {x} books from Amazon, skim through them, not invest a lot to go into details
Step 5 Create learning plan - modules
- Plan - like any other plan in software engineering or not
- Learning of path
- Similar to the table of contents of a few books
- Many books will have a commonality to what exactly counts
Step 6 Filter resources
- many resources are more like reference material that takes a lot of time, but actually are easy to forget
- your time is $$$$
Advance part of the learning plan: LDLT -> learn do learn teach Pick a module from the plan for example :
- Want to learn ML (goal)
- Want to learn NLP (specific)
- Want to learn NLU (module) and do the following steps 7-10, repeat for the next interesting module
Step 7 Learn enough just to get you started
- Mistakes try to learn too much or too little
- Jumping too soon : not knowing the basics
- Jumping too late : be too slow
- Objective: learn enough for you to be able to explore on your own
- Example of success: have dev setup && hello world
Step 8 Play around
- Unbounded self-exploration
- Allow fast access to take action instead of learn a lot and then take action
- Basically, get quick the immersive taste of what you try to learn in a way to build satisfaction for current progress
Step 9 Learn naturally by curiosity
- Learn based on your target
- Ask your question
- Dig into the core of the material
- Read and scan, only important stuff for what you want to learn
- There are no golden stickers for reading a book cover to cover
Step 10 Teach
- The most efficient way of remembering, even uncomfortable
- Ways:
- Blog post
- YouTube video
- Present to a friend
- Presentation
- Answer questions in an online forum
- Make connections in your mind for thing you didn’t fully understand before
- Simplify things for self and others
Step 10 - for me, is this blog. I want a place to experiment and share funny ideas, examples of architectures, scripts, and anecdotes. Normally, as I learn, I write what I learned into a big repository of knowledge which for me is now implemented as of now in OneNote. But some aspects might be useful for others, so this blog is a way to share and in the process build my online presence.