Learn in Your "+1" Zone (not "+100", not "+0")
As a junior dev, you're always learning something new (and, surprise, this will actually never stop -- principal engineers learn the most :-) )
So, there should always be a next thing on your learning bucket list. But how do you choose what to learn next?
Let's dig a little bit into pedagogy (theory of learning). German educator Tom Senninger (building on Lev Vygotsky's research) developed a model of three "learning zones." I'll call them +0, +1, and +100.
In the +0 zone, learning feels very easy, but you don't really learn anything new. Learning gets boring. You don't grow.
When you're in the +100 zone, you're trying to learn something that is fundamentally beyond your capacity. This leads to anxiety ("I can't get it, I am stupid"). Learning shuts down.
Now, in the +1 zone, you're adding some new learning to what you already know. It does not always feel easy -- you have to work hard -- but you're clearly learning.
Let's think of a technical example. Suppose you know Python well enough, and you're wondering what to learn next.
The +0 zone is watching another video about Python syntax. You may feel productive ("I'm watching a tutorial!"), you may even earn a certificate (and post it on LinkedIn), but your brain is not really working.
What would then be an example of +100? "I will contribute to CPython!!!" This is great as a "big hairy audacious goal" (more on this in a later tip), but a very bad idea now. If you don't know C, memory management, garbage collection, and the contribution workflow of a massive open-source project, this is a clear path to panic mode and, soon, to the "I am useless" mode.
The +1 zone here can take multiple forms:
- You could read "Fluent Python" to understand how the language actually works under the hood (dunder methods, generators, etc.). Here, you focus on the language and take it deeper.
- Or, you could learn a Python library like Pandas to see how you can solve problems in a different domain (namely, data science).
- Another option could be learning some tooling for Python, like
uvorruff.
Of course, there are situations when you don't really have a choice. Sometimes, your job, or your class force you right into the +100 mode, or keep you stuck in the +0. But when you do have a choice -- which is actually more often than you think -- reflect on what you already know and identify the learning direction. Not too comfortable, yet not the full "panic mode on."
One (+1) step at a time. That's where the most effective learning happens.