instagram软件_我在facebook instagram担任软件工程师的4年中的4个教训

instagram软件

语境 (Context)

I joined Facebook as a software engineer (9/6/2016) and today is my four year “Faceversary” (9/6/2020). I want to take the opportunity to reflect and organize my thoughts around some of the most important lessons from the past four years. I still have a lot to learn, but I hope sharing this can still provide value.

我以软件工程师的身份加入Facebook(9/6/2016),今天是我四年的“ Faceversary”(9/6/2020)。 我想借此机会围绕过去四年中一些最重要的经验教训来反思和组织我的想法。 我还有很多东西要学,但是我希望与大家分享仍然可以提供价值。

To err on the side of clarity, I’m not writing this because I plan on leaving; I’m writing this because introspective reflection through writing is how I best internalize my learnings and growth.

为了清楚起见,我不打算写这篇文章是因为我打算离开。 我之所以写这本书,是因为通过写作进行内省性反思是我最好地内化学习和成长的方式。

This place is full of the most brilliant people from all backgrounds and I’m constantly in awe of how lucky I am to be in the same room.

这个地方到处都是来自各个背景的最有才华的人,我一直对自己在同一个房间里的幸运感到敬畏。

I first joined one of the Messenger teams in Menlo Park. After six months, our team disbanded. I transferred to NYC to join the Instagram Search and Explore team as an iOS engineer. I chose NYC because I desired the diversity in industry(not everyone you meet is in tech), having four beautiful seasons, and the energy of a real city life(Commuting from SF to Menlo Park just wasn’t it).

我首先加入了Menlo Park的Messenger团队之一。 六个月后,我们的团队解散了。 我转到纽约,以iOS工程师的身份加入Instagram搜索和探索团队。 我之所以选择纽约市,是因为我希望拥有行业的多样性(并不是您遇到的每个人都在技术上),拥有四个美丽的季节以及真正的城市生活的能量(不是从SF到Menlo Park上班)。

I’ve stayed on Instagram since for 3.5 years and worked on various features across Discovery, Explore, Search, Location Pages, Hashtag Pages, Location/Hashtag/Sticker Stories, Save, Collections, Keyword Search, Integrity and Privacy, and more recently Shopping.

我已经在Instagram呆了3.5年,从事过Discovery,Explore,Search,Location Page,Hashtag Pages,Location / Hashtag / Sticker Stories,Save,Collections,Keyword Search,Integrity and Privacy和最近购物的各种功能。 。

With further ado, here are the 4 top learnings from my 4 years at Facebook & Instagram

事不宜迟,以下是我在Facebook和Instagram四年中的4个最重要的学习成果

学问 (Learnings)

杀死你的宝贝 (Kill Your Darlings)

I came across this quote originally from Stephen King’s memoirs on writing,

我从斯蒂芬·金(Stephen King)撰写的回忆录中发现了这句话,

Kill your darlings, kill your darlings, even when it breaks your egocentric little scribbler’s heart, kill your darlings.

杀死你的宝贝,杀死你的宝贝,即使它伤了你以自我为中心的小涂鸦者的心,也杀死你的宝贝。

which describes the process of detaching emotions from what you’ve written in editing, the art of addition by subtraction.

其中描述了从编辑中分离出情感的过程,即通过减法进行加法的过程。

As a software engineer working in a fast paced environment. The features you build, no matter how long they take, how many people worked on it, or how promising it seemed during planning, there’s always a chance it will get killed before you finish, after you finish but doesn’t ship, or ship and then get unshipped.

作为在快速节奏的环境中工作的软件工程师。 您构建的功能,无论花费多长时间,进行了多少工作,或在计划中看起来有多大前景,总有可能在您完成之前,完成之后但不发货或不发货就被杀死。然后取消运输。

The best way to create successful products for your customers is to iterate as fast as possible and learn from testing and data. Thrash is a natural positive byproduct of this approach to product development

为您的客户创造成功的产品的最佳方法是尽快迭代并从测试和数据中学习。 Thrash是这种产品开发方法的自然的积极副产品

Earlier in my career, I took a lot of pride in what I built but hadn’t learn to detach the result from the process. You can do everything right, build the perfect product that you all love with no bugs, then learn that your customers don’t love it as much or it tradeoffs against a different non-negotiable metric based on company priority.

