I've been programming for money close to 25 years and I can assure you that the "junior" period covers at least 5 years. Yes, 3 years in you would think that you know a lot, have a boatload of experience and just a wee bit under "senior", but then at a 10 year mark you realize how obnxoisously cocky that self-assesment was. You just didn't know what you didn't know, but it didn't prevent you from feeling super-smart.
So, yeah, the OP is most definitely junior. That part is not a problem and it's actually really good that he doesn't think more of himself than he really is. His problem is a lack of experience and the only solution to this is just to sit your ass down, read what others have written and write your own code. Iterate.