I've been programming since I was 12 or 13, all self-taught, but I went to college for Business. I've been a full-time freelance developer for a little over a year now, and I've been inspired by a lot of the deep technical stuff I've read here on HN. I've always really enjoyed math and programming, and delving into more rigorous CS and/or Math really interests me.
I'm just wondering if people would recommend seeking a grad degree at this point, or going more of a self-study route. And if the self-study route, are there any particular books or online courses you would recommend to start?
As to recommendations, I second the recommendation for SICP, but I'd also suggest the video lectures: http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussma...
Then, I'd move on to various online courses (with video)-- besides the MIT OCW resources, there are some good CS courses from UC Berkeley. Specifically, for someone getting started, I'd recommend MIT 6.046J (Introduction to Algorithms), and the Berkeley CS 61A/B/C and CS162, but your interest may vary.
Naturally, there are a lot of good video course for mathematics as well-- I enjoyed Gilbert Strang's Linear Algebra from course from MIT as a nice brush-up in Linear Algebra, for example (and as a companion to his textbook).
But the guiding thread has got to be your own interest.