What’s the Best Way to Learn? Just-In-Time versus Just-In-Case


Illustration of an 18th-century classroom

You will never be dumber than you are right now. You will also never have more time than you do right now. Thus, you have a relative abundance of time and a relative dearth of knowledge. How do we strike a balance between these resources to optimally leverage them for learning?

These questions came up as I listened to two episodes of the Ruby Rogues podcast. In episode 70 David brings up just-in-time versus just-in-case learning. David’s ideas were prompted by Katrina Owen, who has a list of learning resources here. The other thought-provoking episode (responsible for the above paragraph) was number 87 in which the rogues discusses Sandi Metz’s new book, Practical Object-Oriented Design in Ruby. (I had the pleasure of meeting Sandi last night at a local Ruby meetup, after a draft of this post was written.) Here’s Chuck riffing off of a quote from the book:

“Practical design does not anticipate what will happen to your application. It merely accepts that something will and that in the present, you cannot know what. It doesn’t guess the future. It preserves your options for accommodating the future.” And so, what that says to me is you don’t always have enough information. You may never have enough information. You will never have less information than you have now. So make the design decisions that you feel like you have to and defer the rest, until you don’t have to anymore. And so it was basically, “Here are some rules. But use your best judgment because you’re going to get more information that’s going to inform you better later.” And so, that kind of opens things up. Here are the rules but if you have the information that says that you have to break them, then break them.

The just-in-time and just-in-case distinctions are useful in answering the question I posed at the beginning. But before I give concrete examples I think it is important to introduce another dimension to our learning classification: formal and informal. Being the good social scientists that we are, we can now formulate a two-by-two table.

LearningStylesJust-in-case learning is done well ahead of the time that it is needed for practical purposes. Children learn English (or whatever their native language) without thought for or anticipation of the letters, emails, and blog posts they will write in years to come. In a formal setting this can lead to the use of toy problems to make the skill seem practical. Students in an algebra class may have trouble seeing ‘the point’ of those skills until much later–and even then they may not fully recognize where that learning originated.

Just-in-time learning occurs at or very near the point of need. I could ask for travel directions to your house when we first meet, but that would be useless until you actually invite me (not to mention presumptuous). It is better to learn something like that when I can use it right away, since it has little value in the abstract. Programming–for me at least–has been much more of a just-in-time skill. I have taken one formal course in the topic and am currently enrolled in another. But the great benefit of these courses is that you get to put your skills to work immediately.

To answer the question we started with, I think that we need to place more value on just-in-time learning and less on just-in-case learning. As the quote from Sandi’s book points out, we live in a world of uncertainty. There are some skills that you simply cannot learn at a just-in-time pace (math being the main one that comes to mind). But for the plethora of other cases that our modern world and its tools make available, learning at the point of need is satisfactory and perhaps even superior. That is why we need to develop more avenues for just-in-time learning. Programmers have this in spades with sites like StackOverflow, but many other skill areas do not. Sites like Coursera also have a chance to provide a middle road between the categories in the table above. The ability to iterate quickly and pick up new skills on the fly will be increasingly valuable in the years to come.

