Facebook,Amazon,Apple,Netflix和Google(FAANG)是世界上一些最大的科技公司。由于许多原因,它们可以很好地工作。如果您是FAANG公司中的任何一家公司的雇员,您很可能将获得丰厚的薪水,并可以访问强大的开发人员网络以进行学习。如果您不在FAANG公司工作,您可能会感到有些疏忽。 

但事实是,并非所有软件工程角色都是相同的。您从事的项目,向其汇报的人员以及您所处的环境将有所不同。在这篇文章中,我将详细解释为什么存在这些差异,并分享我在篱笆两侧工作的一些个人经验。我将介绍您在FAANG公司担任软件工程师的经验,以及您在非FAANG行业的大型公司工作的经验。

当工程师制造产品时

FAANG公司的软件工程角色最大的不同是产品。软件是每个公司产品或平台的组成部分。软件的必要性要求每个公司都拥有足够的工程师。您的公司将雇用数以万计的其他工程师,并且可能有数千名正在从事您的特定产品或项目。 

您将进入一个强大的基础架构,该基础架构是您作为开发人员取得成功的基础。期望会很明确,协议也会结构合理。一切都会有一个简单有效的过程;如果没有,它可能正在开发中。总会有人来审查和帮助调试您的代码。将会有深入的内部Wiki,这些维基将帮助您解决可能遇到的任何问题。 

Google是FAANG公司如何大规模运作的一个很好的例子。我记得当我访问Google进行现场采访时。在采访中,一些Google员工带我了解了公司的开发基础架构。该基础架构的一部分是无缝代码审查。有一个内部工具,开发人员可以要求其他开发人员进行代码审查。如果他们需要设备,那么Google工程师可以从IT部门获得所需的一切。大多数时候,设备是免费的。免费的工具是为员工提供快速周转的时间,以便他们能够发挥出最佳的工作效率。 

在FAANG公司,您会被技术娴熟的人员包围。您将遇到许多出色的软件工程师,他们像手背一样了解代码。您还将遇到知道如何使用代码的非技术人员。对于FAANG公司而言,软件是关键,而员工也知道要投入使用。这意味着每个人都需要充分了解软件才能使用它。非技术人员不需要知道如何编码,但是他们需要在概念上理解它。该公司负担不起非技术经理提出不切实际的功能的想法。他们不希望工程师与其他任何人之间的沟通和产品效率低下。 

在Facebook期间,我遇到了许多知道如何编码的非技术人员。Facebook要求产品经理完成为期六周的编码新手训练营。提高的知识水平以多种方式对公司有所帮助,主要是管理人员了解技术规范。他们提出了创新和现实的功能,工程师可以使用这些功能。非技术经理并没有使程序员摆脱无知。利益相关者之间没有沟通交流。更好的是,队友对完成任务有统一的了解。

由于FAANG公司需要聘用这么多工程师,因此他们不断争夺最好的人才。这种竞争以多种方式影响软件工程角色。每个FAANG公司都会尽力为您提供最佳的工作环境。这不仅包括强大的开发基础架构。FAANG公司还将提供一些出色的工作待遇-高薪,免费每日餐点,有偿离场工作和名人活动。 

FAANG公司之间的竞争并不总是对您完全有利。比赛将吸引最优秀的工程师,他们将追究您的责任,以产生最佳的工作成果。FAANG公司将根据他们自己的严格内部绩效计划来衡量您。他们设计这些程序以确保所有工程师都能完成出色的工作。如果您不努力,他们就会放手。 

在Facebook上时,我经常遇到在其他FAANG公司工作过的员工。来自Facebook的招聘人员将针对另一家FAANG公司的员工。在使用Facebook的整个过程中,我看到了每个人的辛勤工作。工程师坚持不懈地交付最高质量的工作。他们确保他们执行了测试和验证过程的所有方面,并在工作之后花了很长时间来修补似乎很小的细节。他们鼓励其他所有人也这样做。标准很高,但是每个人都可以完成任务。如果不是,他们发现自己失业了。 

非FAANG行业的期望

毫无疑问,软件驱动着许多FAANG公司的产品和平台。作为FAANG公司的软件工程师,您的代码将成为组织的命脉。但是,在非软件驱动行业中,软件工程角色又如何呢? 

对于非FAANG行业的软件工程师来说,您将有更多机会增加价值。这些机会部分是由于没有那么多的开发人员。这意味着您将能够为您的行业带来新鲜的新想法,可能会破坏整个行业。您可以增加价值的另一种方法是自动化公司其余部分的任务。当您认识您的同事时,您将发现可以开始自动化的领域。无论是报告还是机器学习,都将为您打开一扇开放的大门。其他人将开始认识到您通过软件增加价值的能力。与您在FAANG公司工作相比,管理层可能会注意到并提拔您。 

我记得我在Facebook工作之后在建筑公司工作的时间。建筑公司的开发人员要少得多,我是整个办公室中五个程序员之一。在某种程度上,这种稀缺令人沮丧,但是它提供了增加巨大价值的潜在途径。到我离开时,我已经对他们的财务估计模型进行了大修和自动化。该模型可以以95%的准确性预测给定项目的成本。另外一位高级软件工程师创建了一个内部工具,该工具可以根据项目经理的设计模型生成建筑提案的3D模型。内部工具优化了公司的客户关系。客户可以进来,立即知道公司可以提供什么。如果您最终从事非FAANG行业, 

对于软件工程师而言,另一个明显的不同是您被视为负债,而FAANG公司则将您视为资产。在FAANG公司,您很有价值,因为您为公司的利润做出了贡献。在科技行业的公司中,情况并非总是如此。公司将像其他所有业务职能一样查看您。您必须每年(有时每季度)证明自己的费用。 

因此,软件行业以外的公司可能会向您支付更少的费用。该公司将要首先支付直接贡献者。该组可以是项目经理,审计师,甚至是客户主管。但是,如果您的软件不是收入的主要推动力,就不要期望获得高额的薪水。 

根据我的经验,在软件驱动的行业之外,您可能会与临时员工一起工作。公司通常希望将软件集成到他们的业务中,但不愿意为全职开发人员付费。然后,他们将雇用临时工,一次工作6至12个月。临时工可能会出现许多问题。承包商可能不了解您的开发基础结构。您可能会花费不必要的时间来确保双方都在同一页面上。当他们离开时,您可能需要花更多的时间来了解他们留下的代码。他们所拥有的任何知识通常会在离开时离开公司。