好程序员的十大习惯之二 写代码之前成竹在胸

[作者按:大家的好习惯有很多,这其中必然存在重要的和非重要的,我也看过网上有写N大习惯的,但是写的都比较随意。感觉就是直接写自己的经验一样。我在写每一个习惯之前,都在琢磨,为什么要把这个习惯放到这里。下一个习惯又是什么?大家也可以帮忙一起来分析,可以在回复的时候,加上自己的建议,谢谢了!]

不清楚自己要做什么的程序员,不可能做出好的代码出来。这话虽然有点绝对,但一定适用于很多人。我知道有一些程序员,在做任务的前期,几乎就是在浪费时间。你去问他做得怎么样了,他会告诉你遇到什么什么困难了,但是你要是帮他分析一下他真正要完成的事情,你会发现,他根本还不知道自己要做成什么样子。他是自己理解一点做一点,根本不管是否需要这个。有时候他所谓遇到的困难,都是他自己凭空想出来的。

我喜欢成竹在胸地写代码的感觉,一气呵成,回味无穷。写完之后,感觉全身充满了气息,就好像被打通了任督二脉。血脉流转非常强烈。就一句老话讲:痛则不通,通则不痛。讲的应该也是这个道理。没想清楚如何实现的时候,或者程序模型没有建立好之前,总感觉头痛眼花。这种状况会视问题的难易程度而定,有时候做梦都在思考。我甚至有一次在梦里把问题解决了。那一次睡觉完的感觉非常好。真是:

梦里太白拨一点,

醒来更能上九天!

但这些之前,一定是我们对于我们要做的东西深刻理解了。是深刻,而不是全面。第一要理解到精髓,第二要用浅显的话总结。这就是深入浅出的道理。理解到精髓是为了方便扩展,用浅显的话总结是为了方便抽象。这两点正好是我们编程所追求的目标。

只要我们知道我们做什么,工作效率能够提升很多。我就有一个例子,有一次一个业务人员葛工,跑到我这里来,让我帮他改一个系统。这个系统我从来没看过,相关业务我也不是很清楚。结果2小时就搞定了。怎么搞的呢?我就和葛工商量,我说这样,你坐在我旁边,你把你要的东西在软件上比划,我把相关代码调出来,看是否你要的地方。就这么两个人坐在屏幕前,一对一的帮助,很快我就改好了他要的功能。

说起这个故事,大家自然能够想到了敏捷中的和客户结对的做法。是的,我认为敏捷实践中的经验,其实就是用组织的形式来弥补我们个人不好习惯所带来的效率问题。我曾经总结过,RUP关注的是事理,XP关注的是人性。你能够发现我在写很多习惯的时候都会提到敏捷。这是它伟大的地方。

有时候我们的工作是琐碎的一堆事。这个时候,一个好的习惯,就是花2分钟时间,在一张纸上列出你所有要完成的事项。然后对照这张纸进行工作,每完成一个划掉一行。直到最后完成。我相信很多人都用过这个方法。这个方法在这种情况下的作用非常大。他很容易把我们的精力集中到问题上。否则,我们完成了第一项之后,就会容易有很长时间不知道接下来该做什么。这是一种时间管理方法,也是一种小目标的管理方法。

其实说到底,就是人在知道自己做什么(目标)的情况下,和不知道自己做什么的情况下的效率和效果是不一样的。

最后说一句,在《高效能人士的七个习惯》中,这个习惯应该叫以终为始。但我并没有生搬硬套,还是本着实践中确实有效的方式去写这个习惯。

 

你可能感兴趣的:(职场,休闲,好程序员,写代码之前成竹在胸,十大习惯)