在周爱民先生的书中,存在于两千年前寓言中的工程名家愚公,作为讲述各种事理的例子反复出现。确实,愚公的事迹中蕴含了许多我们这个专业的学生必须要明白的道理。对于程序,我们很多学生说是一窍不通也不为过,写出一个程序在我们眼中是一件多么了不起的“大事”,但周爱民先生说:“除了先天智障和后天懒惰者,都是可以学会写程序的。”看到这里我不经开始反思自己:是否把写程序这件事过度复杂化了。
初学c语言时,老师要求我们把算法画出来,我不以为意,那时我想:直接把代码打出来不就好了,为什么要给自己增加工作量?到后来,遇到一些对我们来说挺复杂的程序,我常常在代码敲到一半的时候发现,刚刚敲出来的代码并不能实现我的目的。或者在程序并没有按我所想的运行后,我才恍然发现自己犯了许多低级错误,有时甚至毫无逻辑性可言。这样的我,只知道苦干,而不懂得思考,浪费了不少时间和精力。诚如周爱民先生所说:“如果你原本就不明白如何去做,那你也不要期望计算机去理解你想要做什么。”
同样是“碎石”,愚公只知埋头苦干,李冰却懂得“积薪烧之”,周先生说:“是懒人造就了方法。”回想我们自己,平常是否时常只有愚公式的勤奋,而不愿像“懒人”一样停下来思考,力求找出一个更有效率的解决方法?事实上,如果我们愿意在做事之前多加思考,那就极有可能会事半功倍。
大道理是极其简单的,甚至一两句话就能阐述其意。然而世上的一切难就难在简单,简单中所蕴含的繁琐,不身处其中可能根本无法发现。例如做一个项目,不是我们平常所想的只要敲敲代码就能实现的,需要各种角色的参与,项目经理、开发经理、开发人员......各个工作人员的职业素质、与客户的交流与沟通等,这些都是复杂琐碎的。
书中的“折中”一词让我印象比较深刻,其意为:对几种不同的意见进行调和。当多种突发情况相遇时,若不具备“折中”这种基本素质,我们极有可能会陷入混乱中无法走出。
团队需要管理吗?周先生回答:“在你还没有弄清楚状况之前,不要去管它。”弄清状况又是一个需要投入精力的过程,我们需要有耐心,并且善于发现,同时要明确自己的定位,让自己远离问题的中心,我们不应该成为洞中的一员,而应该是那个“可以在洞外放木棍的人”。无论何时,我们应该养成一个习惯——思想的转换,也就是换位思考,这样才能做到明确分工,最大限度的发挥每个人的价值。我们应该将这句话牢牢记住,“做管理不等于做伯乐。”
人与人产生交流的方式是沟通,我们这个专业的人也被要求具有沟通的能力。做项目的时候,有关人员时常要想客户所想,甚至想客户未想,而这一切离不开沟通。沟通的机会来之不易,保障每一次沟通的有效性是十分重要的事情。就像周先生说的那样,开发人员不能要求客户会UML,但却可以用客户所处世界的通用语言。“既然盲人不能睁开眼睛,那么你就闭上眼睛好了。”
温伯格说:“问题其实就是你期望的东西,和你体验的东西之间的差别。”周先生将其理解为“你认为这是个问题,它就是个问题”。我们常常陷入矛盾的自我纠结中,扯不断,理还乱,这时不妨学会否定、消化矛盾,“不要用矛来击盾,而是用矛、盾以击敌”。
“好的项目经理并不是不犯错误的人,而是以尽可能少的失败来获得成功的那个人”。人们常说“失败是成功之母”,这并不意味着所有的失败都是能够被原谅的,在错误中成长,在失败中认清自己,不在同一个地方被绊倒两次,我们应该让每一场失败发挥它应有的价值。
想走得更高更远,我们需要学习的东西还有很多。我们应该明白,越是简单的东西,往往越是接近于本质。说了这么多,我们现在应该学会的其实也就是“静下心来做代码”而已。