Toggle Menu

BAT内部推荐

概要

  1. 我在腾讯有7年工作经验,3年管理经验,在前端行业有相关人脉,所以能够帮助有志进入BAT等互联网公司的同学内推;
  2. 全栈工程师VIP QQ群(364021031)是联系我内推的主要渠道,为了筛选一部分质量低态度差的同学,收费50,通过手Q加群会提示收费;
  3. 如何准备简历是一个技术活,希望你能认真阅读全文;
  4. 如果还没有准备好求职或者换工作,也欢迎加群沟通。QQ群中有来自BAT的高级工程师,著名IT出版社的责任编辑,海内外的技术书作者。

为什么有这个repo?

在互联网领域,我观察到一个尴尬现象,身边很多腾讯、百度的Leader朋友常常感叹招人难。他们在拉勾招人、朋友圈招人、QQ群招人,总找不到合适的候选人。无论是大公司还是创业公司,似乎总处于长期缺人的情况。

另一方面,我发现对很多毕业生和小公司程序员来说,感觉大公司门槛很高,很难进入,望而却步。这其实是一个误解。我收到一些Leader帮我把关某个前端简历,我一看,这完全不行啊,我这边的被筛下来的简历都比这个好。

对于公司来讲,拉钩、猎聘上找程序员基本上是海底捞针,100份简历有1份能用就不错了。

为什么呢?

程序员如果试试在拉钩上投递一些简历,联系你的99%都是HR。而HR无法辨别工程师的编程能力,可能会采用一些简单的方式(比如毕业大学是985还是211)来筛选。

这会过滤掉一些编程能力优秀,但教育经历不好的候选人。

通过了HR筛选的简历会提交到用人部门的,但技术筛选人会发现,虽然学历好,但技术不过硬,于是再次被筛选掉。

所以大型互联网公司通过招聘网站和HR筛选来招聘人才的机制并不算高效。

其实无论是国内还是国外,大部分互联网公司都很依赖“内部推荐”这一渠道来筛选人才(包括Facebook、Linkedin、Amazon、Google、腾讯、微软、阿里巴巴……)。

公司相信员工推荐的人才是经过了初级筛选的,在面试流程上比公开渠道会有更高优先权,直接进入工程师面试环节,而HR面试放在最后一位。而且如果团队暂时没有HC(Head Count,指招聘名额),负责内部推荐的工程师leader人脉也可以作为一个备选信息关注,在有职位空缺之后第一时间知道。

优秀的公司岗位,在空缺之后,根本留不到发布招聘就已经找到候选人;优秀的程序员,离职之后根本不用投简历就已经拿到下一个Offer。

所以,如果你自认为能力还不错,并且也希望进入国内的上市互联网公司(主要是深圳腾讯),我将为你提供内推机会。

如果你觉得能力还不够,希望能有一些提升,本文档也会简单有一些个人的方法论供你参考。如果是简历不知道怎么写,可以直接跳到简历指南

关于我

我在腾讯有7年工作经验,在这期间接触过很多不同部门的同事。而在这几年中,熟悉的同事又通过调动、跳槽、部门合并、公司分离等方式流动到深圳、北京、上海、杭州、广州等各个大型互联网公司(包括但不限于腾讯、阿里巴巴、百度、京东、魅族、大众点评、迅雷、饿了么……)和一些非常有潜力的创业公司。

我出版过《Web全栈工程师的自我修养》,基于此也认识熟悉了一些行业人士,他们也能成为我内部推荐简历的渠道。

我作为腾讯招聘面试官筛选过几百份简历,也面试过几十个候选人,对于如何提升简历和准备面试有丰富经验。

所以只要你能力够优秀,我相信我有能力帮助你内推到合适的岗位。

面向对象

我希望推荐的人包括:

  • 大三或大二的优秀准毕业生(大四毕业生求内部推荐已经比较晚了,校园招聘一般在大三就锁定绝大部分人选)
  • 工作两年以上的优秀程序员(一年内的一般不接受,对于公司的梯队建设来说,社会招聘编制是期望能招聘到更有经验的员工)

如何参加

你可以直接跳到本文底部联系我部分,不过我建议你在那之前先阅读一下本文后面介绍的。因为我介绍了很多准备简历的方法(完全免费),它可能对你有用,不过这并不是必须的。

