I started learning from only basic knowledge gained in engineering school. I started small, but always strove to maintain a consistent amount of effort. Gotta pick up that hammer and swing it, even if it just means making one little crack in the wall.
The most difficult thing by far is silencing your own self doubt. It's too easy to think of the massive amount of knowledge you're supposed to know and immediately tell yourself you'll never make it. It's a skill in itself to just ignore those thoughts and keep pushing. What other option is there besides walking the path or giving up?
One thing I've noticed from other self taught programmers is that many will eschew the fundamentals. I believe it's really important to understand why a certain tool or framework came about and what issue it's trying to solve. Don't be afraid to step away from the hottest frameworks and cut to the basics.
Don't mitigate your accomplishments. So much work going on now is so complex and impressive! That doesn't mean your small project isn't any less of a personal achievement.
Keep learning, keep building and immerse yourself in the community. Don't forget to pick your head up every once in a while to see how far you've come.
I also like your note about accomplishments. This is really important to feel proud about things you've accomplished. Finding joy in these small completed projects may motivate you in going forward. There's no point in feeling worse.
Everyone started somewhere and it is very likely that most of the brilliant programmers also made simple things in the beginning (and most probably were very proud of them :)), but yes - fighting your doubts is very difficult.
I feel like we should try to find someone who will give us a positive feedback to soften the frustrations. This may not even be a specialist in the field - show what you've done to a friend or family - added bonus: they will be likely even more impressed. We tend to be overly critical about ourselves, so it is useful to search for feedback from others.
Thanks a lot for sharing your thoughts!
I'm about to start applying for full time developer jobs and grad school so I've been reflecting a lot on my journey to get here. It's going to be a leap but I'm confident I'll make it!
Thanks!
All lessons are interesting and all ideas can be valuable, but in this kind of articles I always find that the most valuable advice is just this: be persistent, don't give up. I'd say this is usually the key for success in many areas of knowledge (and certainly in programming).