绿林网

程序设计实践读后感精选

程序设计实践读后感精选

《程序设计实践》是一本由Brian W. Kernighan Rob Pike著作,电子工业出版社出版的329图书,本书定价:59.00元,页数:2011-6,特精心收集的读后感,希望对大家能有帮助。

《程序设计实践》读后感(一):作者?

作者不是个美国人吗?怎么成中国科学院高级工程师了?译者和作者分不清吗?????????????????????????????????????????????????????????????????????????????????????????????????????

《程序设计实践》读后感(二):到底是下标还是数字?!

当我学习C语言的时候,常常被for循环内 i 究竟是

甚至在之后看数据结构时,这两种写法也是在混用的。我不知道,有什么是比你在学习不同算法时,还要记住每个算法的循环是0开头还是1开头更糟糕的,这是极度恶心的体验。

而这本书在很开头时,1.3章就对这个问题做出了解释,如果我能早些看到,就不会困惑这么久了。

这本书并不是简单的说明变量应该按驼峰写法,而是真正深入程序的细节中,对实践有极好参考价值的好书。

《程序设计实践》读后感(三):发现上当了,不如买英文原版的

英语不好,第一次买英文书,没信心,正好发现这个评注版,欣然买之。然后发现所谓的评注不是针对难点的解释,大都是没用的,该解释的作者都已解释清楚了,而这本书又是写思想的不是技术,没有什么难点,评注看的反而碍眼,影响书原汁原味的感觉,这本书40多块329页,而原版的才20块才267页,上当了。。。

这本书有中文版的高质量pdf,文字的,可以配着跟英文原版对应着看,原版在这:http://book.douban.com/subject/1096711/

英语不好,要加强英语,评注版是个陷阱,不认识的单词还是不认识!

看到还有一系列的书是所谓的评注版,翻倍卖,还给评注者打那多广告,赚钱这么容易?!

下次坚决买原版!

《程序设计实践》读后感(四):对这个版本吐几个槽

首先这个书评和原书内容几乎没有关系,针对这本评注版。

当初选择买评注版的原因在于,它是英文版的,就这么简单。但是看完后发现这版有一两个说小不小,但是确实恼人的缺陷。

其一是校对问题。书中出现很多单词排版错误,即两个单词连到一块去了,而且从第三章开始几乎每章都会出现几次,表现下存在感。甚至有一章还出现单词拼写错误……这个问题对于英文阅读是非常让人不舒服的。

