When I was learning the basics of programming on Windows, I was focusing too much on GUIs, windows and buttons with pretty pictures inside. That led me nowhere as the "core" of my programs was empty. I use Linux now and I see another problam with Windows programs: you have to download external libraries to do advanced programs like compilers, filters (what I do at my university now) or cryptography. For example, there is no equivalent to Lex/Yacc on Windows.
The second problem is that Microsoft tries to prevent people from porting programs to other systems by wrapping struct with weird handles (like HWND or HDPROC) and that is not a good behaviour from them.
The last thing I love in Linux is source code. I'm not a Linux zealot but I can study how real programmers write their code. I'm learning compilers and I can read Python's, Ruby's or gcc's source code to see what's happening behind; I can't do this with VisualC++.
Of course when you're a "pro" I think it won't matter anymore, but if you learn, it is VERY important to see the broadest range of subjects which is impossible if you stick to Microsoft's tools.
>>1
If your book if focusing specifically on C, it doesn't matter whether you're using Windows or Linux, C is just about pointers and loops, not libraries and what you can do with them.