Or: to my younger self, with love.
Listen: things will be hard, and then they will be easy, and then they will get hard again, because you have earned the skills to imagine the ways in which you can be better. Even when you're learning you'll think: wasn't this easier to take in before? And maybe it was, or maybe you're learning harder and harder things.
Sometimes impostor syndrome comes from within—not in comparing to your co-workers and classmates and the Silicon Valley luminaries you followed on Twitter, but in comparing yourself to you as you were when you were ten years old and burning with the enthusiasm of someone discovering her new world and the way she could impose her will upon it, or even you as you just thought you'd be by now. We often have the least patience for ourselves.
Keep learning, and try not to lock yourself into the futures you can see yourself in now. You don't think you could ever be a manager, but those skills are things that will come to you easier with practice, too, just like code, and those skills are just as important. To be able to estimate, to have confidence in your implementation ideas, to be able to communicate—those are things that demonstrate mastery of craft, too. But it's okay not to force it before you're ready, too.
The tools you use may change and the people you work with may change, but what won’t change is that this work is something that calls to you and drives you to be your best self in a way that will, someday, make you feel like an expert. Someday you’ll be an expert. Someday you’ll feel confident saying “I don’t know, but I’m sure I can figure it out” and it’ll be true.
When you can’t see what lies ahead of you with any certainty or any knowledge of payoff, the hardest thing is to keep going. What I can tell you is that if you keep going, if you find friends and peers and mentors to support you (and you will) and take care of yourself (it helps, I promise), you’ll eventually find yourself in a place where you realize that you have everything that you need.
There will be days when everything feels like it’s fine and you’ll feel fulfilled by your work and still feel like you’d prefer to just lie down because (for better or for worse) you're not a formless energy cloud of programming knowledge and your body has just decided to rebel. Sometimes work will be great but some dude you’ve never even heard of somewhere across the country will unleash a waterfall of hot takes about whether people like you should be programmers and you’ll just feel so very tired. Give yourself a break, do what you need to get back on your feet. The needs of the mind and the body are needs you’re allowed to have. The productivity can come later. You have plenty of time yet.
You’ll never be done learning or improving, and you’ll never get a trophy that says you get to be done and that everything will be perfect smooth sailing from here on out. But like all hard things, carrying on gets easier with practice.