当前位置: 编码机 >> 编码机市场 >> 高级软件工程师必备的五大技能
hello,大家好,我是张张,「架构精进之路」公号作者。
具备什么样的素质的人才能成为一名高级软件工程师?作为高级软件工程师,你不仅要具备娴熟的技能,更重要的,还要具备与人合作的能力。只有能够领导和提升他人的软件工程师,才是真正的高级软件工程师。IsraelMiles分享了成为高级软件工程师必备的五大技能,有志于更上一层楼的软件工程师不妨参考一下。
原文发表在Medium上,标题是:TheTop5SkillsofSeniorSoftwareEngineers。
划重点:高级软件工程师真正与众不同之处在于与他人合作的能力专注于你可以控制的事情,并利用这种能力把其他的人提升到更高的水平提高沟通能力是那些可以带领团队的人的关键属性要丢掉你的自负,虚心接受批评建议高级软件工程师要学会写出好的说明文档高级软件工程师必须熟悉各种软件开发原则表明上看来,高级软件工程师似乎类似于“10x编码者”,给人的印象是这帮人总是坐在计算机旁,全力冲刺打磨磨出一个完整的产品。
这样一幅形象跟事实相去甚远。
实际上,我认识的很多大学学生都很聪明,但是缺乏沟通能力与接受批评的能力,这些会严重阻碍他们的机会。受雇于顶级公司或者刚毕业就拿到高级职位的学生肯定手艺已经很娴熟了,但真正能让他们与众不同的,是他们与他人合作的能力。
这种趋势在走出象牙塔之后只会有增无减。能够处理各种工单开发各种功能,但是一直都独来独往的软件工程师很少能够获得提拔。而那些学会分享知识,让整个团队都共同进步的人会被放到领导岗位。这里面没有运气的因素,软件工程当中有着非常具体和实在的技能是可让你去领导和提升他人的,而这就是成为高级的全部意义所在。
那么,我们就来了解一下你我要想成为高级软件工程师都需要哪些技能吧。
1、控制在生活当中当领导最基本的一个方面就是控制。在《极限控制》(ExtremeOwnership)这本书里,已退休的海豹突击队军官JockoWillink详细介绍了自己在美国海军海豹突击队20多年学到的经验教训。在书中,Jocko用一个个故事说明了领导者是团队或公司能否取得成功的终极要素。
“《极限控制》的核心是这条最根本、最重要的事实:没有糟糕的团队,只有糟糕的领导。”—JockoWillink践行极限控制的例行做法包括:不管团队能不能取得成功,责任都要自己扛。这是一个激进的范式转换,这既是一种免除,也是一种束缚,因为当你践行极限控制的时候,把责任推给别人就不是你的选项。
如果一名初级工程师没达到工单的验收标准,那是因为你作为领导没有花时间去解释清楚并确保对方理解清楚。
如果你的某位团队成员很难联系上,那是因为你没说清楚对方什么时候该找得到,沟通的频率应该怎样。
如果有漏洞的代码一路杀到了生产环境,那是因为你没有适当地花些时间去评估一下代码审查。
成为高级软件工程师就是要专注于你可以控制的事情,并利用这种能力把其他的人提升到更高的水平。2、沟通是的,接下来要讲的就是任何一篇文章都会告诉你如何做职业当中变得擅长的,被讲到滥的一个技能点了。不过,如果到处都提到这一点的话,那么为什么不经常去尝试一下对此加以改进呢?随着企业逐步朝着完全的远程办公转移,技术领域正在发生着根本性的变化。磨练沟通技巧以成为高级工程师的重要性现在比以往任何时候都要高。
改善沟通技巧的第一步是要让自己的写作清晰明了。通过文字把自己的想法清晰明了地表述给他人的困难性质高也许会出乎你的意料,尤其是在工程环境下。你可以通过类似Slack这样的渠道积极地磨练自己的沟通技巧,不过发出消息之后记得补一句“这么说你明白吗?”或者,“有没有更好的措辞方式?”。你的团队成员应该会很乐意提供反馈,因为这可以让每个人的生活都变得更轻松。
你甚至可以做意见我现在正在做的事情——开个博客,用来提高沟通技巧!
改善沟通的另一个技巧是过度沟通。你显然不想给自己的同事发垃圾邮件,但是相对于漏掉细节,你永远都应该不要害怕解释得太多。这里是一个例子:
嘿,我push了我的变更来修复那个错误。让我知道你的想法。VS:
早上好,那个问题我已经解决了,就是那个不知道为什么项目A的一个测试总是通不过的问题。我在方法里面添加了错误返回类型,这样我们调试起来就可以更轻松了,然后我们发现我们没有生成足够多的通道来等待go例程通过。如果你有什么建议的话,这是我的mergerequest的链接。提高沟通能力是那些可以带领团队的人的关键属性。、扔掉你的自负没人,我的意思是没有一个人愿意跟像Gilfoyle(编者注:美剧《硅谷》里面的角色,)这样的人一起工作。可以自己解决任何问题的10倍编码者这个观点完全是被高估了。这样的工程师离开公司之后,当其他的工程师试图想出“不需要任何测试”的代码时,公司很可能会出现巨大的知识鸿沟。
相反,好的领导总是能够谦虚地向他人学习。如果一位团队成员告诉你,有一个新的测试框架可以做你喜欢的那个自定义的测试所能做的所有事情,但是更加标准化,可重用的话,请不要为你的代码辩护,而是要感谢你的团队成员为了让团队变得更好所提供的建议。这关乎的不是你的代码,而是团队的代码。
要虚心接受指正
说真的,如果你找到可以改善同事代码的方法,请在代码审查里面发表你的意见!光是抱怨没有任何好处。如果你想成为一名高级工程师,请让你的团队成员觉得自己是在学习,而不是觉得自己很蠢。
4、学习如何写出出色的文档听说过“代码应该自我注释”这句话吗?这话不完全都是错的,但是离正确还差得远。你应该始终都要尝试写出干净、简洁的代码,但有时你仍需要留出注释。你还需要说明一下怎么使用新的API。而且,如果你的新产品并没有任何的架构方面的文档的话,当需求变更是看看你还能走多远吧。
有很多办法可以提高文档的编制技能,尤其是如果你正在用Jira之类的软件进行工单跟踪或用Confluence来画程序流程图的话。去看看自己所在团队里面的高级工程师是怎么对自己的体系结构写说明文档的,这样你就学习到最佳实践。
此外,如果要想创建出定义得更好的工单的话,你得
转载请注明:http://www.aideyishus.com/lkjg/7597.html