最近几天读完了一本书《程序员修炼之道》,我认为它是写给程序员看的一本哲学书,因为它侧重的是提升程序员的思维能力,而不是具体的实操能力或者专业知识。看完这本书后,不会给人一种立刻就能上手使用的效果,但是它会给人一种豁然开朗的效果,更多的是思维上的启迪。
当我们谈论优秀程序员的时候,我们在谈论什么?它代表着一类人,而这类人拥有一些相同的品质,他们有着优秀的思维和工作习惯,他们也许还拥有丰富的经验,更关键的是那些宝贵的经验变成了智慧,有人把这些智慧用文字表达了出来,于是就有了这本《程序员修炼之道》。
这本书正是给了自己一个机会,一个可以近距离了解一个优秀程序员的机会,看看他都有哪些习惯和认知,之后,再对比一下现在自己脑子里对于编程这件事的认知,感受一下差距。读完后,觉得差距还真的挺大的,小到对于工具的使用,大到对于整个项目的理解。一个项目从开始到结束,里面有太多东西要学习。比如说需求开始前,需求拆解阶段,不要去搜集需求,而是要挖掘需求。理解需求背后的业务逻辑,不能陷入为了开发而开发的状态。
反观自身,最近2个月以来的工作,就是处于一种盲目开发的阶段,它体现在,原封不动的照着PO的需求文档去开发,却没有考虑到背后用户的使用逻辑,所以在需求文档上有一点业务逻辑偏差的时候,自己毫不知情,导致后面很多的返工,花费多余的时间和精力重新修改代码。而这个失误,是可以在最开始的时候,多想一步,再多挖掘一步,就有可能会避免。这就是一个经验欠缺的开发在需求分析上的不足之处,技术是一方面,对于业务的理解同样是衡量一个开发水平的重要因素。
再比如说开发过程中,要遵循“Test early.Test often.Test automatically”的原则,不要等着用户发现问题。这也是自己近期工作中暴露的一个问题,测试太少。读后感www.simayi.net完成一个功能后,它可能覆盖的情况是有限的,往往会出现一些特殊情况或者其它操作,这个时候,就是问题容易出现的时候。因此,今后的工作中要加强自测的频率和质量,以涵盖到尽可能多的使用场景。
程序员修炼之道,强调的是修炼,这是一个过程,甚至不是那么一个舒服的过程,不断的犯错,总结,改进,提升,再循环往复,正是这样一个过程,才能够逐渐成长起来。
特别喜欢这本书里序言当中的一段话:
“能不能让正确的原则指导正确的行动本身,其实就是区分是否是高手的一个显著标志。那么原则和知识内化的过程该如何加速呢?可以肯定的说,光靠对自己说“我下次一定按照这个原则这样做”是不行的。
认知科学认为,频繁的高强度的外部刺激和自主的有意识的反复提醒是加速内化的两个重要方法。但是对于大多数程序员来说,在没有高强度的外部刺激之下就已经开始投入工作了,因此想成为某方面的高手,只能采取第二种条路,就是有意识地强化实践和反复提醒。要强化这种内心的声音。”
希望从今天开始,逐渐建立起这些正确的原则,在实践中反复体会和思考这些原则背后的逻辑,直至让它们成为自己大脑中的一部分。因为:
纸上得来终觉浅,绝知此事要躬行,希望今天的文章能对你有所启发。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。