在我的职业生涯早期,我拍了很多骄傲的是我建,但没有学会从分离过程结果 。 您可以正确地做所有事情,构建没有错误的人人都喜欢的完美产品,然后了解您的客户对它的喜爱程度不高,或者它会根据公司的优先级与其他不可商议的指标进行权衡。

Take pride in HOW you build your product, but detach your emotions and identity FROM the product. Reacting emotionally from the results reflects immaturity and inability to make rational & unbiased decisions. A failed project is only a failure if you didn’t learn from it or gained valuable insights about the product and your users.

以您如何构建产品而自豪,但是却将您的情感和身份与产品分离开来。 从结果中做出情感React反映出不成熟和无法做出理性且公正的决定。 如果您没有从项目中学到任何东西,或者对产品和用户没有宝贵的见识,那么失败的项目就是失败。

Fall in love with the problem, not your solution.

爱上问题,而不是解决方案。

Kill your darlings. Don’t let your ego get in the way of the team/company. Detach the result from the process and detach emotions from learnings.

杀死你的宝贝。 不要让你的自我妨碍团队/公司。 从过程中分离结果,并从学习中分离出情感。

奥卡姆剃刀/先做简单的事情 (Occam’s Razor / Do The Simple Thing First)

From an engineering perspective, the philosophy of the Occam’s Razor is— “the simplest solution is usually the right one”. This is something I constantly find myself going back to as the most important principle of problem solving.

从工程角度看,Occam的Razor的理念是:“ 最简单的解决方案通常是正确的解决方案 ”。 我不断发现自己是解决问题的最重要原则。

When there is overwhelming complexity in a proposed architecture or solution, I always like to take a step back, re-evaluate what we’re really trying to solve/build and think if there is a much simpler way to get to the same goal. Sometimes you’ll realize —

当所提议的体系结构或解决方案中存在极其复杂的问题时,我总是喜欢退后一步,重新评估我们真正试图解决/构建的内容,并思考是否有更简单的方法来实现相同的目标。 有时您会意识到-

  • The problem you’re trying to solve isn’t actually the real problem.

    您要解决的问题实际上不是真正的问题。
  • The complex solution is a poor band aid that actually takes more time than fixing the core root cause.

    复杂的解决方案是一种较差的创可贴,实际上,它比解决根本根本原因要花费更多的时间。
  • What you’re trying to build can be much simpler if you narrow the scope of the solution to just the problem.

    如果您将解决方案的范围缩小到仅此问题,那么您尝试构建的内容可能会简单得多。
  • The tangled complexity is actually unnecessary dependency that should each be encapsulated and decoupled.

    纠结的复杂性实际上是不必要的依赖关系,应将其分别封装和解耦。

Programming paradigms I subscribe to heavily in my work are Single source of Truth, Immutability, One Direction Data Flow, Single Responsibility Classes and Encapsulation. They all follow the same principle of keeping things simple by reducing variables and dependencies. There’s no perfect architecture but I find that if all layers of my architecture abide by this principle, the system I come up with always turns out more robust, easily understandable and extendable / delete-able. Refactoring is my all time favorite programming book that taught me many of these concepts.

我在工作中大量使用的编程范例是:真理的唯一来源,不变性,单向数据流,单一责任等级和封装。 它们都遵循相同的原则,即通过减少变量和依赖性来简化事情。 没有完美的体系结构,但是我发现,如果我的体系结构的所有层都遵守该原则,那么我提出的系统将始终变得更加健壮,易于理解并且可扩展/可删除重构是我一直以来最喜欢的编程书,它教会了我许多这样的概念。

From a product perspective, “Do the simple thing first” has always been the top value I resonated with the most out of Instagram’s core values. I like the simplicity in the Instagram app without bloated features compared to the main Facebook app. I believe is also due to this core identity of the Instagram product philosophy. This takes a very active role of addition by subtraction that I think Instagram does a great job of. By constantly unshipping features that are no longer relevant for the sake of simplicity in user experience and the codebase. Doing the simple also helps you move faster.

从产品的角度来看,“首先做简单的事情 ”一直是我在Instagram核心价值观中得到最大共鸣的最高价值观。 与主要的Facebook应用程序相比,我喜欢Instagram应用程序中的简单性,没有without肿的功能。 我相信也是由于Instagram产品理念的这一核心特征。 通过减法,这在加法中扮演了非常积极的角色,我认为Instagram做得很好。 通过不断取消运输功能,以简化用户体验和代码库,这些功能不再相关。 做简单还可以帮助您更快地移动。

