阅读作业-王莹

最近几天读了一下《代码大全》(第二版)。开始的时候,以为又是一本很挫的书,一些想赚钱的人随便找了一下参考书随随便便拼了一本书出来。再加上乍一看这本书的名字,顿时就在心里对它打出了“hehe”。

但是当我真正的开始读这本书的时候,原来的想法被完全的打破了。这本书名字叫做“代码大全”,但是实际上,与我们所理解的“代码集”是完全不同的概念。这门书的原名叫做《Code Complete》。以译者的说法来讲,就是“编码完成”。“编码完成”是项目开发过程中一个重要的里程碑。当一个项目开发进行到这里的时候,表明已经完成了基本的开发工作,接下来要进行的工作就是对所开发的软件进行测试的工作。而本书所讲述的就是教我们编写高质量的代码。

 

下面再讲一下我对于这本书的具体的理解吧

书中印象最深刻的一句话就是:代码首先是为了人而写的,不是为了机器。

我没有按着书的章节顺序阅读。而是首先读了第34.4节<深入一门语言去编程,不浮于表面>。基本上很多同学都掌握了很多门语言,像C/C++/java这些基本的就不用说了,还有一些额外的,比如:python,ruby,php,shell等脚本语言,并且有很多人以这个作为炫耀的资本,可是当我们真正静下心来想想的时候,我们真正掌握的程度又有多少呢?就拿最最基本的C语言来说吧,可能我们觉得我们学的不错了,可是当面对真正的高手的时候,几个问题就会把我们问得不知所措。很多时候,我们学了很多们语言,可是我们所知道的只是这些语言共性的东西,比如每门语言都有循环控制,都有变量定义规则,都有函数定义规则。我们能说我们了解了这些就熟悉了这门语言吗?显然不能。我们没有真正的去深入一门语言,去学习这些语言自己的特点。既然java与C不同,那就说明他们有不同的地方。如果你用java写出来的程序,虽然嘴上说的时面向对象,但是,实际上还是一个面向过程程序。只不过你是把几个相关或者根本就没有关系的函数/变量放在一个类里面,这又有什么用呢?况且效率还不如C语言的高。这又有什么用呢?就是为了显示我知道java?为了给不懂变成的人炫耀我会java?那我只能对你打出“呵呵”。

正如书上面所讲的一样,我们现在的编程思路都是局限于所用到的语言能够自动支持的范围。都是一个这样的思路:首先我要确定,我要用java来解决这个问题,然后我再去回过头来看我所要解决的问题。但是由于自己根本就不懂java,然后就陷入了深深的惆怅与懊恼。By contrast 杰出的程序员会首先考虑我要干什么。我需要哪些技术,这之后再决定那种语言的高级特性能够更好的支持完成这些技术。

我再看书的时候没有太多的去关注技术方面的东西,反而主观的东西对我的吸引力更大一下。于是我又把始终的第七部分:软件工艺又看了一遍。里面有一部分感觉很奇葩:在第三节竟然讲到了个人性格。

编程是一件很费脑力的时期,由于这种特性,所以使得和我们个人的性格就产生了很大的关系。我们的老板没有办法强迫我们成为一个好的程序员,他所能做的事情就是如果你不好好的干活,就把你炒鱿鱼,而没有义务像老师一样来教育我们。所以如果我们要成就自己,就必须要靠自己的努力,全凭我们自己,而这就与我们的性格有关系。正如Edsger Dijkstra在1972年图灵奖大会上宣读的一篇名为《The Humble Programer》一样,他认为大部分变成工作都在弥补我们有限的智力。而之上的高低与程序员的优秀与否之间没有必然的联系。精通编程的人都是那些了解自己脑力有多大缺陷的人,都是很谦虚的。而那些变成糟糕透顶的人,都是不知道自己的局限在哪里,心中充满了自负。因此我们要承认自己的局限,并且虚心的学习,这样我们才能成长的更快。

我们还应该有足够的求知欲。当今时代,互联网的革命每天都在发生。新技术平均每5-10年就会发生很大的变化,如果我们不去跟上时代的步伐,那么时代就会抛弃我们。。

 

最后以书上的几句话作为总结吧:

1)  不是高手不要假装高手

2)  乐于承认错误

3)  敢于面对程序中的错误

4)  不要把很简单的原理扯得很复杂

 

posted on 2012-10-30 20:36  fightingsnail1  阅读(577)  评论(1编辑  收藏  举报

导航