That title might sound a bit weird. I've been a junior developer, have hired and lead many junior developers and when thinking about it, you don't start out as a Junior Developer but rather at some point become quite good at it that you keep growing.
I.e., in having setup coop and intern programs, I wouldn't classify all of these students as Junior Developers but as Coops and Interns - they are in a different stream varying greatly from that of a Junior Developer.
When I look at what it takes to become a solid Junior Developer that is contributing to the team, delivering, and growing, here's what I generally think of.
I remember during all of my various job applications, it was the small companies that were getting back to me over the big ones. Perhaps I wasn't good enough or didn't have that safe "paper" they wanted. Regardless, going small was the BEST decision, because through working with smaller companies, I got to touch a lot more. Over the years I've heard the same thing from Coops and Junior Developers that we have hired that have said the same thing - we do more with your team in a month than we did with a large team over the last four months. The bonus here is that small companies will always need extra hands to get projects done so the amount of new stuff you can touch is unparalleled.
Whatever you are working on, you know the industry, and after a few weeks, you know what your team is using - Node, React, Angular, C#, AWS, GCP, Azure, etc, etc - you know the platforms and the big heavies that are in use. In my case, we were using ASP and some early days CSS and were just starting to get into Java and .NET. I wasn't being asked to work on any of these projects (YET) but knew that if I wanted to get onto them, I'd have to learn these technologies on my own. So I did, I spent time with copious books and blogs figuring out what was and prepared myself for what I wanted to get into.
If you see a new project coming down the pipe, put your hand up.
If there is a problem in the latest build, put your hand up.
If there is a process that is taking too long, put your hand up.
It was at least six months before I started getting projects and features to run with on my own. For those first six months, I was doing bug after bug after bug, I got all the work that no one wanted to do, I got the Grunt Work.
Not the pretty work, or the cool work, but the monotonous and painstaking work that needed to get done.
That's okay, embrace it. Through doing that work I was able to suggest changes in code that would prevent us from ever doing this grunt work ever again. Translation: I found a way to save us time that resulted in the bugs never having to be dealt with again that enabled me to get better Grunt Work to work on.
You get to the point as a junior developer where you think you are too big for what you're doing. Maybe you have reached that final apex, but from my own experience and from what I've seen, we all think we've made it far too early. I had a number of humbling moments where I accidentally overwrote a customer's site or took down a server. It's life, it happens, if it doesn't, don't worry, it will.
The key is to admit when you've made a mistake and work with the team to figure out the solution. You're not alone, you might be the only junior on the team, but you've got a team and/or a community to help you, but not letting your head swell up is key to being successful.
You'll figure out the technology, the patterns, the languages, the syntax, the best way to catch errors, performance and everything else along the way.