You have built up this idea in your head that other people are smarter than you, and you aren't worth anything if you aren't like them. Never mind that you're a working programmer and that you're proficient in a second language. Apparently for you that stuff doesn't count.
To "fix" this problem you are forcing yourself to do stuff that you don't seem to like. When you fail you blame yourself even more.
Let's take a step back here. How are you ever going to get any good at this if you are making it so unpleasant for yourself? You've put yourself on a treadmill that you can't get off.
Stop reading all these CS books. In fact, you should stop reading Hacker News. Stop caring about being in a cool startup. Start caring about whether you are enjoying your life or not.
I guarantee you that everyone you know who you think is so much smarter than you got that way not through inherent ability, but through work. You might have heard stories about how incompetent they were in the beginning, but I bet you discount them and say "well, of course they're not serious about that, this is just false modesty." No, it is really true.
Everyone I know who is really good started out that way. In fact I'm starting to think that one of the prime qualities needed to become a good hacker is a kind of willful disregard of one's own incompetence, coupled with a strong desire to do something that's personally meaningful. In other words, you need hubris.
As long as you keep measuring yourself by stuff that's personally meaningful, you'll advance in your hacking skills -- don't worry about that. If you think you need skills before you start something personally meaningful, you will never, ever get anywhere.
Finally, it is perfectly okay not to be a uber-hacker. There are other things in life worth doing. Don't adopt someone else's value system if it makes your life worthless.
So, ask yourself what, if anything, have you ever enjoyed? What makes you lose track of time when you're doing it? If problem-solving, math, or programming has never been one of those things, then you'll have to look elsewhere. If you still think you want to stick with programming, remember what I've said and try to start over with beginner's mind. Try PHP, or Python, or Processing... something very forgiving, and fun, and do something that YOU want to do.
If you are lucky, you might live in a city with a "hacker space". Hanging out there might invest you with a sense of what it's like to be personally involved with a project.
One of the things that improves my confidence and energy tremendously is simply to go to regular meetups. Either about technology (Ruby, Python, JS) or more business-oriented meetups like startup-centered ones.
It's suprising what talking to passionate people can do to your spirits :-)