第二天,我接到了微软的面试邀请——其实我之前根本不敢投这家公司,因为我知道我差得太多,虽然 FE 方面我比多数人知道得多些,但没有实打实的 CS 功底想混过微软的面试比登天还难。微软也非常利索,一个下午三轮面试。第一个面试还是说写个快排吧,语言随便选——可能选 JS 的我是微软历史上的头一个吧……第一面顺利通过。第二面,面试官先和我说,堆你应该知道的吧……我说,不知道……冷场,开始面试官试图向我介绍堆的概念,但后来还是作罢,考了一道 leetcode 上 easy 级别的题,虽然 leetcode 也做过一些,但是写起来还是有些慌,毕竟我最开始对自己的定位就非常清楚,微软对我来说太高了。最后磕磕绊绊算是写出了可以 work 的 code ,二面勉强通过。三面是鸟哥的 team leader ,第一句话是 make an introduction to yourself please ……我知道微软会有 English Test ,但我没想到会这么快……然后磕磕巴巴, uh ……那个…… well ……心里喊着 Mayday Mayday Mayday ……后来面试官贴心地说, OK ,我们切回中文吧 Orz ……考的依然是一道不算难的题,因为是 leetcode 的原题,我的答案也很快就给出来了,但面试官马上提出来了,这个代码会不会有问题?我从头 review 了一遍,感觉没有问题啊,他说如果给定数组里没有目标值怎么办呢?呀, leetcode 里给的前提条件是一定有啊,怎么办怎么办,肯定是我边界条件不严谨!于是开始聚精会神考虑边界条件……这时面试官说你可不可以 confirm 一下呢……当时我恨不得拍死自己,猪脑子啊……在面试官的提示下最后给出了答案……
事情发展到这里也许就该结束了,因为大家看得出来我有多惨,鸟哥也和我说了,他的老板觉得我还是一张白纸,要不要冒险还是需要看上面老板的意思。实话说,那时我已经在考虑以后留在锤子继续写漂亮的页面了,但最后得到的通知是上面的老板还是想面我一下,稍后通知我四面的时间。四面鸟哥给我打了预防针——香港的同事,普通话不太好,平时开会完全是英文……我想了下,能准备的可能真的只有 self introduction 了,所以虽然觉得没什么悬念,但还是认真准备了一份自我介绍。第二天上午面试官和我准时在网上见面,也是让我先做一段自我介绍,由于这次是有备而来,所以没有向上次那么狼狈。接下来面试官和我说的英文我也基本能听个差不多——我相信是面试官有意用了更简单的词汇。当然也有一些专业词汇我不熟悉,面试官都体贴地为我用文字发了出来,通过 Google 搜索知道大概的中文意思,然后做出了回答。其实由于第四面我没有冲着过的心态面对,结果反而聊得很开心,四面结束后不久, HR 通知我,面试官觉得你还 OK ,下午还要进行第五轮面试。这很让我感到意外,但还是那个心态,我能在微软的面试中走到这里,已经心满意足了,这甚至超过了很多 CS 专业的同学!第五轮面试是鸟哥老板的老板的老板……没有太紧张,因为是一位美女,声音和我大学认识的一位计算机老师特别像,感觉非常亲切。她没有和我聊过多的技术问题,她也直接向我说明了,他们知道我计算机基础水平差,但他们现在也在转变想法,如果一个人的学习能力和学习动力强,他们也是非常欢迎的。看到这里,我一下感觉还有戏!于是赶快把我在研一转方向,用两三个月时间就研究明白了计算机视觉的基本算法,并且在后续的几个月里完成了 JS 的计算机视觉库、发表了自己的算法、写好了 paper ,甚至还在图灵社区发表了一篇还算有深度的总结文章。她听后很高兴,因为这些我没有写在简历上,她觉得在某一个层面上又认识了一个新的我。
接着就是我最开始说的那样,鸟哥在微信上通知我,大大大 BOS 已经给了我 Hire ! HR 可能会过些天通知。后来鸟哥告诉我,其实五轮面试面试官给的都是 Hire ,成绩也算不错,但还是那句话,他们都知道我的短处, CS 功底太差。