I didn’t always think I had what it took to be a “Developer”.
The main reason for this was because I used to compare myself to others and not against myself. If you tend to do this STOP now. You will forever feel inadequate. There is and always will be someone much better than you at say X skill. This is okay if you have the opportunity, constantly put yourself around people that are BETTER than you. Just by surrounding yourself with people that know more than you on topics that interest you, you will learn without even trying.
Anyways here is an interesting article about different types of programmers PERSONAS. http://www.codinghorror.com/blog/2007/11/mort-elvis-einstein-and-you.html
Knowing your type of developer persona will help push yourself professionally and will help those around you learn the best projects to place you in.
I def identify with being the Mort Persona “Mort, the opportunistic developer, likes to create quick-working solutions for immediate problems. He focuses on productivity and learns as needed.” because I realize this is how I operate I try to put myself in projects / start projects that push myself just outside my current skill set, so I will continue to develop professionally.
There you have it, the take away is this, anyone through hard work and perseverance can build the skills to become a DEVELOPER.