Windows程序员进阶应该看的那些书
业内有一个普遍的现象,一般Windows程序员在写了3-5年的代码的时候会有一段迷茫期,因为这个时期的程序员已经掌握了常用的一些编程技巧,对某种编程语言已经比较熟悉,可以完成常规的任务,但是这个时候的程序员也很容易迷茫。主要的表现有以下几种:
第一种,开始不停尝试不同的编程语言,但是慢慢的发现,其实语言大同小异,疲于学习,收获不大。
第二种,开始转向linux平台,总认为别人干的活比自己好,比自己牛,结果是常常没有足够的时间,疲惫于学习自己工作中根本用不到的知识,花了很大的精力却收获很少。
第三种,认为自己很牛了,沉迷于自己的一种技术甜区,不思进取。
有句话说的好,没有量的积累就没有质的飞跃,不经历过一定的项目和代码的熏陶,以及几米厚的书籍的积累,质变确实困难。
首先声明的是,本文所写的都是个人见解,只是希望后来人少走些弯路,欢迎讨论,但是言语之争就算了。
下面开始介绍indows程序员进阶应该看的那些书,
第一本:windows internals
推荐理由:
这本书的作者是,Mark E. Russinovich,windows历史上的传奇人物,SysinternalsSuite的作者之一,著名的processexp, process monnitor, Dbgview 都出自这个团队,本书讲述了windows的底层关键机制、windows的核心组件(包括进程/ 线程/ 作业、安全性、i/o系统、存储管理、内存管理、缓存管理、文件系统和网络),并分析了启动进程、关机进程以及缓存转储,伴随着widnows NT 这本书已经出了几个版本,最新的版本是6.0。
第二本:Windows内核原理与实现
推荐理由:
这本书是国内著名的技术翻译作者写的windows技术相关的书籍中比较不错的,全书解析了Windows如何实现操作系统的各个关键部件,包括进程、线程、物理内存和虚拟内存的管理,Windows中的同步和并发性支持,以及Windows的I/O模型。值得一提的是书中讲解了部分的Windows Research Kernel代码,从代码学习确实可以达到更好的效果。
但是提到这本书有一点让人不吐不快:说实话,我读完这本书并没有收获太多windows internals里面没有的知识,但是看了一些代码确实让人受益匪浅,还有更重要的一点,本书的意图是帮助大家从源代码的角度剖析windows NT, 而且微软已经提供了源代码WRK,但是本书为了讲解一些技术细节而实现的几个小工具竟让没有开源,只提供了可执行文件,而且这几个小工具只能在有限的几个版本的系统上运行,对学习本书造成了很大的不便。另外运行这几个工具的时候很可能让你的系统蓝屏,死机,请务必小心,个人对这种行为很是费解,所谓写书就是为了剖析本质,而用于剖析本质的具体的小工具却不随书附带源码,这种行为使这本书的价值大打折扣。
第三本:Advanced Windows Debugging: Developing and Administering Reliable, Robust, and Secure Software
推荐理由:
这本书是windows 调试领域的神作,里面介绍的东西面很全,如果还没有开始,建议从这本书开始,而且这本书有中文版,全书有聂雪军翻译,读起来比较顺畅。
第四本:软件调试:Software Debugging
张银奎老师写的书,可能很多人没有听过这个名字,但是一般业内的人都知道他,张老师的钻研精神和坚持精神是值得我们尊敬的,他写的这本书倾注了很多的心血,第一遍都这本书的时候我还很年轻,没有完全理解。直到听了一次张老师的课,在第二遍读的时候,我才明白其中的乐趣,强烈推荐本书,张老师几万一天的的课,精华都在这本书里面。
总结
本文列出了Windows程序员进阶应该看的那些书,当然,还有一些书也不错,由于篇幅的原因,本文暂时写这些,更多精彩内容待续..