前段时间,有幸接触到了谷歌的软件工程师Zoe。
一位女程序员,相继在美国贝尔实验室、诺基亚研究中心以及惠普实验室等处从事理论算法研究,在视频编码与视频通信的算法设计与实现上深耕数载。
后转入工业届,参与各位视频通话产品的设计与推出,例如苹果(Apple)的FaceTime,谈客 (TangoMe)Video Calls,以及 谷歌眼镜(Google Glass)专属Hangouts Video Calls等等……
与国内很多技术人发展之路不一样的是,Zoe从没有想过要转型做管理,一直专攻于做一名好的工程师,研发出一款人人都爱用的产品。她曾说过:“想要成为一名工程师,真的没有什么捷径可走,至少对我来说,真的需要特别的努力。”
以下是Zoe针对一些职场问题的解答,现整理分享给大家,希望看完的你可以更加坚定自己之后的目标。
1、针对音视频研发这么一个相对窄众的领域,如何去适应行业的极速发展呢?
2、在现在这么一个技术概念爆炸的时代,音视频的研发同学应该如何摆正自身去看待这些问题呢?
Zoe:
嗯,这个问题我最近也一直在想,尤其是最近AI 技术非常火。
我想举个例子,我们在谷歌的音视频编码处理团队,其实这块技术我们要说窄众,实际上也是窄众中的窄众。因为我们团队源自十几年前的一个小团队,叫ON2。当时ON2团队做的 VP8项目甚至被乔布斯转发到苹果内部团队中diss过。他当时的评论是:VP8这个项目是没有前途的。
但后来VP8变成了VP9项目,这个团队仍旧还在坚持。在谷歌收购之前,这个团队经历了种种的起起伏伏,甚至快要死掉,即使是在收购初期,VP8团队在谷歌内部仍旧是非常边缘的团队。只不过后来VP8发展到了VP9,只不过后来 VP9被Youtube应用,只不过Youtube应用得非常好而且发现挖掘出了很多机会,一下子这个团队就变成了谷歌的核心。
最终,谷歌一推动,所有的视频都需要应用VP9来进行编码。
所以,我很深的一个感触就是,很多时候我们会不知道自己做这个事情是不是对的,但只要你去做,坚持,终点一直都在自己的心中。有信念,有stubborn的精神。
技术学习有捷径吗?
脚踏实地往前走,应该怎么走?
走向哪里呢?
Zoe:
一开始工作的时候,主要是在实验室,所以当时的目标是想成为一位科学家。但后来发现,实验室所做的工作和真正的产品是有脱节的。而且,在硅谷,我发现大部分的公司在接触创新项目的开端,有些是不需要自研的,直接买初创公司就可以了。
因此,我想要转型。
我转型后的第一家公司是苹果,苹果对我的影响是巨大的。由于在实验室一直都在做算法,刚进公司的我甚至连最基本source control都不太会。
刚进入苹果的状态,我老公用“七上八下”很好地总结了——早上七点钟到,晚上八点钟后走。
“
想要成为一名工程师,真的没有什么捷径可走,至少对我来说,真的需要特别的努力。
”
首先,你的代码行数要够,做多了自然会有感觉和自信。
另一个则需要兴趣使然。我从学校毕业至今,一直都在做视频压缩+视频通信这一块。我的初衷一直没变,一是希望自己所做的产品大家都可以用到,二是希望自己做的东西能够相对漂亮。
回顾自己的成长历程,能走到现在,一方面是自己的兴趣驱动,另外一方面是团队以及环境的推动,帮助自己不断成长。
像谷歌,一个比较大的特点就是内部没有其他的branch,我们所有的代码都是commit 到同一个code base。所以,它有很多的软件能够保证你的code质量。但很多时候你的code中的bug,别人不一定会发现,所以你必须得要求自己,不断优化完善自己的代码,确保在自己的代码质量。
最后总结一下:
要对自己有要求,并且能够在自身兴趣的推动下,让自己对所从事的事情更加自信,以形成一个正反馈。
平时的工作时间是怎么分配?
如何平衡和工作?
Zoe:
我一直记得鲁迅先生所说的,他从来不认为半个小时是个很短的时间。但当你工作之后,你会发现,半个小时真的不是那么容易去争取和珍惜。
所以有时候,我们必须要去争取看起来比较碎片的时间。我属于early bird,作为妈妈,因为晚上需要给孩子读个故事可能就休息了。但我会早起,尤其是在苹果工作的时候,因为苹果的deadline是不允许被错过的。所以我一般会早上四点到公司开始工作,然后七点回家给孩子做早餐。
一段时间下来,发现这样并不是特别奏效。因为当你发现你争取到了更多的工作时间,但你的效率并不一定能够得到保障。
渐渐地,我会尽量去压缩自己生活中的其他时间,提高自己的效率,比如我一年只穿一双鞋,这样我可以不用每天早上考虑自己要穿什么鞋。但接触跑步之后,慢慢对跑鞋有了研究,所以我开始会有两双跑鞋。
但整体上,我对自己生活整体的日程会有比较规整的安排,确保自己每天生活的 schedule 会保持一致。
其实到了三十岁左右,所有的研发都会面临一个选择,是继续往技术专家这个路线上发展呢?还是技术管理岗位?
如何判断,如何选择?
这两条路分别怎么走?
Zoe:
从我的经历看过来,我好像一直都还没有机会去做管理。
在处理各种整个项目的过程中,会发现很多新的挑战,而且我会觉得这些挑战都很有意思,因此过往的经历也帮助塑造了今天的我,一直都在做一个individual contributor。
另外,在谷歌做 individual contributor 还是非常舒服的,谷歌给到工程师很大的话语权。工程师希望能做什么,管理层可以给到很大的支持。而且manager 需要通过一定的团队管理,让工程师有足够的团队归属感来保证业务的发展和前进。
作为一个程序员,想要去国外顶尖的互联网公司,要怎么做呢?
如何能够通过海外的面试?
有什么关键点吗?
Zoe:
即使是现在的我来做选择,我肯定也会优先考虑国内的公司。
回过头来看我自己的经历,如果你要进苹果的某个组,你只要跟这个组沟通面试就可以;但谷歌的经历,你躲不开的一点就是刷题。举我们自己音视频团队作为例子,我们肯定希望候选者能够有一定的音视频编码背景。
我们现在团队一部分成员是像我这样通过社招进来的,我社招也刷了题,然后一开始进入了 google glass的hangouts团队,因为我之前一直从事的是视频通话业务,后来transfer到了现在的codec团队。另外一部分成员来自实习生,谷歌对实习生特别照顾,而且可以面向大一和大二的学生提供专门的实习生岗位。
分情况而论: