Maths professor, programmer and blogger John Cook discusses the importance of learning "just in case" versus "just in time", and how learning "just in case" is essential when something comes up and you need to learn something "just in time".
Photo by Martineric.
What do you learn just in case you'll need it in the future, and what do you learn just in time when you do need it?
In general, you learn things in school just in case you'll need them later. Then once you get a job, you learn more things just in time when you need them.
When you learn just in time, you're highly motivated. There's no need to imagine whether you might apply what you're learning since the application came first. But you can't learn everything just in time. You have to learn some things before you can imagine using them. You need to have certain patterns in your head before you can recognise them in the wild.
Years ago someone told me that he never learned algebra and has never had a need for it. But I've learned algebra and use it constantly. It's a lucky thing I was the one who learned algebra since I ended up needing it. But of course it's not lucky. I would not have had any use for it either if I'd not learned it.
The difference between just-in-case and just-in-time is like the difference between training and trying. You can't run a marathon by trying hard. The first person who tried that died. You have to train for it. You can't just say that you'll run 26km when you need to and do nothing until then.
Software developers prefer just-in-time learning. There's so much out there that you aren't going to need. You can't learn every detail of every operating system, every programming language, every library, etc, before you do any real work. You can only remember so much arbitrary information without a specific need for it. Even if you could learn it all in the abstract, you'd be decades into your career without having produced anything. On top of that, technological information has a short shelf life, so it's not worthwhile to learn too much that you're not sure you have a need for.
On the other hand, you need to know what's available, even if you're only going to learn the details just in time. You can't say "I need to learn about version control system now" if you don't even know what version control is. You need to have a survey knowledge of technology just in case. You can learn APIs just in time. But there's a big grey area in between where it's hard to know what is worthwhile to learn and when.
John Cook has worked as a maths professor, programmer, consultant, manager and statistician. He enjoys combining these skills and experiences to solve problems and see the solutions carried out.
Republished from www.johndcook.com