I have experience working within the .NET languages. However, I am looking, in the long term, to learn reverse engineering. I figured my first step was to get grounded in C, then C++, and, finally assembly. Once I get past the basics of C, what would be some good next steps to really get a solid foundation in Windows programming to help move in the direction of becoming a reverse engineer?