I suck at math, but I manage to code just fine (I think?).
Now that that's out of the way, you've already identified the root cause of your problems, you got cocky. A better description might be over enthusiastic, and it's quite common mistake, we've all done it in the past. Coding is exciting, and programming in general is a unique blend of art, science, engineering and... magic ;) But you really need to slow your pace and come up with a solid learning path. Don't code just for the fun of it, the boring parts are important as well.
One tip would be to focus your learning in creating small (but non trivial) projects. If, for example, you're interested in web development, build yourself a simple blog engine. Yes, it's the most trite example there is, but do it anyway, the reason everybody does it it's because it combines all the basics you'll find in almost any web application (basic CRUD: users, posts, comments).
Python is good enough as a first language, as is Java, Ruby, C, C#, C++, Haskell, PHP, Visual Basic, etc1. Just pick one and stick with it, at least until you can honestly say that you are being productive with it. It really doesn't matter which language you'll pick, and beware than when asking chances are people will (perhaps unwittingly) direct you to their favourite language instead of a language that's suitable for beginners. I'd also advice against trying to learn two languages at the same time, you need to get a solid foundation first, and learning two languages in parallel might do more to confuse you than teach you.
There are several Coursera courses you could follow, and learn in a more structured way. There's also a ton of free resources for every popular language, if you go with Python I'd recommend Learn Python The Hard Way. It might seem extremely boring (it's a very basic book), but you really should go through all it's exercises, I did, regardless of my 10+ years in the field (crap, I'm old). Same with any other resource you might choose to learn from, just don't be hasty, you're sixteen, you have time. Right now your "job" is to learn, and learn well.
Programmers is also a great resource, and so are the rest of the programming friendly sites of the network:
Familiarize yourself with the sites, and use them to your benefit. We are all here to help, all we ask is that you show us a little bit of effort (and reach each site's FAQ thoroughly before you ask your questions).
1 I'd avoid Perl right now, only because Perl 6 will bring some major changes to the language. Still one of my favourite languages, just not a good time to learn it if you are a complete beginner.