软技能的重要性被低估 (The Underrated Importance of Soft Skills)

While coding skills is fundamental to becoming a good software engineer. From my observation, the best software engineers are often ones who have the combination of coding and very strong soft skills.

虽然编码技能是成为一名优秀软件工程师的基础。 根据我的观察,最好的软件工程师通常是兼具编码和非常强的软技能的工程师。

Engineering isn’t just about building things, it’s also figuring out what’s the right thing to build and also convincing others. Specially at Facebook, where engineers are expected to drive and own a big part of the roadmap and direction on projects. You’re not only working with other engineers of different stacks, but also designers, content, product, research, management, people from other teams…etc. Often times, getting alignment on what to build can be more challenging than actually building it. You need soft skills to make sure what you build can actually be shipped.

工程不仅在于构建事物,还在于找出构建正确的事物并说服他人。 特别是在Facebook,希望工程师在其中推动并拥有项目路线图和方向的很大一部分。 您不仅要与不同堆栈的其他工程师一起工作,而且还要与设计师,内容,产品,研究,管理,其他团队的人等一起工作。 通常,要对要构建的内容进行调整可能比实际构建更具挑战性。 您需要软技能以确保所构建的内容可以实际交付。

When it comes to creating ideas and getting buy-in for what to build, what I see the best engineers do is quickly hack a prototype together and get it in people’s hands to try. Pitching an idea is “easier done than said” rather than “easier said than done”. Playing around with something in your hands is at least 10X more enticing than seeing a mock and hearing words. Hackathons are a great place to flex that muscle.

当涉及到创建想法并为构建的内容买单时,我认为最好的工程师所做的就是Swift地将原型拼凑在一起,然后交到人们手中进行尝试。 提出一个想法“ 做起来比说容易 ”,而不是“说起来比做起来容易”。 玩弄手中的东西至少比看到模拟和听见的话更具吸引力。 黑客马拉松是锻炼肌肉的好地方。

When you want to ship a feature, not only do you need to build it, you also need to convince a room full of stakeholders and team members why your feature should launch with a narrative for the user experience, strong data support and buy-in from leadership.

当您要发布功能时,不仅需要构建功能,还需要说服一个充满利益相关者和团队成员的会议室,为什么您的功能应以用户体验,强大的数据支持和买入为基础进行叙述来自领导。

Soft skills isn’t just about verbal communication either, I believe writing skills is the most underrated skill in life. Being able to concisely and clearly get to the point with writing, and write notes / documentation that answer questions before they are asked. Writing is a key skill specially in a world where communication is shifting more asynchronous than real time.

软技能也不只是口头交流,我相信写作技能是生活中最被低估的技能。 能够简洁明了地指出要点,并撰写便笺/文档以在被问到之前回答问题。 在当今世界,通信比实时更加异步地移动时,写作是一项关键技能。

(极端)所有权 ((Extreme) Ownership)

Within our team / org, we have a manifesto called “DRI” — “Directly Responsible Individual”. The idea is to give engineers full end-to-end ownership of a project from planning to launch. The goal is to empower individuals, create accountability and reduce dependencies. We avoid dependencies on managers to tell the team what to do, and increase reliance on the team to self-organize and figure out how to proceed. A successful DRI make managers feel like they’re not really needed after assigning the project ownership.

在我们的团队/组织中,我们有一个名为“ DRI”的宣言-“直接负责的个人”。 这个想法是让工程师从计划到启动,对项目拥有完全的端到端所有权。 目标是增强个人能力,建立问责制并减少依赖性。 我们避免依赖经理来告诉团队该做什么,而增加了对团队进行自我组织并弄清楚如何进行操作的依赖。 成功的DRI使经理在分配项目所有权后觉得并不需要他们。

A manager of mine once introduced me to the book “Extreme Ownership” by Jocko Willink that goes along well with this concept and helped me grow tremendously at work and outside of work.

我的一位经理曾经向我介绍了Jocko Willink撰写的“ Extreme Ownership ”( 极限所有权)这本书,它与这个概念相吻合,并帮助我在工作中和工作之余获得了长足发展。

A key concept is things that happen to you that are not always your fault but are always your full responsibility.

