Practice and Learning
I used to be a bad employee, I'm still not a perfect employee by any means, but I used to be afraid to write code and when I wrote code it was never good code.
My code is still far from perfect, but now I'm not nearly as afraid to code, even if I end up throwing away the project or not showing it to anyone...
That's part of the reason for me creating this site. This isn't my first site I've created, nor my last (hopefully). But a lot of the sites I made are bad, or I never finished or other things happened. But despite these failures I like to think I've gotten better at it, as failures are an important part of learning.
It's like when little kids play with Legos and make their first rocket ship, chances are it's bad. But once they complete it, they realize what they could've done better. Then the next time they try to create a rocket ship it's slightly better, and they learned something.
It's all about being iterative and trying new projects and reevaluating what went well, and what didn't go well, and figuring out how to improve it for next time
Essentially I think we should all be applying an iterative process to ourselves similar to the agile method.
FYI: one of my favorite projects I like to make for learning a new tech stack (aka prove to a recruiter I knew React, Vue, Angular (what have you)) is to make a Tinder clone, that pulls gifs from giphy's trending api and have the swipe right save the gif to their favorites. It's a great project because you can easily keep adding to it (just like your lego rocket ship) and add more features that you might've not realized were important on the first go around (such as pagination, searching, etc.)