Nice post Stefanni.
I think one of the best pieces of advice I got for this back when I started out was to, in a sense, celebrate the small victories.
Every time you push a fix (let's face it, most juniors start out doing smallish bug fixes) and you see it working in production you build confidence. When the customers get it in their hands and they are happy that a feature is no longer broken it can be a tremendous boost to your confidence.
My first "big test" as a junior was during a trade show that my boss was attending. I was maybe a couple of months in as a junior. I got a call at around 4:00 from my boss that he was set to present something the next morning and part of an integration with another system had recently been broken. I had never worked in the integration's code and now I was looking at it for the first time under some degree of duress. I was short on time to get this fixed. It was scary as hell, I didn't know what I was going to find before I looked at the code. I knew that other parts of the code were a mess, if this part had been a mess too I would have been in for a long night. The senior devs had already left for the day so the fix was all on me. Myself and the QA team stayed a couple of hours later than usual, me fixing, them testing. By 6:30pm we had pushed the changes to the demo server and my boss had his first look. It worked and my boss was extremely grateful that I was able to get the fix in for him. It built my confidence and had the side effect of building my bosses confidence in my abilities.
After that I became the point person on a few of our integrations and was considered "the expert" on one of them. Even nearly a year after leaving that company I still get occasional emails from the senior devs about some aspects of the integrations I knew well.
When I started programming for the company I also got to know their source control solution well. I downloaded Vault to use at home. I never became a vault guru or anything like that, I just wanted to be familiar with it enough to get the job done.
If I got stuck or didn't understand something(LINQ was very good at confusing me at first) I would dig for a while and try to understand it. If I still wasn't able to understand it after some time I would ask the senior dev that sat in the cubicle next to me. He would perch on the divider between our desks, I would angle the monitor towards him and point to what I didn't understand. Then I would slowly walk though what I already understood. It was usually a sort of "this does this, and this does that...but what does this do?" kind of question. If it was something simple that I was missing he would say "you know this, just think a little more", if it was more advanced he might give me the answer or at least point me in the right direction if I was completely off track in my thinking.
The moral of the story is just to keep chipping and chopping away at things you don't know. It will be hard at times. Sometimes you'll want to give up and say "I don't get it, maybe this kind of work isn't for me" but don't. Those hard fought victories are the sweetest of them all.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.