编程珠玑11.6

今天读了《编程珠玑》的第三章,可能是这本书写的比较早(30年前)的缘故吧,有很多地方感觉不理解。但是在那个时代作者所写的放在今天仍然有很大的借鉴意义,其中的一些算法思想是不变的。

第三章的标题是“数据决定程序结构”,英文:data structures programs。作者刚上来用:定义500个变量和定义一个长度为500的数组来比较。在今天看来可能定义一个数组就是非常基础的东西了。但通过作者的描述来看,我忽然想到,数组虽然很简单,但它也是一种数据结构啊。

接下来作者拿一个2万份的学生调查表来作为例子,到这我又不理解了,作者怎么用这么复杂的操作来做这么一个“简单”的表格呢?用我们的excel来做,那是很简单的一件事。

又往后读,我才忽然意识到,作者所做的就是电子表格的本质上的操作,那个时候并没有这样成熟的电子表格来让他们用,他们要实现这样一个功能都要敲成百上千行的代码,所以我们平时生活中习以为常的东西对于过去来说,可能就是很重大的一项发明。

这又让我意识到两点:创造就来源于生活,要注意关注生活中一些比较细微的事情,往往从中就能发现从来没有见到过的东西;第二点是不要做重复性的工作,学会总结数据,结构化你的程序。比如说让你解决一个23种情况的问题,你可以编写一个解决n种情况的程序,然后让n=23就好了,这样写出来的程序解决的问题更多,并且一般情况下更好维护。

这有几条作者总结的原则:  

*使用数组重新编写重复代码。  

*封装复杂结构。

*尽可能使用高级工具。

*从数据中得出程序的结构。

你可能感兴趣的:(编程珠玑11.6)