Evolution of my learning methods, part #2

This is part #2 of my opinionated series about different levels of awareness of the learning process and its effectiveness.

  • Part 1 - levels 0 to 3 - was focused on motivation and habits, our drivers and the topic of discipline;
  • Part 2 (this one) - levels 4 to 6 - is focused on deliberate practice, just-in-time vs learning just-in-case as well as quality resources of knowledge, including newsletters;
  • Part 3 - levels 7 to 10 - will be focused on an increase in retention, or how can we increase knowledge stickiness, covering topics of making notes and repetition;

If you didn't read Part 1, I highly recommend it, because this post is a continuation of the previous thought process.

Last time I established that awareness, good habits, self-motivation and discipline are in my understanding a base, a fundament that you can further build upon. But what exactly can you build? Let's find out... 😉

Level 4 - Quality resource selection

It's interesting how much time we are willing to spend on materials, channels, blogs, books or courses which don't bring us much value. It's obviously not something that we do on purpose - it wouldn't make sense. Instead, we too often just fall victim to the sunken cost fallacy or fear of missing out.

Instead, we should cultivate a different behaviour. Arnold said in one of his talks, that we usually end up with only 6 hours left each day. Oh boy, and he didn't even take into account home chores and quality time to spend with your family... what I'm trying to say is this: in the days when there is more content than we can consume, and the amount of free time is so small, we should carefully prioritise where our time goes.

Rules that I try to follow, to get better at it:

  • Minimise time on finding good content;
  • Minimise time on accidentally consuming bad content;

In my case that means, that I do the following:

  1. Instead of actively browsing reddit, blogs, youtube channels or other multiple sources of knowledge, I focus more on aggregator newsletters. As a result, someone else does the hard work of selecting quality materials for me.
    Interesting aspect: if something is really viral and I should know about it, more often than not it will show up in more than one of such aggregators.
    That way I also discover plenty of great authors that I normally wouldn't find. If the content is really good I sometimes subscribe to them directly - to be notified about future content or get back to their past content just in case. I also feel it's good to let them know that I like the content.
    Want to know my list? It's here.
  2. Every couple of months I take a look at all newsletters that I subscribe and I remove the ones that I don't read often.
  3. I do the same with youtube channels, slack or reddit communities and anything else which notifies me of content.
  4. Instead of reading random books or watching random content, I keep a list of things I want to read or watch - Additionally, I take a look at reviews, and grades and if people who I respect recommended any of these. I prioritise that list based on my needs and curiosity. I use Notion for that.
  5. Of course, I sometimes fail, we are all humans... 😃


Up to this point, that may seem like a lot of hassle but in reality gathering content is easy since it's mostly coming to us automatically. That creates another, potential trap - FOMO. Let's talk about that.

Level 5 - JiT vs JiC learning

Once you are being spammed by all of these quality materials from multiple directions, two bad things may happen:

  • Despite your taking an effort to shorten your list to only good content, the list is growing faster than you can consume it. You start to feel FOMO - this terrible feeling of guilt that you didn't read/seen all of it... what did you miss? Source of anxiety.
  • You don't have full control over the topics which come in, in terms of newsletters or other subscriptions, and you may find yourself spending hours on learning interesting topics, but not necessarily the most important ones for you right now. As a result, you start to invest a majority of your learning time into "Just in Case" (JiC) topics - content that may be useful for you one day. Have you heard about premature optimization? Similar stuff.

These are two traps that people easily fall in, especially if they like to learn just for the sake of learning. I did a gallup test last year which confirmed to me that I'm one of such persons and I'm very susceptible to both of the mentioned rabbit holes.

Please remember that you shouldn't eradicate fully JiC learning, because it gives you plenty of benefits:

  • You know where to look for information and you often have a base of high-quality resources about many topics which may come in handy - it's so annoying when you know you've read a great article two months ago, you need it now and you cannot find it in google for some crazy reason...
  • General awareness about the industry and what is happening gives you an edge on important strategic decisions;
  • Sometimes even minimal knowledge about certain topics gives you more options on the table in daily, tactical decisions or may even open a branch that you can later decide to specialise in;
  • Usually it's driven by curiosity which may help you stay interested in the field for longer;

Instead, keep on doing JiC learning but don't spend the majority of the time you have available on it.

