1.缺乏激情
这已经是一个老生常谈的话题了,但却是真理。写了多年的代码后,程序员们很可能会失去激情,只想着做一天和尚撞一天钟。更糟糕的是,这种情绪会像瘟疫一样传染给周围的人。 “即使写了一整天的代码,你也应该在午餐和下班后对它津津乐道,”Liz Eggleston,Course Report——提供学习编码在线资源的联合创始人这样说道。缺乏激情会导致懒散。懒散会导致工作错误。软件工程师需要重新找回自己的激情。
2.不喜欢测试代码
软件工程师曾一度认为测试代码不关他们的事。但现实情况并非如此。如果你还这么想,那么你要么是无知要么就是狂妄。 “测试不是锦上可添可不添的花,而是雪中必须烧的炭,”D.J. Charles,Invaluable——一家在线拍卖市场的CTO如是说道。“不必因为bug而感到难堪——良好的质量保证工程才是超棒的安全保障,”他建议, “没有谁能够鉴定每一个测试用例和结果。在QA中发现bug总比在生产中发现bug要好得多。“低效率的工程师没有测试的意识,”他补充道, “业绩最佳的往往是那些强烈要求测试时间和测试自动化的程序员。这是他们的经验教训。通过自己的亲身经历他们已经知道了测试的重要性。”
3.关于可用性完全不在考虑
中低效的软件工程师认为他们的工作就是提供应用程序,而不是让那些使用这些应用程序帮助其完成工作的用户接受并持有这款应用程序。他们不将用户当作客户:他们认为用户是麻烦的根源。 “有时候,我们很难使得工程师衔接到现实世界,”Invaluable的Charles解释道,“低效的工程师会错误地表征用户体验问题为其他人的问题。”
遗憾的是,似乎很多软件工程师都持有这种态度,这也是为什么企业要寻求能够移情和了解他人问题的代码战士。
“雇主正在竭力寻找那些拥有技术技能和基本周边业务问题领域知识的人才,”Matt Sigelman,Burning Glass Technologies——一家就业市场分析公司的CEO说。
“即使是优秀的程序员,可能也会说他们对于理解正在解决的业务不感兴趣,”他继续说。 “他们会说,‘给我一个规范。我会照着规范写。’这是一种低效的编程。“
4.喜欢说“不”
低效的程序员缺乏对事物的“愿景”。因此,他们常常会对项目说’不’,或成为项目前进路上一股强劲的消极力量。 “当遇到挑战的时候,积极的态度让人敢于面对所有潜在的可能,”Charles解释说。
“说’不’其实相当于关闭了创造的大门,”他继续说。 “无论你是否想到了一个好点子,你都需要保持一种开放的心态来等待灵感的敲门。”
低效的软件工程师之所以会快速说“不”的还有一个原因是,一旦手头有工作,就不想受其他事的干扰,生怕被打乱。 “没有人是完美的,害怕被打乱其实是选择了安全和不创新,”Charles说, “工程师们需要自由地去尝试新的东西。有些点子一开始被认定为“疯狂”,搞不好最后会导致一个创新又突破性的解决方案。”
5.不喜欢学习
拒绝好奇心低效的软件工程师都是不愿意学习新创意的拒绝学习者。这种态度在所有职业中的代价都很高,但却会是软件工程师的职业终结者。 “你必须要有不断学习的好奇心,因为编程是一个终生学习的过程,”Course Report的Eggleston说。
“你需要接触社区中的其他人,以便于紧跟最新的需求技术,因为技术是不断变化的。”她建议说。
研究与开发会议,在线研讨会,以及每周和同事共进午餐,是软件工程师避免低效学习的几个活动,Charles指出。“好的软件工程师有一种与生俱来的渴求学习的本能。”他这样说道。
6.不能和其他人友好相处
低效的软件工程师不能成为团队成员。这可能是当今开发世界中的一个非常现实的问题了——越来越趋向于团队合作。 “软件项目越来越复杂,”BurningGlass的Sigelman说, “那些像一头孤狼一样靠自己编程的时代已经一去不复返了。”
Charles指出,虽然低效的软件工程师不能成为很好的团队成员,但他们仍然依赖于其他的团队成员。 “时刻谨记,总有一些潜在的东西是你正在写的代码所依赖的——并且你正在写的代码也依赖于某些正在改变的东西,”他说。
他补充说,骄傲自满也会限制低效的软件工程师成为一个称职的团队成员。 “时不时地陷入问题中是没关系的。知道何时以及如何爬上轨道才是成功的关键。不要让骄傲自满成为你的拦路虎。”
缺乏沟通技巧也会让软件工程师的团队设置变得低效。尤其是当低效的工程师与团队以外的人进行沟通的时候。 “那些缺乏和非技术团队成员沟通能力的开发人员通常也不太成功,”Eggleston注意到。
当涉及到团队内部沟通的时候,我们或许可以放低效工程师一马,Charles指出。
“不能够与别人合作,与其说是一种有意识的决定,还不如说是一种个性特质,”他继续说, “让开发人员进入到其他业务部门的圈子里,学习他们的沟通技巧,尽管这不是开发人员想要做的事情——却是克服这个缺点的一个很好的方式。”
7.不关心安全性
这是高效和低效软件工程师都可能养成的坏习惯。在许多开发产品商店,安全性往往是成品后的扩充,而这并不是解决安全性的最好办法。 “开发人员在编码的时候需要把安全放在第一位,”Stephen Newman,Damballa——一家网络威胁检测公司的CTO说。
但是,即使是拿到计算机科学学位的软件工程师也没有受过这方面的训练。 “如何构建安全的软件还没有成为大多数大学的要求,”Newman指出。
“以前我们只会处理已经发现的问题,但是现在,网络世界的攻击那么多,你不得不把安全放在第一位,”他补充道, “一个真正优秀的程序员会在他的设计和架构中以及所有有关于代码的地方,考虑到安全问题。”
坏习惯会让所有职业的员工都变得低效。对于软件工程师,不良习惯,如对项目不感兴趣以及拒绝成为一个团队成员,可能会破坏整个团队。许多低效的软件工程师并不是一开始就这样,并且也不是改不了。通过定期的自我评估,不良的习惯也是可以识别并消除的,所以低效的软件工程师也可能成为高效的人才。你碰到过高效的软件工程师吗?你是不是其中之一呢?
8.为薪水工作
虽然工作的一大目的是获取薪水,养活自己以及供给家庭所需;但是,这只是工作最直接的报偿,同时也是最低级的目标。
如果我们为薪水而工作,将注定我们是短视的,也将注定受到最深的伤害。假如你看不到工资以外的东西,斤斤计较于薪水、福利、职位等,那外界的些微风吹草动就可能让你像浮萍一样飘来荡去,你很快就会失去平衡,失去信心,失去热情,失去平和,进而在工作时总是采取一种应付了事的态度,能少做就少做,能躲避就躲避,觉得只要对得起自己的那份薪水就成了。长此以往,你追求的高薪水反倒得不到。我们进入一个公司工作,是为了自己,不是薪水也不是别人,比薪水更重要的,是成长和成就自己的机会。我们一定要明白,公司、企业、组织,都是我们锻炼自己、修炼自我的平台,我们不是为薪水工作、不是为老板工作、不是为家人工作,是为实现自我而工作,是为更完美的自己而工作。
9.其实不喜欢软件开发
有一部分人从事软件开发工作,并不是因为喜欢,也没有干着干着从不喜欢变成喜欢。他们可能是喜欢软件开发附带的高薪水——平均薪水比其他行业高。人做一件自己不喜欢的事情时,心理上没有亲近感,不会想着怎样把事情做得更好,往往是差不多就成了,不太可能有精益求精积极向上的追求。因为在做不喜欢的事情时,情感上是拒绝的,情绪上是想逃离的,总想着早点儿完事儿拉倒,每一天去单位时不是充满期待,而是各种担忧、烦躁、畏惧,到了单位,稍有困难或不顺心,就会消极、抱怨、抵触、拒绝……
做喜欢的事,能最大可能发挥一个人的潜能和热情,会最快速地通向成功成就自己。而做不喜欢的事,一开始就注定了事倍功半,最后也往往会是痛苦不堪或半途而废。