一个关键概念是发生在您身上的事情并不总是您的错,而总是您的全部责任。

  • It’s not my fault that someone wrote a bad commit that introduce a bad bug, but it is my responsibility to think — How can I have architected my components better so this mistake was not even possible to introduce in the first place? What alerts or tests can I add to catch the regression earlier?

    有人写了一个错误的commit引入了一个错误,这不是我的错,但是我有责任思考—我如何才能更好地构建我的组件,这样就根本不可能引入这个错误? 我可以添加哪些警报或测试以更早地捕获回归?
  • It’s not my fault that this project I own failed due to x, y, z — but it is my responsibility to have tried my best to see it ahead of time to unblock and maybe prevented it.

    我拥有的这个项目由于x,y,z而失败不是我的错,但我有责任尽力提前看到它,以解除阻止并阻止它。
  • It’s not my fault that a teammate was struggling and could not produce at the level expected — rather than blame them about the project’s failure– what could I have done to make a more encouraging environment or to unblock them, etc. The failure is just as much on me as it was on them.

    队友挣扎并且无法达到预期的水平并不是我的错-而不是将项目的失败归咎于他们-我可以做些什么来创造一个更令人鼓舞的环境或疏通它们,等等。失败就像对我来说,就像对他们一样。
  • It’s not my fault that what the team needs the most does not align with what I need the most for my career progression, but it is my responsibility to manage up and communicate explicitly to make sure both my career progression and team needs are taken care of.

    团队最需要的与我最需要的不是我的错,这不是我的错,但是我有责任明确管理和沟通,以确保我的职业发展和团队需求得到照顾。
  • It’s not entirely my fault that my life is the way it is, but it is entirely my responsibility to make it the way I want.

    我的生活不应该是我的全部错,但我要完全按照自己的意愿去做。

Take extreme ownership over your codebase, your project, your career, your mindfulness, and your relationships will make things easier for you and everyone around you.

对您的代码库,您的项目,您的职业,您的正念和您的关系拥有极大的所有权,这将使您和您周围的每个人都变得更加轻松。

结论 (Conclusion)

There’s no way to cover the amount of things I’ve learned in the past four years with a few bullet points, but I wanted to take my own advice in keeping this writing simple and concise. I still have a lot more learning and growing to do, but I hope these personal lessons can still be helpful!

在过去的四年中,我无法通过一些要点来涵盖我学到的所有知识,但是我想采纳我自己的建议,以使本文简洁明了。 我还有很多要做的事情要学习,但我希望这些个人课程对您有所帮助!

One learning that stands out to me from my career progression at Facebook is the most rewarding thing is not focusing on what you’ve done but what you’ve empowered others to be able to do, that’s the best way to increase your scope, scale your impact and grow your influence.

从我在Facebook的职业发展过程中脱颖而出的一项学习对我来说,最有意义的事情不是专注于您所做的事情,而是您赋予他人的能力,这是扩大范围,扩大规模的最佳方法您的影响力并扩大您的影响力。

At four years of Facebook & Instagram, I learned to do the simple thing first, kill your darlings, value soft skills and take extreme ownership over my work and my life. These lessons not only helped me in my career but also had an enormous impact on my life outside of work.

在Facebook和Instagram四年中,我学会了首先做简单的事情,杀死你的宝贝,珍惜软技能,并在我的工作和生活中拥有极端的主人翁感。 这些课程不仅对我的职业生涯有所帮助,而且对工作以外的生活也产生了巨大影响。

I’ll end this writing with 1 more thing, my favorite aphorism I learned at Facebook that I think of all the time that empowers my ambitions and adventures in my life the most.

我将在本书结束时再写一件事,这是我在Facebook上学到的最喜欢的格言,我认为每时每刻最能激发我一生的野心和冒险。

Huge thanks to Mike Chuang, Yvon Huang, Justin Kong, Brian Budd, Stepan Parunashvili, Joe Averbukh, Jesse Hendrickson, Alex Reichert, Giff Huang for reviewing this essay and providing valuable feedback!

非常感谢Mike Chuang,Yvon Huang,Justin Kong,Brian Budd,Stepan Parunashvili,Joe Averbukh,Jesse Hendrickson,Alex Reichert,Giff Huang审阅了这篇文章并提供了宝贵的反馈意见!

翻译自: https://medium.com/swlh/4-lessons-from-my-4-years-at-facebook-instagram-as-a-software-engineer-cc0b7c18678

instagram软件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值