Someone sent me an email asking me what advice I had for new developers. I get this question a bunch, so I wanted to put all my thoughts in one place, that I can update as I get more ideas!
I answered this a bunch on my AMA repo, so here's some initial general answers, before I get to some of the specific questions:
- how to find a project to work on: notwaldorf/ama#33
- how I learn: notwaldorf/ama#32
- what to learn: notwaldorf/ama#51
- advice for your first job: notwaldorf/ama#59
I think in terms of what languages to learn, it really depends on what you're interested in! C++ is good if you want to work on video games, operating systems or gigantor platform apps, but it's also kind of the hardest to learn. I find Python and JavaScript easier to learn, and more rewarding, since you can get visible rewards pretty quickly (and with JavaScript you can just deploy stuff to something like GitHub pages and like, instantly share it with people, if that's what you're into!)
I think the thing that helped me the most as a developer was having little projects I care about. As I mentioned in one of the AMAs, I'm very bad at learning things for the purpose of learning, so having like...a set goal really helps (like: I learned JavaScript because I wanted to make a task board for a team at an old company. I learned how to make an npm module because I wanted to make tiny-terminal-care and it's the only way to distribute that kinda thing!)
I think you're putting too much pressure on yourself! Feeling like you're not good enough is so standard in life it even has its own name: impostor syndrome. All the developers I know, myself included, have on countless occasions thought everyone else was better than them and they just accidentally got lucky. We've all been stuck on a problem for days, only to randomly discover a solution after a while, out of nowhere. I find stepping away from it or talking to people helps a lot! I also do this super annoying thing to my co-workers where I explain to them, out loud, the problem I have, but by explaining it to them I end up thinking about a solution. (this also has a name, it's called rubber ducking!). Anyway, it just takes time and practice to become confident!
Hope this helps!