All my programming knowledge is self-taught. I'm reading SICP right now, section on Tree Recursion. Unfortunately, I wish I had the math background suitable for programming. Whenever I come across mathy stuff about sets or they bring out crazy seemingly random notation it all goes over my head and makes me feel pretty stupid.
Moral: take math at school/college. Discrete math is apparently the math for programming.
Personally I am having difficulty finding a course online which doesn't have any subtle prerequisites. Like I got a book on set theory called Sets and Groups and I get the first chapter and it's all good, then it's like "now prove x" and brings out all this complex proof nonsense that I have no experience in whatsoever. It's like anything I try to do with maths, there's always a prerequisite and it just makes me think "sod it" and makes me lose interest.
What I really need is a mathsy friend who can judge simply by a conversation what I need to read and say "read this" and I'll do it.
</random rant>
Blah.