My recent discovery about learning.

Just-in-time vs just-in-case

These are two approaches to learning. In short, the difference is:

  • You learn because you need it now just-in-time
  • You learn because you may need it in the future – just-in-case

A perfect example of just-in-case learning is school. Students are taught a wide variety of basics. Very rarely, however, they immediately use that knowledge outside school. Remember jokes about (no) usage of trigonometry in real life?

On the other hand, just-in-time learning is an approach very popular in the IT industry. The IT world is huge, but having Google and StackOverflow lets us do stuff that we didn’t know yesterday existed. We can learn things as we go. Lacks of knowledge don’t prevent you from acting. You need a purpose to act and learn in the meantime.

Anyway, let’s talk how I pictured just-in-time learning for the most of my career.

First face

Don’t learn without purpose.

This is an attitude of a lazy programmer:

  • I don’t need a preparation phase to program new stuff
  • I can do everything, I will learn as I go
  • No new projects? I won’t learn then

I’ve been there. Later in my life, there came the realization that this attitude has flaws:

  • It could become an excuse to not learn anything
  • The more you know, the better you estimate
  • You need to know something to comprehend the complexity of totality in some topic. Right?

All the reasons not to learn just-in-case are true, but it doesn’t mean you should learn only just-in-time. You need a balance between the two. Here’s an article on why you may need more just-in-case learning than you think.

Here a thing to tell little Bartek;

If there’s no purpose to learn, you should still learn some.

Anyway, later I’ve been enlighted by yet another conclusion…

Second face

According to “the first face”, we:

  • learn some day-to-day
  • learn deep when there’s a good reason for it

As for the latter, it always seemed to me that those opportunities to learn deep come from the outside. That’s a very reactive kind of thinking.

In reality, nothing stops us from creating the purpose ourselves. Nothing stops us from being proactive. And that was a big realization, and this is what I call “the second face”.

I’m talking cases like this:

I browse the internet and find an article about a new JS framework.

It’s really cool. I need to read it. Right?

Wrong. Most of the times, it will end up read and forget. That would be very just-in-case kind of commitment.

So what to do instead? You could:

  • wait for joining to a project written in that framework.
  • or, you can create a side project in that framework.

Simple, right? But it took me some time to connect this to just-in-time learning approach.

Starting a side project instead of just reading makes a big difference. Instead of learning in advance, you solve existing problems. Also, you already realize how much you care for that “new JS framework”. If commitment to a project is too much for you, then your reading wouldn’t be worth it.

You can still learn interesting things if nobody tells you. Create a purpose and go.

PS. As a side effect, I stopped bookmarking so many articles and browse so much content aggregates. I used to gather information “just in case”, now I’m more focused on a very few learning topics.