Code Complete 读后总结和新的扩展阅读计划

用了一年时间终于将代码大全读完了,在这里做一个简单的总结,并安排下一阶段的扩展阅读计划。

1、选择代码大全作为我程序员职业入门的第一本书,我认为是很正确的。这本书语言生动,擅于用隐喻说明深刻的编程原理,虽然并不是写给新手看的,但作为一个新手,我依然从中学到了很多。
    2、这本书有很多一针见血的论述:设计是一个启发式过程;编程的最大难题是解决其复杂性;要深入一种语言编程而不是在一种语言上编程,等等。
    3、实践是这本书的核心,它提供了很多Checklist让我可以在工作中去应用其原理。书中有很多学院式的丰富证例和引述,但对我来说最值得学习的是那种扎根于实际开发过程的,在现实主义的约束下追求理想主义的态度,其中的经典,就是模仿柏拉图对话录来讲述注释问题的那一段。

阅读代码大全这边书,我用了一种和以往阅读经验完全不同的方式。我先花了一个月来快速读完了其中文版,在被中文版吸引后,我用了近一年时间来读其英文原版。
    我的本意是想一箭双雕,一边学习英文一边学习编程知识,但在这一过程中,我得到了超乎预期的收获。作为一个从小认为自己理解力很强的人,我几乎是第一次享受到了“慢”的乐趣。我重新认识了几个小学老师就教过的道理:
    1,一般来说,用10个月读一本书大于用10个月读10本书。
    2,读书要做笔记。
    3,每天可以只读一点,但要有恒心。

接下来,我要选择新的一本书来做扩展学习。我的选择标准依然是:公认的经典;不直接的应用于当前的工作;不过分依赖具体的语言或框架;适合的难度;可以激发我的兴趣。我初步的选择是计算机程序的构造和解释,这本书是非常经典的教材,虽然使用scheme语言,但这一语言规则简单,只是书中用来阐明编程本质的辅助工具。
    我已经花了几天浏览其中文版,非常深刻也非常有趣。但选择它作为下一本阅读材料也有其风险,这本书可能对于我来说过于困难了,其学院式的讲述方式和数学化哲学化的探究过程可能需要大量时间来思考问题、解答习题。可能会出现我越读越晕,最后花了大量时间和精力但没有什么收获的情况。
    考虑到我最近会辞职,换新的工作,可能会比较闲。我决定把这一个月的时间投入到这本书上,如果经过尝试,我觉得其深度可以接受,那么接下来的一年我会学习其英文原版。否则,我还需要考察其他的经典书籍。这也是我去做一个“现实的理想主义者”的尝试。

Code Complete 读后总结和新的扩展阅读计划的更多相关文章

  1. code complete part1

    最近在看code complete,学习了一些东西,作为点滴,记录下来. 关于类: 类的接口抽象应该一致 类的接口要可编程,不要对类的使用者做过多的假设.不要出现类似于:A的输入量一定要大于多少小于多 ...

  2. 重读 code complete 说说代码质量

    重读code complete 说说代码质量 2014年的第一篇文章本来计划写些过去一年的总结和新年展望,但是因为还有一些事情要过一阵才能完成,所以姑且不谈这个,说说最近重读code complete ...

  3. [转] 《高性能HTML5》读后整理的Web性能优化内容

    读后感 先说说<高性能HTML5>这本书的读后感吧,个人觉得这本书前两章跟书的标题完全搭不上关系,或者说只能算是讲解了“高性能”这三个字,HTML5完全不见踪影.个人觉得作者应该首先把HT ...

  4. 《Effective Objective-C 2.0》 读后总结

    感觉自己最近提升很慢了.然后去找了一些面试题看看.发现自己自大了.在实际开发中,让我解决bug.编写功能,我有自信可以完成.但是对项目更深层的思考,我却没有.为了能进到自己的目标BAT.也为了让自己更 ...

  5. 浏览器渲染原理笔记 --《How Browser Work》读后总结

    综述 之前使用ExtJS时遇到一个问题:为什么依次设置多个组件的可见性界面会卡顿?在了解HTML的dom操作相关内容的时候也好奇这个东西到底是怎么回事,然后尤其搞不懂CSS和Html分管样式和网页结构 ...

  6. WiscKey: Separating Keys from Values in SSD-Conscious Storage [读后整理]

    WiscKey: Separating Keys from Values in SSD-Conscious Storage WiscKey是一个基于LSM的KV存储引擎,特点是:针对SSD的顺序和随机 ...

  7. Oracle案例02——ORA-12034: "SCOTT"."USER_TABLE" 上的实体化视图日志比上次刷新后的内容新

    最近同事在交接工作时,发现有几个schedule job没有执行成功,我这边给看了下,其中一个是由于数据库迁移,调用dblink的host主机IP在tnsnames中没有变更导致,还有一个是无法视图的 ...

  8. svn下copy项目后定位到新资源库,产生不同版本号的方法

    转载于http://blog.csdn.net/u012990533/article/details/44776465 最近这两天,公司要做国际化的开发,本打算要用struts2内置的i18n拦截器做 ...

  9. 字符串分隔 ->连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

        •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组:•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100 ...

随机推荐

  1. 安装软件配置VC++环境时常出现的问题--Error 1935.安装程序集

    装很多软件是都要配置VC++环境的,但由于系统注册表限制,很多时候软件安装过程中会报如下错误 安装 vc++2005 运行库 Error 1935.安装程序集 Microsoft.vc80.atl,t ...

  2. JAVA 对象引用,以及对象赋值(转)

    原文链接:http://zwmf.iteye.com/blog/1738574 关键字: java对象 引用 Java对象及其引用 关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里 ...

  3. C#通过文件路径截取对应的文件夹路径

      try { OpenFileDialog openFileDialog = new OpenFileDialog(); string str = comboBox_hexFilePath.Text ...

  4. myeclipse 不能添加非myeclipse开发的项目

    这是因为以前的项目不是用myEclipse创建的,所以用myeclipse deploy的时候找不到你的项目.可以这样做:右击原项目名 - myeclipse - Add Web Project Ca ...

  5. python Cmd实例之网络爬虫应用

    python Cmd实例之网络爬虫应用 标签(空格分隔): python Cmd 爬虫 废话少说,直接上代码 # encoding=utf-8 import os import multiproces ...

  6. cocos2d-js 入门一 ([isNaN()和isFinite(),字符和Number之间的转化)

    isNaN() : 用于检查其参数是否是非数字值.// 提示:是非数字哦.(not a number)document.write(isNaN(0) )  //返回falsedocument.writ ...

  7. bower解决js库的依赖管理

    从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎.chrome浏 ...

  8. Java 网络编程---分布式文件协同编辑器设计与实现

    目录: 第一部分:Java网络编程知识 (一)简单的Http请求 一般浏览网页时,使用的时Ip地址,而IP(Internet Protocol,互联网协议)目前主要是IPv4和IPv6. IP地址是一 ...

  9. Java开发工具与程序调试

    开发工具:MyEclipse,Eclipse等. 程序调试:  (1)断点:设置断点是程序调试中必不可少的手段,Java调试器每次遇到程序断点时都会将当前线程挂起,即暂停当前程序的运行.(在Eclip ...

  10. hdu 3191 How Many Paths Are There

    http://acm.hdu.edu.cn/showproblem.php?pid=3191 这道题求次短路经和路径数 #include <cstdio> #include <cst ...