知其然更要知其所以然,深入才能浅出!_程序员的自我修养书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 程序员的自我修养 > 知其然更要知其所以然,深入才能浅出!
hustcalm 程序员的自我修养 的书评 发表时间:2014-02-19 09:02:45

知其然更要知其所以然,深入才能浅出!

想读这本书,前前后后也有两次了,直到13年的年底终于下定决心买了一本。

不为别的,自己在编写以及编译调试程序的时候,难免会对其背后的机理产生好奇心,而出了问题又无可奈何的时候,更深知自己应该去了解一下幕后到底发生了什么。举个简单的例子,用gcc编译C++代码的时候,是分阶段生成代码的,且可以由我们控制,虽然平常没有分解的必要,但是了解编译器的基本工作原理还是很有益处的。而编译之后的目标文件则有链接器处理后生成可执行文件。

抽象来看,我觉得gcc手册会告诉你足够多的东西,一本翔实的操作系统书籍也会给你足够的启发,而且想真正弄清楚问题,是需要去钻研一些“鸿篇巨制“的。而至于此书会教给你什么,看一看”序言“和“目录”便基本了然。

我首先阅读了第一部分(第1章),作者们生动地把操作系统和体系结构,程序运行相关的基础核心概念表现出来。之后由于对“库和运行时”更想了解其原理,所以直接跳到了第四部分(第9-13章),这里对内存布局,运行时库的来由和基本机理,系统调用的实现机制都做了生动的描述,而在第13章,则实现了一个“麻雀虽小,五脏俱全”的C/C++运行时库。

至于剩下的第二部分,则对编译,目标文件(PE,COFF)和静态链接进行了深入的分析。第三部分讲“装载和动态链接”,需要读者对操作系统的程序加载有一定的理解,这一部分读起来对我来说比较吃力,接下来需要读一本操作系统方面的书补课。

对目前的开发者而言,虽然不是每个人都需要了解底层工具链以及支撑软件的基本原理,但是一个“合格”的程序员需要加强“自身修养”。如果总是停留在“知其然”的阶段,遇到了问题,很难既快又准地解决。而做到了“知其所以然”,便可以举一反三,处理问题的时候思路清晰。

还是那句话,“以不变应万变”,掌握了原理才是知其精髓。学习一门语言,就好比是阅读一个产品手册,教给你怎么用。而实现一门语言,才是“真正的开发者”。

废话说了一堆,我比较喜欢本书序言三“佚名”引用的那一段话!

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读