qvj 2 LQ 49k 0/126 B3 dad 94 ea 4 ed 6b 751 D6 b01e 266 eed '>
免责声明:我不是亚马逊的代言人。所有观点都是我自己的。
首先简单介绍一下自己:我叫丹尼尔,今年28岁,是一名软件工程师。我从13岁开始学习编程。工作八年,2019年。
他于年进入亚马逊,担任SDE2。大约两年零三个月后,也就是2021年,我被提升为亚马逊的高级SDE。
在这篇文章里,我将和大家分享一些我在职业生涯中学到的经验,这些经验是我之前希望学到的。这些经历承载着我个人的经历和信念。我希望这对你有帮助。
# 1\.虽然编程很酷,但是如果你能支持其他同事,你会取得更大的成功。
编程很酷,非常酷。作为软件工程师,我们热爱软件开发。对于我们来说,软件开发最直接的方式就是实际编写一个软件。
但是如果你花一整天写代码,那么你花6~8年在一个特殊的项目上。
每小时写一段代码。没人能从你身上学到什么,你也不行。因为你是高级工程师,这个领域对你来说没有挑战。
就算你的代码写得比一个没有经验的工程师还快,又有什么用呢?这是不可持续的,也没有考虑到团队的长远发展和个人的提升。
作为一名高级工程师,你有足够的支持和技能在很多项目中进行并行开发,比如代码评审、系统设计、产品规格、业务验证、卓越运营等等。这样你的工作会变得更有战略性,你的技能会被用来让你的团队更加敏捷,加强团队和项目之间的合作,让你的同事在事业上取得进步。
这就是我们所说的力量倍增器。你的影响力、知识和行为可以让整个团队在交付能力、软件质量、团队合作、士气、工作生活平衡以及其他与软件工程相关的积极方面成倍增长。
# 2\.你的话很有力量,不管是正面的还是负面的。先听,然后说。
你是你所在组织的推荐人,或许也是你所在公司的推荐人。有些人非常崇拜你,认为你是一个可以引导他们在事业上不断进步的人。
你的赞美可以激励那些没有经验的人取得非凡的成功。你的批评会让那些没有经验的人活得很糟糕,甚至因此而放弃。
如果你觉得别人做错了或者有改进的机会,单独找他谈,不要无礼。再说说这个人的想法,不是讨论这个人。人不是自己想的那样。不要假装自己掌握了真理,什么都知道。相反,你要做的就是做一个关注别人进步,帮助别人的人。认真倾听,努力理解别人的想法。人和人不一样,背景和信仰也不一样。
开会或者做团队决策的时候,你的意见可能会让整个团队产生偏见,因为人们会认为他们不可能是对的,你不可能是错的,因为他们非常崇拜你。
在会议中,当你开始讨论一个话题时,请首先发言,认真听取所有意见和想法,并在最后发言。如果你一上来就表达自己的观点,别人要么因为相信你(通常比相信自己)而对你的观点产生偏见,要么因为不相信自己会对,而你错了而压抑自己的想法。即使你是一个很酷的人,在你的公司里人们也可以轻松安全地交谈,但总会有人胆怯或者没有自信。
# 3\.如果你因为缺乏经验而不采取行动,你将永远不会获得经验。
经验很重要,但不一定要什么都懂才能开始行动。其实恰恰相反,为了积累经验,你必须把学到的东西付诸实践。有些东西是你从书本或课堂上学不到的,比如,如何修复你在创建网站时犯的小错误,或者你在部署服务器时和队友学到的技巧。钱买不到这个。你必须学习和使用它。
不要害怕犯错。不要害怕什么都不知道。你所要做的就是行动,寻求帮助和尝试。相信我,你会找到让一切顺利进行的方法。
每个人都专注于目标,但你应该努力专注于你想做的事情,并享受它。当你的目标完成后,你的学习之路将永远继续下去。俗话说,路漫漫其修远兮,吾将上下而求索。
# 4\.你的英语不需要很完美
这是对上一项研究的补充,但它值得有一个特殊的主题。这里没什么好说的,那就是题目中已经提到的:你的英语不需要很完美,也不需要像当地人一样说话。
没有人会注意到你日常工作中的语法错误。不要误解我,我不是说如果你有机会,你不能提高你的英语。我想说的是,你对不完美的恐惧不应该阻止你迈出下一步。
我写的这篇文章可能有很多语法错误,句子写得很差,但是没关系,你还是能明白我想表达的意思,这才是最重要的。大多数人不会说第二语言。如果你的母语不是英语,但你会说,那么你的英语水平相当不错。
# 5\.FAANG的工程师不比你强。
FAANG是用来指代脸书、亚马逊、苹果、网飞和Alphabet的缩写(G代表Alphabet
p>的核心公司 Google)这五家科技公司。
在我进入亚马逊之前,我觉得自己不如 FAANG 的那些工程师。因为某些理由,我一度将他们视为软件之神。他们创造了我每天都在使用的应用,每秒钟提供十亿次请求。
在我进入亚马逊的时候,我还有些担心,怕自己不够好,没有足够的能力去扮演那个角色。不过,我很快就注意到,FAANG
的人其实都是些普通的人,他们只知道一些话题,但不知道其他话题。
当然,我在亚马逊遇到了出色的人,但是,我在我以前工作的其他公司也遇到过这样的人。最后送你一句话,与君共勉:三人行,必有我师。
现在我是一名 FAANG 工程师,我不比任何人好,也不比任何人差。你不比我差,也不比我好。大家都一样。
我并非无所不知,也永远不会无所不知。最重要的是要敞开心扉,与其他人一起学习。
# 6\. 对业务的理解有助于你作出更好的决策
归根结底,开发软件是为了解决业务问题。如果一个软件不能解决问题或者没有用户,那么构建一个具有完整 CD 管道、100%
测试覆盖率和遵循最佳实践的杰作软件,也没有任何意义。
而一个低品质的软件,除了会给用户造成一些麻烦之外,也很难解决用户的问题。
高级工程师是团队中的关键人物之一,在技术团队和业务团队之间起着黏合剂的作用。要做到这一点,你必须对业务和产品有充分的了解。在这个基础上,你将学习到怎样进行权衡,除了考虑技术方面,也要考虑业务方面。
最终,你会发现,大多数情况都依赖于风险和潜在的回报。
你是否会在生产中部署一个有已知 bug 的软件?一个初级工程师也许会说不会。而高级工程师会这么说:这要视具体的情况而定。取决于这个 bug
的影响。要看它在生产中会存在多长时间。能够看出该 bug 在多大程度上被用户池所控制。客户成功团队是怎样参与到帮助用户解决这个 bug
的。对于用户和企业来说,等待 bug 修复才能启动全部功能是多么糟糕。
了解你正在开发软件的业务,与业务团队和客户成功团队联系,了解项目和产品的路线图,以及客户的挫折和抱怨,这些都是制作高质量软件并为人们带来价值的关键。
# 7\. 注意你的坐姿,注意你的健康
你整天都是坐在计算机面前度过的。从长远来看,不良的坐姿会造成严重的脊椎问题,这会带来痛苦,而且可能难以治愈。因此你要舍得花大钱去买符合人体工学的座椅、桌子、键盘和鼠标。注意你的坐姿。
此外,尽量每小时站立起来,去喝水,睡好觉,锻炼身体。
我知道这听起来像是父母的忠告,我年轻的时候也会这么认为,但是你会衰老,你的身体会感受到现在的不良嗜好带来的影响。我不是专业人士,无法提供具体的指导,所以我建议,你向专业人士寻求帮助。
# 8\. 你应该学会如何将一个想法转化为一个网站或应用程序,这将有助于你的创新和探索你的创造力
大家都有自己的想法,而且我们中的很多人已经有了创建一个革命性的应用或平台的想法。
作为一名开发人员,由于你懂得怎样去开发你的应用,你会比其他人领先一步。
然而,如果你是一个前端开发者,你可能无法开发应用程序的后端逻辑,或者无法从头开始创建一个服务并部署它。
如果你是一个后端开发者,你可能无法开发一个前端应用,也无法开发一个移动应用。
最后,尽管你是一个开发人员,但是在创造你的应用、测试你的想法、以及通过实践和试验来学习时,仍然存在着许多困难。
因此,我极力推荐你学会怎样构建应用的前端(HTML、CSS、JavaScript、React)和后端(任何后端语言,如 Java 和
Python),以及如何部署应用(亚马逊云科技、谷歌云、Azure、Firebase、Heroku……),还有一点点 UX 设计师的经验。
作者介绍:
Daniel Costa,亚马逊高级软件工程师。
原文链接:
https://levelup.gitconnected.com/amazons-sr-software-engineer-
at-27-8-important-lessons-i-ve-learned-so-far-in-my-career-9fdfbfbc1a6a