怎么进入 BAT 的研发部门?

关注者
8544
被浏览
870846

73 个回答

/* update 10-07*/
发现很多朋友纠结的点都在看这么多书有用没用,这个其实见仁见智了。看书只是一个辅助思考的过程,你如果能做到不看书的时候也能思考,网上搜个问题不是说从stackoverflow或者csdn这些地方生搬过来答案而是能形成自己的思路,业务上的技术上的大家找你你都有答案或者都知道找谁能拿到解决方案,那不看书也罢,看书只是让你形成这些思路更容易一些而已。

比如说之前我在鹅厂实习时候的老大,他就不经常看书,而且还不建议我看书,看书与否根本不影响他3年从应届生直升T3.3。
再比如说现在的工作室,server主程client主程甚至制作人都喜欢看书,《游戏编程精粹》这系列搞端游的肯定都不陌生,基本人手一套参阅。

看到首赞答案的更新,顺便最近知乎上也正流行正版盗版的话题,我也ps一下,还在学校的朋友一定要买正版书,呃当然有工资的是千万千万要买正版书,当当amazon京东基本每个月轮着来打折或者满减,微博上图灵啊博视啊也经常搞送书活动,弄几本正版书看看好处真是比看盗版书太大了。
一本正版书比盗版书普遍贵50到100,100本就是不到一万。奖学金什么的就不说了,程序员一毕业一个月的工资有什么可心疼的?一万块买来的书认真看完的话给你带来的升值何止百倍千倍。
还有最直观的一点就是,你说摆那一本15块的盗版算法导论,和一本一百块钱的算法导论,你每天是不是觉得翻前者特没意思特没成就感?而后者你就会觉得都花了这么多钱买了总得让他物有所值,看起来也会更认真。

pps,我贴的图里的书全是正版的。
/* update*/

找工作就像相亲,你牛逼了,BAT并不一定给你发offer,反之,即使你不牛逼,BAT的offer也有可能是非常容易的事情。
BAT每年分别都能发出近千个校招offer,如果题主要听这么多人的意见其实也挺难做决定的,毕竟拿到BAT其中一家offer的给他换个时间换个地点换个面试官就不靠谱了,拿到两家的建议也许可以稍微听一听,拿到三家的就可以认真揣摩一下,毕竟能拿到三家offer至少说明是有点原因的。

我来给题主点有实际操作性的答案吧。因为去年只参加了AT的校招,狼厂的跟我厂的笔试冲突了就没去,主要基于对AT的了解谈谈拿BAT校招offer这回事。

首先,简历这东西题主有一个985硕的学历,面对BAT的简历机筛,基本是不用担心的。

然后通说下笔试,网上找点笔试题,每家的笔试能做个40分就能进面试,刷题这种事情题主这样的考研党不陌生吧?做一两套卷子拿不到40分,不管你信不信,我反正不信。

面试。这个是大头所以我就分阿里和腾讯的来讲一讲我的分析好了。

阿里
阿里针对大部分校招的普通人来说,一面(我目测)只会放出M1级别的,对应到P6,问你点基础的CS知识撑死了,二面可能是M2级别的也就是P7、P8的样子(这部分对职级的描述只是我大概的一个印象,毕竟最后弃掉了阿里的offer没去研究过,考究党请放过我),运气好的遇到跟你谈谈人生谈谈职业规划什么的,运气不好的遇到那种下面带几个team还成天看技术blog的就问你点比较新鲜的知识或者是比较基础但是冷门的那种知识,所以平时没事看点跨领域的博客、看点经典名著防防身还是很必要的,经历了一整天枯燥无味的面试突然碰到一个眼前一亮的绝对是一个加分项。

腾讯
腾讯的话也是类似的道理,校招一面放出的是各个有headcount的leader,T3.1到T3.3不等,几个一面面试官对应一个二面面试官,后者是前面那几个的老大。像鹅厂这样的公司很操蛋的是:
  • 业务领域跨的特别广。电商、SNS、普通的C/S软件、游戏、各种App。
  • 一面面试官直接对面试者负责。换句话说,通过你就意味着他要直接当你老大。
  • 一面完全是随便分的,你投的感兴趣事业群是互娱,但是分到的可能是SNG的某款社交产品的程序组老大面你,所以你的面试官不一定对得上的你background。
鉴于此,拿鹅厂offer的随机性又加了几成。

当然,这里有一点tips:
  • 如果你的笔试成绩让面试官觉得有点意思,比如说我们去年的时候实习招聘,满分100,我写了75+,我投的互娱,结果还真被分到了SNG的一个程序面我,我就直接向他申请,他把笔试成绩往群里一贴,就被转到互娱那里去了。
  • 如果你的简历够牛逼,比如说ACM world final(随口一说而已,大神们看不上BAT我懂的),比如说本科手写tokenizer和grammar analyzer,相信阿里的P6校招offer、鹅厂那只闻其声不见其形的special也是随手那么一收吧。

回到题主最关注的问题——「在一年的时间中,我应该做哪些准备,才拥有进入BAT研发部门的资格?」。
  • 多阅读
  • 多coding
  • 多思考
