论程序员的自我修养

首先是技术、交流沟通、演讲、领导力、处理问题能力等这些硬技能。这些毕竟是需要经验和知识的积累的,且总有提升空间。而在评估一个人的时候,同样被看重的,还有一些其他的很重要的方面。

第一,不想当然。看似及其明显的一个品性,却在实际工作中也是最珍贵的一个品性之一。尤其一些相对比较有经验、却其实对一个新系统知之不深的工程师,很容易想当然地根据经验推测一个系统或一段代码可能是如何如何,而不谨慎的校对。而能做到这一点,其实就能避免工作中很大一部分的错误。

第二,一定要正确。工程师是一个需要极其严谨的职位,并没有太多的容错性。你做的、执行的,一定是自己有把握是正确的事。如果没有把握,那就花功夫去弄清楚,多问多查多资讯。实在还是找不到答案,告诉别人这是一个推测,或者有一个对万一出错的备用方案。很多时候一个人在工作中被信任,也因为大家觉得他靠谱,他说行或者不行,都是有意义的,不含水分的。而如果过于急躁地喜欢表达观点或执行,却屡屡被证明是错的,久而久之,信任度就会减分。

第三,保持透明。任何时候不存侥幸心理。比如,不会因为觉得一个计划或者变更可能不被批准,就试图不声不响地做。或者应该提前发信件声明的、或是之后应该发信解释的一些情况以为有人不知道就保持沉默。事实证明,这种事本来按程序来不会有什么大问题,一旦钻空子就往往惹祸。这也是一个工程师办事可靠性的一个重要方面。

第四,有始有终。很多系统,一开始的设计和规划总是有意思的,接下来的实现和执行也是很好玩儿的,最后的各种扫尾包括修补、回答问题、完善文档、确保系统百分百工作等等可能相对会比较乏味一点。而能不能有始有终的将一件事完完整整地从头到尾很负责任地贯彻,也是工程师很重要的一个方面。

第五,责任心,觉得事事和自己相关,而不是无关。可能有时候一个组、一个项目会接到一些 bug report。大家都知道,很多问题因为可能是历史代码,可能是组与组之间的共有代码,总有办法有说辞来说 「这可能是别的组/人的问题」。而这个时候,一个工程师总愿意对这些边界问题花功夫、找原因、甚至去修理,抱着 「这个和我也相关」 的态度,就变得很难能可贵了。

第六,努力,在自己能力范围内揽活而不推活。人见人爱。对自己的成长也是不可或缺的。

第七,对系统监控的习惯。这个也是看着理所当然的工程师品德,可是你会诧异于多少人能百分百贯彻执行。反例就不说了。见过两个同组的小朋友,几乎每天只要有代码改动,或者是一天几次的例行,总会主动去监控系统的各项参数和图表。没有意外的,这样的工程师总是不会闯祸。而且对系统的了解也总会更深刻。

第七,愿意帮助别人。而帮助别人的时候总是在解决问题,这样自然自己练手和长经验的机会就更多,成长的也更快。

第八,很好的任务管理能力。从来不需要别人提醒什么什么是不是还没做。只要交代过或者提及过的问题或者任务,就一定认真对待,有结果或反馈。从不会在问及什么事怎么样的时候说 「啊,我忘了」。

第九,愿意把问题放大、而不是缩小。看到系统哪里似乎不对劲,第一反应总是 「这个需要搞清楚」,而不是 「这个可能不要紧」。在软件世界里,任何一个小问题都有可能最后变成大问题。

第十,乐观、积极向上。那些工作时候喜欢这儿那儿吐槽的人,显得自己很厉害的,其实往往不过如此。反而是那些总是很包容,很谦卑,很温和的动手去实际解决不完美的人,成长地更快。

其实给别人写 Feedback,也是一个自省的过程。看到别人的长处,换位思考,自己能不能做到这一点呢?这样下来,自己需要改进、可以做的更好的地方也就有了谱了。

真的很幸运和一群特别靠谱的工程师在一起工作,每次写 Feedback,感觉长处都是信手拈来,可写的好多。而一到提建议的那部分,就费劲地要死,实在很难找到可以提建议的地方。可能对别人提有建设性的意见,也是一种能力吧。

from: 论程序员的自我修养

The Why·Liam·Blog by WhyLiam is licensed under a Creative Commons BY-NC-ND 4.0 International License.

WhyLiam创作并维护的Why·Liam·Blog采用创作共用保留署名-非商业-禁止演绎4.0国际许可证

本文首发于Why·Liam·Blog (https://blog.naaln.com),版权所有,侵权必究。

本文永久链接:https://blog.naaln.com/2017/03/self-improvement-programer/