I think everyone in here can benefit from reading a book called "Outliers" by Malcom Gladwell. Here's a link to the wiki:
http://en.wikipedia.org/wiki/Outliers_(book)
If the synopsis sounds interesting then I highly recommend picking up the book from your local bookstore.
All I have to say is that only you can determine how good of a programmer you can be. Gladwell are many factors that contribute to being extremely successful (relative to everyone else, or a statistical outlier), such as the opportunities that are available to you as a result of where, when, who and what you are born as, social class, discrimination, etc. Whereas these factors are out of our control, the one factor that you personally control is the time you put into something. Bill Gates and Bill Joy had opportunities that no one else had which led to their success, but what is common among them as well as sport stars, businessmen or businesswomen, lawyers, etc across all successful people is the tried and true tactic of getting out what you put in. You don't need to be a math whiz (although it helps), you don't need a high IQ (although being a genius helps), but what you do need is to have the right attitude and persevere through focused and consistent practice.
Although practice alone won't help you become the next Gates, Joy or Jobs, you can surely increase your likelihood for success by applying yourself. Even though Gladwell's argument (I think) is more concerned with showing how no one makes it alone, it still doesn't deny the role that personal preparation plays.
Keep your head up, bro, and keep putting in that work!