优秀工程师必备的十大能力!

黄勇 InfoQ 2016-12-06

作者丨黄勇

编辑丨Cindy

平庸的人总是相似,优秀的人却各不相同。在这各不相同的特性里,掩藏着怎样的共性?据说这十大能力,是通往优秀工程师之路的必备资质。

大家好!我是黄勇,目前在特赞(Tezign.com)担任 CTO。特赞有一支强悍的技术团队,以及浓厚的工程师文化,同时也培养了一批优秀工程师。 

几天前,我在自己的微信朋友圈中连载了十篇关于优秀工程师的文章,得到了很多朋友们的认同,非常感谢各位的关注和支持!今天我把这个系列整理成一篇文章,分享给一路努力拼搏的工程师们,希望对大家有所帮助。

1

预备工作的能力

常言道“一日之计在于晨”,一天的工作效率,其实取决于早晨的工作状态。我们的工程师每天早晨来到公司,都会这么做: 

  1. 主动与身边的同事打招呼,面带微笑。

  2. 清理自己的办公桌,保持干净整洁。

  3. 打开电脑,顺便可以去倒一杯水。

  4. 打开钉钉、微信、邮件等工具的电脑客户端(同时保持手机客户端也开启)。

  5. 查看自己的今日待办任务,开始完成自己最重要的工作(一切遵循“要事第一”原则)。

一个优秀的团队,需要高效的做事方式,才能把对的事情做对。

2

把事情做对的能力

如果说产品经理的目标是“做对的事情”,那么工程师的目标就是“把事情做对”。前者固然重要,但后者也影响着产品最终的成败。对于工程师而言,我认为有些重要环节需要在平时工作中加以关注,比如: 

  1. 收到产品经理的需求宣讲会议邀请时,能合理安排好自己的工作时间,确保自己不会缺席这次会议。

  2. 在需求宣讲会议中,认真思考,积极主动地提出自己对产品的看法和建议,并能制造轻松活泼的会议氛围。

  3. 拿到产品需求文档后,仔细阅读文档中的每个细节,对于疑惑的问题,汇总下来之后,私下找产品经理逐个确认。

  4. 充分理解需求后,快速设计技术解决方案,并主动找技术主管探讨方案的合理性,确保此方案行之有效。

  5. 动手编码之前,首先定义接口及其文档,并主动找接口调用者确认接口的合理性,确保后续双方可以并行开发。

  6. 每个接口都有对应的单元测试,确保接口实现变更后,可立即执行单元测试,以判断接口的稳定性。

  7. 代码中包含关键性注释,且注释内容做到言简意赅,确保让他人可通过注释快速了解自己的代码逻辑。

  8. 对数据库的变更都有对应的执行脚本,脚本中能清晰地看到每次变更的内容与时间,便于上线前数据更新。

  9. 交付集成测试前,自己能反复测试,确保集成后功能的稳定性,以帮助测试工程师节省更多的时间。 

  10. 每次产品发布后,记录代码变更日志,以便让其他工程师知晓代码的变更细节,后续能更加方便地在此基础上做扩展。

打造一个优秀的团队,先从优秀的个人开始。

3

与队友协作共事的能力

软件开发这项工作充分体现了团队协作精神,优秀的工程师必须学会怎样与队友共事。缺乏团队协作技巧,不仅对团队发展不利,而且自己也会变得孤立,离这个行业越来越远。我给大家分享几点关于团队协作方面的个人观点: 

  1. 充分理解自己的职责,以及队友的职责。

  2. 不怀疑队友,相信队友一定能胜任。

  3. 不抱怨队友,帮助队友快速进步。

  4. 学会赞扬队友,让对方充满激情。

  5. 走进队友生活,和他成为朋友。

人生有缘才相聚,需要珍重在一起共事的缘分。

4

与同事快乐相处的能力

在其他部门同事眼中的工程师,往往是棱角分明,有些人性格内向,沉默寡言,甚至一开口说话就得罪人,自己还不知道。想成为一名与其他同事快乐共事的工程师,我觉得有几个方面需要高度重视,比如: 

  1. 与其他部门同事对话时,能面带微笑,说话风趣幽默,会换位思考,站在对方立场说话,让对方很想和你聊天。

  2. 其他部门同事找你帮忙时,不管自己有多忙,此时心情有多糟糕,都能心平气和地倾听对方到底想要什么帮助。

  3. 遇到业务上不太清楚的问题时,能及时并主动地找到懂这方面的同事,客气地咨询对方,请对方给予自己帮助。

  4. 抓住每一次能展示自己的机会,学会在公司内部分享自己的工作成果,让其他同事了解自己以及自己所在的团队。

  5. 时常主动约其他部门同事一起吃饭,增强同事之间感情,上班是战友,下班是朋友,珍惜彼此在一起共事的缘分。

觉得自己优秀还不够,还需要别人也觉得自己也优秀才行。

5

与领导融洽沟通的能力

在企业中,我们都在谈“领导力”,往往却忽略了“被领导力”。对于工程师而言,我们要先学会“被人领导”,才能学会“领导别人”,所谓“被人领导”就是与领导处好关系。在与领导共事过程中,我也有几点心得,可以给大家分享一下: 

  1. 不当众拍领导马屁,只是让领导感觉有面子。

  2. 领会领导真实意图,学会站在领导的立场上来思考。

  3. 及时向领导汇报,懂得哪些必须汇报,哪些不该汇报。

  4. 协助领导管理团队,把团队的事当成自己的事。

  5. 不越权,不跨级,与领导共同成长,共同进步。

