作者丨黄勇
编辑丨Cindy
“ 平庸的人总是相似,优秀的人却各不相同。在这各不相同的特性里,掩藏着怎样的共性?据说这十大能力,是通往优秀工程师之路的必备资质。大家好!我是黄勇,目前在特赞(Tezign.com)担任 CTO。特赞有一支强悍的技术团队,以及浓厚的工程师文化,同时也培养了一批优秀工程师。
几天前,我在自己的微信朋友圈中连载了十篇关于优秀工程师的文章,得到了很多朋友们的认同,非常感谢各位的关注和支持!今天我把这个系列整理成一篇文章,分享给一路努力拼搏的工程师们,希望对大家有所帮助。
1预备工作的能力
常言道“一日之计在于晨”,一天的工作效率,其实取决于早晨的工作状态。我们的工程师每天早晨来到公司,都会这么做:
主动与身边的同事打招呼,面带微笑。
清理自己的办公桌,保持干净整洁。
打开电脑,顺便可以去倒一杯水。
打开钉钉、微信、邮件等工具的电脑客户端(同时保持手机客户端也开启)。
查看自己的今日待办任务,开始完成自己最重要的工作(一切遵循“要事第一”原则)。
「一个优秀的团队,需要高效的做事方式,才能把对的事情做对。」
2把事情做对的能力
如果说产品经理的目标是“做对的事情”,那么工程师的目标就是“把事情做对”。前者固然重要,但后者也影响着产品最终的成败。对于工程师而言,我认为有些重要环节需要在平时工作中加以关注,比如:
收到产品经理的需求宣讲会议邀请时,能合理安排好自己的工作时间,确保自己不会缺席这次会议。
在需求宣讲会议中,认真思考,积极主动地提出自己对产品的看法和建议,并能制造轻松活泼的会议氛围。
拿到产品需求文档后,仔细阅读文档中的每个细节,对于疑惑的问题,汇总下来之后,私下找产品经理逐个确认。
充分理解需求后,快速设计技术解决方案,并主动找技术主管探讨方案的合理性,确保此方案行之有效。
动手编码之前,首先定义接口及其文档,并主动找接口调用者确认接口的合理性,确保后续双方可以并行开发。
每个接口都有对应的单元测试,确保接口实现变更后,可立即执行单元测试,以判断接口的稳定性。
代码中包含关键性注释,且注释内容做到言简意赅,确保让他人可通过注释快速了解自己的代码逻辑。
对数据库的变更都有对应的执行脚本,脚本中能清晰地看到每次变更的内容与时间,便于上线前数据更新。
交付集成测试前,自己能反复测试,确保集成后功能的稳定性,以帮助测试工程师节省更多的时间。
每次产品发布后,记录代码变更日志,以便让其他工程师知晓代码的变更细节,后续能更加方便地在此基础上做扩展。
「打造一个优秀的团队,先从优秀的个人开始。」
3与队友协作共事的能力
软件开发这项工作充分体现了团队协作精神,优秀的工程师必须学会怎样与队友共事。缺乏团队协作技巧,不仅对团队发展不利,而且自己也会变得孤立,离这个行业越来越远。我给大家分享几点关于团队协作方面的个人观点:
充分理解自己的职责,以及队友的职责。
不怀疑队友,相信队友一定能胜任。
不抱怨队友,帮助队友快速进步。
学会赞扬队友,让对方充满激情。
走进队友生活,和他成为朋友。
「人生有缘才相聚,需要珍重在一起共事的缘分。」
4与同事快乐相处的能力
在其他部门同事眼中的工程师,往往是棱角分明,有些人性格内向,沉默寡言,甚至一开口说话就得罪人,自己还不知道。想成为一名与其他同事快乐共事的工程师,我觉得有几个方面需要高度重视,比如:
与其他部门同事对话时,能面带微笑,说话风趣幽默,会换位思考,站在对方立场说话,让对方很想和你聊天。
其他部门同事找你帮忙时,不管自己有多忙,此时心情有多糟糕,都能心平气和地倾听对方到底想要什么帮助。
遇到业务上不太清楚的问题时,能及时并主动地找到懂这方面的同事,客气地咨询对方,请对方给予自己帮助。
抓住每一次能展示自己的机会,学会在公司内部分享自己的工作成果,让其他同事了解自己以及自己所在的团队。
时常主动约其他部门同事一起吃饭,增强同事之间感情,上班是战友,下班是朋友,珍惜彼此在一起共事的缘分。
「觉得自己优秀还不够,还需要别人也觉得自己也优秀才行。」
5与领导融洽沟通的能力
在企业中,我们都在谈“领导力”,往往却忽略了“被领导力”。对于工程师而言,我们要先学会“被人领导”,才能学会“领导别人”,所谓“被人领导”就是与领导处好关系。在与领导共事过程中,我也有几点心得,可以给大家分享一下:
不当众拍领导马屁,只是让领导感觉有面子。
领会领导真实意图,学会站在领导的立场上来思考。
及时向领导汇报,懂得哪些必须汇报,哪些不该汇报。
协助领导管理团队,把团队的事当成自己的事。
不越权,不跨级,与领导共同成长,共同进步。
「与领导处好关系,让自己优秀,让团队卓越。 」
6快速学习新技术的能力
互联网是一个飞速发展的行业,作为软件工程师,我们必须掌握快速学习新技术的能力。我可以给大家介绍一个很奏效的学习方法:
通过官方网站学习新技术,先看首页功能介绍,再看新手入门教程,先了解该技术可以做什么。
按照官方教程的步骤,亲自动手做一个 Hello World,目的是让自己快速上手,为后续的学习打好基础。
阅读官方技术文档,学习自己所需技术的使用方法,一定要用心去学,亲自动手,不能只是看文档。
一边学习,一边动手,一边做笔记,可用“印象笔记”等工具来记录,建议将自己的学习笔记发布到博客中。
在团队中分享自己的学习成果和经验,使团队充满学习和探讨的氛围。
「学习、总结、分享、探讨,让学习有动力,有目标,有价值。」
7锻炼产品思维的能力
作为一名优秀的工程师,不仅对技术要有追求,还要对产品有所认识。技术服务产品,技术驱动产品,不懂产品的技术人员不是优秀的工程师。我认为产品思维是可以训练出来的,比如:
训练用户视角,把自己想象成真实用户去体验产品。
学习产品业务,自己动手画业务流程图,写功能列表。
研究竞争产品,思考哪些做得好,为什么要这么做。
以数据为驱动,收集并分析数据,通过数据来量化产品。
关注行业趋势,了解行业生态圈,多与产品人交流探讨。
「没有技术,就没有产品;没有产品,技术啥也不是。」
8锻炼演讲技能的能力
工程师往往沉默寡言,聊技术滔滔不绝,但让他上台演讲却扭扭捏捏。可见,咱们不是不能说,而是不想说,不愿在公开场合下表现自己而已。其实这是工程师不自信的一种表现,我觉得应该突破这层障碍,习惯演讲,喜欢演讲。同样,演讲技能也是可以训练出来的,比如:
平时多思考、多体会、多总结,一定要找机会去分享。
不要害怕演讲,把每次演讲当成是对自己的一种锻炼。
不要追求完美,只要这次比上次有一点点进步就行。
观看出色的演讲视频,学习优秀的幻灯片制作技巧。
参加 QCon 技术大会,观察大牛们怎样做现场演讲。
「演讲让自己更加自信,让别人爱上自己。」
9拓展自己人脉的能力
工程师们上班坐公司,下班宅家里,人际圈除了同事就是同学,很少会关心社交,除了被家长逼着去相亲以外。我认为“交朋友”也是工程师的综合能力之一,关于交朋友的话题,我简单提几点:
保持性格阳光,活泼开朗,幽默风趣。
进微信群,发点红包,多加好友,记得点赞。
参加线下交流会,主动和参会的朋友聊天。
想办法结交大牛,向他们虚心请教。
给自己一个任务,每个月认识几位新朋友。
「优秀工程师绝不是“技术宅”,人际关系让他们变得更加优秀。」
10总结工作的能力
所谓“善始善终”,好的开头很重要,好的结尾也同样需要重视。优秀的工程师绝不会草草了结自己每天的工作,他们一定会总结,会反省,会想尽办法让自己变得更加优秀,更加卓越。其实结束自己每天的工作也可以养成一种习惯,比如:
查看“任务清单”中哪些事情没有完成,并注明延误原因(任务清单软件,首推“奇妙清单)。
将今天学到的东西以及犯下的错误,记录到“工作笔记”中(工作笔记软件,首推“印象笔记”)。
对于需要系统性学习的东西,统一安排到自己的双休日中。
将明天打算做的事情加入到“任务清单”中,并标明优先级。
思考:怎样让自己的明天比今天更加优秀?
「从平凡到优秀,从优秀到卓越,需要方法,更需要坚持。」
取材于黄勇朋友圈创作的程序员剧场漫画已经发布,同样大受InfoQ读者群欢迎,还没看过的同学点击下图阅读:
究竟什么样的技术 Leader 是称职的?
黄勇,现任特赞(Tezign.com)信息科技 CTO,曾任阿里巴巴公司系统架构师。具有丰富的互联网产品架构经验与技术管理经验,擅长敏捷开发模式,推崇“轻量级”系统架构。国内开源软件推动者之一,活跃于 InfoQ、OSChina、CSDN 技术社区,Smart 开源框架创始人。畅销书《架构探险》作者,EGO 会员,QCon 讲师,StuQ 讲师。热爱技术交流,乐于分享自己的成长经验。
喜欢我们的会点赞,爱我们的会分享!
阅读原文:http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650994991&idx=1&sn=41cb2c40c86846eca02565f81bf16d51&chksm=bdbf017c8ac8886a6f68d8f9ce36ba047998a951312486cc70ff1fb29d5f284a55c59c4b71a9#rd