I have about 2 YoE, and I’m sure this changes with more experience.

I often hear this idea online that programmers should follow “just-in-time” learning, meaning you should prefer to learn things you don’t know while on the job. ( The way some people talk about it, though, it sounds like you shouldn’t dare spend a single minute learning anything new outside of your 9-5. )

This seems generally reasonable advice, especially for simpler things that take a few hours like learning a specific language feature, library, or similar. But when I lean too much on this JIT learning, it feels possibly detrimental.

Many times I do something big and new to me, say, deciding how to approach auth, microservice architecture design, automated testing, containerization, etc., I end up making a big decision after a few hours or days of cursory reading on documentation and blogs, only to come to regret it some months later. At that point, maybe I’ll slow down, find a book on the subject, read it, and think, “Oh, darn, I wish I knew that N months ago.” It certainly feels like spending more time learning upfront could have avoided mistakes due to lack of knowledge. Though there’s no way to go back in time and know for sure.

I’m not asking about any area listed in particular. I feel like, for all of those, I’ve learned more in the time since, and would probably avoid some of my prior mistakes if I did it again. The question is more: How much do you subscribe to this idea of just-in-time learning? And if you do, how do you know when you’ve learned enough to be confident, or when you need to slow down and learn in more depth?

  • @Kissaki
    link
    English
    4
    edit-2
    2 months ago

    Your description of JIT-learning sounded more like learn-only-on-the-job than JIT.

    When you say “should have learned more upfront” I don’t see how that would necessarily have to be outside or within the job. Where you learn it is open and arbitrary. For me, it’s a question of what’s reasonably necessary or efficient, does it make sense to explore more or prototype at work? Outside of that, I would have to have a personal interest in it to explore it in my private time just in time.

    Usually, I learn upfront unspecific to concrete work. And that experience and knowledge come in handy at work.

    When I’m on the job I work on and learn what is necessary to the degree it makes sense. I prefer to fully understand, but sometimes that’s not possible or reasonably, acceptably efficient. Then you can weigh risk vs cost and prospect. There’s no way around weighing that each time and individually. Development, in/as general, is too varied to have one arbitrary supposed weighing to follow.