学生篇

我收到了很多希望得到内推机会,或者帮忙检查简历的邮件,其中70%以上是学生。

在我的《Web全栈工程师》读者QQ群中,学生也占据了很大一部分,所以我先来写一写作为学生如何提升,以及优化简历。

我羡慕你

对于大一、大二、大三的学生读者,我想真心表达我的羡慕。

你们有充分的学习时间学习提升,可选的路径也多一些。

  • 你可以努力提升GPA和英语,争取国外大学奖学金,国外毕业再争取到硅谷的工作机会
  • 你可以努力学习专业理论课,打好基础(我就一直有遗憾荒废了一些课程)
  • 你可以持续编程,争取到BAT的实习机会,争取留用资格

只要有坚定的目标、正确的方法、和足够的努力,你有很多选择。

对于大四才开始做决定的同学,现实就会艰难一些,如果你不能在简历和面试中体现你持续学习的能力和解决问题的能力,就很难跟有准备的人竞争。

实习和校招

校园招聘一般每年9月中旬就开始启动,目标就是针对次年的毕业生。

出于招揽优质人才的考虑,越来越多的企业都在越来越早地进入校园,通过校园宣讲会的形式提前介入到校园招聘活动中。10月份则是目前校园招聘最繁忙的旺季,高潮会一直持续到11月底。春节前后则迎来了校园招聘的淡季,节后3-4月份会再现一次小高潮,主要争夺公务员考试和研究生考试失利的一批毕业生。

其实校园招聘是很多大公司很喜欢的一个人才渠道,因为比起社会招聘的应聘者,毕业生更加有空杯心态、更正能量、更有激情,虽然缺少经验,但是经过一两年的培训也能很快成为团队骨干。而如果自己本身有项目经验的毕业生,或者在Github上有知名作品,或者有知名博客的毕业生,或者去过其他大公司实习,那就更加抢手了。至于大学考试成绩,影响不大。

而社会招聘的目标是有经验者,招聘时间没有校园招聘那么固定,随时都有可能有职位空缺,但是每次放出的名额都不会很多。而且这时候会根据放出的岗位,针对性考核专业能力,以及综合能力,所以社招的竞争是非常激烈的。

相对而言,我认为校园招聘的门槛并不高,重要的是找对方法。如果你的学校不是顶级,成绩不是学霸,就要走不寻常的道路

有些人觉得自己学校不好就没机会了,其实不是这样的,我们的同事有很多就是专科毕业的,能力非常强的话,会不止释放出学历这一个信号的。

最后的忠告是:基本上我们只有在每年的校园招聘期才会招聘学生,平时是没有毕业生名额的。所以,学生还是要多关注校园招聘的时间,在非校园招聘的时间投递简历的话,石沉大海的概率非常大。

学生能力提升

你现在是学生,但不会永远是。

你可能已经二十几岁,很快就会到三十岁。

二十几岁的人可以通过学习来提升自己,可以跟周围的优秀学长和同事学习。而到了三十岁,理想情况下你应该已经成为专业领域的大师,别人会向你请教很多问题。

所以,你需要快速提升自己的学习能力,并在三十岁之前一刻不停地往前跑,才能达到目标。

三十岁并不是终点,而是一个基础,有这个基础,才有接下来继续往前走的资本。

具体的学习提升方法在后面的章节中会具体说明,对于学生和员工没有本质差别。

职业路径

进入BAT是一个很好的职业起点(虽然并不是唯一的),比起创业或者小公司,你能额外获得的包括:

  • 合理的薪水和奖金包(只需要提升能力和责任,薪水的提升是副产品)
  • 规范的工作流程(不用操心琐事)
  • 最佳实践(其实主要靠个人,不过大公司留给你打磨最佳实践的时间会多一些)
  • 细分的专业(足够让你提升为某领域大师)
  • 光环加成(如果某创业公司的阵容很吸引你,想一想是不是因为创始人有光鲜背景?)
  • 稳定的成长空间(不会突然挂掉)

我在《Web全栈工程师的自我修养》中的第三章“从学生到工程师”详细讲了实习和校招的经历,以及对进入创业公司还是大公司的优劣势分析,有兴趣的同学欢迎购买阅读

社会招聘篇

在简历中,需要倒叙列出自己做过的工作,这是因为:

你的下一个雇主总是希望看到你的个人简历中的工作经历和专业技能是一个持续上升的过程,在每一个公司和项目中都获得了新的能力成长。

如何证明你是优秀的程序员呢?在硅谷可能比较看重算法和白板编程,在国内,大公司更加“实用主义”,会主要考察项目经验作品表达

简历只是帮助你把能力清晰展现出来,而不是通过奇淫巧技获得本不属于你的机会。所以如果觉得自己的能力无法通过这种简历很好地展现,很有可能是你能力还需要继续提升。请参考能力提升部分。

程序员简历指南

简历最重要的不是形式和设计,而是逻辑。

本指南的框架参考US-Style,但是针对中国国情做了一些更新。虽然风格比较简单,但是合理的排版分段、重要信息点的展示,能够让HR或专业面试官快速判断候选人的能力,以及从过往职业和教育经历看出成长和发展,而不是“卧槽好牛逼的样子,但是四级到底过了没有啊……”。

本指南的整体风格偏专业+高冷,适合水平20%以上的程序员(或学生)。一些建议来自于HR和面试官角度,而不是候选人角度,所以并不包含任何奇淫巧技。

在知乎上搜索“简历”会有很多答案,说实话,其中有一些是教你如何夸大和利用形式取胜。而我的简历指南没有这个功效,只能将你一步一步的成长和提升清晰地展现出来。

如果自己觉得专业能力还不是很强,可以努力跟周围的牛人学习,提升专业,不要频繁跳槽。如果项目缺乏亮点,也建议自己多利用工作之外的时间做一些side project,而不是期望以不好的状态找到一份既能带你成长、项目又足够稳定、老板又nice的公司。

如果没有热爱,只求上班时间来提升能力,是很难脱颖而出的。

内推也只是一种获得机会的方法,而在机会到来之时,希望你有足够的力量抓住它。

1. 基本结构和原则

  • 1-2页为佳。不要超过2页
  • 不需要放上关于你生活的信息(微博、twitter、摄影集都不需要放上,除非你的微博有10万以上粉丝)
  • 不要有任何错别字和语法错误,使用正确的标点符号,请让你的朋友阅读你的简历
  • 技术单词要使用正确的大小写,比如CodeIgnite是官方名词,不要写codeigniterciCI
  • 把你独特的经历和技能放在简历上
  • 不要写婚姻状态、性别
  • 文件名叫“姓名_求职意向.pdf”,或者“姓名_城市_求职意向(_学校).pdf”,如果不在意工作地点就不用写地点,绝对避免“个人简历.pdf”
  • 针对你的目标公司专门制作简历,选择性突出公司需要的能力(包括项目经历、技能等)
  • 不需要放上“期待薪资”,薪资是通过了技术面试之后去跟HR谈的,如果能到那一步,说明你已经掌握了主动权。此外自己的薪资期望如果太高说明自我认知跟其他人的认知不太一致,如果太低反而让人看低自己的能力,如果不高不低,也没有写的必要了

2. 一个好的简历包含以下6个部分

第1部分:联系信息

  • 姓名
  • 联系电话(保持畅通的手机或座机)
  • Email地址
  • github或者个人博客地址(因为这能表现出你对专业和行业的热爱)

第2部分:教育信息

  • 学校名称
  • 专业和学位
  • 毕业时间或预计毕业时间(有些同学喜欢写xx级和xx届,比较拗口,不同学校专业的学习时间也不确定)
  • 英语四六级水平和分数

第3部分:工作经历

  • 倒叙排列,最近的工作放在最前面
  • 公司的名字、地点和你工作的时间
  • 你的职位名称
  • 2-3句话描述你做了哪些工作(不是你的职位描述,而是你做了哪些内容。比如不要写“负责xx网首页的前端开发”,而要写“对xx网首页进行了前端改版,达到了xx效果”)

