入职微软三个月炒掉老板,七个月自己也跑了,电视剧都不敢这样拍
推荐阅读:
作者丨码农田小齐
这篇文章来自去年一起刷题跳槽的小当家大佬,大佬手握 N 个 offer,先是被西雅图的悠闲生活所打动,可去了却没想到...
被投行摧残了接近两年,去微软折腾了快一年,最近终于入职 Google 了。
中间走了太多弯路,今天和大家分享下转行总结,希望可以帮助同在迷茫中的人。
转码之路
本科是主修商科(Business Administration),自学了点数学,又辅修了数学精算。
后来决定转码其实是因为看了一些培训班的广告,说平均工资可以上 10 万,我这辈子就喜欢钱,开始了毅然决然的转码之路。
当初年少无知一心想做 data scientist,现在肠子都悔青了。DS 这行业是没有明确定义的,有的公司要求 SQL,有的用 spark,之前面了一堆公司没遇到几个实际是做 ML 的,就算是做 ML 的也多是用 SageMaker,etc. 加上各大厂的 autoML platform,不看非名校 master 以下学历的人。当然也有例外,在微软遇到过一个哥大刚毕业的小妹妹去了 ML 组做的还真是 ML 相关的,不过这种职位真的是少。
SDE 相对来说容易很多,首先不像 DS 的玄学面试,SDE 面试范围非常窄,不会超出算法,OOD,system design,threading,networking 的范围。
然后多找大佬聊聊,基本市场的信息每个群都会聊到。
多加些 recruiter,我的 LinkedIn 首页经常会有 recruiter 发出各种 job posting,下面 reach out 和回复的 9 成是印度小哥。
关于 project,个人试过 udacity,udemy,比较推荐 udemy,主要是便宜,10 刀一节课,我买了各种 big data,Java Spring,Hadopp,Tensorflow,ML,fullstack 等等。选两门课跟着做几个 projects 放到简历上基本只要 1 个月。100 刀之内基本搞定,我买了 700 刀的课程到今天也只看了 100 刀的。。
最后就是面试准备。Entry level 基本就是算法,入门基本选择基本就是 Leetcode。
那要怎么开始呢?
Stanford 的 106B/X 基本上 cover 了 data structure 的基础,尤其是 exhaustive search,Marty 讲的好的真是无语了,脑残粉。
看完 Stanford 的 106B/X 可以看 Stanford Algorithms:
或者 Princeton 大爷爷的 algorithms 课,那个是 Java 的。
Tim 的课都是 Pseudo code,喜欢数学证明的人推荐。
上面的视频看完基本上 leetcode 的基础基本都有了, 可以开始刷题了。
刷题可以推荐 2 个 channel:
- Huifeng Guan
残酷群群主亲嘴授课,完全免费,每日一题,跟着刷坚持一年肯定有 offer。
- 花花酱
花花酱完美 ppt 讲算法,超过贾跃亭班的存在。
System Design 的话这个好像都知道,DDIA,grokking,MIT distributed system,就不多说了。
微软
入职之前听说微软是养老公司,之前有个大表哥来了以后说每天没事干,干啥都没动力。
哎,这不就是我的梦想吗,拿钱不用干活,带薪刷题。
打进来以后发现原来是看组的。
微软社招流程和大部分公司一样,面试的时候的组基本上就是入职以后的组,笔者入职的是 Identity。
❝
Identity 是身份认证组,cloud 的第一层一般都是 identity
❞
3 月末入的职,全副武装从纽约飞到了西雅图,然后入职的下一周就开始在家工作了。。
入职以后老板会安排一个 onboarding buddy。第一周去了办公室 2-3 次把电脑设置好,然后就和老朋友们线上多人运动,刷题。 想着毕竟是养老公司,肯定没多少活啊;没想到,第 2 周开始就安排活了。
老板把 Micro management 发挥到了极致, 1on1 的时候会问每天做了什么,精确到小时。第三周已经接到 4 个任务,组里都是来了不到 1 年的,什么问题都要自己搞懂,加上文档不全,基本每天要干 12 小时才能不被老板说。
做事满了老板会直接批评,像极了小学老师。不过好在全组人都这样,我不是孤单一人。
正在我纠结为啥工作强度这么大,做的东西如此无聊的,大伙还能坚持的时候,组里小哥传来消息,换组了。
这个组加我和老板一共 7 个人,我和一个印度小伙是新来的,小黑哥 8 个月,其他三个华人分别是 4,10,12 个月。老板 2 年。
小黑哥走了之前,我们聊了许久,说到底小哥受不了老板打压了,总的来看小哥一人之力建了组里所有 spark job,scala 贼溜,C#也能写,每天工作 12 小时,来了 8 个月业务娴熟, 结果 review 是一般。
抱着升职梦想惨遭如此命运,小哥毅然决然的走了,伤自尊了。此时,新来的印度小哥也来问,怎么换组,虽然小哥自己和老板都是印度人,身为 abi 的小哥时而听不懂老板说话。
❝
abi: american born indian
在美国出生的印度人❞
最终就在小黑哥走之前的一周,传来了惊天喜讯,老板被炒了!
原来这个组一年前的 5 个员工不是现在这批,小黑哥一走 turnover rate 就是 100%。一年员工全跑了导致老板被炒。
但我当时已经开始面其他组了,面着面着发现好组那么多,我为啥要在一个 Ops 比写代码多的组耗着,2 周面了 40 多个组以后,从 6 个愿意要我的组里选了个忙但能学到东西的, 属于 Azure 核心组之一。
❝
Azure: 微软的云计算
❞
走了以后还是和小黑哥和小印哥保持联系,没跳出来的还在骚动,跳出来的有恃无恐。
换组
微软换组非常简单, 去公司内部的 career 网站发邮件就好了。第一次发了 30 多封邮件试水,结果 2 天之内接近 6-7 个组回复,有的新组人太少就没有进行第二轮。最后一共大概发了 60 封邮件。
实际上面试的组有 15 个左右。5 个左右的组我比较嫌弃就拒了。
10 个组有 1 个组一轮拒了我,国人阿姨觉得我经验不够,她们组用 rust 做 IoT。其实挺想去看看的。。
其他 9 个组都是先和 manager 聊,然后 3 轮算法面试,最后再和 skip manager 聊。
❝
IoT: internet of things,物联网。
属于比较先进的组,做一些无人车什么的。❞
算法面试基本就是 medium 级别的算法,我能想起来的比如 combination, gcd 相关的,两个 linkedlist 找交点,tree 有两个 node,找到 k distance 的 node,LCS 变形,map reduce count word,bit mask,clone graph,etc。
总结就是内部转面试相对容易太多, 多申请几个容易遇到真爱。
7 月入职的新组,这个组负责分布式系统的底层,就是传说中 DDIA 的第三章讲的东西,replication,cluster,parition,LSM/B Tree。
组里华人印度人 2:8,每个人都是超级好。 第 3 天接到第一个任务,老板解释任务简洁明了,entry point,我们想干啥,啥啥不会找某某。
每个人都有对应的项目,基本不会遇到给个任务全组没人懂的情况。
组里用的是 C++,身为 python 也不会太吃力。不过刚入职还是每天工作十几个小时,但不会有找不到方向的焦虑,一个月学到的东西比前一个组 3 个月学得多,还有用,组员人还好,唉。
谷歌
谷歌的 offer 其实是和微软一起拿的,但是谷歌需要 team match,加上我的 HR 不给力,以及这半年受疫情影响 google hiring freeze,所以 match 了 7 个月,match 上我就跑了,可惜了我这微软最最最核心的组,惭愧惭愧。