浙大CS延毕本科生,今年拒掉Google硅谷总部offer的就是他

来源:互联网 发布:阿里的数据平台两个 编辑:程序博客网 时间:2024/04/30 00:39

http://page.renren.com/600914393/note/884703114

找工作总结【转载】2012年11月25日 23:14:29

首先说明一下,我本来是浙大计算机2008级的学生,后来因为无法按时毕业延期了一年,于是就变成了2013年毕业,所以今年才开始找工作。

然后剧透一下,我最终选择的未来雇主是 Jane Street Capital,职位是 Assistant Quantitative Researcher,工作地点在香港。

以下开始正文。

暑假的时候都在搞 ACM 集训,觉得找工作的事还早。开学了以后听说各路大牛早已面试了各种公司拿到了各种 offer 就开始有些心慌。虽然我自己是一心想去国外工作的,但是我家里不怎么同意,所以一开始没特别考虑出国工作的事,想着等那些企业来校招的时候投投简历得了。然而自己还是不愿对出国工作死心,于是就经常在 GitHub Jobs 和 StackOverflow Careers 这两个网站上瞎逛。

出于自己的爱好,我一直以来都有一个小小梦想,找到一个能用 Haskell 或类似语言的工作。不过我知道的相关的工作要么是 Standard Chartered 里面那种天天西装革履的典型金融业环境,要么是 Galois 或者 FP Complete 那种对已有的 Haskell 水平要求非常高的。但我还是在 GitHub Jobs 上用 Haskell 作为关键字搜了一下。不出我所料,没有搜到任何我以前不知道的 Haskell 工作,大部分甚至都不是在用 functional programming 的,而是“我们是用 Ruby/Python/etc 的,但如果你会 Haskell 的话我们非常欢迎因为你就是那种我们想要的乐于学习和自我提升的人”的那种。我搜到的唯一一个全面应用 functional programming 的公司就是 Jane Street,他们用的是 OCaml,一种我早就听说过但几乎没有了解过的语言。

在网上搜了很多关于 Jane Street 的信息以后,我感觉它好像还是挺靠谱的。于是为了实现自己用 functional programming 工作的梦想,我开始为申请这家公司做准备。我从零开始学习 OCaml,这大约是九月上旬的事情。在学习的一开始,我就认识到,在具有相似语言基础的前提下,快速掌握一门新语言的最好方法就是用它做一个小项目,带着项目目标学习需用到的东西才能有的放矢。同时我的另一个考虑是,我想弥补我当时的简历中没有拿得出手的开源贡献这一弱点。

于是在很快地确定了项目要做什么之后,就开始看 OCaml 的书看了有不到两个星期。现在回头看的话,市面上已有的 OCaml 教程都不好,要么太过时,要么作者水平太差。所以建议可以直接看 OCaml 的官方文档,我最终也是在面试前把官方文档看了一遍,觉得受益远大于看书。

看了点书对于 OCaml 有了点基本的了解以后就开始做项目。我要做的是一个已经被做滥了的题材,Lisp 解释器,唯一想到的一点创新就是加入与 Go 语言类似的 concurrent programming 支持,也就是轻量级线程和 channel 之类。项目命名叫 GoLio,意思是“Go! Lisp in OCaml”。

从建立 git repository 的9月20日算到发布0.1版本的10月5日,我做这个一共也就用了两周多时间。不过这两周多几乎所有的时间都花在这个上面了,工作量还是很有一些的。之后花了大半天时间用 LaTeX 做了一份一页的简历,就在10月6日通过他们的网站投给了 Jane Street。我后来投给别家公司的简历都是在这个基础上改的,给不同公司的简历在侧重点上有所不同。

Jane Street 是我第一个考虑的公司,但自己对它完全没有任何把握,既包括是否能被录取,也包括自己是否会喜欢这个公司的风格,所以还是投了些别的公司。

