Adding to what the other guy said... it appears that as time progresses, most of the MFC you'll see will be legacy apps. It certainly wouldn't hurt to learn MFC, since there is so much code out there using it. That being said, there is still a place for C++. If you ever do work on any other platform, or need to do low-level stuff like drivers, or work in embedded systems, C++ will be important. And still, the majority of client-side apps are not written in .NET yet, and it'll probably be a while before it becomes ubiquitous. So if I were you, I'd keep my options open. Go on and learn MFC, C++, but also learn how .NET works, learn Java, learn about some of the other windowing toolkits (like wxWidgets), etc. It never hurts to learn something. :) An expert is somebody who learns more and more about less and less, until he knows absolutely everything about nothing.