第4部分:项目经历

  • 项目名称
  • 用2-3句话描述你在项目中做了哪些工作(第1句话可以说自己的产品目标是什么,我在里面负责哪一部分。第2句话可以说这个工作有一两个最难解决的地方,自己通过某种技术和方法解决了。第3句话可以说明成绩,包括产品销售的提升、质量提升)
  • 如果项目是你主导,且代码质量高,项目能在线访问的,建议放上url(如果项目是内部项目,或本身不能体现你的技术水平,或访问登录方式复杂,就不要放上来了)
  • 不要把你做过的所有工作都列出来,只放上最能体现出你解决问题能力的项目(专注地做好少数几个工作比罗列所有工作项目却无重点更好)

第5部分:技术能力

  • 编程语言:使用的语言列表,以及多少年(比如Java:2.5年)
  • 技术框架:列出使用的框架,以及“熟悉”或“掌握使用”(如果只是用了某框架xx年,但并没有输出文档、编写插件或脚手架,我们认为也是“掌握使用”的级别)
  • 应用程序:只写出独特的提升效率的程序和工具(比如sketch、gulp等),不要写每个学生或程序员都会用的(不要写Word,不要写编辑器,但vi可以写)

第6部分:奖项和领导力

  • 列出所有的技术奖项
  • 列出所有的技术竞赛成绩
  • 列出所有的体现领导才能的经历
  • 列出任何简历上还没有体现出来的不同寻常的学习经历

建议和技巧

  • 是否放上照片,建议可放可不放。有一些人认为照片能提升亲和度,有一些人(比如US-Style的简历风格)建议不要放上照片。如果希望放上照片,请记住照片是帮你获得面试机会的,而不是吓走面试官,请在照片中体现专业和亲和。照片角度正面,不要俯视、仰视、背影;姿势端正,不要躺着,跳跃;场景明亮,不要在疑似网吧的场所,也不要用登记照使用的红蓝底色,照片颜色尽量少,背景使用专业的黑色或灰色;衣着大方阳光即可,穿你的日常服装,舒服即可。如果你不知道怎样拍比较好,可以参考国外大牛的头像、或者一些技术大会上演讲嘉宾的头像风格来拍摄
  • 大部分情况下,你不需要写性别,特别是你的名字能暗示你的性别,或者你已经放上照片的情况下(显得很多余)。而且我们所有的岗位都是不限定性别的,你的性别并不能加分,所以,请只使用专业能力来获得面试机会
  • 能重点突出你的个人部分的部分请加粗或者下划线来高亮
  • 简历排版简单,绝对不要使用网上下载的通用表格,简历中避免太多横竖线条
  • 提供DOC格式和PDF格式(某些内部系统只能读取DOC),如果是PDF格式,要保证所有的文本都可以被选择(而不是图片)
  • 只讲事实。我建议你针对每个面试单独准备简历,但是简历中的内容必须是完全的事实,基于任何理由的作假和夸大都是不可以接受的
  • 自我评价这一项其实是没有什么意义的。很多人喜欢在“自我评价”一项填充很多经历内容的原因可能是不知道这些内容如何归纳,经过上面的六个部分,你应该能知道如何把这些内容放在六个部分中,而不要都堆砌到“自我评价”中。而且面试官会根据六个部分的经历来判断你的个人特质,而不是靠自己归纳总结

经营github和个人网站

Github

在简历中出现github的地址,并且有持续频繁的提交、有知名的项目贡献等,对于个人能力,都是加分的。

原因是因为一般面试官认为只有对编程真正热爱的人才会在工作之外持续提交代码。

不过,github如果没有star数量达到20的个人项目,就不要放上来了,我见过一些人的个人主页全白一片,也没有任何项目,这种情况反而是减分的。

就好像告诉面试官,我就像一片白纸一样!不过,白纸有什么可骄傲的呢?

获取star的数量其实很简单,解决一些独特的问题,然后发送到v2ex社区,求赞(比如本项目)。我也会看你作为成员参与贡献了哪些项目。

个人网站

个人网站能够作为加分项的原因也是如此,持续更新的博客能间接表明你对技术的热爱,在博文中也能看出你的写作表达能力。

如果你的个人博客非常有名,还能说明你有运营一个产品的能力,或许你还没有意识到,技术社区的影响力证明你有一定的领导才能。

不过,对于个人网站,面试官希望能看到更为个性化的一面,比如自己遇到一些困难,是如何解决的,有哪些方法。不要干巴巴地写“xxx的三种方法”,然后直接开始贴代码或者技术分析,没有前言背景。