首先是小米公司。它们的 HR 之一以前在 Google 工作的时候就跟我有联系,后来在我在北京实习的时候也曾很有诚意地邀请过我去小米公司看看。这次他们来浙大校招之前也是很热情地联系了我,希望我去提前面试一下。于是我去小米校招团队下榻的酒店面试的时间是10月11日,也就是他们开宣讲会当天的下午。在那里和他们的三位工程师各谈了一个小时左右。其中第一位面试官让简单写了些代码,问了些技术问题,第二第三位则只是聊天的方式谈了谈以往的项目以及对工作的期待什么的。最终当场给了一个口头的 offer 承诺,但没有给具体的薪酬数字。

小米公司的 HR 以及三位工程师给我留下的印象都很不错。仍处于创业阶段的公司内部肯定会有不少可以发挥作用的机会。同时,他们还是为数不多的能给出较诱人的期权激励的靠谱公司。我想,假如我只考虑在北京工作的机会的话,小米应该会是一个很优先的选择。

我在9月25日 Hulu 公司来浙大宣讲的现场投了简历。可是大概由于投他们那边的人太多,直到10月25日才给我安排了面试。我曾经在 Hulu 公司实习过,对他们的印象不错,觉得他们那边技术水平挺好,也比较有国际化的视野,所以也将他们作为一个重要的备选。我的面试是通过 Skype 面的,连续免了两轮各一个小时,当时由于不知道哪边的网络状况不好以及他们那边邻居在装修很吵,交流很不顺畅。

结果是,Hulu 在我拿到 Google offer 的前一周的10月31号通知我被拒了,接到那个010开头的电话的时候一开始把他们说的 “Hulu” 听成 “Google” 了,还以为自己被 Google 拒了吓了一跳,不过幸好很快就识别出了 Hulu HR 的声音,没有闹笑话。因为实际上在此之前已经被自己在 Hulu 共事过的同事提醒过,说今年 Hulu 招人的名额很少,让我多投投其它公司,所以也对此被拒有了心理准备。

我想,可能一方面 Hulu 今年招人的标准的确比较高,另外一方面是我自己的能力或其它特征还是和 Hulu 不太匹配,所以造成了被拒的结果。IT 业的面试虽然比很多其它行业的面试已经靠谱多了,但还是要在短短的几个小时内完整地评价一个人的技术水平和综合能力。面试当天的发挥如何完全有可能左右面试官对一个人的印象,充满着不确定性。总的来说,我还是蛮幸运的,除了这一个以外,想拿到的 offer 都拿到了。

我很晚才做出去投 Google 的决定,准确来说是在10月12日他们浙大校招网申的最后一天才在网上填了报名表,差点就错过了。一直没有对 Google 特别上心的原因,可能是我内心中还是喜欢小公司多过大公司。不过后来去听了 Google 的宣讲就有点被洗脑了的感觉,觉得如果能去 Mountain View 工作的话那真的很不错。我还找了 Google 上海的肖东学长内推了一下,但由于找他找得太晚连笔试都没能免掉。还好笔试考的那些东西对我没有什么压力。

我的 Google 面试的前两轮是在10月18日上午,后两轮是在10月19日上午。我被考到的的基本上全是在纸上写些相当于 ACM 水题的算法题或数学题,还是很轻松的。只有第二轮的时候,被一位超级漂亮的美女程序员面试,感到前所未有的紧张,于是很简单的题目在纸上写得非常乱。个人感觉是,任何一位 ACM 搞得好的同学稍微习惯下在纸上写代码的话应该都是问题不大的。

最终我在11月9日接到了 Google 来电通知的 offer,地点是 Mountain View。在此之前我也说服了我父母支持我去国外工作。我没有当即就答应下来的唯一原因是,当时我只完成了 Jane Street 的两轮电面,且约好了11月13日的第三轮。

前面说过,我在10月6日在 Jane Street 的网站上投了简历。本来觉得一周左右就差不多会有答复了,最多也不应该超过两周。但等到两周过去以后还没有回音,就觉得自己肯定是简历被刷了,心里感叹着这个神秘的公司大概是对学历背景什么的有奇葩的要求。结果到了已经完全对它死心的时候,我在10月25日收到了第一轮电面的安排。他们每次安排电面都是让我提供一周内有空的时间段,然后他们再确定具体的时间。于是我分别在11月2日、11月7日、11月13日进行了三轮电面。


