> Stop telling yourself that. You wouldn't be #11 out of 25,000 if you weren't talented.
I like this advice.
I used to think I wasn't as good a programmer than a friend of mine because he had a larger breadth of skills than myself. Then I actually saw the code he was producing professionally ... and it was crap. It was functional sure, but not maintainable at all (if the business rules changed, then rewrites were awful).
Where I work now, the developer team that I joined were a bunch of amateurs pretending to write business applications. Their code (which I'm still refactoring 10 years later) is awful. I seemed like a super star to my managers because they never knew the difference from a good and bad coder.
That last paragraph wasn't meant to be employment advice. My point is, you never know how good you really are until you see how bad other people are. Couple that with the general self doubt we all sometimes experience, and you end up feeling like the worst in your field.
I'm self taught too. I started coding at age 7. We're the best because we love our particular skill so much that we made a fun hobby out of it. We stayed up way late into the night honing our craft. Etc, etc ... other inspiring reasons why we're awesome at what we do.
Edit:
> Edit: I would also add that I'm also completely self-taught. The only computer class I've taken was typing... and I got kicked out for cheating because it was boring.
Ha, I wrote my comment about being self-taught before you made your edit.
On the topic of cheating: In 6th grade spelling class, we had to write out our weekly spelling words 5 times each. We were allowed to handwrite, or type it out on a computer and hand in the printout. I wrote a computer program where I would input the spelling words as an array (only typing them once), and it would output a text file for me to print out and hand in.