Facebook大神赵海平入职阿里,花名叫FB...
赵海平同学人还没来,就已经徘徊阿里内网头条数周,上周五终于现身西溪,阿里的小报君第一时间采访了赵海平同学,感觉自己的平均智商都被拉高了么么嗒。
嗯,问题开始前,先抛一段列传体认识一下这位大神:
海平赵君,燕赵人也。年未弱冠已好奇巧编程之学。丁卯(1987)以状元入北大习生物,后弃美纽约大学博士,入普林斯顿获计算机科学硕士。曾供职微软年余,丁亥(2007)入脸书,创建HipHop,重写PHP,运速且五六倍于前,节余以数十亿美刀计。
脸书且行且繁,赵君倾数年心力,以异步处理优化分布式系统,嵌yield与generator于PHP,以助其删繁就简。乙未(2015)春,海平赵君远辞硅谷而大隐西溪,入盟阿里。赵君乐牌、好犬、喜掌游、擅乒乓,自得其乐,胜负不萦于怀也。旅美廿载余,赵最以麦迪为素昧知己也,其技至简至极。燕赵多慷慨之士,赵以大匠之志入阿里助其重梳架构,其志不自言也。
好啦,为了尽量原汁原味奉上大神语录,所以下文采用Q&A格式呈现:
Q:你在美国二十多年,作为Facebook前50名软件工程师,是什么让你下定决心加入阿里?
A:其实对于我来说,这是个非常自然的选择。阿里人自己看阿里可能比较谦虚,实际上阿里的软件系统规模之大在全世界的互联网公司都是遥遥领先的,双11当天的交易量惊人,甚至超过美国感恩节全周的线上交易量。这么大的机器规模,怎么提高性能和稳定性、有效的利用机器,我在Facebook工作多年,做了很多这方面的工作,所以对这个领域非常感兴趣。特别是阿里用Java做了很多东西,对我来说又是一个新的软件环境,就更加吸引我。我之前还从来没有为中国的公司工作过,从美国回中国,也让我充满了好奇,十分期待能够体验中国的顶尖互联网公司是怎样的,在这里工作是什么感受。杭州是个很棒的城市,附近的上海、宁波、南京、苏州等好多城市我都很喜欢,趁着在杭州工作的机会,也希望多到周围走走,感受一下江南的文化。
Q:在Facebook的8年,你觉得最大的收获是什么?
A:2007年我加入Facebook的时候员工刚刚超过100人,只有40几个工程师。那个时候Facebook已经有萌芽状态要突飞猛进,用户开始急速增长,可当时的软件系统还处于很原始的阶段,所有的用户信息都还在一台机器上,我们去了之后Facebook不断扩大,我们也不断地跟着改软件,跟上业务的发展。这一点Facebook和国内的互联网公司非常象,大家都是边走边摸索,不断调整软件和架构,在业务高速发展的驱动下不断成长。这也可以说是这个时代的特点。可能每个公司成长的经历不尽相同,但本质上都是业务带动技术发展。跟着业务一路狂奔到一定的阶段,终于可以喘口气的时候,就要坐下来认真想想,从企业文化的角度看,Facebook是一个去中心化的公司,每一个人都可以主动站出来说“我要做这件事情”。我当时恰好发现了webserver性能不够,就主动跳进去做PHP的优化,也恰好很幸运地把这个东西做出来了。因为公司很大,你做的东西自然就很有意义,所以天时、地利、人和,这是我的运气。我肯定不是这个世界上唯一能解决这个问题的人,但我恰好这个时间在这个公司做了这件事,充分发挥了自己的作用。这就是我在Facebook的最大体会,不论是学习还是找工作,一个人要争取把自己放到一个有可能会发挥巨大作用的地方。象阿里巴巴、Facebook这样的公司就给我们提供了这种机会,因为规模特别大,你做的事情的意义就被自动放大了,比如说你让系统快10%,就可能节省几百万美元、几千万美元。从另一个角度看,当我们的业务量大到一定的程度,你写的软件有任何问题,哪怕是很小的问题,一下子就能暴露出来,你就能马上改好。和科研机构相比,这就是我们得天独厚的优势,有巨大的验证场景,在业务的驱动下把优化做到极致,这是在公司做软件一个宝贵的财富。
Q:那在Facebook有没有遇到过项目几乎推进不下去的困境?
A:当然会有,即使那个PHP的项目,当时大家的意见也并不是完全一致的,有人提议干脆用Java重写程序。但大家有一个共识,就是用数据说话,究竟哪个路线能带来最大的性能提高,我们就走哪条路。当时的优化测试结果,我们的速度提高了50%,Java提高了25%,最后大家就决定还是走C++的道路。每个工程师都有自己的技术信念,所以公司里有不同的意见完全可以理解,但重要的是我们基于什么做决定,只要大家都基于数据,就形成了一种默契。大家有不同意见时要抛开具体的事情,先探讨出一个统一的标准作为判断依据,这点达成一致,做决策就容易了,因为大家的本意都是好的,都是为了公司利益。
Q:入职第一天就参加了部门月会,堪称无缝落地,感觉如何?你加入的是技术保障PACE(性能架构容量团队),接下来的工作重点是什么?
A:其实我提前1周就开始倒时差了,每天晚睡一点儿让身体适应。这好像是我的性格,我中学的时候计算机刚刚出来,只有午饭时间才能去机房,每天中午都急急忙忙把饭吃完,一路狂奔,先找老师要钥匙,再去机房,就是为了多省几分钟上机。入职第一天正好赶上月会,听了不少东西。开完会就和毕玄聊了两个小时,他提了几点希望我接下来做的东西,比如性能、稳定性、容量、运维、架构,恰恰和我想做的一模一样,所以那天谈得特别高兴,他一边讲,我一边喜形于色。接下来第一个阶段,我会先从了解问题着手,目标是建立一套非常强大的Profiling(软件剖析)系统,这样我们就能知道运算的时间花在哪儿了,有多长时间,这个时间是被CPU用掉的,还是被网络用掉的,花的内存有多少、网络有多少、磁盘IO有多少,如果咱们能够特别精细的把所有的系统都无死角的展现到全员面前,而且是实时的,可能我们技术保障部都不需要说哪儿有问题,开发的人员就已经自己看到问题了。我希望能够花很多很多时间把这套系统做的非常好,让阿里所有的软件都能享受到这个待遇。
Q:刚刚看到你给自己起好了花名,“福贝”有什么美好的寓意吗?
A:天哪,花名真是太难起了,昨天下午我一直在选花名,赵云、伯昌(周文王,西伯姬昌)、邵雍(北宋易学家)都不能用了。来之前Facebook的同学知道我来阿里要起花名,就说你选个FB打头的名字,我先想到福宝,也被人用了,干脆就福贝吧,给阿里带来福气和钱财。而且我是满族人,如果能起三个字,我就用“福贝勒”了(笑)
Q:在网上看到你对各个阶段工程师的建议,特别提到资深人士的一个重要任务就是帮助年轻工程师成长,你加入阿里后在这方面有什么想法吗?
A:其实我在面试时就说过,我来阿里有几个任务:第一个当然是积极参与技术上的活儿;第二点也很重要,我希望在做第一件事时,可以带动一批人,让大家共同成长为技术很强的专家,因为任何项目都需要有一个或几个强大的团队。我肯定会和大家无私分享,帮助整体业务水平提高,如果大家需要C++或debug方面的知识,欢迎随时来找我。
(看到这里,大家应该都懂了吧,技术保障PACE团队急需人才,有机会跟着赵海平、毕玄这样的大牛成长,还不动心吗。有想法的同学,欢迎随时找我们的HR妹妹倩男)
最后,小报君还是想在这篇已经长的很不科学的采访稿后,再附上一篇赵海平在Facebook时写的给程序员的建议,因为保障君贴心的帮大家翻译了一下,都是干货!
Forjunior programmers, I highly recommend spending time with a wide variety oftechnologies, including HTML, CSS, JavaScript, PHP, C, C++, Java, and SQL. Thiscan help you identify your interests and potential directions for careerdevelopment. Knowledge-wise, it is also extremely beneficial to have broadunderstanding of different problem solving methods.
年轻的程序员们,我强烈建议大家尽量多花时间学不同的技术,象HTML, CSS, JavaScript, PHP, C, C++, Java和SQL。这能帮助你发现自己的兴趣所在,选择未来的职业发展方向。拥有丰富的知识储备,也能帮助你建立广阔的视野,通过多种方法解决问题。
For intermediate-level people, I think Facebook is one of the greatest placesfor having impact. By taking on challenging tasks, you can make changes thataffect millions of users. Nothing is more exciting than seeing your code changethe world. Facebook counts on our talents to come up with genuine ideas,respectful communications, and great implementations.
有经验的程序员,如果你希望自己的工作产生影响,我觉得Facebook是最好的选择之一。通过极富挑战的工作,你能影响不计其数的用户。用自己的程序改变世界,还有比这更激动人心的事吗?Facebook需要依赖我们的天才们去创造革新的想法,相互尊重的交流和完美的最终实施。
For senior people like me, it's really our job to coach young engineers on howto approach technical problems systematically and how to resolve disagreementsgracefully. The job comes with the great responsibility of supervising theentire engineering force to move in a direction that we as a company are happywith. I hope senior engineers are willing to spend their time helping otherpeople grow instead of just focusing on their own work. By putting ourselvesinto "sharing mode," we can help build a great software communitywithin our respective companies that will proliferate for long, long time.
对于资深的技术人,我们必须要担当年轻工程师的导师,帮助他们学习如何系统的解决技术问题,如果优雅的处理冲突。这项工作责任重大,要带领整个工程师团队向正确的方向前行,为公司创造价值。我希望资深的工程师乐于投入时间帮助其他人成长,而不是一味专注自己的工作。切换到“分享模式”,我们就能帮助自己的公司建立一个伟大的软件社区,而且这个社区能够长久的发展。
点击下面的阅读原文,加入21CTO社区!
-------------------------------------
21CTO.com 是中国IT互联网界第一高端人脉与社交网络。
21CTO以互联网技术、产品为主线,秉承自由,分享,开放之理念,发扬友好、互助、共赢之精神,为软件开发者,架构师,技术管理者,技术创业者、产品经理服务并提供相互学习、线下活动等价值。
欢迎与我们一同分享那些有价值、有意思的观点和事情,公众账号:we21cto