What's wrong with me? Over the past few days I have been pondering about this: I enjoy technical things (like programming and stuff) and try to find the patterns and algorithms in everything. My life is number oriented. I'll spend all day working on a programmatic problem. I'll spend however much time is needed to think of an elegant/efficient solution. Yet I have am not as good with high school Algebra (I am sixteen)... I don't get it. How can I love numbers but not be very good at math? I think I slacked off in my earlier years in math classes because I found them to be boring. I feel like I am behind a wall. On the other side is math. I need to lower down this wall, but at the moment I am unable to identify it or its cause. I feel like I love math, but am no good at it or have been taught poorly. I understand that I can get no where in Computer Science if I am bad at math. I find some aspects of math to be boring... perhaps teachers don't do well at explaining it in the US (I've researched). Since I assume there are some great mathematicians here, I would like to request some advice.

Thanks.
In recent years teachers in the USA have been under heavy pressure to teach only what can be tested on standardized tests.  That has been corrupting the education system to the point where teachers orchestrate widespread cheating on standardized tests to get federal funding for the school.

There's also the fact that high schools are required to teach math to everyone, including those who are not interested.  That results in courses of a kind that almost everyone can pass, thereby holding back those who are interested and could do well in the topic.

I would recommend two books by C. Stanley Ogilvy to high-school students interested in mathematics: Excursions in Number Theory and Excursions in Geometry.  Those are addressed to students who don't yet know much but are intelligent and want to understand the subject, as opposed to wanting to pass standardized tests in it.

PS: People's interests and abilities differ greatly.  Failing to match some standard ideal prescribed by a system that suffers from the sort of corruptions I've mentioned above doesn't mean something is wrong with you.
If you truly enjoy numbers and programming, yet you're having trouble in a high school math course, it is a safe bet that there is nothing wrong with you. The problem is that your math teachers for the past 4 years (at least) have almost certainly been blithering idiots. This is unfortunately quite common (especially in math), and the only solution is to learn it on your own, as our supposed educational system has failed you. 

The book that really got me interested, when I was slightly younger than you are now, is Douglas Downing's Algebra the Easy Way. It's pretty silly at first glance, but it's got a lot of great material and it's extremely accessible. And it taught me some things I never learned elsewhere, even in college. Downing's other two books (Trigonometry and Calculus) are supposed to be excellent as well, but I have no personal experience. 

Whatever book or text or whatever you get to help you, remember that it (probably) will not help just to read the thing cover to cover. Any decent book will come with practice exercises, maybe even a CD full of tests, trainers, and such. You actually have to do these, or you're just fibbing to yourself about trying to learn. They should be marked by difficulty; start with the easy ones to make sure you have the basic concepts under control, then work up to the tough ones. At least one author I know of likes to reserve his highest difficulty ranking for questions that are actually open research problems; don't try to do those! But you shouldn't find that in an introductory text.

The most important thing is not to get discouraged and assume you're just plain incompetent, because it's not true. I have never met anyone who was simply unable to understand a high school level of mathematics, just people who either weren't trying or who had never had a competent teacher. It seems like you're trying, so I suspect the latter cause.