Do you think I'd be shooting myself in the foot if I didn't make sure I knew unmanaged windows programming of some sort? While managed code may be a big part of tomorrow, will I get into trouble if I don't feel totally comfortable with yesterday?
Funny you should mention this. Jeff Atwood and myself have been having a conversation about the importance of learning C/C++ in a managed world. He's more 'anti' and I'm more 'pro' C/C++. I don't think there's a boolean answer to the question. I plan on commenting more over on his blog, but my general stance is that the current abstractions, the .NET Framework, Java runtime, even to a certain extent Smalltalk, are incomplete enough that you still have to know HOW the computer works if you are really serious about troubleshooting your code (or more importantly, other peoples code). I think that C/C++ get you a little "closer to the metal" and force you to think about where you data is going and, more importantly, when it is going away.