跳到主要内容

So Far So Good

· 阅读需 9 分钟

So far, so good: up to this point everything is all right.

– Webster’s New World College Dictionary, 4th Edition.

这小半年算是实现了人生的一个小目标。从大三准备转专业出国,曾经遥不可及的硅谷、湾区,等到毕业后也要搬过去了。So far so good,感谢生活朝着正轨奔去。

从 2018 年伊始开始认真的准备求职,一月先是海投了大概 100 份简历,也开了 Leetcode Premium 开始疯狂刷题,四处打听招人消息求人内推。然而一个多月都没有什么进度,感受到了所谓 new grad fulltime 寒冬的压力。

二月中旬开始陆陆续续有一些面试,不得不说这边面试和国内还是区别很大:国内基本会针对你投的职位定向地考察你对这个技术栈的实战经验和深入理解,而美国是倾向于 versatile,认为你就是一个 general 的 SDE,不会针对某种技术栈、而是考察基础知识:算法,数据结构,操作系统,计算机网络。对我这个从 iOS 开发半路出家、基础几乎一穷二白的人来说,这边面试虽然深度较国内浅,但仍然颇具挑战性。好在之前上了 Data Structure 和著名的 Introduction to Computer Systems,有一些资料可以对着啃一啃,总算是搞明白了之前一直模棱两可的很多基础知识。

面试给我印象深刻的不多。有一家小公司招 iOS 的,面试就是直接屏幕共享从设计到代码写一个小 app,期间面试官还提醒说可以随便用 GitHub, StackOverFlow,就像你正常工作一样。很多 Swift 和 Cocoa 的特性已经不熟悉了,查了很多。面试官倒觉得 ok,也在逐渐地提出新的条件来 break implementation。写了大概将近两个小时,最后又花半小时过了很多问题,广度非常宽泛,从 cookie 实现到数据库为什么查询快。一下午面下来感觉非常累,虽然写的还不错,莫名挂掉了。

General SDE 基本就一个套路了:白板写码做题。小公司的没什么好说,没什么印象。Google 是两个很冷的大哥,一轮秒了基础但 follow up 跪的很彻底,另一轮面试官和我的思路不太一样(我在想如何有效地构建图,他在想怎么有效地检查连通),很是费了一些劲和他解释,他也一直将信将疑的表情。可惜之前本来和 Project Fi 组一个大姐聊的还蛮好,我靠着一堆朋友搞 Android 耳濡目染的皮毛使劲尬聊,几乎有提前 team match 的错觉。PayPal 是个国人大叔,莫名对蚂蚁金服抱着敌意,聊的也不怎么愉快,后面没消息了。Twitter 是个很简单的题,接近当年 CC 的某个 Project 的某一题(Twitter 推荐系统,基于 PageRank),结果也没消息了。Uber ATG 是个很友善的大哥,开门见山:你写题时不一定要尬聊哈。我笑,还是边聊边写题,题目也比较有意思,corner case 很多。Uber 比较变态的是需要在线的一个编辑器里写能跑的代码,所以好几次我跑不出来真是冷汗都下来了,结果发现是忘了写 print 之类的。大哥也会和我讨论一些细节,问为什么这么实现,最后也热心地介绍了下 Uber Advanced Technology Group 在做什么。Uber ATG 感觉整体还蛮好的,可是太慢了,直到签了工作才姗姗来迟 move forward。最后喷下亚麻,约了面试时间一拖再拖,最后拖到我签了工作,赶快回邮件 thank you for your consideration。

Oath 这边实话说面试一直都非常愉快,虽然也有 general SDE 白板做题的套路,但因为 match 了 flurry 组,面试我的全部是 iOS 工程师,给题时基本都会装模作样地给一个移动端的场景,做完题后也能够问我一些深入的 iOS 开发问题。我说能够是因为其他很多公司最多问问“UITableView 用过吗” “GCD 是干嘛的”,问的非常无聊。唯有 flurry 组的大哥大姐们问出了一些非常有意思的问题,从 iOS 的底层机制、Objective-C 运行时和语言特性,到 crash 后 mach 内核异常和 unix 信号量,Cocoa Touch 框架的设计模式…面试过程中被问到这种问题让我觉得很被尊重,因为都是紧密结合我简历的经验和项目,且有针对性地提出值得深入考察的问题。而且面试过程就像两个工程师在交流对技术的理解和对问题的解决方案,甚至会拿正在做的项目来讨论系统设计,面试结束也愿意无保留告诉你他们研究出的对某种场景的最优实践,当时一轮轮面下来都感觉收获很大,学到了很多,挂了也值了。

还好最后非常幸运,喜欢团队氛围和做的事情,签的很爽快,知遇之恩。说起来我可能人生中近二十年前第一个上的网站就是雅虎,第一个邮箱也是雅虎,也算是冥冥之中自有天意吧。求职过程中得到了很多很多人的帮助,感谢媳妇儿支持与鼓励,感谢学长学姐学弟还真没有学妹的内推,感谢身边朋友一起奋斗,感谢大佬改简历教投递给内推带吃饭…都记在心里,力所能及的时候也要帮助别人。

说说毕设,估计是人生学生阶段最后干的一件事了。有幸能跟一位有趣的教授和 UPMC 做一些有意义的事情。这个项目总体是利用炼丹机器学习通过医疗影像进行肿瘤情况的推断,我做的还只是最开始帮助标记海量数据的工具。毕竟世界上不是所有医院都有最为顶级的医生,利用 AI 基于海量数据进行的判断也许能够帮助发展中国家的中小城镇医院也具有世界级的诊断准确率。自从几年前我妈生过病后,真的明白北上广的医院和我家最好的医院水平都是天壤之别,因此我个人觉得这是一件非常有意义有价值的工作,也很荣幸能够为这项工作贡献一些浅陋的代码。

至于现在,苦读十数年即将毕业拿到学位,和媳妇一起去湾区工作,也和朋友们搬的更近,父母亲人身体健康,家里一切都好毋需挂念,so far so good,感恩生活。