多阅读。一年的时间其实已经很长了,阅读点cs经典名著,时间绰绰有余了。还有之前说的blog,知乎上也有很多博客推荐的问题,随便一翻:
优秀程序员的博客有哪些?
重点推荐下云风的、淘宝核心系统的、轮子哥的 @vczh、陈皓的,至于老外的因为我关注的游戏行业的比较多就不在这里做推荐了,想找到自己的focus领域的优秀老外博客或者社区还是比较容易的一件事。

多coding。这个不多说了,码农每天花10几个小时写代码不是啥难事吧?最大的难事可能是琢磨琢磨怎么保护腰和颈椎。当然,多coding包括了多实习,最好是实BAT的习。至于leetcode、topcoder、各种OJ什么的,题主如果只瞄着BAT,那大可不必浪费时间,但是如果打算拿硅谷的offer或者北京那一票海龟回来办的公司,leetcode全刷一遍还是必须的。

多思考。只写代码是不够的,至于该怎么思考、该思考什么,这个属于多思考的一个子问题之一,请题主自行解决。

最后,贴书单能骗赞吗?教练我也来!!!
还有三本书没照上,《STL源码剖析》、《APUE》、《黑客与画家》,这几本书看过的面试过的都懂的。顺便还混进去几本比较奇怪的书无视掉就好了。

额外ps一句,题主的一年时间可能看不了这么多书,对其中几本比较「速成」的做个重点推荐:
《深入理解计算机系统》,简直神书不解释了,面试完你就会后悔没多看一遍。
《TCP/IP详解卷1》,有了这本书码码再也不用担心我被十一五教材——没错我说的就是坑爹的计算机网络残害幼小心灵了。
《算法导论》,BAT的面试官真的没时间成天刷OJ成天给你来高难度题干掉你,他们出的最难的你都能在算法导论课后题里找到原型。
《深度探索C++对象模型》,面C++岗说不出虚表实现机制?那基本就是面试成绩打对折的节奏,带上这本书防身吧。
《编程之美》,帮你应付掉大部分逼格还不太够的公司。

最后的惯例:
渣渣小本一枚,13年AToffer,最后从了猪厂。
本人在 2015 年校招拿了 BAT 以及网易游戏等 offer,而且基本上都给了 Special,那就从我的角度来谈谈今年校招的体会。

1. 冰冻三尺非一日之寒
综合身边一些拿到牛 offer 的同学,有个共同的特点就是:热爱这个行业。一个人在某个领域的成就是和自身在相关领域投入的时间和精力成正相关的。付出了多少,虽然短期内收益微乎其微,如果经过数年的持续努力,便会由量变产生惊人的质变。比如多读书、多看代码,一些计算机编程方面的经典书籍、GitHub 上面一些 star 越千的优秀开源项目,绝对值得多花时间研读。

我自身的情况大概是本科期间积累了 10 万行的代码量,有了这个基础硕士期间阅读一些代码呀,参与一些开源呀,就变得水到渠成。

2. 主动培养自己的动手能力
算法方面可以适当阅读算法导论、算法引论等书籍,多刷刷 leetcode, UVa 之类的培养出一定的解题思维。虽然说一些算法在工程中很难用到,但是解决问题的思路以及不断去优化业务代码的想法,这些意识是可以通过算法训练得到的。

一般国内的互联网公司还是比较看重项目经验这块的,也就是你曾经做过什么,能突出个性的地方也在于此了。这个方面可以从一些国外大学课程的大作业慢慢培养,如系统设计方面经典的有 MIT 6.824 Home Page: Spring 2014,CMU cs.cmu.edu/~dga/15-440/ ,CMU 15-410, Operating System Design and Implementation 。如果跟着进度做完大作业的话,相信工程能力以及对系统设计的理解都会有很大的提高。

3. 核心竞争力
这个问题很大啦,那我也冒昧的说一下自己的理解。曾经很长一段时间内,我都不太清楚自己未来要干什么。不过幸运的是,身边总有一些优秀的同学在激励自己前行(寝室 7 个人有 6 个拿到网易游戏 offer 我会乱说 :-p ),而且在读研之初就得到 @靖难 学长的指点实在是人生之幸。那么问题来了,花了这么多时间去思考自己要干嘛就这么重要吗?我觉得非常重要。当有了一个努力的方向,就会不断的去靠近,围绕着这个点不断探索,最终形成别人没办法轻易超越的壁垒。

4. 关于面试
面试在于突出自己的闪光点,体现自己的不可替代性。当你一步步走过上述几个阶段的时候,便会发现其实 BAT 的 offer 并没有想象中那么难,难的是克服惰性不断的去超越自己

找工作要从实习抓起。这并不是说实习一定会做一些多么核心的事情,而是一场面试几十分钟,面试官也无法清楚的判断你的实力,需要从你过往在哪实习过以及拿到过哪些 offer 来对你进行综合判断。

GitHub,StackOverflow 等是加分点,参与过开源项目大加分。嘴里说出的话可能有可以虚假夸大的成分,但是 GitHub 上面的代码提交记录以及代码质量不会骗人。我面试的过程中,就有几个面试官主动索要 GitHub 账号地址 kedebug · GitHub 并且当场登陆查看相关项目情况,这都是能够提升自身形象大大利好的事情。

Update 2015/06/16:
感谢大家的支持,后续我会把之前的面试经历更新在我的博客 2015 校招总结,欢迎大家继续关注。
为什么?