与领导处好关系,让自己优秀,让团队卓越。 」

6

快速学习新技术的能力

互联网是一个飞速发展的行业,作为软件工程师,我们必须掌握快速学习新技术的能力。我可以给大家介绍一个很奏效的学习方法: 

  1. 通过官方网站学习新技术,先看首页功能介绍,再看新手入门教程,先了解该技术可以做什么。

  2. 按照官方教程的步骤,亲自动手做一个 Hello World,目的是让自己快速上手,为后续的学习打好基础。

  3. 阅读官方技术文档,学习自己所需技术的使用方法,一定要用心去学,亲自动手,不能只是看文档。

  4. 一边学习,一边动手,一边做笔记,可用“印象笔记”等工具来记录,建议将自己的学习笔记发布到博客中。

  5. 在团队中分享自己的学习成果和经验,使团队充满学习和探讨的氛围。

学习、总结、分享、探讨,让学习有动力,有目标,有价值。

7

锻炼产品思维的能力

作为一名优秀的工程师,不仅对技术要有追求,还要对产品有所认识。技术服务产品,技术驱动产品,不懂产品的技术人员不是优秀的工程师。我认为产品思维是可以训练出来的,比如: 

  1. 训练用户视角,把自己想象成真实用户去体验产品。

  2. 学习产品业务,自己动手画业务流程图,写功能列表。

  3. 研究竞争产品,思考哪些做得好,为什么要这么做。

  4. 以数据为驱动,收集并分析数据,通过数据来量化产品。

  5. 关注行业趋势,了解行业生态圈,多与产品人交流探讨。

没有技术,就没有产品;没有产品,技术啥也不是。

8

锻炼演讲技能的能力

工程师往往沉默寡言,聊技术滔滔不绝,但让他上台演讲却扭扭捏捏。可见,咱们不是不能说,而是不想说,不愿在公开场合下表现自己而已。其实这是工程师不自信的一种表现,我觉得应该突破这层障碍,习惯演讲,喜欢演讲。同样,演讲技能也是可以训练出来的,比如: 

  1. 平时多思考、多体会、多总结,一定要找机会去分享。

  2. 不要害怕演讲,把每次演讲当成是对自己的一种锻炼。

  3. 不要追求完美,只要这次比上次有一点点进步就行。

  4. 观看出色的演讲视频,学习优秀的幻灯片制作技巧。

  5. 参加 QCon 技术大会,观察大牛们怎样做现场演讲。

演讲让自己更加自信,让别人爱上自己。

9

拓展自己人脉的能力

工程师们上班坐公司,下班宅家里,人际圈除了同事就是同学,很少会关心社交,除了被家长逼着去相亲以外。我认为“交朋友”也是工程师的综合能力之一,关于交朋友的话题,我简单提几点:

  1. 保持性格阳光,活泼开朗,幽默风趣。

  2. 进微信群,发点红包,多加好友,记得点赞。

  3. 参加线下交流会,主动和参会的朋友聊天。

  4. 想办法结交大牛,向他们虚心请教。

  5. 给自己一个任务,每个月认识几位新朋友。

优秀工程师绝不是“技术宅”,人际关系让他们变得更加优秀。

10

总结工作的能力

所谓“善始善终”,好的开头很重要,好的结尾也同样需要重视。优秀的工程师绝不会草草了结自己每天的工作,他们一定会总结,会反省,会想尽办法让自己变得更加优秀,更加卓越。其实结束自己每天的工作也可以养成一种习惯,比如: 

  1. 查看“任务清单”中哪些事情没有完成,并注明延误原因(任务清单软件,首推“奇妙清单)。

  2. 将今天学到的东西以及犯下的错误,记录到“工作笔记”中(工作笔记软件,首推“印象笔记”)。

  3. 对于需要系统性学习的东西,统一安排到自己的双休日中。

  4. 将明天打算做的事情加入到“任务清单”中,并标明优先级。

  5. 思考:怎样让自己的明天比今天更加优秀?

从平凡到优秀,从优秀到卓越,需要方法,更需要坚持。

取材于黄勇朋友圈创作的程序员剧场漫画已经发布,同样大受InfoQ读者群欢迎,还没看过的同学点击下图阅读:

究竟什么样的技术 Leader 是称职的? 


黄勇,现任特赞(Tezign.com)信息科技 CTO,曾任阿里巴巴公司系统架构师。具有丰富的互联网产品架构经验与技术管理经验,擅长敏捷开发模式,推崇“轻量级”系统架构。国内开源软件推动者之一,活跃于 InfoQ、OSChina、CSDN 技术社区,Smart 开源框架创始人。畅销书《架构探险》作者,EGO 会员,QCon 讲师,StuQ 讲师。热爱技术交流,乐于分享自己的成长经验。



喜欢我们的会点赞,爱我们的会分享!

本站仅按申请收录文章,版权归原作者所有
如若侵权,请联系本站删除
觉得不错,分享给更多人看到