转载链接:http://blog.csdn.net/wininternal/article/details/7604099

看到论坛上很多新人想从事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有空再和大家探讨

给windows客户端开发新人的一点建议相关推荐

  1. Windows客户端C/C++编程规范“建议”——前言

    前言 工作中接触了很多编程规范.其中最有意思的是,公司最近发布了一版C/C++编程规范,然后我看到该规范的最后一段时,有这么一句:"该规范不适用于Windows平台开发".看来这份 ...

  2. Windows客户端开发简介(二)

    Windows客户端开发简介(二) 一个典型的Windows客户端程序要有哪几部分构成呢?下面我会以一个国内比较流行的互联网客户端程序的基本架构来跟大家逐步展开分析,由于涉及到知识产权的问题,请大家不 ...

  3. Windows客户端开发--获取系统mac地址(使用WMI)

    之前写过两篇博客,介绍了windows的WMI技术,以及如果通过WMI获取显卡详细信息: Windows客户端开发–WMI技术介绍 Windows客户端开发–使用WMI获取显卡详细信息(win32控制 ...

  4. windows客户端开发--也许是一条不归路

    如今的Windows客户端开发,已经被同行嘲笑为鸡肋,甚至有些人认识做Windows客户端就是一个笑柄. 食之无味,弃之可惜. 不可否认,PC端没落的很快. 但是想说的是,任何一门技术都有存在的道理. ...

  5. Windows客户端开发简介(一)

    在这样一个移动当道的年代,我跟大家讨论Windows客户端开发,似乎有些倚老卖老的意思了.然而我却觉得无论什么时候,Windows客户端开发其实还是有着不少实用经典的技术的.对了,确切说我是要说说Wi ...

  6. 对想进入Unity开发新人的一些建议

    提前声明:本文只是写给那些非职业游戏开发人士,只面向那些在校本科生,或已就业但无unity背景的同学们,当然是面对程序员方向的.本人刚工作也没多久,资历尚浅,之前在网上有一位同学让我谈谈一些想法,所以 ...

  7. windows客户端开发--使用json11解析json

    类似xml,JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. json11是适用于c++11的一个轻量级的库,用于解析json. 什么是json? JSO ...

  8. windows客户端开发--根据可下载url另存为文件(微信windows客户端这样做的)

    可以我的blog的标题会让你误解,那么好,没图说了xx: 比如微信windows客户端发送了一张图片,我们可以预览这张图片,还可以保存到本地: 那么windows程序是如何下载这张图片的呢? 是这样, ...

  9. python windows 客户端开发_如何在Windows上使用Python进行开发

    本文由葡萄城技术团队于原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 一直以来C#都是微软在编程语言方面最为显著的Tag,但时至今日Python ...

最新文章

  1. 想学习 Python,这套教程再适合你不过了!
  2. 新手学JAVA(六)----处理随机性的数据
  3. python全栈开发 * 14 知识点汇总 * 180530
  4. CSS3 Transform、Transition和Animation属性总结
  5. mysql insert 二进制_MYSQL 插入二进制数的 2 种方法。
  6. 理解SVN中trunk,branches,tags
  7. si4438 与 si4432通讯
  8. pom.xml中依赖的optionaltrue/optional标签
  9. 高并发系统的限流算法
  10. sqlserver 分组合并列_[雅思经验]?两个月备考,一战雅思7.5分经验分享!!!
  11. ps怎么制作流体_PS制作流体字
  12. 平昌县网上书城系统设计与实现
  13. 前端所有安全问题总结
  14. 无线计算机鼠标,无线鼠标
  15. hdu6069 Counting Divisors
  16. abap获取日期_ABAP 日期时间函数
  17. 每月生活费上万元,这届大学生花钱有多狠?
  18. 577w 简体中文版 ROM 定制过程详解
  19. stm32编译错误error: #20: identifier “USART_IT_RXNE“ is undefined
  20. C语言 自动排课系统课程设计(附源码,实验报告)

热门文章

  1. 机房动环监控的3大要素,你具备了几个?
  2. 微信小程序订单页面格式
  3. TFN新推出手持式无线电综合测试仪 让测试更方便
  4. 整样运用计算机考试,计算机等级考试真题的重要性及如何高效利用?
  5. php 将文件打包成 zip
  6. 无法加载xxx.dll文件,找不到指定的模块(异常来自HRESULT:0x8007007E)解决
  7. [20071016]直接下載 Hinet myweb 空間內的檔案(SMG)
  8. php制作云端网盘项目,用云开发整一个专属网盘,原来如此简单!
  9. WeChat开发流程
  10. 安网路由器 静态IP和PPOE混用时,如果设置了路由器定时重启可能导致路由器罢工...