The rule of thumb is that you learn C and/or assembler to understand the computer. And then you learn Scheme to understand recursion, algorithms, datastructures, and generally how to write to programs *well*. Or the other way around.
In general, I think this is pretty good way to do things, MIT be damned: Scheme is really good at algorithms, and has all the datastructures you need for that sort of thing, usually: heterogeneous vectors, conses, numbers, and functions can get you pretty far. And while it leans functional, it still has procedural primitives, so you can take either approach with your algorithm, another important thing. And if you want to play with OO... Well, Scheme was purpose-built for that (well, the actor model, really. Close enough. It's still good for exploring OO, though).
As for C and assembler, they don't need any introduction, nor do they need any explanation. Both, in one form or another, are requirements for anyone who wants to say that they understand computing and keep a straight face.