10 thoughts on “What’s the Best Way to Learn? Just-In-Time versus Just-In-Case

  1. Great post! I find myself torn between both types of learning, and find both useful. I agree that we should do more JIT learning, but hesitate to say that we should do less formal learning. I do agree that the typical person spends too much time on the latter *relative* to the former, but I would solve this by increasing JIT learning while maintaining as much formal learning as possible. I guess what I’m saying is “learning is good! Always do more of it!” 🙂

    Furthermore, I think the lines blur a lot, and sometimes learning the same thing can be formal or just in time, depending on the situation. For example, studying the Visitor Pattern on its own can help you think better about how to solve a given design problem, but you can also arrive at it by doing a JIT refactoring of a bunch of nasty code that iterates over a collection of objects.

    Thanks again!


  2. Nice post,but the simple truth is that you can (and might ) become dumber than you are right now.If you leave near the atlantic you will observe that metals left unattended have a coat of rust over them;the English word here is ‘decay’.If you donot make delibrate efforts to increase your knowledge base,decay becomes the next step of your human existence.
    Just in time or just in case? Both should happen together.
    Just in time implies the acquisition of knowledge for predictable times ; as for just in case,yes you guessed right: acquiring knowledge that may ( or may not) come in handy.

  3. Excellent post, Matt. Thought-provoking, especially for a sociology/philosophy-novice like me.
    Here are a few thoughts:

    Was trying to place this idea in the developing nation context… How about competition playing a part?
    I am an Indian citizen, travel often to the US – once I had a conversation with a senior colleague, of Indian origin but a naturalized US citizen. It was about breaking traffic rules. I remember mentioning how in India there’s little lane discipline and lesser traffic rules are followed… while it’s much more law-abiding in the US. My colleague mentioned that – rounded off, the US is three times the size of india, has three times the number of jobs, three times the resources, and has one-third of the population. There if therefore a greater competition (about nine times) for the available resources in India. So people break traffic rules, because the offhand chance that you will be caught by the police /// the penalty for a single traffic violation; is considerably mitigated by the 15 minutes you save everyday by breaking traffic rules. With greater resources comes lesser need for scrambling for resources. Thus lesser traffic violations. And then he asked me to put this in the context of the armed break-in and robbery that one of our ex-colleagues faced in Nigeria, when on a project there. There are lesser resources there in Nigeria in the hands of people than in India, thus the greater propensity (and greater magnitude) of law-breaking.
    Now transpose this idea to the concept of JIT and JIC knowledge. JIT knowledge is slow, JIC knowledge is fast. If you have driven to a complicated address a hundred times, you will take lesser time to reach there on the 101th time, than someone trying it the first time. Similarly for writing code. In a resource constrained situation, it probably makes sense to cram up as much JIC knowledge such that they can later come in handy against competition. The more the competition, the better it is to “already know” something than “pick it up on the job // as one needs it”.

    Also, knowledge is cumulative. The world around us will be more knowledgeable than it is right now. by law of nature, and by law of invention and discovery. Thus if we stop our continuous capacity to acquire knowledge (i.e. lock ourselves up in a room or something), we will indeed get dumber, relative to the world around us. Pretty much like running against time.

  4. In the digital world of today it is a lot easier to justify just-in-time learning. However, you really need a broad base of just-in-case learning to make sure you know what information you need to learn in those just-in-time cases and also where to find it. You also can learn faster if you have a base of knowledge to build on. I am a constructivist when it comes to education, so for me just-in-case learning is more important. In the technical courses I teach the students need a good base of knowledge or they quickly fall behind.

  5. This was an interesting read for me, particularly because I decided to design my own “learning map” or curriculum for 2013, in an effort to learn as much as I can about a few topics. Some of them are goal-oriented (e.g. microfinance, for the job I’m starting soon) and others are just for general enlightenment (e.g. read all of Milan Kundera’s novels). I find that I retain just-in-time learning much better than just-in-case learning, no matter how hard I try to force it to stick in my head, so now I’m thinking of ways I can take that into consideration as I take on this autodidact adventure.

    • Thanks Meghan. It’s been fun to start following your adventures. And I certainly agree that it seems easier to retain just-in-time lessons–maybe because you already have a concrete context in which to place them. You might enjoy the book “Pragmatic Thinking and Learning,” which I just recently finished reading.

  6. I always have learnt just in time because of laziness. I thought that was always a disadvantage. So my views have changed now. Though there is the necessity of “Just in Case” learning in quite a few cases I can see the advantages of Just in Time learning as well. Great Post, Thanks… Keep it up…

    • That’s why I have a kanban to help me manage my flow of learning. The backlog contains a list of learning needs. This could be a blog, video, book (split into chapters or sections) that can be completed in 1-2 hour chunks. That way I am prioritising my needs frequently, the more JIT items are near the top and the just in case towards the bottom. I only do 1 or 2 items at a time (limit WIP).

  7. Pingback: » Learning New Methods: Just-in-Time or Just-in-Case :Carlisle Rainey

Comments are closed.