《代码揭秘》读后感
自从买了此书到现在已经读过两遍了,对此书的脉络与内容已经相当熟悉
.故才敢下笔写这篇读后 感.不过在写读后感之前,首先声明一下,在读书之前我已经在学生大本营结识了作者,只不过素未谋面而已.作者身为一位学生大本营的老师,我是一名学生大本 营的学生,也是一名在校生.经常拜读作者的文章和向作者请教问题,时常为作者的文采和才华所折服.对作者非常尊敬和仰慕.故慕名买了作者此书.虽然如此, 我下面所写的所有的感悟都是从一个读者的身份客观的记录的,并不半点的虚夸,也无半点对作者的不敬,写下这个只为:
1 让所有爱书之人不错过任何一本好书
.
2 好书能改进的更好
,乃至成为经典之作.
好的,下面开始我的读后感
:
本书是从
C/C++的角度带大家探秘 计算机系统的原理,让大家理解代码的运行机制,理解代码背后的秘密.
本书的优点:
1. 读者范围广
本书的读者对象涵盖了从初级到高级的所有读者
.
① 有一定
C/C++基础 并想有所提高的读者
② 想更好的掌握计算机专业课的读者
.
③ 想在程序性能有所突破的读者
.
2. 通俗易懂
作者从简单的
C/C++ 程序入手,通过对程序的分析或使用编译器的调试功能一步一步带大家去理解操作系统.理解代码内部的秘密.只要一定编程基础的读者都能读懂.即使遇到了编译 原理,计算机组成原理,操作系统很多枯燥的知识,作者会使用更加通俗易懂的语言描绘出来,或者使用一些代码、图形使读者更加容易理解.而不觉枯燥,若认真 跟着作者的思路去走,反而会觉得很有趣味.
3. 目的明确
本书的目的很明确,就是带读者 更加好的去理解操作系统,理解代码机制,让读
写出更加优质的程序来
.所以作者从一下思路出发详述了本书的内容.
①. 从编译原理和编译环境的角度概述了 程序的执行过程,以及程序的编译过程
.从CPU的角度叙述了指令的执行过程.
②. 从代码的存储,以及在内存中的地址 来更好的理解代码,理解内存
.乃至更好的管理内存.此处作者更好的讲解了内存的管理以及内存泄漏问题的解决.
③. 从
C/C++的角度理 解计算机组成原理和操作系统。并从计算机组成原理和操作系统的角度更好的理解代码.
④. 通过对计算机组成原理、操作系统更 好的理解
,加上对代码流程的分析写出更加优化的代码.
4. 条理清晰
本书的条理很是清晰,通过对本书的仔细研读,你能更好的理解计算机组成 原理和操作系统中的一些概念
.
5. 讲解细致
作者的讲解过程很是细致,代码
+图形有条理的组织起来,使 读者对知识的理解更加透彻,同时也不觉枯燥与乏味.
优点总结
:
总之,若你是一个有一定
C/C++基础的初学者,研读此书之后定会让你提高不少,并对计算机专 业的知识的理解更加透彻,如果你是一位一直苦于蜗牛般程序的读者,研读此书之后定会让你找到优化程序之法.
读本书的一些经验:
由于本书的内容概览了编译原理、计算机组成原理,操作系 统、
C/C++四门课程.所以读本书的时候切不可急躁,不可按读一般讲C/C++的书籍的方法去读此书,要想更好的研读,消化本书,我们得需 要以下方法:
1 结合编译原理、组成原理、操作系统三本书来学习,读此书的时候,把前面三本书时刻放到手边,遇到书中讲解较少,不能解决心中疑问的地方,立即去翻看前面三 本书
.
2 读此书的过程要经常理论联系实际,不能为学理论而学理论,我们要时常从程序的角度,从计算机的角度去理解这些理论知识,并了解他们的原理
. 否则很多东西学了即忘。且不能灵活的运用.
3 实践是读此书必不可少的环节,书中很多的代码都需要我们动手去实践,而不是仅仅看看就够了,只有亲自实践才能理解的更加深刻
.
4 总结是理解知识,消化知识的一个很好的途径。很多东西并不是我们当时看了懂了就可以了,我们最好对其做一个总结,或许在你总结的过程中,你会有新的方法, 有对知识更加深刻的体会
.
5 知识的前后联系,及串联
.我们都知道很多理论的及需要深刻理解的东西,一个整体的框架,和对知识的串联会帮助我们更好的理 解知识.如:对于本书我们可以以一个程序的执行就可以把所以知识串联起来。程序开始编写,编译期间,我们需要了解编译器即编译原理的一些知识,程序开始执 行,即程序加载内存,以及到程序一条条指令的执行需要操作系统,计算机组成原理的知识.如果你想对程序做到更好的优化,操作系统深刻理解也是必不可少的。 等.你可以把此过程做的更加详细。那么你对知识的理解也会更加深刻.
总之,找到一个好的方法去读书,你会受到意想不到的效果,对此方法去读此书你不但能更好的理解本书,你还可 以收到书外的一些知识,从而通过本书的学习更好的把计算机专业的知识串联起来,并对它们有一个更深,更好的理解
.祝本书的所有读者都能得到自 己想要的东西,从而技术更上一层楼.
本书建议:
1 书中存在一些很明显的笔误
.
我在阅读过程中就发现十几处之多
.当然这个是个写书不可避免的问题。希望作者再版之时能够一一改 正,并作细心的检查.
2 内容过于精简
本书虽然涵盖了编译原理,计算机组成原理,操作系统的知识,但是很多地方过于精简,好多仅仅一个概念带过
, 不能让读者更好的与之结合.如编译原理的内容,作者只是提高了编译的过程.每个过程也是短短的描述几句,作者不能更好的理解,如果这里作者用一个程序进行 一下讲解我想效果会好很多.我认为书的每个章节都可以在扩展很多,这样做并不会使读者感到有压力,反而能更好的理解和消化书中的知识,甚至你会有豁然开朗 的感觉,说不定还能燃起你探究编程奥秘的兴趣.
我认为作者可以扩展以下内容
:
1.从编译原理的角度探究一个程序的程序过程中的变化
.
虽然作为一个普通的程序员(不 参与编译器的开发)不必编译原理了解太多
.但我认为从编译原理的角度了解一个程序在执行过程中的变化,以及编译器对程序的分析是必不可少的. 他能使程序元更好的理解代码,更好的理解编译器的行为.对此不必太过于细致,我并不是要求作者搬一本编译原理书上去.我的意思是作者只要通过一个程序描述 出编译的各个过程中编译器对代码做了那些工作即可.
2. 指针
一本讲到指针,并用指针来探秘 操作系统,探秘内存的书,就不可对指针一笔带过,也不可仅仅的为用之而用之,指针是
C/C++中的难点也是重点。曾有人说“若是把指针学好 了,那C/C++就没有什么可怕的了.”这句话也许并不准确,但它强调了指针的重要性.所以我认为作者可以把指针扩展开来做一个整体的细致的讲叙,好多指 针常用和易错点作者都没有提到.
3. 计算机组成原理
作者既然是想从
C/C++ 的角度让读者更好的理解操作系统和组成原理。那么我认为从CPU的角度来详述一个程序的执行流程是必不可少的.那样能是读者更好的从硬件的角度理解程序的 执行.
4. 操作系统
其实书中对操作系统已经讲解的 很好了,不过我认为我们了解操作系统不仅仅是为了很好的了解我们的程序,从而写成更好优质的程序来,我们还可以通过理解操作系统的机制,并学习这种机制和 原理,从而把这种机制用到自己的程序中
.如操作系统中的缓存,我们平时在写查询算法时,有一个索引查找就是对这个很好的运用。如果作者多举些 这方面的例子,并做些讲解就更好了.(锦上添花)
5. 绪论
在写上面的内容之前,我想作者 非常有必要用一个程序为大家概述他的执行需要那些工作,需要那些东西的参与
.可以以编译原理(编译器)->操作系统->计算机组 成原理的流程(从高层到底层,从软件到硬件)概述.让读者初识程序的执行流程.并理解编译原理,操作系统,计算机组成原理一些知识的重要性.使他们在学习 中不再盲目.
6. 优化
作者在讲解优化的时候,我感觉 太过于简单,开始作者讲解了测试程序运行时间的方法,后面作者列举了一些常用的优化方法,并以例子说明
.这里我认为作者如果使用一些实际小项 目的例子或是以实现某一功能为目的编写程序(可以是伪码)并逐步的优化来讲解能使读者更加深刻的理解优化的重要性和优化的方法.这点《编程珠玑》的讲方法 做的不错.
3 总结不够
作者在知识讲解完之后很多需要总结的地方,作者并未总结,这样使读者对知识的学习有一些散乱,不能很好的结 合起来
.如书中讲解位运算的章节:作者只是泛泛的讲解各个位运算,并在后面给了一些位运算的例子,并未对各个为运算符进行一些总结,其实每个 运算符的功能不过2个,难的只是灵活的运用而已。另:作者对位运算的例子并为做一些讲解说明。这样一些初学者会难于理解.
建议总结
:
总之,我希望作者在改进此书时,能以更加深刻,更加深入的方法向读者讲解,并在讲解过程中对讲解的知识做些 小结
.在此再强调一下,我并非对作者有意见故意挑刺,反而我很仰慕和尊敬作者,从内心里希望作者的书能更加好.乃至成为中国,甚至是全球的经 典之作.
总结:
虽然我在上面提出了很多的建议,本书仍不失一本经典之作
.上面的建议只是想使本书更加经典。但 本书目前已经颠覆了很多传统的C/C++的书籍,完全可以使读者研读之后有一定层面的提高.并且在已有知识的讲解上作者均是化繁为简,剥茧抽丝的向读者娓 娓讲解了C/C++、操作系统,计算机组成原理的知识.是一本很值得读的经典著作.
注:上面仅是我个人看法。如有不同意见,纯属正常. 我是以一个普通读者的身份,客观的表述自己的看法,并真心的期望作者的书能够更加精进.希望国内IT图书的质量能够赶超国外,带动国内IT技术的发展乃至 祖国的发展.