The average junior dev starts before they're ready. With so much to know in so little time one usually picks up somethings along the way. I remember accepting to work on a website for a friend, at the time of accepting the offer I didn't know how to make responsive web pages (these are webpages that adjust their display features to suit the device you're accessing the website from), I did however know the topics and areas I needed to learn quickly and with a couple tutorial videos I caught up.
I find that the confidence to try, to throw your hat in the ring can be the difference between those who do and those who don't. The tech community is so collaborative that if you're hitting your head against a wall, there's probably someone with a bulldozer you can reach out to who will help you destroy the wall for free. There are also rockstar organizations that take a chance on junior devs thus giving them a platform to grow while having tons of senior mentors around.
One feeling that doesn't get old is when you're able to pull off something you thought was beyond you. There are times when a little bit of information is all one needs to understand the big picture which looked complicated previously. I do believe that taking on projects is the catalyst that helps accelerate the growth of new entrants into the software engineering field.