在编写程序时,你曾经有多少次想到它可能在未来被别人修改?反过来,在修改别人的程序时,你又曾经咒骂过几次?——你知道问题的所在了吧!
--------------------------------------------------
你是否曾经因为追求“效率”而延误了工作的进度?反过来,是否曾经因为要“赶时间完成”,而没有做到尽善尽美?

找出你至少一个月之前亲自编写的一个程序,看看是否有新想法。
--------------------------------------------------
阿尔伯特.爱因斯坦
重要的是不要停止怀疑。人怀有好奇心是天经地义、自然而然的。
--------------------------------------------------
在任何一个刚刚起步的领域,我们都可能犯这样或那样的错误,然而或许在其中,最大的错误就是(因)过于谨小慎微(而裹足不前)。虽然我们需要尽可能地循规蹈矩,但是更重要的却是要敢于进行试验;只要敢于进行试验,哪怕结果是错的,也要比什么都不做更好。
--------------------------------------------------
如果一个集体的共同目标仅限于产品的层次,那并不见得会促使其中的程序员互相学习。而反过来,团队内部的成员不仅目标一致,而且其目标与他们具体开发的产品毫无关系——正是在这种目标的引导下,一支团队的成员才会通过相互学习共同提高。
--------------------------------------------------
然而对于成人来说,阻碍学习的障碍通常都来自我们自己的内心;而一旦可以任由自己做主,通常的成年人都不再能学到什么新的东西。首先(而且也是最重要)的一点是:在开始学习之前,我们需要承认有一些东西值得去弄清楚,而自己还不懂。在专业程序员的观念中,承认自己某个方面知识的缺乏,就意味着地位的降低——除非他能够认识到:作为一位名副其实的专业人员,作为一个真正有实力的人,承认自己的不足,不会有任何的损失。
--------------------------------------------------
有些人问题心甘情愿地承认自己的不足,而不去尝试学习任何新东西。其原因在于,他们总是想当然地认为,自己不要能取得成功。这种对失败的畏惧心理,有的是由于缺乏自信心造成的,也有的是源自先前类似努力过程中的失败经历。但是,更普遍的情形是,这类恐惧主要地不在于失败本身,而在于失败可能被周围人看到。
--------------------------------------------------
我不得不面对现实:在大多数环境中,与学习相比,产品开发工作更加重要;程序员可能会承诺说,只要他们掌握新技术,就可以把现在用于学习的时间加倍地补偿回来,但更主管经理绝对不会容忍程序员因为要学习这些新技术而暂时延误进度。在面对其工作和学习之间的矛盾时,程序员应该如何处理呢?事实上,解决的办法异常简单,在经过适当次数的尝试之后,要是你还搞不清楚新技术失败的原因,而且没有任何的进展,那么你就应该及时回头;如果你有某种“弥补”的方案,那么这里就应该采用。与此同时,你还应该构造出一个测试实例,以通过找出原来所采用的方法之所以失败的原因。
--------------------------------------------------
为了实现这种积极主动的学习计划,程序员必须已经有充分的知识准备。例如,要是程序员对其程序语言掌握的不够成熟,就不可能相对而言简单明了地构造出临界测例,也许也因此陷入种种琐碎问题之中难以脱身。因此,正规的教育计划必须明确这样一条目标:应该通过培训提高程序员的水平,使之能够应用其已经掌握的工具,不断进行学习。但是恰恰相反,我们在实际中见到的情况却是,正规的教育只知道一味的灌输——这种教育所起的作用,只会让程序员对自己所学的工具感到厌烦。在接过学位证书的时候,有多少毕业生会在心中暗自庆幸:谢天谢地,总算可以从书本和课程中间解脱出来了?如果一位劳动都讨厌自己所使用的工具,那么他就不可能干得好;反过来讲,只有我们所使用的工具,才能够教会我们如何去成为一句出色的劳动者。

posted on 2005-09-29 06:41  waxwork3  阅读(702)  评论(0编辑  收藏  举报