程序猿必须立即改正的 5 个坏习惯
编者按:本文编译自Ravi Shankar Rajan发表于Hackernoon网站上的文章 You Need to STOP These BAD Developer Habits NOW 。Ravi Rajan是印度孟买人,全球IT项目经理。他也是一个狂热的博主、诗歌作家、考古爱好者和历史狂人。
“Ravi,你糟透了,你每天都把自己弄得很艰难。”Jim这样跟我说,他是我多年以前的经理。
我很惊讶。或者说是“震惊”,这个词更能形容我的情绪。
我用某种掩饰不住的讽刺语调回答他:“呵,你这么想我的哦。”
“我是一个伟大的开发者,是我团队的宝贵财富。客户很信任我,并且在知识上,我远远领先于同时代的人。”
他每说一个字我就更愤怒一分。
“Ravi,‘ 顾虑 ’太多是你的问题,除非你能提高自己的效率,否则你将永远不能抵达 伟大 的顶峰。”Jim直视我的眼睛,继续如是说。
我惊呆了,又气又困惑,同时也发现他的话如此胆大妄为、不同寻常。
我克制了自己 冲出 房间的冲动,让他继续说出理由:
“我的代码是最好的代码。”
弗里德里希·尼采的话精妙地解释了这一状况:
自负与我的进步如影随形。
团队需要的是那种谦虚、求知欲旺盛而聪明的人:谦虚而不自负,意味着比起注重自己来说更重视队友;求知欲,意味着他们有着强大的职业道德,决心完成所有任务并尽其所能; 聪明,不是指智力上的聪明,而是内心聪明 。
别批评别人的代码,它可能就在万众瞩目之下成为你的代码了。试着客观地、专业地观察他人,而不是做出判断。要谦虚,并试着向周围的每个人学习。
永远记着,你的自负是你工作的障碍。如果你认为当下的你已然伟大,那么你将会失去你的创造力。自我学习终止于你认为无所学习的时刻。
“我能很快解决这个问题。”
Angela Duckworth曾说过:
真正的卓越并无捷径可走。
行行好吧,给自己一个许可,让自己能最充分地发挥自己的生活。如果你把所有的时间都用在拿牙刷刷洗边边角角,你很有可能错过了重点。走捷径并不意味着把最终的结果也缩小了。
走捷径如此诱人,每个人都曾经做过。确实有一些情况,需要我们走捷径。但总的来说,走捷径非常危险,应当避免。走捷径可能通向错误的终点,这可能为你节省了几个小时,但最终可能需要你用数个月的痛苦、名声的损失来挽救。
认真对待我的建议。我曾经走捷径通向“自由”的生活,但这一自由的生活并不是真的自由生活,我痛苦地从中学习到走捷径的坏处。
“我能记住一切,不需要记录文档。”
Dick Brandon编程的时候所说的话正击要义:
文档如性,说它好吧,它妙不可言,说它不好吧,它又比别的东西都要强一些。
文档是编程的蓖麻油,经理们都认为文档对程序员有好处,但程序员总是很憎恶它。
但毕竟,伟大的开发人员将写文档作为其日常工作的一部分。
他们有如下认识:开发团队与任何其他业务都一样,总是处于不断的变动之中。程序员可能跳槽、转岗或退休。在最坏的情况下,也是人们最不期待的情况,员工的生病、受伤与死亡可能会让团队失去斗志。代码的时限也很重要,程序员一年或更长时间不接触这一代码的话,很容易就会忘掉自己之前写的代码到底是咋运行的了。
倘若程序员能够写好设计文档、API规范、开发手册和代码注释,上述任一情况都会有所不同。
这种态度正是他们之所以是团队宝贵财富的原因。故意不记录任何东西并不会让你成为“ 不可替代 ”的团队成员,你最终只会成为团队“ 无法弥补 ”的责任。
“这不是我做的”
李小龙说得对:
如果有勇气承认错误,错误总是可以被原谅的。
这个说法不能被低估,因为这是一个真正伟大的开发者最重要的特质之一。
我们总有借口……就好像说正常情况下我们绝不会犯错一样,说实在的,这很难令人信服。
不好的开发者会指责用户“不正确”地使用产品,也不能对整个产品和错误负责。当某个错误是别人所犯,他们一定会让每个人都知道该错误的负责人是谁。
有啥必要提出这个问题、浪费大家的时间呢?
这时候,一个健康的态度就很重要了,我们就可以这样说:“是啊,对不起啊,现在我们需要如此如此做,来解决这个问题,这是我的锅。”这样说将会帮助你建立声誉,帮你在同事中得到更多的认可。 越早承认错误,就有越多的时间学习、改正错误。就这么简单!!!
彼“完成”非此完成
Rick Lemons说的很在点子上:
系统已经知道的信息,不要让用户再次提供。
如果说编程就像性,那么世界上是有很多“不行”的电脑。你不能做到一半就去睡觉。我发现你们纠结的概念之一就是“ 完成 ”。
记着,完成意味着:根据用户的要求测试、提供支持。 最终的完成 ,并不是由程序员完成的。
一位优秀的程序员渴望学习新事物。他们努力理解程序架构的所有部分是如何协同工作的,这些部分出于何种状态。他们对功能背后的设计及想法提出质疑,以求解决方案。他们明白什么构成了良好的用户体验。
糟糕的程序员则极度依赖其最喜欢的技术。他们认为“ 理想 ”是唯一的方法和编程过程,用户体验和状况绝不应当驱动决策。他们给项目带来不必要的内容,以适应其偏好。
这么恶劣的编程习惯就像公牛闯入瓷器店,笨手笨脚、粗鲁不堪。最终,会导致时间的损耗、努力的白费以及信誉的破坏。
成功项目会让用户如臂指使,闭着眼睛也能够完全操作,就像他们本身的DNA一样。
总结一下
那么以一个词总结一下上述经验教训吧:
态度。
总有一天,态度会比多年的经验更重要。
仅仅工作是不够的,你必须有正确的工作态度而不仅仅是确切的技能,迄今为止,正确的态度更为重要。如果你以自身兴趣为职业,一般来讲你会喜欢做这件事,工作对你来说永远不会有单调乏味一说。作为员工,在工作场合传播正确的态度信息是非常重要的。
正如Zig Ziglar所总结的那样:
你的态度,而不是你的才能,决定你的高度。