So what do I do to combat these rabbit holes?

  • First, I try to gain clarity so I can increase ratio of JiC to "Just in Time" (JiT) learning.
    • In my case, what helps is to define my current learning priorities.
      • What are the skills or competencies which I currently miss and I'd like to learn?
      • Why do I think I need to learn them? Is it a current need in the project, work, or maybe my next career level?
      • Which of these skills do I need to learn first? How big are they?
      • What should I do to learn them? What are the best 3 resources about that topic in my "just in case" reserves?
      • And finally, how will I know that I've learned enough for now?
    • Sounds simple but it's often fuzzy. From my experience, current needs in the project are the most obvious areas to learn and be certain you're done with the learning. It almost happens automatically. Career progression topics are difficult and may often require additional workshops to identify what should be your next step (like Crystal Ball from James Stanier or defining your positioning statement from Swizec), otherwise, you may end up spending a lot of time on... JiC learning :)
  • Secondly, I try to limit FOMO by limiting myself on how much time I spend on learning just in case every week.
    • In the past I would just open the majority of high-quality content from all of my sources and try to read it one by one. Usually, I was left with 20 open tabs and a new wave of newsletters the next week, leaving me with FOMO.
    • Now I do it differently. Some of the articles from newsletters, recommendations, youtube videos or other interesting sources store in Pocket. I can do it from any device.
    • Then, I have a dedicated evening during my week where I select things that I plan to read soon and I tag and archive the rest. If for some reason I didn't review these materials during that evening and it slips for the next week, I usually mercilessly archive the majority of stuff which was left.
    • I sometimes use Pocket to read stuff on my phone, but only if I don't have better things to do :)
    • If sources turn out to be really good and worth returning to in the future I mark them as favourite which spawns a Zapier hook to save them in Notion in my high-quality Just in Case materials database. I could just leave it Pocket but I feel their search system is very difficult to fully utilise.


If I have around 10 - 14 focus hours that I can commit to learning during my week, the goal is to spend 70% of that on Just in Time instead of Just in Case learning. If you want to learn more, I can recommend this article which covers also the topics of false sense of progress and Neomania.

Level 6 - Deliberate practice

Have you ever noticed this phenomenon, that people who start training in the gym achieve amazing results very quickly, and after some time, suddenly, it stops? Repetition and discipline are a baseline, but after some time, you need to spend extra energy to maintain focus and keep your exercises challenging enough.

Our natural way of operating is to simplify and automate our behaviours, turn them into habits or throw them away, so our brains won't spend extra energy on making unnecessary choices. It's a trap - by operating on "autopilot" we tend to take less-energy-consuming actions, usually repeating previous experiences instead of trying new approaches. If you are a senior engineer, you may often feel there is no need to try new tactics since you have seen most of that already in one way or another - that's why it's such a common pattern to call us dinosaurs after some time... 😂

Example: I learned in my early days in software to debug a lot of stuff by printing it to the console and going through the logs. It quickly became convenient and despite my senior colleague explaining to me how to use debugger in RubyMine or pry-byebug, my first, initial response was to print stuff. It was quicker, easier - only to realise that I did it for 10 minutes already and a single session with mentioned tools would point me in the right direction way quicker. It's not like we don't know what we should do - we're often too lazy to really push ourselves to do the hard or new thing.

Example: Let's say you have read a great chapter in a technical book, and you're feeling intrigued, maybe not fully grasping the entire concept yet. You flip a page and - woah - you notice exercises in this book! What do you do? Of course, skip it - it's easier to continue reading which is a passive activity, rather than stop and confront with more mentally exhausting exercises. Wouldn't they make you better? Isn't this the purpose why you're investing hours into reading this book in the first place? Maybe you've just failed a victim to your 🧠 by picking an easier path again.

How to fight it?

  • Find measurements which will tell you if you are getting better or not in areas that you want to improve. Unbiased, objective numbers will tell you if the improvement is happening or not.
    • See how much work you can do in a week. It may be MRs or story points or whatever. Can you make it better next week? What stops you from it? That may be your vector of improvement.
    • How much time did it take for you to complete a complex task? Why? What took the most time and what could be done about it? Maybe you can make this specific step more effective, maybe this is your biggest constraint.
  • Gather feedback from your peers, colleagues, customers or engineering manager acting as a coach and study it.
    • How many comments did you get on your last code review? Have they repeated comments? How could you prevent them from happening next time? What your senior colleagues are doing that you are not?
    • Participate in coding challenges and review other implementations of the same problem.
  • Split your craft or learning objective into small pieces and go very deeply into one of the steps, try to master it. Then, move to another one.
    • Need inspiration? Look into https://roadmap.sh/ and see if any of mentioned areas is the one which slows you down right now in your daily work.
  • It should be mentally exhausting. Think about it like HIIT training - if it's not exhausting, it probably means you should make it harder for it to work as designed. For the same reason, make sure you have proper time to rest between series of your exercises.


There are many examples on the web and fantastic materials from James Clear about this topic. It's a difficult step, but one which truly leads to mastery.


In this part we've covered another three important steps on a journey of a learner:

  • We have so many content creators that you need to be selective with the content that you digest and automate how you obtain new pieces of high-quality information;
  • You need to know what is the goal or purpose of your learning so you won't spend the majority of your time (that you don't have that much) on learning stuff that you may never use (Just in Case) - instead - try to invest the most in areas that you are certain they will be useful right now (Just in Time). However, you shouldn't eradicate Just in Case fully, since it comes with its own benefits;
  • Deliberate practice is a concious effort on making your learning challenging and forcing you to grow - it requires research, data, different ways of approaching the same problem, and ideally a coach - it's a similar aspect to the one in sports;

I hope that this part was useful. See you in part #3 where I will discuss the topic of knowledge retention - how to make what we learn more sticky, so this precious time that we've invested through parts #1 and #2 won't go to waste.