程序员修炼之道

每年寒假总是要读完一本书,去年寒假读的是白帽子讲 Web 安全.今年读的是程序员修炼之道:从小工到专家.去年那时候估计没有搭建好博客. 所以没有写点什么,今年还是写一下读完的感受吧.

这本书说实话我大一就买了,但是那时候没有一点项目经验.读起来宛如天书,没读一半就放弃了.因为那个看起来不知所云的目录让我顿时失去了兴趣. 大一的我确实无知,自负,浮躁,没有认真读下去.当时就沉迷于学习各种编程语言...没有审视到这本书的价值.如今我已大四,也算有了不少项目编程 经验,写过上万行代码,对于这本书的感受就是爱不释手.这本书用非常幽默的方式简述很多朴素而真挚,简单而有效的编程哲学.

全书基本是经验之谈,经验往往不能告诉我什么一定对,但是可以告诉我们什么一定不对.在提示 36 中讲述了需求之坑.告诉我们一个注重实效的程序员 应该需要挖掘需求而不是搜集它们.确实,客户往往不能很好的阐述需求,需要程序员进行深入挖掘才能使项目顺利进行.文中也举了很简单的例子进行阐述. 我一开始做项目的时候很顽固的要求需要明确的需求文档,现在想想这完全就是个笑话.因为客户自己都不清楚到底要做成什么样子.

本书的涉猎范围很广,也有很多专业名词.每个章节都可以延展出很多内容.我不认为这是一本只需读一遍的书.在每个编程阶段去读这本书都会有不同的感受. 这本书我肯定会珍藏,以后也会反复读的.这是一本程序员必须读的书,希望大家可以耐心的读一下这本书.

这本书的精彩之处只可意会不可言传,本人文采不好,但是极力推荐.最后摘抄下这本书阐述的注重实效的程序员的特征:

  • 早期的采纳者/快速的改编者. 你具有技术和技巧上的直觉,你喜欢试验各种事物.给你一样新东西,你很快能把握它,并把它与你的知识的其余部分结合在一起.你的自信出自经验.
  • 好奇. 你喜欢提问.那很漂亮--你是怎么做的? 你用那个库时有问题吗?我听说的这个 BeOS 是什么? 符号链接是怎样实现的?你是收集小知识的林鼠(pack rat),每一条小知识都可能会影响今后几年里的某项决策.
  • 批判的思考者. 你不会不首先抓住事实而照搬别人的说法.当同事说"因为就该那么做"或者供应商允诺为你的全部问题提供解决方案时,你就会嗅到挑战的气息.
  • 有现实感. 你会设法理解你面临的每个问题的内在本质.这样的现实主义给了你良好的感知能力:事情有多困难,需要多长时间? 让你自己了解某个过程会有困难,或是要用一点时间才能完成,能够给予你坚持不懈的毅力.
  • 多才多艺. 你尽力熟悉广泛的技术和环境,并且努力工作,以与各种新发展并肩前行.尽管你现在的工作也许只要求你成为某方面的专才,你却总是能够转向新的领域和新的挑战.

最后,你是一个注重实效的程序员吗?