程序猿的执业修养(六)——勤学好问,自我批评

一个人的能力是有限的,因此我们需要不断的学习,对于每个人都是如此。而程序猿,由于是一种从事脑力劳动的家伙,更加需要不断的学习、进化!然而有些人,喜欢在学到一点儿东西的时候就拿出来炫耀,这种做法是值得商榷的!

保持空杯心态

一个老掉牙的故事就是,有半杯水,一个人说“只有半杯”,而另外一个人说“还有半杯”。

另一个老掉牙的故事是,有个杯子塞满了石子,请问还能再装点而什么进去?答案有很多,比如可以再装点儿沙子,或者再装点儿水。

类似的故事还有很多,想必大家都听过,也都能够领略到其中的寓意。一个人的力量和能力有限,我们总是能够遇到在某方面比自己更强的人,我们总会有不懂的事情需要向他人请教。

不耻下问

“三人行,必有我师”这句话还需要解释吗?我想,不用了。但是有句话我们必须拿出来解释解释——“不耻下问”。

我曾经问过很多人“不耻下问这四个字当中哪个字最关键?”。大多数人的回答都是“耻”,解释是,我们“不要觉得向能力比自己差的人请教问题是可耻的”。同时,这也是在孩提时代,大多数家长、老师给我们的解释。

几千年过去了,我们抓错了重点!

“不耻下问”,并非是指因为向“比我们能力差的人”发问而觉得羞耻,因为这里的“下”字被解释错了!它不是指能力的高低,也不是指人的贵贱。“下”是“下面条”的“下”、“下饺子”的“下”,“下”是“做”,“做事”的“做”,“做X”的“做”。用E文来说,“下”就是“do”、“下”就是“make”。

“不耻下问”,是指有问题就应该虚心向他人请教,不要认为请教他人而觉得羞耻。反过来讲,我们只需要这样适当的满足一下他人的虚荣心,就省去了自己误打误撞的代价,何乐而不为之呢?

聪明人基本上都能够接受接受他人的批评并虚心向他人请教、学习以长进自己。刨根问底、打破砂锅问到底,多问几个为什么,这是学习的捷径之一!

自我批评

当你不小心写错了代码,造成了重大错误、带来了不菲的损失,该怎么办呢?租好的办法就是坦率的承认和检讨,尽你所能的寻找补救的方案并执行它!一味的推脱、埋怨是没有用的。

我们通常犯的错误中包含字母大小写、标点符号和某些括号等等。一个小数点毁了一艘太空飞船和一位航天员的生命,这种事情在历史上不是第一次了,而且这些都与程序猿有关。

如果我们错了,就抬起头,承认它!不论什么错误,如不加以修复,随着日积月累,我们将要付出的代价可能会越来越大!

关于重构

我时常会听到猴子们抱怨:“新来了个CTO,要求更换平台”;“我们的架构实在是太烂了,必须重做”;“真不知道之前的猴子是怎么想的”;“我已经无法忍受这些个破代码、破人以及破架构师了”;“这种代码架构根本就没有可扩展性可言”……

重构,是一个永远不会灭绝的事情,因为我们的项目无休止!它只是表面上、阶段性的完成了,更艰巨的路子在后面!

在创业期间,很少有人能够招来各种大牛来为自己量身定制业务平台,找大牛不要花钱吗?如果我们创业成功,随着业务的迅速膨胀,会发现之前的架构越来越无法满足要求,但迫于现实压力,不能做全面重构,只能小范围修改代码、数据库等等手段来维护它。日积月累,代码越来越庞大、越来越难以维护,周而复始……

话说,此时不重构,更待何时?企业的领导者如何思考这个问题似乎不关我们这些小猴子的事情,然而,等到那些对业务非常精通的老猴子都无法忍受而洗手跳槽的时候,你心里是酸是甜呢?企业又会进入技术上的恶性循环。

实际上,“重构”一定是整体重构吗?不是这样的,我们可以一点一点的来,即使我们无法在现有的代码上实现更加简单易用的可扩展性和更好的功能,但至少我们可以让它的bug少一点、更加清晰健壮一点。

假设你的代码使用.NET 2.0开发,当.NET 3.5发布的时候,你没有跟进,当.NET 4.0发布的时候你还是没有跟进,至今.NET 4.5即将正式发布了,你还在那里傻不愣登,自己给自己挖坑,怪谁呢?微软提供了更好的编程环境和IDE,你缺无法使用或不敢尝试,这个怪谁?怪罪微软没有给你提供足够的帮助?非也!如果你不能在技术上不断的跟进、不能从细节重构做起、不能从观念上改变,那么你只能害了自己!害了企业!

语言只是一方面,通常更新版本的开发环境会更能解放程序猿的双手,可是我们是否能够享受到呢?

除了语言就是业务,如果你对业务不熟悉,那么无论是整体重构还是细节重构,那都是浮云!

我们之前做的不好,不要紧,从现在开始我们要比昨天做的好一点!兄弟们,给力!!!

posted @ 2012-04-23 22:49 O.C 阅读(...) 评论(...) 编辑 收藏