《编程珠玑》和《梦断代码》(部分) 读书笔记

这周我阅读了《编程珠玑》和一部分《梦断代码》,将感想和收获记录于下。

《编程珠玑》是一本小而精巧的书,它讲了很多与编程、沟通、软件工程相关的知识,对我大有启发。书一开始讲了一个程序员求助的故事。那个程序员要做一些和排序相关的业务,于是向高手求助,但花了整整30分钟才把问题描述清楚。他之前以为这个问题需要写很多代码,需要花整整一个周去维护,但当他把问题描述清楚后,高手给出了一个很简洁的做法,只需要很短的时间就能完成。作者通过这个故事告诉我们,在写程序之前要多动脑,把问题定义清楚,才能高效地解决问题。

《编程珠玑》后面的章节比较散,讲了一些关于算法的知识和关于代码优化的知识。因为之前学过一些信息学竞赛,所以对基础算法和基本的优化比较熟悉,这部分我看得比较快。虽然只是讲了一些二分查找、堆这种基础的算法和数据结构,没有讲很多高深的算法,但大都是结合工程中实际碰到的问题来讲的,是真真实实地把算法转变成了生产力。书中还讲了一些消除bug的方法,如“前置命题”、“后置命题”、“循环不变式”等,这些在软件开发中都是非常有用的技巧。

《梦断代码》我看了前几章,这本书是一本记叙风格的书,从微观的角度讲了计算机和互联网发展中的一些事件。前几章讲了 GNU,Linux,讲了网景公司,浏览器和Python的一些故事。这些故事大都发生在10年或20年前,有一些年代感了。这些故事告诉我,互联网世界并不是一开始就像现在这样,而是经过了很多事件和一代人的努力才变成这样的。开源一开始并不是很受欢迎,微软和它长期保持敌对关系。但现在,微软积极拥抱开源社区,VS Code 就是微软给开源社区贡献的大礼。关于软件工程,书中提到“快速、便宜、优质”只能任选其二,这也是很有意思的观点,至少给我们两点启发:1. 不要奢望在软件工程中达到快速、便宜和优质,必须有所舍弃 2. 不要在只做到了其中之一的时候就沾沾自喜,停滞不前。

原文地址:https://www.cnblogs.com/nicekingwei/p/8722537.html