谷歌技术主管:当我们选择工作时,什么最重要?

0
程序员 C/C++ 机器学习 10433 次浏览

一位年轻的工程师最近问我如何从几个工作机会中选择。是应该接受更成熟的高科技公司,像谷歌或Facebook的软件工程师职位,还是在快速增长的中型公 司?还是在一个小但有前途的创业公司?其实更多的人想问:当我们需要从一些工作机会之间做出选择的时候, 我们应该考虑哪些因素?



一般来说钱和地理位置是经常起作用。但如果我去建议的话,最重要的是如何最优化的学习 - 无论是学习如何写出更好的代码,如何打造一个产品,如何领导一个团队,或者别的东西 - 从工作环境中选择能学最多的。这对刚毕业大学生尤其如此。当你工作了一段时间,建立不错的基础,为未来职业发展机会提供更多的可能。


即使是学习,也有许多维度。你学习的最佳场所部分取决于地方,另一部分取决与自己的喜好和舒适度。在这篇文章中,我们讨论学习的十个重要方面。


  1. 公司与团队成长


当桑德伯格在决定是否加入谷歌。谷歌CEO埃里克·施密特给的宝贵忠告是:“如果你坐上了一艘火箭飞船,不要问什么座位号。赶紧上车。“ 这个建议为她的职业生涯快速发展打开了大门,她后来成为了Facebook的COO。


更快增长意味着更多的挑战和责任。在快速发展的公司,往往有更多的问题需要解决,这意味着你有充分的机会去学习,有很大影响力。增长也意味着它更容易 吸引人才,这反过来又使得它更容易建立一个强大的团队,以产生更多的增长。而另一方面,如果缺乏增长导致停滞和政治斗争,员工可能会视野局限失去分享的机 会。最后变得更难找到并留住人才。


按照桑德伯格的思想,你可以找到下列特质的公司,它们规模不断壮大基于某种增长指标, 比如每周活跃用户的增长速度,全年性收入,员工人数,或者一些核心业务考量。公司一般都会保护这些数字,所以你要尽可能去找到它们。即使在更成熟的公司, 不同的团队根据公司重点以不同的速度发展。找到那些正在成长的地方提高你的学习速度。


2.培训与辅导


一些老牌公司投入不少资源去开发新手的培训教材。例如谷歌,编制名为codelabs去解释他们是如何使用那些核心系统和为什么存在,编译不同的编程 语言的最佳实践和设计文档去解释缘由和细节背后的基础设施指南。我当时加入谷歌的搜索质量团队在我硕士毕业之后,我的第一个半年我吸收了巨量学习资料。如 果你很好奇并主动地学习,在更成熟的高科技公司经常会有一个巨大的知识库提供给你。


较小的公司将不会有相同体积的资源,但即使创业公司,也知道让新员工尽快熟悉和投资创建类似学习库的重要性。例如,我在Quora的,我们写我们自己 的codelabs,帮助新员工学习关键点,我们给新员工分配导师,以确保他们有效地不断提升。现在我们已经写了丰富的产品规格,设计文档,最佳实践指 南,并且我们已经在公司内部做书面和共享有用的资料。我们的内部资源,无论是质量和记录知识量都比我们26人的团队要放大很多。


3.团队


“你是你花时间最多的五个人的平均值,”美国企业家吉姆·罗恩曾说。你每天跟谁一起工作对自己的学习速度会产生难以置信的巨大影响。当你你决定在哪里工作,你了解到的会一起共事的人,要确保他们是不是值得你学习的,这一点是很重要的。


有时候,在大公司你很难了解你的团队。当我在谷歌2005年申请工作时,公司没有多少新员工队伍,直到他们已经接受了工作Offer。当拥有近 10000名员工的时候,工程师的技术能力和管理者领导能力的差异实际上是相当高的。所以,除非你已经预先知道为特定的团队工作,你可能会被分配到一个强 大的团队或运气不好分到一般的。此外在更成熟的公司换组会产生问题 - 典型的期望是,你会留在一个团队中至少工作6个月到一年 - 这就意味最初的团队分配很重要,为了你的职业发展和工作幸福。


相反,在一个小型创业公司,或者中等规模的公司,你通常已经在面试中遇到你以后你工作的大部分人。你甚至可以在谷歌和LinkedIn查找他们的工作 经历,做一下背景调查,以确保他们是伟大的人(仅仅让公司这样做背景调查是不够的)。这样你可以对你的团队有更好的感觉。


4.节奏


初创企业一般比大公司工作节奏更快,中型公司往往两者之间。在大公司,提交代码审查的周期从每周,到每两周或每月发布;上线准备;正式产品审批会议的 所有组织结构会避免一些产品分裂。但是,结构往往以发展速度为代价。在初创公司,持续部署(其中每一个代码提交都可以上线),后提交的代码审查和轻量的审 批流程的旨在允许快速迭代,同时提供了基本的质量控制。


