标签:
看到论坛上很多新人想从事windows开发,却不知从何学起,本ID是过来人,知道摸索,迷茫的痛苦,趁着周末,也就随便说两句。
毫无疑问,windows是太阳系里面最值得学习的操作系统,windows的影响力,至今没有任何系统可以代替。但是windows也是最复杂的操作系统,找到一条入门之路非常关键。
windows的成功,在于他的易用,易用性是通过UI来体现的,所以UI开发,本ID觉得是比较好的一个入门之路。而UI开发有一本圣经,也就是charles petzold的prograrmming windows。windows要想入门,这本书是必读。这本书最有用的是前半本,是windows的基础,就算是以后不从事windows的UI开发,深入理解前半本也是非常有必要的。这本书是用C语言来讲述,所以没有必要去学C++。至于c++,本ID写了个帖子,叫做 c++,垃圾中的战斗机,有兴趣的可以点本ID的资料进去看。
这本书学完之后,推荐看一下jeffrey richter的windows via c/c++,这也是一本很经典的书,出了N个版本了,充分说明了它的受欢迎程度。这本书会告诉一些windows上你看不到的东西是怎么做的,比如说进程,线程,异常处理,内存映射,线程同步等等等等。
这两本书,可以说是windows开发的必备,只要懂了这两本书,国内大部分公司的客户端初级开发,是绝对可以胜任的。
这两本书看完后,可以去看一下sdk,把这两本书牵涉到的相关东西给全面化一下。因为书只是讲一些作者认为的重点,很多附带的东西不会讲,而SDK里面有最全面的资料。SDK相关的about 和using一定要通读,这样你会知道都可以做什么事情,大概能怎么做,reference里面有空也可以看看,最好能动手自己调调相关的API。本ID当年是一个个API接着看了下来的,并且还发现了一些API是我们总监所不知道的,总监因此对本ID提出了表扬。几年后,本ID组内一新同事,也发现了本ID所不知道的API,本ID虽不是总监,对他也暗中表扬了一番。当然,API知道的多寡并不是很有趣或者有意义的标准,但最起码能说明你的努力程度。
上述三个工作做完后,你应该已经成为一个比较受重视的客户端开发,按照目前的行情,在北京虽然找个地方拿个十多万的不会太难。
进一步,建议学习一下网络相关的开发,可以看看windows网络编程,熟悉之后,再利用SDK把网络相关的知识面给扩充一下。
然后,可以学习下COM。COM这玩意,是很让人崩溃的一个东西,初学者看他就是不停的绕弯,不给你来真的,太复杂,但是它就是真的解决了很多问题。推荐两本书,com本质论 和 com技术内幕。至于潘爱民的com原理与应用,可以作为速查手册,潘先生这本书写的极为简练,本ID严重怀疑除了他是否还有别人能看懂。
下面,可以考虑下去学0层的东西,毕竟玩了这么久,还是在3层混,好多东西都不知道咋回事,怎么都不能算是一个真正专业的程序员。这里,也有一本经典的入门书,mark russinovich的windows internal。这本书已经出到第六版了,目前只出了part1,加上part2估计得有1500多页,并且国内没有翻译。本ID正在慢慢翻一点,但是项目太忙,进度太慢。这本书会让你了解windows的底层。与此同时,可以学习驱动开发,这方面的书自己找吧,本ID就不做推荐了。
到了这步,也不要得意,你学到的全是知识,知识是死的,是陈旧的,需要不断更新。更新的知识来源不能靠书,因为书是非常落后的信息源,在你一无所知的时候,利用书可以快速充实起来,当你把经典的书都学会的时候,必须保持一颗好奇心,去寻找最新的信息源。
最新的信息源,毫无疑问,当然是来自微软的msdn,每次windows有更新,都会出N多技术资料,这些是非常宝贵的技术资料,有时间,有精力,一定要去学一下。另外,国外有很多技术博客,也都很好,本ID收藏了N多,但限于时间,就不在这里分享了。
说到这里,本ID补充一下,技术人员的英语可以不过4,6级,但是一定要达到能熟读msdn资料的地步。很多人总是觉得自己英语不好,不行,看不了,其实是对自己没有信心!不妨想一想,美国人都说英语,咱们比他们智力差吗,怎么就学不来!程序员,不管男人,女人,女博士,对自己都要充满信心!!
最后,请严重注意:本ID这里说的都是知识,知识要和实际结合起来,才能转化成有用的生产力。一名技术人员的成功,不是自己成了一本活字典,什么知识都明白,什么东西都做过,而是利用技术,做出来一个有影响力的产品!!
至于如何灵活运用知识,那是另外一个话题了,本ID有空再和大家探讨
标签:
原文地址:http://www.cnblogs.com/lishennan/p/5249877.html