写点什么

亚马逊工程师:我在职业生涯中学到的 8 个重要经验

  • 2022-02-09
  • 本文字数:3338 字

    阅读完需:约 11 分钟

亚马逊工程师:我在职业生涯中学到的 8 个重要经验

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


首先,让我来做一个简短的自我介绍:我叫 Daniel,今年 28 岁,是一名软件工程师。我从 13 岁起就开始学习编程。在工作了八年之后,我在 2019 年进入了亚马逊,并担任 SDE2。大约两年零三个月后,也就是 2021 年,我晋升到了亚马逊的高级 SDE。


在本文中,我将与大家分享我在职业生涯中所学到的一些经验,这些经验是我在之前就希望能够学到的。这些经验承载了我的个人经历和个人信仰。但愿这会对你有所帮助。

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


编程很酷,非常酷。作为软件工程师,我们热爱软件开发。对于我们而言,软件开发的最直接方式就是实际编写一款软件。


但如果你把一天的时间都用在了编写代码上,那么你就相当于在一个特殊的项目花了 6~8 个小时来写一段代码。没有人能够从你身上学到什么,你也什么都学不到,因为你是一名高级工程师,所以这一领域对你没有任何挑战性。


就算你的代码写得比没有经验的工程师要快,但那又有什么用呢?这是无法持久的,并且没有将团队的长远发展和个人的提高考虑在内。


作为一名高级工程师,你拥有足够的支持和技能,可以在许多项目中进行平行开发,在很多方面,例如代码审查、系统设计、产品规范、业务验证、卓越运营等等。这样,你的工作就会变得更有策略性,把你的技能用来让你的团队变得更加敏捷,加强团队与项目的协作,让你的同事在他们的职业生涯中取得进步等等。


这就是我们所说的力量乘数,你的影响力、知识和行为能够让整个团队在交付能力、软件质量、团队协同、士气、工作和生活的平衡,以及其他与软件工程相关的积极方面成倍增长。

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


你在你的组织中是一个参考,可能在你的公司也是如此。有的人很崇拜你,认为你是一个可以引导他们在事业方面取得进步的人。


你的赞扬能激发那些缺乏经验的人取得非凡的成功。你的批评会使那些没有经验的人生活得很糟糕,甚至会因此而放弃。


如果你觉得别人有错误,或者有改进的机会,那就和他单独谈话,不要无礼。此外,要谈论这个人的想法,而不是讨论这个人。人并不是他们的想法。别假装自己掌握了真理,什么都知道,相反,你要做的只是一个关注别人进步和帮助别人的人。认真倾听,努力了解别人的想法。人各不相同,背景、信仰也各不相同。


在开会或做团队决策时,你的意见可能会使整个团队产生偏见,因为人们会认为不可能出现他们是对的而你是错的情况,因为他们很崇拜你。


在开会时,当开始讨论一个主题时,请大家先发言,认真听取所有的意见和想法,并在最后发言。如果你一上来就发表自己的意见,那么,别人要么会因为相信你(通常比你自己更相信)而对你的意见产生偏见,要么他们会压抑自己的想法,因为他们不相信自己会是对的,而你却是错的。即便你是个很酷的人,在你的公司里,人们可以轻松、安全地交谈,但总是会有人胆怯,或者没有信心。

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


经验很重要,但你不必知道所有的事情才能开始“演戏”。实际上,正相反,为了积累经验,你必须把所学的知识付诸实践。有些东西,你无法从书上或课堂上学习到,例如,如何修复你在创建网站时出现的那个小错误,或者你在部署服务器时与队友学到的那个技巧。这可不是钱能买到的,你得活学活用。


别怕犯错误,怕什么都不懂。你要做的,就是行动起来,寻求帮助,去尝试。你会找到让一切都变得顺利的方法,相信我。


大家都专注于目标,但是你要努力把注意力集中到你所要做的事情上,并享受它。当你的目标已经完成,你的学习之路将会永远走下去,正所谓:路漫漫其修远兮,吾将上下而求索。

4. 你的英语不需要完美


这是上次学习的补遗,但是它值得有一个特别的主题。这里没有什么可说的,就是标题中已经提到的:你的英语不需要完美,你不必说得跟当地的人一样。