在11月9日通知我 offer 的时候,Google 的 HR 明确说明了只给我一周的时间考虑是否接受。我在当天就将这一情况通知了 Jane Street 的 HR。由于我知道在 Jane Street 的三轮电面之后至少还会有三轮的现场面试,而且有可能需要到纽约去面试,所以当时实际上已经对在 Google 给的 deadline 之前走完 Jane Street 的面试流程不抱什么信心了。

让我没想到的是,在完成了 Jane Street 的第三轮电面之后,高效率的 HR 立刻给我订了第二天飞往香港的机票以及酒店,并安排车辆让我一下飞机就被接到公司进行面试。这里还有一个小插曲,就是我为什么会提前准备好一个未使用过的香港旅游签注。原因是我所在的 ACM 队本来今年是计划要去东京赛区比赛(后因为中日关系的原因没去成),为此去出入境管理局办护照的时候,想着为了以后能少跑一趟就顺便把港澳通行证也给办了。而港澳通行证是不给办空证的,也就是在办证的同时至少要办一个签注,于是我就有了一个一年单次有效的旅游签注。回想求职 Jane Street 的整个过程中,真的是有很多时候被幸运女神眷顾,最终侥幸成功真是谢天谢地。

我在11月14日上午乘坐 KA627 航班从杭州出发飞往香港。航班略有延误,我完成入境找到接我的司机已是接近下午三点了。一小时车程后,第一次乘坐右边驾驶的车的我于约三点四十到达了 Jane Street 在香港的办公室。面试安排在四点开始。

毫无疑问,Jane Street 的面试是我遇到的所有面试中难度最高、压力最大的。从我个人角度看,我遇到的 Google 的面试和这个比真的不算什么。除了中间吃晚饭时休息了一小时左右,不停歇的面试从下午四点一直持续到了晚上十一点多。除了香港的两位同事外,身处伦敦的两位同事以及远在纽约的技术负责人也通过大屏幕参与了面试。期间穿插进行了大量的 coding、各种算法题、各种数学智力题,也考察了模块设计、系统架构、以及 functional programming 里一些比较深入的话题。面到最后的时候我已经筋疲力尽得快要崩溃了,可还是要强撑着接受纽约的老大连珠炮似的发问直到最终证明我的代码 bug-free 为止。

我在面试次日也即11月15日下午拿到了 Jane Street 的 offer letter,薪酬的数字比 Google 给出的要高不少,同时工作地点可以在香港、纽约、伦敦之间任选。他们告诉我,我拿到的是 Jane Street 香港近两年来面试了无数人后发的唯一一个 offer,吓了我一跳;我要早知道这个估计就被吓得不敢投了。当天还很开心的见到了一直神交未曾谋面的 cuilw 学长以及好久不见的挚友 winsty。在16日中午飞回杭州的 KA620 航班上,我睡得很香甜。

接下来的事情就不复杂了,跟父母、老师、朋友等沟通过后,我最终做出了放弃 Google 总部的 offer、选择 Jane Street 香港的决定。做出这样选择的理由,我在私下里跟很多朋友谈过。但由于不想让这点个人见解传播得太广,就不在这里公开了。如果你跟我足够熟的话,私下问我我会告诉你的。或者你就当我是选择了给钱给的多且离家近的就好了。

需要说明的是,我接受的职位虽然 title 里有 quant 的字样,但实际上还是一个要天天 coding 的工作,至于 quantitative research 是我目前一窍不通需要逐渐学着做的事情。Jane Street 公司是一个高度精英化的团队,里面我遇到的所有人都非常非常聪明,他们在做的事情也非常有意思非常有挑战。能在每天的工作中用到 functional programming 对我来说是非常幸福的事情。我很高兴也很幸运能够获得这样一个职位,相信这会是我的职业生涯的一个完美的起点。

如果你对我找工作的过程有任何想进一步了解的,都可以留言或用其它方式联系我。我这个寒假会去香港实习,如果你想进一步了解 Jane Street 这家公司的情况,不妨等2013年3月1日也即我实习结束的日子之后再联系我。