Building Software isn't just your coding skills, or ability to solve problems as you go.
Most of what you do is
- debugging
- assembling parts together
Myths around the Job
- writing the most performant code
- most maintainable code ( Piece of art )
Don't get me wrong but all the above happens through iterations and experience.
so as a Junior/Mid-level you are expected to work on the first two parts, get the most out of them and master these skills.
To jump from Junior to mid is all about how quickly you are in doing the first two things.
so how to get quickly on doing these?
Just by iteration, facing new type of problems having a breadth of knowledge that allow you to get unblocked.
you will hear a lot about the word Blocked so take this as a matrics when you are creating a solution, how many blocked do you have and how much does it take to unblock yourself, work on these very effectively and compare them from time to another, see how your growth and how it works.
Open-source is a very helpful way to measure these metrics, as you work with a similar codebase that you might face in the company.