I think of it in terms of levels building on top of each other, or circles enveloping each other; also how I evaluate interviewees and new hires:
Finishes the task, but needs handholding
Finishes the task, figuring it out from docs, guides, and internet
Finishes the task, proactively trying to make sure it doesn't return again as a bug or failing QA
Finishes the task, designing things in a way so that devs don't need to put in extra effort in the future
In short, learning how to do something right, but also alternative strategies, how to pick the best option, and finally make sure you always end up with the right choice, or automatically do so, by design.
It's at core a matter of experience, but taking on new opportunities and reading up helps to accelerate that.
I think of it in terms of levels building on top of each other, or circles enveloping each other; also how I evaluate interviewees and new hires:
In short, learning how to do something right, but also alternative strategies, how to pick the best option, and finally make sure you always end up with the right choice, or automatically do so, by design.
It's at core a matter of experience, but taking on new opportunities and reading up helps to accelerate that.