Why should not the only empiricism? !

8 + years of work experience does not guarantee you become a senior software engineer!

Author |  Tylor Borgeson

Translator |  Wang Yan Ni , Zebian | Guo Rui

Exhibition | CSDN (ID: CSDNnews)

The following is the translation:

The software industry in recent reassuring thing is that the company no longer expect educated software developers to achieve a particular degree, any degree is not even possible.

I like this trend, because in this industry, only the most important personal capacity. If candidates can not solve the programming problem, even with a bachelor's degree or master's degree, what use is it? If you do not understand the working principle of MVC, then there is no sense even be able to explain Big O notation is used to do.

I have a degree in computer science, but in my time as a software engineer in addition to the interview, I have never encountered the situation needs to be calculated Big O's. Maybe if you are a site reliability engineers need to deal with thousands of requests (Site Reliability Engineer), maybe you can apply, but I think most of us do not need to deal with this situation.

Want to enter the industry and to make progress, all the information people need can be obtained by a combination of online resources and hands-on experience writing software, which led to this shift.

But I think the industry should also expect to continue to change, especially when looking for advanced developers. Served as a senior software engineer in the team not just mean with extensive experience ...... more experience of course better, but the job description should not contain "more than eight years of work experience," such words should not be used as a senior engineer Claim.

Some people may work for nine years, but did not master all due skill, while others may experience only five years, but all employers have the ability to look forward to.

I propose to use some of the team is more valuable things instead of the mandatory requirements of this standard clear numbers. In addition to the daily work requirements, the following is my hope that other qualities in senior engineer who see:

Good coding practices

I hope this is the most obvious, and even may not be included in this list because it is taken for granted a little, but it is the foundation of excellent engineers and engineers can generally distinguish place.

诸如高效地给变量和方法命名之类的简单事情能获得长远收益。牢记诸如SOLID原则之类的东西,并不断寻找重构候选或无效代码的方法是很必要的。能把测试同功能代码看作同等重要的态度是无价的。

一个高级工程师应该是团队中那个能够在可理解与高效的代码之间找到平衡的人,并确保团队中能稳定保持住这种平衡。

知识共享

我坚信,高级工程师最重要的职责之一就是帮助他的团队成员向上一个台阶,尽快地提高自己的水平。

这个目的可以通过多种方式来达到,包括但不限于:

  • 让开发人员们组队编程,并确保高级开发永远不会在团队中孤军奋战。

  • 在实施复杂的东西时,让高级开发与团队中的其他人分享解决方案,也许是在另一个单独的会议中。(许多团队通常在一段紧张的业务冲刺结束时开一个会,来分享他们从中学到的,或认为团队需要知道的知识)

  • 高级开发知道,让队友通过努力而学习并支持队友,以及让队友感到自信而不会妄自菲薄之间微妙的平衡在哪里。

我更倾向于让高级工程师在安排初级人员完成某些工作之后,在非个人代码审查中尽量少地进行教学。

毅力

一个人是否会成功的最显著因素之一就是他们拥有多少“毅力”。定义为:“……毅力是对长期目标所怀有的激情和长期的坚持,而不关注过程中获得的好处以及得到的承认。”

这也是做软件工程师最重要的因素之一。我们都有过那种体会……发现了一个要解决的bug,你试了1次,2次,甚至50次都根本没有用……挫败感开始出现了,又过了一会儿,你就开始扪心自问想什么时候辞职了。

一位技术负责人曾经告诉我,他们将团队中的高级开发们视为团队的“主力军”。

这个描述有些粗略了点,但是团队中的一个人如果能在50次失败之后从问题上退后一步,深呼吸,吃点巧克力放松一下,然后在第51次尝试中获得成功,那么这种能力对于成为高级工程师来说是至关重要的。

高级开发就是能带领团队走过软件开发过程中那些沟沟坎坎的人。

如果你还不是一名高级工程师,但想要成为高级工程师,那么就先培养自己的毅力。

对学习新事物的开放心态

技术产业在世界上如果不是发展最快的产业,那也是最快的产业之一。每隔一两年,就会出现一些新的技术,工具,或语言来解决某个问题或者扩展某个已经存在的东西。

作为开发人员,为了跟上软件工程行业不断变化的局面,我们必须保持终身学习。

有的人多年一直以相同的方式或用相同的技术栈进行开发,并觉得自己无需学习新知识或尝试新事物,却不知这是最可悲的事情之一。

我经常听到“我想使用A语言,因为我在B语言方面并不精通”这样的话,我可以理解这样的想法,但是不是B语言更适合这个问题呢?也许团队中的所有其他人的B语言水平都更好,也许对语言的语法和技巧的了解在软件工程中的重要性不如思考的过程以及对系统本身和系统各部分之间交互方式的理解……毕竟语法和技巧我们随时都能在Stack Overflow上查到。

更不用说学习新事物也意味着拥有新的体验,以及用新的方式思考。新鲜的观点应始终受到欢迎。

能够保持一个总体观

这一点与某人在公司共工作过多长时间直接相关,但我合作过的最好的高级工程师们都能对整个系统保持一个十分深刻的总体观,所以他们可以快速了解功能可以如何以及应该如何实施,甚至能够迅速地精准判断造成缺陷的原因。

我曾经有一个队友,我和他一起研究一个bug时,他连代码都不看就能直接告诉我这个bug要么是由File A的第25行要么就是由File B的第47行引起的,简直神了。

我这个队友当然是个特例,但是我认为对系统有一个整体观的益处是不言而喻的。

同理心

在我看来,高级工程师需要具备的最后一点也是最重要的一点就是同理心。

要明白队友们已经在尽力而为了。所有人(包括你)都仍在学习并将继续学习。不做代码守门人,承认其他所有人的想法的相关性和潜力。上面这些几乎是没法教的,但对于建立一个能让所有人都感到安全的充满信任的团队大有帮助。

一个安全以及相互信任的团队可以做出很多成果。

当我说“8年以上的经验并不能让你成为一位高级软件工程师”的时候,希望大家不要误会我。我认为经验确实很重要,也很有价值。但是我也相信,在高级工程师一职中软技能也非常重要,我想在文章中表达的就是这一点。我们行业中的每个人都应该不断磨练这些技能,而也许有一天,面试和职位描述中不仅包含白板测试和8年以上的经验,而且还包含一些可能会在团队中产生更大影响的东西。

觉得我遗漏了某些点吗?或者不同意我的观点?请一起来讨论吧!感谢阅读。

原文:https://levelup.gitconnected.com/8-years-of-experience-isnt-the-definition-of-a-senior-software-engineer-f3ed904e3bc9?gi=f9ff8d9948de

作者简介:Tylor Borgeson,全栈开发者,对基础设施,DevOps, 以及敏捷开发感兴趣。

本文为 CSDN 翻译,转载请注明来源出处。

推荐阅读 

微软高管谈微软远程办公思考与实践,值得每个企业看看

钉钉辟谣“老师能打开学生摄像头”;HTC 关闭官方社区;Node.js 安全版本发布 | 极客头条

2020年AI如何走?Jeff Dean和其他四位“大神”已做预测!

远程办公众生相:“云”吃饭、被窝打卡、梳妆台编程......

2020 年,云游戏将爆发?各大科技公司云游戏布局大曝光!

SIM卡交换攻击盗币猖獗,比特币从业者如何自保?

你点的每一个在看,我认真当成了喜欢

发布了1688 篇原创文章 · 获赞 4万+ · 访问量 1504万+

Guess you like

Origin blog.csdn.net/csdnnews/article/details/104243356