Re: 我所看过的最好的中文技术书籍

《软件调试》书友

我所看过的最好的中文技术书籍


rainers 2009-01-16, 11:33 上午

在中关村图书大厦闲逛的时候偶然看到了这本书,看到标题,粗略翻阅了下目录之后,立即决定吧它买下来。这正是我一直在寻找的书。买回来以后仔细一读,发现这本书的深度超过了我的想象,它不光是一本阐述如何调试的书,甚至是一本教我们如何写调试器的书,国内的图书达到如此技术的深度我还是头一次见到。

另外我请教一下张老师关于我未来职业道路的规划。我对底层拥有强烈的兴趣,一直坚信精通底层是学好软件技术的不二法则。现在的新技术层出不穷,许多人都忙于追赶时代,吹捧泡沫,踏踏实实学习底层的人越来越少。新技术随时在变化,而操作系统底层是基本稳定不变的,看了这本书之后我也坚定了学习底层的决心。但是我今年7月即将毕业进入microsoft做软件开发的工作,如果不出意外应该是从事.NET的开发。工作机会固然很好,但和我所热衷的底层却有一定差距。我不知道这个时间该怎样把握,是全力去做好本职工作(这样可能在底层上没什么发展),还是坚持自己学习?毕竟时间是有限的。(好像在那里做到windows kernel也不大可能)。请张老师指教!

Re: 我所看过的最好的中文技术书籍


格蠹老雷 2009-01-16, 13:31 下午
首先多谢你的认可和这么高评价。关于学习底层的重要性我们的观点很一致。我们应该重视底层,就像我们要关心我们脚下的大地和地球一样。但是了解底层的好处就好像是懂得了地球是圆的这个道理那样,得到的好处可能不是那么直接。所以大多数做顶层开发的人对《软件调试》不感兴趣,觉得没有用,这是可以理解的,毕竟“速成”/“快餐化”的思想已经广受认可。
但是事实上,一名优秀的软件工程师应该是洞悉全局的,无论他眼下做的是哪个点,他/她始终是有“大局观”的,知道自己的代码是如何与其它模块乃至整个系统的关系和交互方式。心中有这种大局观的人,无论是作出的设计还是写出的代码都是不一样的。
说的具体一点,对于一个很熟悉底层的(做软件的)人来说,做.Net很容易,而且很多底层的技术仍然有用。举个例子来说,使用WinDBG+SOS可以很高效的理解.Net程序的即时编译、异常处理、GC等机制。深刻理解这些机制,对于写好.Net程序是很重要的。
虽然几年来我一直把主要精力集中在底层,但是我从来不否认顶层的“难度”。写好顶层的东西也不简单。或者说,同样一个顶层的开发任务,不同人写出来的质量还是明显可以看得出的。举个小例子,Mark Russinovich有个很小的小工具,ZoomIt,可以把屏幕的内容放大。这样的小程序有很多,随便找个程序员也能写出来,但是Mark写出来的就是不一样。
归纳一下,我认为做顶层的工作和学习底层是不矛盾的。使用WinDBG+SOS来分析和调试托管程序就是一种很好的结合方式。托管程序中也有难以解决的问题,从底层看一下,可能事半功倍。建议你正式工作前,继续学习些底层的,多做些储备,开始工作了,主要集中在工作任务上,业余时间根据需要继续学习底层,遇到合适的问题,可以尝试使用底层的方法,小试牛刀 :-)。

Re: 我所看过的最好的中文技术书籍


rainers 2009-01-16, 16:22 下午

非常感谢!我也是这么打算的,感觉现在新技术太多,不能盲目跟潮流,要认准一个目标,要学就学底层的。以前看到驱动程序,或病毒这种东西都感觉是非常神秘的高深的东西,用C写程序的时候经常被一些库函数搞晕,一般的程序员总是摸着黑在写程序,知其然不知其所以然,在了解了一些底层的东西之后,以前的这些迷惑正在慢慢的被解开。试想一下,如果写程序的时候我对机器里发生的一切都了如指掌,那感觉多么好,在有一个好的想法以后,不用为不知道如何实现来发愁(至少知道从哪里下手)。

回去学习了,有问题再过来请教。

Re: 我所看过的最好的中文技术书籍


麻大烦 2009-09-01, 15:07 下午
张老师的话句句是真理.

Re: 我所看过的最好的中文技术书籍


xian 2009-11-20, 13:11 下午
张老师的话,确实有切身的体会,可惜看的有点晚呀

Re: 我所看过的最好的中文技术书籍


Gaoquan 2009-12-10, 19:39 下午
张老师说的有道理啊,我虽然不做开发了,但我对底层还是很有兴趣.软件调试给我很多帮助

Powered by Community Server Powered by CnForums.Net