标签:
0、总结
一直不清楚自己的编程水平为什么没啥长进?Jamie Zawinski的经历告诉我:书读少了、手册看少了、代码读少了、代码写少了。归结到一点,壮士还需继续努力啊。
1、为什么要读这本书?
很早就发现这本有意思的书“Coders at Work”,虽然看了一点英文版,但毕竟不如中文那么流畅。
重读这本书源自最近在做的一件事情:想了解中外编程高手都是怎样学习和编程的。
通过搜索的方式进行了一些调查,但结果非常有限。很多时候得到的就是类似个人简介式的内容。
兜了一圈最后又回到了原点,原来《编程人生》就是解答我疑惑的大门。
ps:想了解某个领域的牛人经历,访谈录是一个比较好的渠道,但里面应该也是有点坑。保持批判阅读就好。
2、读这本书想了解什么?
回答问题:
- 做程序开发核心驱动力是什么?
- 如何磨练编程技巧?
- 如何学习、解决问题?
3、读完以后想做什么?
- 对照自己遇到过的困难和好的经验,站在别人的肩膀上总结提高。
- 模仿(copy)别人的经验,在实践中找到适合自己提高的方法。(注:拷贝有风险,记得要保持批判性思考)
- 从这本开始,积累好的英译汉素材(词汇),提升技术翻译的水平(www.importnew.com)。
- 从程序员访谈录开始,观看不同的编程人生,这该是多有意思的一件事情:)
那就开始吧!
第一位Jamie Zawinski(后面简称jwz),几个关键词:Lisp黑客、Netscape浏览器开发者、XEmacs开发者。目前是酒吧老板。
读完他的访谈,下面是我觉得很有启发的地方:
4、程序员的关键技能是什么?
这个问题我以前有思考过。扎实的基础、数学天才、超高的智商、超强的学习能力、丰富的工作经历、完整的知识结构、跨领域的知识结构。也许都需要吗?
jwz的回答很简单:程序员的关键技能就是好奇心。那种想要了解程序运作原理的冲动。
我说出来可能没有那么艺术,就是多折腾。
以前学校的教育把这股子折腾的劲头都丢掉了。怎样恢复好奇心,这个可以再改进一下。
5、怎样学习编程知识、磨练技能?
不断挖掘源代码和参考手册。
在目前开源项目众多、函数库、框架满地都是的时代,更重要的是如何快速掌握别人的代码并弄清楚其用法。能够深入研究API,区分好用的部分和不用的地方。这是必备技能。
6、如何进行程序设计?
jwz的风格是,实用,拒绝过度设计、完美的设计。能及时发布产品占领用户才是第一目标。这一点在Netscape浏览器开发期间得到了印证。
如果是带界面的程序,先写出可以用的东西,哪怕再小也可以。有了它,可以知道下一步该做什么。如此推进开发。
7、阅读代码有什么好办法?
在一头扎入代码之前,可以学习一下jwz的方式:
- 顺序阅读:如果是学习新的库或者工具包,会读文档和API。弄清楚自己可能用到的地方,再弄清楚它是怎么实现的。
- 从底层入手:对开发类似Emacs(编辑器,也有人把它看作操作系统)这样的程序,可以先了解一下背景知识。可以尝试通过构建过程(build)来了解整个程序的结构。
8、编程时有哪些注意事项?
多加有意义的注释,重复函数名这样的就不麻烦您了。
要想专注代码有一个好办法:挑一项你感兴趣的任务,然后搞定它。
9、有没有推荐阅读的计算机书籍?
《计算机程序的构造和解释》、《编程精粹:编写高质量C语言代码》、《计算机程序设计艺术》(这本jwz推荐但自己没有读)。
10、“隐藏关卡”
在这次的阅读中,发现了“批判阅读“的好处。
这篇访谈中隐藏了很多信息:
- jwz 8岁开始编程,没有机器的时候就在纸上写代码。
- 掌握多种编程语言。
- 在CMU(卡内基梅隆大学)AI(人工智能)实验室、Netscape和Lucid Emacs公司都有很多不同领域高手一起工作。
- 阅读很多书籍。
- 阅读很多代码,然后不断提问。
标签:
原文地址:http://www.cnblogs.com/tangyouhua/p/4515738.html