面试官会希望看到更加个性化的候选人,更多“我”在里面(逗比风格或者严谨都可以)。

个人网站是否有自己的独立域名不重要,如果是前端工程师,有自己的域名会加分,因为会涉及到域名、缓存、SEO甚至CDN的工作。

如果是客户端工程师,github上的作品或者博客上的客户端开发类文章比较重要,如果是后台工程师,可以多发表一些算法或者抗压类的文章。

多写作和总结,能够帮助你提升写简历、邮件和表达的能力。

学习能力

作为程序员,最基本的能力就是学习能力,或者说“持续的学习能力”。

学习能力

** 企业都希望雇员有较强的学习能力和正确的解决问题的方法。**

学习能力和解决问题的方法很重要,因为作为程序员,在职业生涯中会遇到很多问题,有些问题可能是由于自己不熟悉导致的,一些问题是不好的习惯导致的,大部分问题其他人可能遇到过,少数问题可能是独一无二的。

同样是初次接触某个新的语言和框架,遇到一些问题的时候,我发现一些同学的思路一开始就是错误的,而另一些同学会直接奔着正确答案而去,而这只是靠“小脑”。

是的,我使用“正确”和“错误”这样一个略微武断的形容词,来描述解决问题的方法。

正确的学习方法:

  • 学好基础课,GPA很高,说明要么很勤奋,要么有聪明的学习方法。擅长考试也是一种能力
  • 学好英语,拥有英语CET-6证书,说明有阅读一手文档和论文的能力
  • 学习使用Google精准查询的能力,在编辑器或者浏览器报错的时候,至少知道从Google、Stackoverflow上查询解决方案
  • 基于热爱而学习
  • 学习语言和框架的本质
  • 掌握最佳实践,用有意义的英文命名变量(而不是拼音),避免回调地狱,保持每个函数精简而有意义。
  • 阅读大量书
  • 使用正确的习惯(比如编程约束或固定的写法)会减少无谓的错误

错误的学习方法:

  • 还没深入思考和行动就问人(QQ群问人、论坛问人、知乎问人)
  • 基于求职而学习,参加培训班,期望三个月突击得到一份offer
  • 收藏大量网站而不读、点赞大量文章而不思考
  • 不读书
  • 不求最佳实践、hack一个项目只要跑通就满足……

编程能力

编程能力可以从很多角度来提升。

工程能力

提升工程能力或者编码能力,最好的方法就是强行看优秀的开源项目代码。

看到头大,然后大量地记笔记、搜索,甚至自己重写一份。

算法能力

提升算法能力最好的方法就是网站刷题,推荐:

LeetCode:比较经典,现在还推出了JavaScript版本

CodeFights:比较有趣,会有对抗性

文档能力

参考本语言优秀项目的文档和注释方式。

规范的代码

多参考自己语言的最佳实践,编程规范,在编辑器中插入Lint检查器。

软能力

我在刚进入公司的时候,培训老师教了我们“软能力”这个词。它是指非职业和专业必须的“硬能力”(比如编程),但对于个人和企业效率提升,非常重要。

首先需要重视的软能力就是“沟通能力”。

沟通能力

优秀的沟通能力是指能够熟练地当面沟通、QQ和微信沟通、邮件沟通,并了解沟通目标的期望,并推进自己的目标。

糟糕的沟通能力是怎样的?

我收到一些学生给我的邮件,希望我帮忙优化简历,但是在邮件中把我的名字拼错,这是基本的错误。

我在写邮件或者在公司给同事发消息时,都会仔细检查自己有没有拼错对方的名字,以及入乡随俗使用一些尊称,以及避免在即时通讯中漏掉某些角色。

因为每个人都认为自己的名字是很重要的,所以你要尊重跟你沟通的人,首先需要拼对对方的名字、双手拿对方名片,最好还能认真读一下,避免多音字错误。

还有邮件不分行,好长一大段文字,没有重点,没办法阅读。

我很乐意给一些学生的简历提修改意见,但是请尊重我的时间。

怎样提升沟通能力?

你必须意识到沟通能力的重要性。

如果你也认为沟通足够重要,你就会自己产生解决方案,比如去知乎搜索“怎么写邮件”,或者在豆瓣读书中搜索“写作”关键词并搜索到《麦肯锡教我的写作武器》,或者不寻求外界帮助,只是一遍一遍阅读自己写下的文字,也大有帮助。

