亚马逊工作心得

核心提示免责声明:本人并非亚马逊的代言人。所有观点都是我自己的。首先,让我来做一个简短的自我介绍:我叫 Daniel,今年 28 岁,是一名软件工程师。我从 13 岁起就开始学习编程。在工作了八年之后,我在 2019 年进入了亚马逊,并担任 SDE

放弃

:本人并非亚马逊的代言人。所有观点都是我自己的。

首先简单介绍一下自己:我叫丹尼尔,今年28岁,是一名软件工程师。我从13岁开始学习编程。工作八年,2019年进入亚马逊,做SDE2。大约两年零三个月后,也就是2021年,我被提升为亚马逊高级SDE。在这篇文章里,我将和大家分享一些我在职业生涯中学到的经验,这些经验是我之前一直希望学到的。这些经历承载了我个人的经历和信念。希望这能帮到你。

1. 尽管编程很酷,但如果能支持其他同事,你将会取得更大的成就。

编程很酷,非常酷。作为软件工程师,我们热爱软件开发。对于我们来说,开发软件最直接的方法就是实际编写一个软件。但是如果你花一整天写代码,那么你花6~8个小时写一段特殊项目的代码。没有人能从你身上学到任何东西,你也什么也学不到。因为你是高级工程师,这个领域对你来说没有挑战性。就算你的代码写得比一个没有经验的工程师还快,又有什么用呢?这是不可持续的,也没有考虑到团队的长远发展和个人的提升。作为一名高级工程师,你有足够的支持和技能在很多项目中进行并行开发,在很多方面,比如代码评审、系统设计、产品规格、业务验证、卓越运营等等。这样你的工作会变得更有战略性,你可以用你的技能让你的团队更加敏捷,加强团队和项目之间的协作,让你的同事在事业上取得进步。这就是我们所说的力量倍增器。您的影响、知识和行为可以使整个团队在交付能力、软件质量、团队合作、士气、工作生活平衡以及其他与软件工程相关的积极方面呈指数级增长。

2. 你的话语是强大的,无论是积极的还是消极的。先倾听,再发言。

你是你所在组织的推荐人,或许也是你所在公司的推荐人。有些人很佩服你,认为你是一个可以引导他们在事业上不断进步的人。你的赞美可以激励那些没有经验的人取得非凡的成功。你的批评会让那些没有经验的人日子不好过,甚至放弃。如果你觉得别人做错了或者有改进的机会,单独找他谈,不要粗暴。再说,谈这个人的想法,而不是讨论这个人。人不是自己想的那样。不要假装自己掌握了真理,什么都知道。相反,你要做的就是做一个关注别人进步,帮助别人的人。认真倾听,努力理解别人的想法。人和人不一样,背景和信仰也不一样。开会或做团队决策时,你的意见可能会对整个团队产生偏见,因为人们会认为他们不可能是对的,你不可能是错的,因为他们崇拜你。在会上,讨论一个话题时,请先发言,认真听取所有意见和想法,最后发言。如果你一上来就表达自己的观点,那么别人要么会因为相信你(通常比相信你自己)而对你的观点产生偏见,要么会因为不相信自己会对,而你错了而压抑自己的想法。即使你是一个很酷的人,在你的公司里人们也可以轻松安全地交谈,但总会有人胆怯或者没有自信。

3. 如果因为缺乏经验而不采取行动,你就永远不会获得经验。

经验固然重要,但不一定要什么都懂才能开始行动。其实恰恰相反,为了积累经验,你必须把学到的东西付诸实践。有些东西是你在书本上或课堂上学不到的,比如,如何修复你创建网站时犯的那个小错误,或者你在部署服务器时和队友学到的技巧。这是钱买不到的,你得学会用。不要害怕犯错或者什么都不知道。你所要做的就是采取行动,寻求帮助和尝试。相信我,你会找到让一切顺利进行的方法。每个人都专注于目标,但你应该努力专注于你想做的事情,并享受它。当你的目标完成后,你的学习之路将永远走下去,俗话说:路漫漫其修远兮,修远无尽,吾将上下而求索。

4. 你的英语不需要完美

这是对上次研究的补充,但它值得一个特殊的主题。这里没什么好说的,不过题目里已经提到了:你的英语不需要很完美,也不需要像当地人一样说话。在你的日常工作中,没有人会注意到你的语法错误。不要误解我。我并不是说,如果有机会,你就不能努力提高你的英语水平。我想说的是,你对不完美的恐惧不应该阻碍你迈出下一步。我写的这篇文章可能有很多语法错误和写得不好的句子,但是没关系。你还能理解我的意思,这才是最重要的。大多数人不会说第二语言。如果你的母语不是英语,但你会说,那么你的英语水平相当不错。

5. FAANG 的工程师并不比你强

FAANG是一个缩写,用来指代五家科技公司:脸书、亚马逊、苹果、网飞和Alphabet(G指的是Alphabet的核心公司谷歌)。在我进入亚马逊之前,我觉得自己不如FAANG的那些工程师。不知道为什么,我一度把他们奉为软件之神。他们开发了我每天都在使用的应用程序,每秒提供10亿次请求。当我进入亚马逊的时候,我还担心自己不够好,演不了那个角色。但是,我很快注意到,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

 
友情链接
鄂ICP备19019357号-22