A friend of mine asked me to mentor him. He started coding PHP several years ago and is now doing Ruby-on-Rails. He loves coding (like most of us) but doesn't have the foundational knowledge of algorithms, data-structures, and computer architecture.<p>I'd like to help him get started on that foundation in a way that's fun. Originally I thought we'd go through SICP together - the book and lectures are both freely available and the fact that it came out of the freshman lecture series at MIT make me think it might be a good place to start. On the other hand, it seems like it might be a little too much for the time we'll have (roughly an hour a week together and whatever time we spend working through it on our own). The "Little Schemer" seemed like it might be a good alternative, but I haven't read it so I don't know.<p>I'd love to hear recommendations for engaging books that introduce some of the more foundational CS topics while not straying too far from the actual writing of code. Or, if you think some other format would be more beneficial, please let me know. An alternative idea I had was to give a coding problem (for example, "Sort this list") and then work on refining it together while examining the runtime attributes.<p>Thanks!
I found this today and am going to take the course as a refresher. It's a crunchcourse for SICP, all free. And since other folks will be doing the same thing, it seems like it may have an active community paced along with it.<p>I work with another guy who has an EE MS, but is going to code for our startup (he's a cofounder). So we're going to do this course together, so that I can help bring him up to speed. Essentially, I'll be his more experienced study buddy, but there will still be a forum I can go to when I have questions.<p>URL: <a href="http://www.crunchcourse.com/class/structure-and-interpretation-of-comp/2010/jan/" rel="nofollow">http://www.crunchcourse.com/class/structure-and-interpretati...</a>