Code Complete 读后总结和新的扩展阅读计划
Code Complete 读后总结和新的扩展阅读计划
用了一年时间终于将代码大全读完了,在这里做一个简单的总结,并安排下一阶段的扩展阅读计划。
1、选择代码大全作为我程序员职业入门的第一本书,我认为是很正确的。这本书语言生动,擅于用隐喻说明深刻的编程原理,虽然并不是写给新手看的,但作为一个新手,我依然从中学到了很多。
2、这本书有很多一针见血的论述:设计是一个启发式过程;编程的最大难题是解决其复杂性;要深入一种语言编程而不是在一种语言上编程,等等。
3、实践是这本书的核心,它提供了很多Checklist让我可以在工作中去应用其原理。书中有很多学院式的丰富证例和引述,但对我来说最值得学习的是那种扎根于实际开发过程的,在现实主义的约束下追求理想主义的态度,其中的经典,就是模仿柏拉图对话录来讲述注释问题的那一段。
阅读代码大全这边书,我用了一种和以往阅读经验完全不同的方式。我先花了一个月来快速读完了其中文版,在被中文版吸引后,我用了近一年时间来读其英文原版。
我的本意是想一箭双雕,一边学习英文一边学习编程知识,但在这一过程中,我得到了超乎预期的收获。作为一个从小认为自己理解力很强的人,我几乎是第一次享受到了“慢”的乐趣。我重新认识了几个小学老师就教过的道理:
1,一般来说,用10个月读一本书大于用10个月读10本书。
2,读书要做笔记。
3,每天可以只读一点,但要有恒心。
接下来,我要选择新的一本书来做扩展学习。我的选择标准依然是:公认的经典;不直接的应用于当前的工作;不过分依赖具体的语言或框架;适合的难度;可以激发我的兴趣。我初步的选择是计算机程序的构造和解释,这本书是非常经典的教材,虽然使用scheme语言,但这一语言规则简单,只是书中用来阐明编程本质的辅助工具。
我已经花了几天浏览其中文版,非常深刻也非常有趣。但选择它作为下一本阅读材料也有其风险,这本书可能对于我来说过于困难了,其学院式的讲述方式和数学化哲学化的探究过程可能需要大量时间来思考问题、解答习题。可能会出现我越读越晕,最后花了大量时间和精力但没有什么收获的情况。
考虑到我最近会辞职,换新的工作,可能会比较闲。我决定把这一个月的时间投入到这本书上,如果经过尝试,我觉得其深度可以接受,那么接下来的一年我会学习其英文原版。否则,我还需要考察其他的经典书籍。这也是我去做一个“现实的理想主义者”的尝试。
Code Complete 读后总结和新的扩展阅读计划的更多相关文章
- code complete part1
最近在看code complete,学习了一些东西,作为点滴,记录下来. 关于类: 类的接口抽象应该一致 类的接口要可编程,不要对类的使用者做过多的假设.不要出现类似于:A的输入量一定要大于多少小于多 ...
- 重读 code complete 说说代码质量
重读code complete 说说代码质量 2014年的第一篇文章本来计划写些过去一年的总结和新年展望,但是因为还有一些事情要过一阵才能完成,所以姑且不谈这个,说说最近重读code complete ...
- [转] 《高性能HTML5》读后整理的Web性能优化内容
读后感 先说说<高性能HTML5>这本书的读后感吧,个人觉得这本书前两章跟书的标题完全搭不上关系,或者说只能算是讲解了“高性能”这三个字,HTML5完全不见踪影.个人觉得作者应该首先把HT ...
- 《Effective Objective-C 2.0》 读后总结
感觉自己最近提升很慢了.然后去找了一些面试题看看.发现自己自大了.在实际开发中,让我解决bug.编写功能,我有自信可以完成.但是对项目更深层的思考,我却没有.为了能进到自己的目标BAT.也为了让自己更 ...
- 浏览器渲染原理笔记 --《How Browser Work》读后总结
综述 之前使用ExtJS时遇到一个问题:为什么依次设置多个组件的可见性界面会卡顿?在了解HTML的dom操作相关内容的时候也好奇这个东西到底是怎么回事,然后尤其搞不懂CSS和Html分管样式和网页结构 ...
- WiscKey: Separating Keys from Values in SSD-Conscious Storage [读后整理]
WiscKey: Separating Keys from Values in SSD-Conscious Storage WiscKey是一个基于LSM的KV存储引擎,特点是:针对SSD的顺序和随机 ...
- Oracle案例02——ORA-12034: "SCOTT"."USER_TABLE" 上的实体化视图日志比上次刷新后的内容新
最近同事在交接工作时,发现有几个schedule job没有执行成功,我这边给看了下,其中一个是由于数据库迁移,调用dblink的host主机IP在tnsnames中没有变更导致,还有一个是无法视图的 ...
- svn下copy项目后定位到新资源库,产生不同版本号的方法
转载于http://blog.csdn.net/u012990533/article/details/44776465 最近这两天,公司要做国际化的开发,本打算要用struts2内置的i18n拦截器做 ...
- 字符串分隔 ->连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组:•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100 ...
随机推荐
- app打包,发布(同步发生冲突)
1:打包步骤: 1:桌面建立一个文件夹,名字叫keystore 2:点击build下面的 ,如下: 3:会出现如下界面: 4:下一步: 5:如果有keystore,请点击 choose exi ...
- QTP描述性编程中往WebEdit控件输入文字问题
在网上查找到许多相关的描述性编程的案例,自己就想动手一试,于是在专家视图中输入如下代码: systemUtil.Run "http://www.baidu.com" wait(15 ...
- SQL Server类型与C#类型对应关系
SQL类型 C#类型 bit bool tinyint byte smallint short int int bigint long real float float double money de ...
- 锋利jQuery 学习整理之 第六章 jQuery 与Ajax 的应用
1.Ajax 的XMLHttpRequest 对象 XMLHttpRequest 是Ajax 的核心,它是Ajax 实现的关键---发送异步请求.接受响应及执行回调都是通过它来完成的.XMLHttpR ...
- Python爬虫学习:三、爬虫的基本操作流程
本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:三.爬虫的基本操作与流程 一般我们使用Python爬虫都是希望实现一套完整的功能,如下: 1.爬虫目标数据.信息: 2.将 ...
- TOMCAT之性能跟踪入门
先扫清前面的障碍,再慢慢进入核心 转一下网上的我关心的话题,实施起来 ~~~ 使用Nginx作为反向代理时,Tomcat的日志记录的客户端IP就不在是真实的客户端IP,而是Nginx代理的IP.要解决 ...
- C之函数指针
这方面的技能,在观察系统调用时,是很需要的. 但我不是很熟悉,另外,要再会函数指针数组的话,那就更强啦~~ 按<HEAD FIRST C>作了个样例: cat find.c #includ ...
- mysql/Java服务端对emoji的支持
更改好后的字符集: 乱码 推荐大家看 深入MySQL字符集设置 ,区分检查client端.server端的编码:最简单暴力的方式,是在所有的环节都显式明确的指定相同的编码. 比如使用python的My ...
- 缓存一致性(Cache Coherency)入门(转)
参考原文:http://fgiesen.wordpress.com/2014/07/07/cache-coherency/ 本文是RAD Game Tools程序员Fabian “ryg” Giese ...
- OpenWRT 编译 error GNU libiconv not in use but included iconv.h is from...
OpenWRT 编译 error GNU libiconv not in use but included iconv.h is from... 编译的时候碰到一个常见的错误,但是却在一个陌生的地方爆 ...