在你的日常工作中,没有人会注意到你的语法错误。别误解我的意思,我并不是说,如果有机会的话,你不能努力提升自己的英语水平,我想说的是,你对不完美的恐惧,不应该阻碍你迈出下一步。


我写的这篇文章中也许有许多语法上的错误,写得不好的句子,但是没有关系,你仍然能够领会我要表达的意思,这才是最重要的。大部分人都不会说第二语言,如果你的母语不是英语,但你也能说得出口,那么就说明,你的英语水平相当不错。

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


FAANG 是一个缩写,用来指 Facebook、Amazon(亚马逊)、Apple(苹果)、Netflix 和 Alphabet(G 指 Alphabet 的核心公司 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

2022-02-09 14:1810044

评论 2 条评论

发布
用户头像
干起来!最怕的就是自尊心的作祟,

别怕犯错误,怕什么都不懂。你要做的,就是行动起来,寻求帮助,去尝试。你会找到让一切都变得顺利的方法,相信我。

2022-02-15 09:22
回复
用户头像
“我并非无所不知,也永远不会无所不知。” 这句话可以共勉,😄
2022-02-11 09:43
回复
没有更多了
发现更多内容

架构实战营模块九作业

融冰

架构实战营毕业总结

融冰

Kubernetes微服务、容器介绍

CTO技术共享

开源 签约计划第三季 8月月更

Spring(一、快速入门)

开源 Spring5 8月月更

kubernetes 常见架构图

CTO技术共享

开源 签约计划第三季 8月月更

kubernetes日常命令

CTO技术共享

开源 签约计划第三季 8月月更

Kubernetes 集群故障案例

CTO技术共享

开源 签约计划第三季 8月月更

IPv6地址规划

穿过生命散发芬芳

ipv6 8月月更

Spring Cloud 入门 -- 搭建Eureka注册中心 实现服务者与消费者的服务调用

Bug终结者

Java 云原生 8月月更

Kubernetes 架构知识

CTO技术共享

开源 签约计划第三季 8月月更

kubernetes灰度发布

CTO技术共享

开源 签约计划第三季 8月月更

Kubernetes 开源未来

CTO技术共享

开源 签约计划第三季 8月月更

阿里大神级 最新Elasticsearch 笔记,抓紧学起来!

冉然学Java

elasticsearch 编程 分布式 java; 程序员、

GItHub又火了!2022最全 Java面试手册终于开源了,包含了29个知识点

Java工程师

Java 面试

Kubernetes 运维经验分享

CTO技术共享

开源 签约计划第三季 8月月更

2022秋招前端面试题(一)(附答案)

helloworld1024fd

前端面试

数字化转型怎么就那么的难?!

BizFree

数字化转型 工业互联网 智能制造

Kubernetes 虚拟机部署弊端

CTO技术共享

开源 签约计划第三季 8月月更

Kubernetes 原生接口

CTO技术共享

开源 签约计划第三季 8月月更

Centos7安装系统安装docker

Geek_8d9022

Kubernetes DevOps 工具

CTO技术共享

开源 签约计划第三季 8月月更

Kubernetes微服务框架

CTO技术共享

开源 签约计划第三季 8月月更

ES6新特性——generator

猫猫巧克力

8月月更

Kubernetes 怎么优雅升级

CTO技术共享

开源 签约计划第三季 8月月更

Go-Excelize API源码阅读(二)——OpenFile()

Regan Yue

Go 开源 源码刨析 源码解读 8月月更

STM32的启动过程 — startup_xxxx.s文件解析(MDK和GCC双环境)

矜辰所致

stm32 arm 8月月更 stm32启动流程 startup_xxxx.s

Kubernetes 部署策略

CTO技术共享

开源 签约计划第三季 8月月更

纯色山鹪莺

猫猫巧克力

2022秋招前端面试题(二)(附答案)

helloworld1024fd

前端面试

【LeetCode】 数组中的字符串匹配Java题解

Albert

LeetCode 8月月更

Kubernetes 污点和容忍

CTO技术共享

开源 签约计划第三季 8月月更

亚马逊工程师:我在职业生涯中学到的 8 个重要经验_架构_Daniel Costa_InfoQ精选文章