http://webcast.berkeley.edu/course_details_new.php?seriesid=2008-D-26263&semesterid=2008-DSo Aaron, your first programming class in High School was in Scheme right? And you hated it, which was understandable given your lack of experience at the time. Why Sutherland would think that programming Scheme before programming in C++ or Java or anything else for that matter would make sense is beyond me. The guy in these lectures flat out says to his class "Knowing recursion is a prerequisite for this course." Hence why you didn't really "get it" in high school. You weren't able to even come close to appreciating how powerful it was.
Ultimately, though, I've started watching these lectures, as I've been working to learn lisp lately, and since Scheme is a dialect of Lisp, this is a good place to do it.
So if you have a spare 15 hours, check out these lectures on Scheme and Functional programming. It's going to get into some pretty wicked concepts.
I've gone through the first two so far, and I'll probably do another 3 or 4 today, and I fully recommend it.