在早期阶段的创业公司工作往往意味着更长工作时间(我曾经工作每周60-80小时),但也不一定。Treehouse工作4天,32小时每周。 而在Quip,我的很多同事都有家庭和孩子,我们有一个良好的平衡工作计划,许多人每周按40小时正常工作。


5.项目结构


在大公司,你可能会很长时间专注于同样的团队成员和特定领域。例如,在谷歌,我第一年就做查询优化的工作,第二年就只做搜索的UI实验。如果你有一个特定的兴趣和领域可能也不错。在成熟公司项目也往往更有条理,你可从你的技术主管,产品经理或经理能更多的指导。


在一个小公司,你能否发现同样的兴趣点和深度取决于特定的团队结构。在Ooyala的,我在那经历了30到70名员工成长,作为技术主管,几乎集中花 了一年时间把分析的技术做到领先。而另一方面,在Quora和Quip,团队结构已经更加流畅 - 做一个项目几个星期就转到别的是很经常的。在过去的几年中,我有机会在工作中接触用户增长,实验框架,移动端,运维,推荐,垃圾邮件检测,分析及更多的领 域。项目的多样性有助于加快自己的学习曲线。


6.自治与影响力


由于在一个更小的团队的创业公司,对很多产品功能直接掌控,你最终会比在一家大公司有显著自主权和影响力。当我在谷歌工作过的UI实验组,任何明显改 变(甚至实验)必须经过每周UI审查,然后由搜索产品VP,玛丽莎梅耶去批准。在创业公司,你可能会做出许多由自己或团队的决定。


这种影响在产品层面(哪些做哪些不做,以及如何构建它)都适用,并在团队层次上(怎么做招聘和面试,如何安排团队优先级,鼓励什么编程实践)。而这意 味着你将有一个更大机会去影响产品和团队,这又可以推动你在工作中更好的学习。而在一个更成熟的公司,如谷歌,很难发挥一样大的影响力,因为许多做法已经 深入人心。


7.规模


在更成熟的公司的,虽然可能更难以发挥影响力,但你能通过他们更大的规模做出很大的影响力的事。比如谷歌提供数十亿的查询,每天PB级数据。 Facebook有超过13亿的月活跃用户。 Netflix公司占了美国所有的互联网流量的三分之一。 如果你对大数据和流量的问题感兴趣,肯定在更成熟的企业更容易找到机会。


在规模较小的公司,你可能会发现机会,比如在Amazon Web Services运行机器或分析使用Elastic Map Reduce运行数据,但它数据量是很小。这就是说,你通常情况下不需要进行规模数十亿的计算,让你觉得有很大的区别。数字规模重要性取决于你是否有这种 价值需求,要解决的问题的类型是否需要这么多的数据。对于像机器学习领域,例如,你需要一定的规模数据才能建立有效的模型。


8.自力更生


在创业公司,在你不知道的代码库去查看并修改,创造多种工具,帮助自己更快迭代,这能让你走的更远。在规模较大的公司,你可以指望专业团队去配置数据 库达到更快运行速度,修正错误的编译器,创建构建工具,并监督线上服务。在创业公司,你可能会自己负责找出上面的问题。你仍然可以用用第三方咨询,但最终 的责任还是落在了你身上。


你的独立水平加速或损害你的学习曲线吗?这最终取决于学习者你的类型 - 你是更加自我导向还是更喜欢更多的指导?


9.失败风险


在创业公司,你很可能会采取降薪以换取更多的股权,但如果你加入多轮以后的公司,有一般不会有生计的风险,比如你可以租一个办公室公寓或者外出吃拉 面。如果你在硅谷,是一个优秀的工程师,而工程人员的需求是如此之高,真的不难找到另一份工作。更大的风险是,创业公司不增长,最后无缘无故结束了,而你 没有对结果产生足够的影响力。这类型的风险不仅仅是适用于创业公司。在大公司,你工作的一个新项目(甚至是一个新功能),也有被砍的类似风险。在谷歌我也 看到有些项目几个月或几年工作后从未推出。


失败是可以有学习的机会,只要你在结果中发挥了重要作用,因此可以在下一次改变你的行为去避免覆辙。但是当失败出现在从你的影响圈之外时,这样学习是比较有限的。当你对结果可以产生较大的决定权时,你会学到更多。


10.联系


连接新人是一个很好的打开你头脑思维的方式,也让你更多地了解周围令人兴奋的事情。加强人脉与你的关系还可以帮助你找到未来的新的偶然机会。


在创业或中型公司公司易让你有更多的交流机会,主要因为小公司对付的问题一般都很难,而且他们愿意投入时间来帮助对方成功。虽然说即使在一家更成熟的 公司也没有人能阻拦你去社交。但特别是如果你在像硅谷这样的技术中心工作,有足够的活动(派对,烧烤,聚餐,黑客比赛,技术讲座等),在那里你可以跟别人 共享相同的兴趣。你甚至可能会在一些热门咖啡店里碰到一些技术人员。

请尽量让自己的答案能够对别人有帮助

64个答案

默认排序 按投票排序
1 2 3 4