美文网首页重新学习C语言(十年前的连载)
CSAPP 《深入理解计算机系统》在china-pub上写的书评

CSAPP 《深入理解计算机系统》在china-pub上写的书评

作者: hotplum | 来源:发表于2019-06-16 22:00 被阅读0次

我能抽空读完(草读)这本书,是在我买了此书中译版两年半之后!
作为一个程序员,只看完第一章就知道,这是一本经典!
  由于有比较好的条件,只要看到不错的与自己职业有关的计算机读物我一般都会购买。但读完的寥寥无几。一则是因为职业,作为一个程序员整天埋没在软件和项目之中,有限的休息时间实在不能用读计算机书打发了!二则是拿到手中的各种读物,能有兴致读完的确实少的可怜!此书就是一本。
  我只能说相见恨晚!从业近9年的时间了,从技术支持,安装开始,到coding若干年后成为一名编程快手,然后作设计或者项目经理,一步步走到今天!程序和人生已经深深耦合在一起!
  CSAPP,作为一个计算机教材,首先标题很明确,她是面向程序员的!作为一个曾经有一点DOS背景的W32程序员,由于工作需要,使用过各种开发工具,VB,VC,Delphi,ASP,JSP等等,最值得庆幸的是使用了Delphi这个工具,原因只有一条,Delphi程序员拥有一个大宝藏--borland提供了编译器以外的几乎所有的源码!(当后来接触了Linux之后才知道,竟然有这样一个更大的宝藏!)
  软件开发的方法曾出不穷,程序员每日面对比任何职业变化都要快的生存环境,每年需要大量的时间(难道天生我们就不喜欢睡眠)学习“新的技术"和“新的知识”,即便是这样还有被淘汰的危险,若干年后突然又发现,30/35成了我们难以逾越的坎儿!程序员竟然是一个吃青春饭的职业!
  当Java鼓吹夸平台的时候,我曾经暗想,他真的能"Write Once, Run Anyway",真的能跨平台吗?C语言不是跨平台的吗?TCP/IP呢?XML呢?也许是一句广告词吧!
对于程序员,有没有相对稳定的知识体系呢?什么东西在学习了以后若干年后还能派上用场呢?有!
  我的程序员人生开启的比较偶然,大学时候只学了几天BASIC的我,由于一个偶然的巧合,参加了一个微机原理-汇编程序语言的学习!短短的一个学期业余时间的学习,奠定了我后来的软件开发基础,十年过去了,有什么知识是相对稳定的呢?比如处理器的基本结构,比如储存器的结构,比如任何编译语言的编译,可执行二进制程序的结构(Windows上是PE文件,Unix/Linux 的ELF),动态连接,进程,线程等等,还有什么呢,估计就是被我们大部分程序员忽略的软件开发过程(或是软件工程)。还有一个比较重要的就是语言,对于语言,我是在接触了javascirpt这个动态语言之后又真正思考过的东西!什么是计算机语言的特性,什么是语言依赖的宿主的特性(说道这里,不得不提及K&R 的C程序语言 ,一本C语言的经典,或者可以说是一本计算机语言的经典,可惜我是直到在几个月前才用几天时间拜读的!)。
  幸运的是CSAPP中讲述的就是关于程序员需要了解知识体系里相对稳定的部分!使用编译语言的程序员会遇到各种问题,产生的各种bug,最后大都可以归结为“没有更深入的理解”计算机,内存泄露,非法内存引用,指针错误,线程同步,服务程序难以忍受的性能和不够健壮等等问题,往往令我们一筹莫展,随着我们对计算机更深入的理解,我们的进步是显而易见的!
  一般程序员大概可以粗略分为系统程序员和应用程序员两种(当然,我是后一种),系统程序员最好是科班出生,有丰富的计算机科学背景(诸如数据结构等方面的深入的磨练),而应用程序员更重要的了解领域知识,开发客户需要的软件!但无论是哪一种,或者哪一个层面,了解计算机系统都是属于内功心发的修炼,是在不知不觉中增加你的功力!而对于应用程序员来说,收获会更大!
  最后还有重要的一点(如果有时间,我打算写一些读书笔记,供日后参考,或者于各位同仁分享)。如果是一个在校学生,一定要找到自己的《九阳真经》,不要盲目的练习各种武功和剑术,Linux和C或许是最好的选择(我没有赶上好时候),如果通过几年的计算机学习,你不会使用Word,不会五笔字型打字,甚至更本不熟悉Windows,在你的简历里只有一种所谓精通的计算机语言,你就是那个走出深山的张无忌!

相关文章

网友评论

    本文标题:CSAPP 《深入理解计算机系统》在china-pub上写的书评

    本文链接:https://www.haomeiwen.com/subject/tcsnfctx.html