Beginner Guide - C++ for Windows
We have long weekend due to the election day in Indonesia. I use the time to refresh my C++ skills – language, design pattern and Win32. Actually, it was requested by one folk from Vietnam to drive C++ in our MSDN community. I agreed with him as we need to balance our MSDN contents for both native and managed development. If you like C++, below is my guidance on how to improve your C++ programming skills on Windows, assuming you already good in data structure and algorithm from school.
#1 – Be good in language
You don’t have to know all C++ language aspects to write C++ program. But to enable you write good codes, I do suggest you to master the language before learn design skills. I always consult to The C++ Complete Reference, The C++ Programming Language and C++ Primer for my language skills. Put attention to object oriented language features, generic/template and STL. I also use boost for other stuffs that is not included in standard libraries. Practice, practice and practice are the key.
#2 – Learn GoF design patterns
The well accepted basic catalog for design patterns came from Gang of Four. But most of developers have difficulties to learn GoF without real sample scenarios. I found the following website very useful for me as it has a lot of documentations and samples of GoF with C++. Click on the picture to go to the Vince Huston website. If you know other website, please help to put in the comment section.
#3 - Learn Win32
Most of feedbacks I got from community is, C++ is easy, but programming C++ in Windows is hard because of the nature Win32 API. Actually that is true. The hardest part of programming C++ on Windows is the learning Win32 and other Windows toolkits/frameworks like the platform SDK Win32, WDK, MFC, COM, WTL, and ATL that you will need in a real project. Framework selection will affect our design as we will not programming in vacuum. If you agreed with me, then the following resources will be your good friends:
- Programming Windows
- Windows System Programming
- Windows via C/C++
- Programming Windows with MFC
- Platform SDK Documentation. You can choose Vista, Windows 2008 or Windows 7 SDK.
I do believe that native development will still have its own place. But that is your own choice to become full managed code developer or combine it with native C++ knowledge. In our beloved MSDN community, I planned to balance it.
Cheers – RAM