写点什么
学习 MySQL 开源 云计算 行业资讯 算法 Python 人工智能 区块链 Linux 前端 个人成长 面试 架构师 编程 企业动态 新基建 敏捷 安全 读书笔记 高效工作 团队管理 创业 活动专区 生涯规划 知识管理 运维 产品经理 查看更多

高级软件工程师必备的五大技能

用户头像
架构精进之路
关注
发布于: 2021 年 05 月 24 日

具备什么样的素质的人才能成为一名高级软件工程师?作为高级软件工程师,你不仅要具备娴熟的技能,更重要的,还要具备与人合作的能力。只有能够领导和提升他人的软件工程师,才是真正的高级软件工程师。Israel Miles 分享了成为高级软件工程师必备的五大技能,有志于更上一层楼的软件工程师不妨参考一下。


原文发表在 Medium

标题是:The Top 5 Skills of Senior Software Engineers



划重点:

高级软件工程师真正与众不同之处在于与他人合作的能力

专注于你可以控制的事情,并利用这种能力把其他的人提升到更高的水平

提高沟通能力是那些可以带领团队的人的关键属性

要丢掉你的自负,虚心接受批评建议

高级软件工程师要学会写出好的说明文档

高级软件工程师必须熟悉各种软件开发原则

表明上看来,高级软件工程师似乎类似于“10x 编码者”,给人的印象是这帮人总是坐在计算机旁,全力冲刺打磨磨出一个完整的产品。

这样一幅形象跟事实相去甚远

实际上,我认识的很多大学学生都很聪明,但是缺乏沟通能力与接受批评的能力,这些会严重阻碍他们的机会。受雇于顶级公司或者刚毕业就拿到高级职位的学生肯定手艺已经很娴熟了,但真正能让他们与众不同的,是他们与他人合作的能力

这种趋势在走出象牙塔之后只会有增无减。能够处理各种工单开发各种功能,但是一直都独来独往的软件工程师很少能够获得提拔。而那些学会分享知识,让整个团队都共同进步的人会被放到领导岗位。这里面没有运气的因素,软件工程当中有着非常具体和实在的技能是可让你去领导和提升他人的,而这就是成为高级的全部意义所在。

那么,我们就来了解一下你我要想成为高级软件工程师都需要哪些技能吧。

#1 —控制

在生活当中当领导最基本的一个方面就是控制。在《极限控制》(Extreme Ownership)这本书里,已退休的海豹突击队军官 Jocko Willink 详细介绍了自己在美国海军海豹突击队 20 多年学到的经验教训。在书中, Jocko 用一个个故事说明了领导者是团队或公司能否取得成功的终极要素。

“《极限控制》的核心是这条最根本、最重要的事实:没有糟糕的团队,只有糟糕的领导。” —Jocko Willink

践行极限控制的例行做法包括:不管团队能不能取得成功,责任都要自己扛。这是一个激进的范式转换,这既是一种免除,也是一种束缚,因为当你践行极限控制的时候,把责任推给别人就不是你的选项。

如果一名初级工程师没达到工单的验收标准,那是因为你作为领导没有花时间去解释清楚并确保对方理解清楚。

如果你的某位团队成员很难联系上,那是因为你没说清楚对方什么时候该找得到,沟通的频率应该怎样。

如果有漏洞的代码一路杀到了生产环境,那是因为你没有适当地花些时间去评估一下代码审查。

成为高级软件工程师就是要专注于你可以控制的事情,并利用这种能力把其他的人提升到更高的水平。

#2 —沟通

是的,接下来要讲的就是任何一篇文章都会告诉你如何做职业当中变得擅长的,被讲到滥的一个技能点了。不过,如果到处都提到这一点的话,那么为什么不经常去尝试一下对此加以改进呢?随着企业逐步朝着完全的远程办公转移,技术领域正在发生着根本性的变化。磨练沟通技巧以成为高级工程师的重要性现在比以往任何时候都要高。

改善沟通技巧的第一步是要让自己的写作清晰明了。通过文字把自己的想法清晰明了地表述给他人的困难性质高也许会出乎你的意料,尤其是在工程环境下。你可以通过类似 Slack 这样的渠道积极地磨练自己的沟通技巧,不过发出消息之后记得补一句“这么说你明白吗?”或者,“有没有更好的措辞方式?”。你的团队成员应该会很乐意提供反馈,因为这可以让每个人的生活都变得更轻松。

你甚至可以做意见我现在正在做的事情——开个博客,用来提高沟通技巧!

改善沟通的另一个技巧是过度沟通。你显然不想给自己的同事发垃圾邮件,但是相对于漏掉细节,你永远都应该不要害怕解释得太多。这里是一个例子:

嘿,我 push 了我的变更来修复那个错误。让我知道你的想法。

VS:

早上好,那个问题我已经解决了,就是那个不知道为什么项目 A 的一个测试总是通不过的问题。我在方法里面添加了错误返回类型,这样我们调试起来就可以更轻松了,然后我们发现我们没有生成足够多的通道来等待 go 例程通过。如果你有什么建议的话,这是我的 merge request 的链接。

提高沟通能力是那些可以带领团队的人的关键属性。