推荐阅读

Web全栈工程师的自我修养

“全栈工程师”是能独立完成一个产品的人。这本书表达了我在“全栈思维”上的想法,会囊括比这个项目更多的内容。

了解更多关于《Web全栈工程师的自我修养》

职位列表

本列表中的职位要求2年以上的资深工程师。

腾讯

UI工程师/高级UI工程师(深圳)

  • 至少有两年的前端工作经验,能够从理念上还原设计稿,能熟练阅读英文文档
  • 熟悉移动页面、响应式页面的UI开发,有Hybrid APP开发经验更佳
  • 熟悉动画效果开发和调试
  • 对网络图形或者视频资源有较深的理解(比如webP、SVG、Canvas等),熟悉网络性能优化
  • 熟悉Gulp或者Grunt开发流程
  • 熟悉SVN和git的基本操作
  • 熟悉React更佳

点评:UI开发是偏设计的工程师,使用HTML和CSS制作静态页面,有时需要少量JavaScript制作动态效果。对页面还原能力要求非常高,需要能从一个PC设计稿推导出响应式样式。页面性能要求非常高,包括 JavaScript 动画的FPS控制等。普通工程师(T3以下)对面向对象编程的要求不高。

点评:这是目前没有公开招聘的职位,我们对候选人最大的期望就是能自主学习工作,能够对项目负责,不想找单纯的码农。其实对于任何一份工作都是如此。

客户端工程师/高级客户端工程师(深圳)

  • 本科及以上学历,计算机或相关专业,2年以上工作经验,1年以上iOS平台开发经验;
  • 熟悉掌握Objective-C编程语言,较好的C、C++功底;
  • 熟悉iOS常用第三方框架和组件,熟悉面向对象化编程思想和设计模式;
  • 熟悉iOS平台的系统控件、内存管理、动画、多线程、网络、数据库等相关技术;
  • 对Socket通信、TCP/IP和HTTP有较深刻理解;
  • 理解手机客户端软件及服务端开发特点;
  • 较强的代码阅读能力,代码风格良好,能设计出高效、合理、易读、易于扩展的程序结构;
  • 具备较强的团队精神、良好的表达和沟通能力,工作认真负责;
  • 具有很强的新知识学习能力和错误调试排错能力。

高级前端工程师(深圳)

  • 本科及以上学历,计算机相关专业,3年以上成功产品web开发经验;
  • 精通PHP语言,熟练掌握各主流框架性能特点;
  • 精通HTML,CSS,ajax,js等基本前端开发技术;
  • 熟练掌握Jquery开发技术,有独立开发控件能力;
  • 熟练掌握Linux/unix 操作;
  • 熟悉Mysql和redis;
  • 熟悉angularjs和laravel框架;
  • 有良好的团队合作能力,技术视野开阔,对业界最新的前端技术和实现有浓厚的兴趣及深入的见解。

2017年毕业生已经招满了,请不要给我发邮件了,实在没办法。

2018年毕业的实习生则要等到明年夏季再开启招聘,可以继续锻炼一段时间,请参考学生篇。

联系我

邮箱

QQ群

全栈工程师VIP群(364021031)

经过接近半年的运行,我发现通过邮箱进行免费咨询的工作量超出了我的预期,所以现在只接受QQ群的联系方式。

本群是一个付费QQ群,一次性付费50元就可以加入。你可以在群里跟来自400多位全国的全栈工程师交流,也可以在群里找到我,然后将简历投递给我。

如果没有准备好投递简历,也欢迎加入全栈工程师QQ群讨论交流吹水: 364021031 。

再次声明,QQ群只是一个交流平台,大家可以互相探讨和帮助,并不保证简历一定会得到推荐。

关于入群收费,也如上面所说,群已经快满了,之前花了不少时间去清理不活跃的人。我只是希望降低我的精力不要一天到晚放在审核入群和踢人上面,小小的门槛初步筛选掉一些人,对大家都好

最后,猎头和HR勿扰!本群是工程师交流推荐群,希望是工程师通过认可技术和简历之后,自己去内部推荐的渠道,而不是猎头和HR轻松发传单的地方。