I have the same idea as you. I took the AP courses in high school and got my butt kicked in college. I hit Math 401, aka Differential Equations, and it hit back. I didn't have a solid understanding of the basics to really tackle diffq.
Years later, I was influenced by several things:
First was Neal Stephenson's Boroque Cycle. That novel brought home the idea that math was a tool invented to solve problems and expanded minds. The second was my growing fascination with Lisp -- specifically, MIT Scheme / SCIP. By the time I started watching the first lecture, the introduction was already echoing what I felt about calculus, that software engineering dealt with idealized machinery, much the same way calculus was tool that gives us leverage.
I chose the Schuam's Outline for Calculus and started some self-study. I had also taken AP Physics, and the teacher more or less ignored our nominal textbook and used the Schuam's Outline for Physics. Although I was able to follow the derivations on the blackboard, I retained none of it. We were assigned problems out of the Schuam's Outline, meant to be two problems per week, all handed at the end of each half-semester. There were no fancy pictures, no chatty text to wade through. It was straight up physics concepts, how the math worked, and condensed down to its essentials. And lots of problems to practice on.
Of course, I procrastinated on the assignments. The day it was due, I spent every spare break time doing as many of those problems as I could. I wasn't able to complete all of them in time, but the sheer pressure of attempting that many within a short amount of time got me to really understand the concepts and how to work the math. I had no trouble with college-level physics taught to engineering students, just the calculus that powers it.
When I picked up the Schuam's Outline for Calculus, the material was much like that for physics. The concepts were not taught from first principles so much as showing you *how* to use the tools first, then later, *why* those tools worked. I was quickly able to get a handle on basic stuff that I had been vague on -- the Chain Rule, for example. I realized there were really two parts to calculus: Describing the problem (setting up the problem) in the language of math, and then symbolic manipulation. I could generally do the first part OK, considering that I've been writing software for ten years now. The latter part was where I was more hazy on, since I simply didn't know the tool. In structuring the "how to" before the "why this works", I could dive into solving my problems, then satisfy my curiosity later.
Good luck.