#3 — 扔掉你的自负

没人,我的意思是没有一个人愿意跟像 Gilfoyle(编者注:美剧《硅谷》里面的角色,)这样的人一起工作。可以自己解决任何问题的 10 倍编码者这个观点完全是被高估了。这样的工程师离开公司之后,当其他的工程师试图想出“不需要任何测试”的代码时,公司很可能会出现巨大的知识鸿沟。

相反,好的领导总是能够谦虚地向他人学习。如果一位团队成员告诉你,有一个新的测试框架可以做你喜欢的那个自定义的测试所能做的所有事情,但是更加标准化,可重用的话,请不要为你的代码辩护,而是要感谢你的团队成员为了让团队变得更好所提供的建议。这关乎的不是你的代码,而是团队的代码。


要虚心接受指正

说真的,如果你找到可以改善同事代码的方法,请在代码审查里面发表你的意见!光是抱怨没有任何好处。如果你想成为一名高级工程师,请让你的团队成员觉得自己是在学习,而不是觉得自己很蠢。

#4 — 学习如何写出出色的文档

听说过“代码应该自我注释”这句话吗?这话不完全都是错的,但是离正确还差得远。你应该始终都要尝试写出干净、简洁的代码,但有时你仍需要留出注释。你还需要说明一下怎么使用新的 API。而且,如果你的新产品并没有任何的架构方面的文档的话,当需求变更是看看你还能走多远吧。

有很多办法可以提高文档的编制技能,尤其是如果你正在用 Jira 之类的软件进行工单跟踪或用 Confluence 来画程序流程图的话。去看看自己所在团队里面的高级工程师是怎么对自己的体系结构写说明文档的,这样你就学习到最佳实践。

此外,如果要想创建出定义得更好的工单的话,你得关注 4W1H(谁,什么,为什么,什么时候,如何)等等。你应该先问自己,然后在工单文档里面回答的常见问题包括,为什么我们需要进行这一变更?这些变更会在哪些项目中进行?进行该变更的高级技术步骤有哪些?

画出更好的流程图的好处也非常大。作为一条快捷提示,你可以按照从左到右的顺序画流程图并且根据逻辑进行路径分离。跟使用决策符号相比,这种图看起来会容易得多,而决策符号因为没有明显的路径会造成很大的逻辑混乱。


上图的图可读性要比下图的高得多

#5 —软件开发原则

显而易见,如果你想要成为一名高级软件工程师,你必须了解所在领域的知识。高级软件工程师未必就得是编码魔术师,但是他们需要具备全面的技能。如果你想成为高级工程师,以下是一些需要学习的技术要点:

  • 测试—幸运的是,这已经成为标准了。实际上,如果你在求职面试的时候发现对方公司却不做测试的话,那你应该把这看作是一个危险信号。测试可以让你编写出行为符合预期的代码,测试属于自我注释,并且让你可以扩展代码而不必担心会搞砸某些东西。

  • 设计模式—这是我个人的最爱。设计模式提供了一种基础结构,可以用来应对满足业务需求的特定行为。你是不是要开发一个社交媒体平台?那观察者模式也许是个好的开始。想要创建一个防错的用户界面吗?那就用有限状态机试试看。我撰写了很多关于 Go 语言设计模式的文章,设计模式可以说是让你成为更有能力的软件工程师的一种直截了当的办法。

  • 框架—如果你要写的代码执行的任务似乎是很常见的话,那么很可能会有一个相应的框架去做这件事。重要的是,高级工程师必须了解最新的框架,以了解是不是有任何的框架正在被弃用掉,或者是不是有比你正在使用的框架更好的解决方案。

这篇文章是从较高的层面去讨论的,但是这些原则的细节并不重要,因为细节总是在不断地变化。成为一名高级软件工程师需要的东西太多了,但归根结底,其实这要取决于你的自我学习,承担责任并始终专注于改进团队的能力。我合作过的那些最好的程序员总是很乐于分享知识,并会让我变得更好,从而让自己和整个团队在这过程中都变得更好。



- END -

发布于: 2021 年 05 月 24 日阅读数: 13
5月日更
用户头像

架构精进之路

关注

坚持分享接地气儿的架构技术文章! 2018.02.26 加入

同名微信公众号「架构精进之路」,专注软件架构研究,技术学习与职业成长!坚持原创总结、沉淀和分享,希望能带给大家一些引导和启发,感谢各位的支持(关注、点赞、分享)!

评论

发布
暂无评论
高级软件工程师必备的五大技能

哆哆女性网十格起名如何制作一个手机网站取名起名大全 楚辞微信推送 制作网站接设计单网站解酒饮料起个名字seo与做网站优化cds中国式关系36集山河同在上海地产网站建设算死命文免费阅读securecrt周易算命测生辰八字梦到捡钱周公解梦郝云孩子起名字姓田女孩凯立德导航地图下载长安网络推广营销培训seo优化在线姓王可以起什么名字关于姓薛霸气网名伤感个性签名男生宋词起女孩名字好听周易八字排盘系统旅游网站建设论文文化教育公司起名怎给孩子起名字urnotes如何根据周易解卦淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化