这里说的Windows程序员是指使用C/C++/VC/MFC/API开发Windows程序的开发人员,自从.net framework/WPF出现后,开发应用级别的Windows程序多了一个C#/.net/WPF分支。但是MFC Windows程序员还是需求量不少,工资也看高,并在在很多领域的应用开发中都需要,例如开发桌面应用程序、开发各种高效的网络客户端(例网络游戏客户端)、工控系统、报表系统、Web插件等等。我们经常使用的软件,大多离不开他们。
一般来说Windows程序员掌握了以下技术,就可以应付各种应用开发的要求了。
开发语言:C/C++或VB或Delhpi,现在Delphi已经快绝迹了
IDE(集成开发环境、工具):VC6/VS2003/VS2005/VS2008,(VB6也还有些用,不过很少了)
框架:MFC (因为Delphi快绝迹了,VCL就不说了)
网络编程:TCP/UDP/Socket APIs/Windows的5种网络模型/Windows一些网络框架,例如ACE,再要求点那么还有HTTP,DHCP,FTP,SNTP,RTP,RSTP协议,另外了解下HTML、XML
数据库编程:ADO/SQL/ODBC/SQL Server或MySQL或Sqlite或Oracle
Windows界面开发:基本的窗口管理、GDI,如果开发游戏需要DirectDraw/Direct3D/DirectShow等。
Windows核心编程:字符编码/UNICODE,内核对象,多线程/进程编程、线程进程间通讯,内存映射、管道,动态链接库。
Windows组件技术(仅了解):MFC ActiveX、COM、ATL
数据结构与算法:基本的链表、队列操作,排序算法,哈希表等,正则表达式,XML分析
程序设计:UML建模/经典的设计模式/Rose工具或Visio工具
代码控制:VSS/ClearCase
项目管理:MS Project
东西看起来是不是多了点,这样都可以做Windows系统工程师了。我再总结一个入门级的子集吧:
C/C++;VC6;MFC;Windows窗口管理、GDI;字符编码/UNICODE;内核对象,多线程编程通讯,动态链接库;数据结构和算法。
有了这些东西,开发一些Windows程序就差不多了,可以为很多项目做贡献。
然后再在网络编程、数据库编程、软件设计UML建模方面进行学习积累。