其二是评注,实话说,大部分评注没有太大的意义,基本都是翻一下选中的东西,然后再加点不痛不痒的。虽说评注也是一项颇有难度又耗费体力的活,但好歹得做得让人看得下去,比如云风评注Effective C++中所做的。没有意义或几乎没有意义的评注和类似(// main函数)这样的渣注释一样令人恼怒

其三是细微的排版失误,有一章中有几个小标题没有format上

如果说推荐这本书的原因,那只能是原书的内容,和评注没有半毛钱关系

《程序设计实践》读后感(五):见贤思齐

我看过很多类似#程序员必读XX本书#的书单,似乎在几乎所有的推荐书单里面,《程序设计实践》(英文名The Practice of Programming)都没有出现作为一本被推荐的书。我也是在今年暑假突然想开始读一些英文版的技术书籍,然后豆瓣上大致浏览了一下,机缘巧合的买下了这本书。

在技术博客,出版书籍充斥着各种云计算、大数据等时髦名词的今天,这本书从名字上就不是太引人注目,作为作者之一的Brian W. Kernighan这个名字似乎也很陌生,不过他还有一本书,就是被奉为C圣经的《The C Programming Language》,相信你一定听过。而另一位作者Rob Pike,可能更加陌生,不过他设计了一门最近非常红火的语言:Go。《The Practice of Programming》这本书确实颇为冷门,豆瓣上各个版本的评价数目加起来也不过400来人,分数倒是可以,9/10分的样子。

在阅读这本书之前一两个月,我大概做过如下一件事:

1. 在网易公开课上看了斯坦福的《编程范式》里面关于C语言的几集。

2. 看完了《The C Programming Language》,是中文版。

3. 开始在HDOJ平台上做题,熟悉C语言,用C写一些基本的算法。

从05年开始,我就一直对C/C++保持半生不熟的状态,之后差不多两年的工作,基本上也以使用SQL、Ruby和Java为主,虽然能拿来用解决一些问题,但是一直都没有系统的学习过,总感觉不踏实,干脆,在语言的学习上,一切推倒重来,从C开始。

好像扯得比较远了,不过也当做是我看这本书的背景吧;关于《程序设计实践》这本书,首先,书很不算太厚,我所看的评注版也就300多页,分为9个章节,像我一天看两个小时,大概一个礼拜就能看完一章的样子,当然,里面有些章节可能会围绕一个程序来展开,这样的话,自己把程序实现一下会更好。虽然书中代码大部分都是由C来实现的,但是一般同时也会给出一个C++、Java甚至是Awk,tcl实现的版本,所以,可以说这本书不算是语言类的书籍,作者在用不同的语言实现同一个程序的时候,更多展示的是不同语言在设计思维上的差别、在编程范式上的差别以及在适用领域上的差别。

从章节上来讲,以下更多是我个人的一些体会

第一章:Style,养成良好的编程习惯和编程风格比较重要,包括遵循一些约定成俗的代码风格和程序设计风格。其一,这样写出的代码更容易理解;其二,这在很大程度上降低了BUG出现的概率。这一章给我印象最为深刻的一段代码是C的qsort函数经常用到的一个cmp函数的写法。被注释掉的return写法非常常见,也很好用,但是在极端情况下却有问题。

int cmp ( const void *a , const void *b )

{

//return *(int *)a - *(int *)b;//会有溢出隐患

return *(int *)a > *(int *)b;

}

qsort(array,arrayLength,sizeof(array[0]),cmp);

第二章:Algorithms and Data Structures, 主要是一些常见的查找、排序算法和一些常见的数据结构,这一章内容不多,但是结构相当紧凑,很多代码实现清晰明了,很接地气,虽然由于书比较老,像使用Java的版本比较旧,但是一点都不影响阅读。

第三章:Design and Implementation,整章围绕一个马尔科夫链的单词后缀的程序展开,给出了C、C++(STL deque)、C++(STL list)、Java、Awk、Perl的设计和实现方式,让人叹为观止,这一章应该是值得反复阅读并且自己去动手实现完整代码的。虽然以前在排队论的课上也接触过随机过程里面的马尔科夫链,但是当时的那些枯燥的公式让我实在是没啥收获,而书中的程序给了马尔科夫链一个非常通俗易懂而且优雅的解释。

后面的几个章节,包括接口的设计,在我们日常Coding中,也是频繁接触的;作者分别给Debugging和Testing各自一个章节,这两个经常被我们在学习过程中忽略而在实际工作中又避免不了的东西,至少你应该明白Debugging是发现问题后去想方设法解决问题fix bug的过程,而Testing是系统化地去挖掘潜在问题(BUG)的过程;两者是不可以混为一谈的。最后的三章包括性能、可移植性和Notation(我在中文中找不到一个词能准确描述这个词,虽然有人翻译成“记法”,但似乎不够全面,这章更多是在讲述论证要学会选择在正确的领域选择好正确的工具做正确的事),毫无疑问,也是非常不错的。

总的来说,我认为这本书非常适合作为你#阅读的第一本英语技术书籍#,学过了基础算法和数据结构的学生,可以把这本书作为一本进阶书籍,然后开始尝试动手将你所学习到的东西运用起来。而刚刚步入工作的同志们也应该好好读一读这本书,在职业素养上做好身份的转型。工作两三年的同志们也可以读一读,见贤思齐。

本文由作者上传并发布(或网友转载),绿林网仅提供信息发布平台。文章仅代表作者个人观点,未经作者许可,不可转载。
点击查看全文
相关推荐
热门推荐