I've been coding in perl and python since I was in about 14 or so and feel like I can accomplish pretty much any task I want in it, but I know that I'm nowhere near good enough to start applying for jobs as a programmer.how did you finally know you were good enough?
I agree with mattm, but want to understand a little bit more about ''why'' you think you are not good enough to start applying, so I and others can comment better on if you have a legitimate concern or if you are underestimating your own abilities.
FWIW, it is a pretty common trend for especially good programmers to underestimate how good they are. Borrowing from pg, to echo my own observations: "I've found that people who are great at something are not so much convinced of their own greatness as mystified at why everyone else seems so incompetent." It's anecdotal, but it is what I've found as well; the people I respect don't project the attitude that I owe them my respect. The more
But I will state a sentiment that hasn't been mentioned on here yet; your first derivative of ability is way more important most of the time. What you need to be able to do is almost never constant, especially at the places this article is discussing. You need to be sufficiently motivated and curious to be continuously finding better ways, better libraries, better frameworks that help you do a good job faster. The best way to develop a good ability differential is to give a damn; it sounds like you are already there.
As far as being objectively good enough, that is an extremely tough call for anyone to make about themselves, because you have biases; if you're really good, you can account some for those, but true objectivity is nigh-impossible. It's even hard for other people to know, for the same reason, and because they have incomplete information.
The way I deal with this is to err on assuming I'm not good enough yet. Not in the sense that I get down on myself, and assume I never can be, but in the sense that I shouldn't try to drown out my curiosity because whatever effort I will expend is futile. If I'm right, then I'll be doing what I need to do to become good enough; if I'm wrong, then I've still learned something, and haven't just settled with good enough being enough. Wherever I am, there is always better, and approaching that regardless of whatever arbitrary finish-line others might lay in my path is way more important to me.
Anyway, enough rambling. :-) Given your thoughts in this post, I'd say you have the right attitude; don't lose that, it's really what will get you the respect and attention of those you respect and look up to.