level 9
四年前毕业后就没在交大贴吧发过贴了 今天周六有空 而且正好前几天在公司内网看到2014年校招已经开始了
所以准备开帖写点关于如何应聘IT公司技术岗位的帖子 算是回报交大的一种方式吧
铁打的营盘流水的兵 目前交大贴吧的ID几乎一个都不认识了 所以 容学叔先自我介绍下:
学叔是交大信息学院05级交控专业的 当时的专业全名是 自动化(交通信息工程及控制)
09年保送至帝都的铁路对口高校(相信大家都知道是哪所)读研 专业还是交通信息工程及控制
11年9月参加百度校招 12年2月毕业后正式入职 担任软件研发工程师 俗称码农或程序猿
需要说明的是:本帖不限于只写IT技术岗应聘
根据学叔的阅历(早毕业四年不是吃闲饭的 ^_^),如果小朋友们有关于推免、关于学业、关于交控就业的疑问,也可以跟帖提问
学叔想起什么就写什么,没覆盖到的地方或疑问的地方,学弟学妹们随时跟帖并at我,有时间的时候我会尽力回复
感兴趣的学弟学妹们可以关注此贴
下楼开始正题
2013年09月07日 07点09分
2
level 9
先贴一下公司2014年校招宣讲会行程—成都站
成都只有1场宣讲会
地点:四川大学
时间:9月17日(周二)
宣讲么 就是简单介绍下公司的情况 如公司文化、员工工作&培训等等 目的是激发各位毕业生对公司的兴趣和关注
与宣讲会相对的是正式的招聘流程
百度校招的具体流程大概是:
在线投递简历 ==> 笔试 ==> 面试 ==> offer发放
关于每个阶段的deadline 校招官网写的很明白 同学们到这里围观:tongxue.baidu.com
学叔建议:有心人务必牢记自己感兴趣的企业的校招流程(可将各企业招聘流程整理成电子表格 没事多翻翻) 以免错过造成遗憾
从投简历到出最终结果 整个过程大概会持续1个多月 以学叔为例:
2011年9月23日网上提交简历
2011年10月16日在北京理工大学参加北京地区的笔试
2011年10月20日 一面 技术面 持续1小时
2011年10月25日 二面 技术面 持续1小时
2011年10月28日 三面 技术经理面 几乎没问技术 主要是考察综合能力(比如学习能力、团队配合等) 持续半小时
2011年11月3日 签三方协议卖身 从此 一如码场深似海。。。
下楼开始会按照招聘流程介绍一些经验
帖子是现写的 所以感兴趣的学弟学妹 请保持耐心
2013年09月07日 07点09分
3
level 9
先说简历的事 毕竟这是每个正规企业筛选候选人的第一道门槛
如果简历都过不了 任凭你有通天的才能 又能如何?
关于简历的话题 每年招聘季都会有人讨论
学叔这里给出申请技术岗简历的建议
当然 一家之言 是否符合你的情况 各位自取
简历么
首先 要介绍明白自己
其次 要体现自己对要应聘岗位的优势
所以 一份靠谱的简历 除了自己亲手制作比较顺眼的模板外 学叔认为至少需要覆盖以下几个部分:
1. 个人基本情况:至少应包括姓名、性别、年龄、专业方向、外语水平。至于民族、政治面貌,可写可不写,不过应聘国企时建议填写。毕竟在天朝 政治正确还是很重要的
2. 个人联系方式:包括手机号码、邮箱,建议适当加黑或加粗以便突出。邮箱尽量使用看起来比较正式的邮箱,如gmail、网易163、网易126等都行,不建议使用大企鹅的QQ邮箱(好吧 企鹅无辜中枪 学叔不是故意的)
3. 求职意向:请务必写清楚。IT企业一般招聘职位较多且分工明确,如果HR拿到简历瞅了半天,连候选人要应聘什么职位都不清楚,那么对于求职者来说,真的不是一件妙事。
4. 个人技能,包括IT需要的专业技能 和 软技能 两大类
关于专业技能,应聘技术岗的同学,一定注意实事求是地写。切忌出现神码"精通C++"、"精通操作系统"之类的内容。不管你是本科生还是硕士,在天朝的大多数高校,是几乎不可能出现精通这些东西的人物的。相信我,靠谱的技术面试官通常对技术形容词都很敏感,所以,不要玩火。各位可以根据对技术点的掌握程度,适当地用"参加xx竞赛获得xx奖"、"对数据结构或算法有深刻理解"、"熟练掌握某语言"、"熟悉某开发环境"、"擅长编写客户端/服务器软件"、"掌握或理解"等词汇来表现自己的技能点。当然,如果指标可以量化,则最好不过,比如"熟练掌握c/c++/python/php等4门编程语言,具有1年开发经验"就比笼统地写"熟悉C/C++编程"要更有说服力。
关于软技能,包括英语、沟通能力等。CET-4 or CET-6成绩好的同学,可以顺便把分数列出来,或者写明自己具备查阅英文技术文献的能力。至于沟通能力,参加过社团、班干什么的,可以提一下。
5. 除去上面4项必备内容,剩下的就见仁见智了。如果有的话,学业或竞赛获奖经历可以单独列出来,以便突出自己是个学业+动手能力全面发展的候选人。至于课外活动及自我评价等部分,对于应聘技术岗来说,写不写无所谓。要写的话,避免夸大其词,以免画蛇添足。
2013年09月07日 08点09分
8
level 9
当然 关于简历 各位也不要太担心
只要是自己用心制作的、看起来比较靠谱的简历 凭着交大211重点大学的牌子 还是比较容易通过初步筛选 拿到笔试资格的
当然,前提是:要记得在deadline之前,把简历成功提交到应聘公司的简历系统中。
此外,就算是技术岗,不同部门对技能点也有不同的要求。百度的简历系统中需要候选人选3个职位意向,跟高考志愿类似,一般情况下,优先录取第1意向对口的候选人。考虑到每年全国应聘百度职位的毕业生的人数,若第1意向没搞定,第2、3意向也基本没机会被录取。
所以,请务必把自己最有把握的应聘职位放到第1意向,然后,乖乖去准备笔试吧。
下面开始说笔试
百度技术岗的笔试题,是每个大部门自己出题的,所以,每年笔试完都会有数套笔试题在网上流传。
考察面主要包括:
1. 基本要求
语言(主要是C/C++)、计组原理、操作系统原理、计算机网络。如指针运算、字节对齐、函数调用栈帧结构、内存管理、进程调度、网络协议七层模型等。通常以问答题形式出现。
2. 数据结构及算法
查找(典型如二分查找)、排序(典型如快排、外排)、树(典型如2叉树的前/中/后序遍历、trie树)。人品好的话,是题目明确告诉你"请写出2叉树中序遍历的算法伪码并分析复杂度",这种题目还算简单。不走运的话,题目相对抽象,比如"给定一个存放几亿个整数值的文件,设计一种算法,在满足xx空间复杂度或xx时间复杂度的前提下,对这些整数做xx处理",这种题目是比较难对付的。所以,大家要有心理准备。这部分通常是写算法伪码。
3. 系统设计题
文字描述一段实际的业务场景,要求设计一个系统,能多快好省地实现xxx功能。
这种题目比较发散,通常,大部分校招学生对这类设计题都不可能有啥经验。基本是凭借自己对系统,尤其是计算机组成原理或操作系统的理解,触类旁通,自由发挥,做到有理有据,逻辑严谨即可。这类题目的考察点通常也不是某个标准答案,而是你分析实际问题的能力。
2013年09月07日 09点09分
12
level 9
上面罗列了大概的笔试题型
感兴趣的学弟学妹们可以goole或百度搜索具体年份的笔试题 可以试着练习一下 感受感受题目的难度
下面介绍如何准备笔试
虽然笔试的内容通常都是平时积累的知识 但也不可忽视"考前突击"的重要性 相信各位都懂的
1. c/c++
推荐教材:c programming language (C语言缔造者写的教材 短小精悍 甩谭浩强叔叔几十条街)、c++ primer、effective c++
2. 计算机系统
不清楚交大的教材是那本,学叔自学时用的教材:
《深入理解计算机系统》 英文名:Computer.Systems:A Programmer's Perspective
《现代操作系统》 英文名:Modern Operating Systems
3. 数据结构及算法
当年交大用的教材是清华严蔚敏教授的《数据结构》C语言版
找工作前,学叔也是用这本书复习的
当然,如果有牛人在啃MIT的《算法导论》或 Donald E.Knuth著的《计算机程序设计艺术》,那算法这块知识点应当没啥大问题了
4. 临时抱佛脚的面试题
前面3条列出的资料,都是需要一定时间来消化的。现在从零开始的话,时间显然来不及。所以,学叔这里给出一些资料,权当抛砖引玉。
1)《编程之美》微软技术面试心得
该书总结了互联网公司经常用到的几十种典型算法题,绝对值得好好研究,相比之下,程序员面试宝典之类的国产快餐,就是一坨翔。。。
2)csdn博客—结构之法 算法之道
google或百度搜索"结构之法" 第1条搜索结构点进去就是。该blog的博主为算法牛人,建议有兴趣的同学去围观其中的面试算法题。
此外,该算法大牛的新浪微博号是研究者July,最近在搞面试算法题讲座,可以去关注。
2013年09月07日 09点09分
17
level 9
需要另外说明的是:
根据学叔对周围的观察 百度的笔试邀请函发放比较那个随意。。。
所以 同学们(尤其是硕士生)可能发现一堆人都轰轰烈烈地去参加笔试了
但是,百度的笔试题相对是比较难的(大家可以在网上调研一下,在BAT三巨头中,百度的笔试、面试基本是最难的),绝非像有的小公司那样走个过场。据粗略估计,笔试几乎可以刷掉百分之七八十的人。(基本上,阿里和腾讯也是海笔战术先筛选一轮)
所以,不想收到好人卡的学弟学妹们,请务必重视笔试,提前做好充分的准备。
说完笔试,按照流程,该说面试了。
但学叔刚发现,有必要先介绍下互联网公司的典型职位(包括技术岗和非技术岗),否则,估计很多在校生连简历该投哪个职位都很迷茫。
所以下楼准备临时插播下互联网公司的主要职位分工
2013年09月07日 10点09分
21
你是百度什么岗位啊?做什么的?
2013年09月07日 10点09分
回复 IsaacLi_cs :垂直搜索部 视频相关 Linux后端
2013年09月07日 11点09分
回复 厚积者薄发 :噢,我寝室同学已经拿到上海的好像是商业基础部的offer了,暑假来招的,可惜当时我不在杭州。。。
2013年09月07日 11点09分
回复 IsaacLi_cs :校招刚开始 没这么快吧 说的是实习offer吗?
2013年09月07日 11点09分
level 9
作为码农 自然是先介绍自己比较熟悉的技术岗分工
大体来说,可以分为下面大类:
1. 研发工程师(Research & Development Engineer, RD)
RD主要负责新产品/新技术的调研和开发,写调研报告、写设计文档、接口文档等等,当然,最主要的本职工作还是垒代码。
这里的"产品"主要包括用户产品和基础服务。
用户产品,顾名思义,就是直接面向广大用户的,比如百度搜索、百度贴吧、百度视频、百度图片、百度云、百度影音、百度输入法、百度魔图等各种网页类、PC端、移动端软件产品。(学叔借机宣传下公司产品,各位不要拍砖,^_^)
基础服务则是为公司其他产品部门提供基础模块,如编写公司公共库、开发分布式文件系统、开发公共平台(如百度应用引擎BAE)、建设公司CDN网络等。百度内部的基础架构部和系统部都是典型的基础服务团队。
顺便八卦一下:对于互联网公司来说,基础服务团队的整体技术水平是整个公司最高的,因为这些团队会把底层技术专研的很深。所以,基础服务团队的技术积累也是衡量一个公司技术实力的主要因素。国外的Google、Facebook,国内的BAT,最NB的工程师很多都集中在基础服务团队。
当然,用户产品也出有牛人,只是相对来说,没有基础服务团队大牛密度大。
2013年09月07日 11点09分
24
level 9
2. 质量保证工程师(QA,即测试)
RD开发完新模块自测完毕后,需要提交QA测试。原则上,测试通过后方可上线。
所以,QA基本是产品质量的最后一道防线(第一防线也是最重要的防线当然是RD本人,一个合格的工程师,自己要尽量保证代码质量)。
与RD一样,QA也分为前端和后端。
前端QA主要是测试UI交互逻辑等,必要时须写自动测试脚本代替人肉点击。相对来说,点击界面的测试工作比较简单,所以,互联网公司采取的方法一般是自家员工带一堆外包QA。(因为外包人员不需要公司缴纳五险一金和商业保险,省钱)
后端QA负责测试后端代码,通常会伴随着大量的白盒测试(即要读RD的模块代码),必备技能是写测试脚本(后端模块通常是通过linux命令行交互的,无UI界面),脚本语言嘛,python/ruby/php/perl会1至2项即可胜任大部分测试脚本的编写工作。
通常来说,QA的校招笔试面试难度要小于RD。所以,各位根据自己对C/C++、算法等的掌握情况,避开RD的竞争,能拿到QA的offer也未尝不可(工资水平是跟RD看齐的)。
另外,女生应聘QA的话,相对比较合适(细心+耐心)
2013年09月07日 11点09分
25
level 9
3. 运维工程师(Operations Engineer, OP)
OP通常负责维护线上机器或服务,保证服务可用。大的产品线后端拥有成百上千台服务器并不稀奇,如果没有一套自动化系统或专业工程师去维护的话,大家可以想象会发生什么:机房网络故障或掉电如何处理、服务器故障如何预测、如何快速恢复、新模块如何快速部署至几百台机器上、模块崩溃后如何报警、新上线的模块有bug如何回滚,等等。
这些都是OP工程师负责的范畴。
OP必备技能:
Linux系统管理、编写shell/python等自动化脚本
学叔见过的某些OP,可能C/C++掌握得不是很好(也能开发较简单的C模块),但脚本语言的技能点非常"凶残",水准可能会秒杀大部分后端RD。
Linux系统管理的入门书籍,学叔推荐:《鸟哥的Linux私房菜》
自己装个linux虚拟机,照着私房菜的内容捣鼓1个月,说不定OP的offer就到手了哦
2013年09月07日 11点09分
26
level 9
另外需要补充说明的是:
OP职位里面也有研发岗 负责自动化运维系统的研发
还有负责修改或运维数据库的DBA岗位
总之 OP的运维水准也是衡量一个互联网公司技术实力的重要指标
2013年09月07日 11点09分
27
level 9
4. 基础技术研发岗
如最近在工业界很火的机器学习(尤其是deep learning)、自然语言处理NLP、语言识别、图像处理等偏理论的研发岗位,百度都有相关职位
不过据学叔了解,交大信息学院几乎没有老师搞这块的科研,所以这里写给有心人。
如果有人要去外校深造CS或自动化,可以考虑优选这些方向,门槛较高且缺口很大
2013年09月07日 11点09分
28
level 9
介绍完主要的技术岗位 下面开始介绍非技术岗
对互联网企业感兴趣但苦于不是CS出身的同学们可以关注本楼列出的岗位
1. 产品经理(Product Manager, PM)
不要被"经理"吓到呵,其实也是一线员工,只不过不写代码,负责产品的设计和策划。
具体工作内容,在校招官网(tongxue.baidu.com)上说的很明白,大家可以去了解下。
2. 用户体验
细分为 用户体验 和 交互设计 两个岗位
具体的工作职责,学叔只是大概了解,为避免误导各位,建议感兴趣的同学以校招官网说明为准。
2013年09月07日 12点09分
29
level 9
好了 插播完互联网公司主要岗位分工
现在开始介绍面试流程
百度的技术岗面试,会在笔试后1周内启动,正常情况下,共3轮,其中前轮为技术面,最后一轮是你要加入的产品线的leader亲自综合面。
从笔试突围的人,大概会有一多半倒在前两轮技术面上。
正常情况下,每轮纯技术面会持续1个小时,问题无非就是考察各位对IT技能掌握的深度和广度。
问题范围还是集中在下面几块知识点上:
1. 语言+开发平台
语言的话,RD一般以考察C/C++为主,QA和OP可能会考察脚本语言的掌握情况
开发平台,如学叔虽然现在是后端RD,但当年其实是没搞过linux的,本科毕设及读研期间的工程项目全部是在windows平台下用VS开发,所以被问到了很多windows平台的东西,比如windows的消息机制、dll如何编写、如何动态调用dll中的函数,等等。还被问到了诸如函数调用约定、函数调用时的栈帧结构、参数压栈顺序等细节问题
2. 计算机系统结构、操作系统
进程管理(如简述linux系统的进程调度算法、线程切换算法、多线程同步)、内存管理(如堆/栈的常见用法和误区,比如函数返回后访问栈变量、内存泄露等)、文件系统。
进程间通信,比如TCP/UDP编程,消息机制等,比如当年学叔被问到的问题:windows下除了socket实现进程间通信外,还有什么别的方式? 匿名管道的原理?等等
3. 数据结构+算法
学叔遇到的1面面试官,事先准备好题目卡片,念完题目后,要求在纸上写代码(当然,写出伪码即可)
基础的查找、排序、树都有可能被问到
4. 系统设计
主要是考察分析问题的思维能力,CS不是有个经典的分治思想么,这类题的目的就是考察大家分解问题、解决问题的能力。只要思路正确,感觉最后结果倒不是那么重要。
在面试过程中,切记的一点是:要一直与面试官保持交流。
碰到比较难啃的题目,有思路的话一定要说出来,面试官可能会对你的思路做出对或错的提示,如果对了,就继续往下想,如果面试官提示思路错了,则可以尽快抽身出来。
切忌拿到题目后,不鸟面试官,蒙头苦思导致的冷场。
关于更具体的面经,网上一搜一大堆,学叔也就不再拾人牙慧了。
有问题的同学,可以跟帖留言
2013年09月07日 12点09分
31
level 9
另外 本帖2楼已经申明
对推免或交控就业有疑问的学弟学妹 也可以留言给我
毕竟学叔学了6.5年交控专业 还是了解一点的
2013年09月07日 12点09分
32
level 9
最后 祝各位大四的学弟学妹找工作顺利~
与各位共勉:
天下没有免费的午餐 越努力越幸运!
2013年09月07日 12点09分
33