文/michaelgbw
前言
2016的校招所谓的“金9银10”已经“金”马上就过去了,对于大四工作狗来说,是时候表演真正的技术了。本人三方已签,就今年的形式和笔面试的技巧和大家做一个讨论。也为明年找工作的学弟学妹们铺下路。还有就是也别太迷信BAT,今年华为就很逆天啊~
首先说笔试
我自己也做了不少笔试,包括京东,滴滴,美团,腾讯,百度,阿里等。首先先写到前面的一句话即是:
笔试可以挂,但绝不代表公司不给你机会面试,也并不代表能力不行。
首先我先说明下我的岗位是后端研发(当然有的公司啥都考),有在线编程题,这就要求我们对其平台十分了解,尤其是各种语言的在线编程和调试机制,输入输出之类的。然后就是要注意时间,可以助攻(你们懂得),但千万别太过了。接下来就我笔试过的几家公司来具体说道说道:
京东,滴滴,美团
我把京东滴滴美团归为一类,因为这几家公司实在是太像了(在笔试题方面),20道选择题,两道编程题,一个综合题。
选择题这几个公司很像的,几乎是什么都涉及到了,数据结构,算法,操作系统,编程基础(语言以c为主),网络通信,数据库。什么都会涉及到,这就要求我们笔试者有很好的计算机基础,这里我就不举例了,大家可移步到牛客网,赛码网刷题即可。
编程题,这两家公司都是采用赛码网的平台,这个平台有个好处就是编程题可以调出页面来使用自己的IDE,不错不错,有些函数忘了还可以百度百度,哈哈,但千万别想着去整到题去百度,这是自讨苦吃,百度不到的。两道编程题从难到易,一般第二道题较难,没时间或根本不会做到100%accepted,把思路一定要写上去即可,很巧的是,这三家笔试编程题都有一个DP(动态规划的)。这里分享一个美团的题吧:
一圆桌子,放了一排红包。有个规则就是不能取相邻的红包,首位相连,用‘ ’分割的string表示。比如1,3,4.要取3,就不能取1,4。问最大可以取的红包数是多少。
eg:
输入:
1 3 4
4
3 9 7 5 1 3 1 2 7
输出:
5
4
24
<?php
function get_no_continiu_max($str){
$arr=explode(' ',$str);
//print_r($arr);
$data=array();
$len=count($arr);
for($num=0;$num<2;$num++){
if($num==0){
array_pop($arr);
}
else{
array_shift($arr);
}
$data[0]=$arr[0];
$data[1]=$arr[1];
$current_max=($data[0] > $data[1]) ? $data[0] : $data[1];
for($i=2;$i<count($arr);$i++){
for($j=0;$j<$i-1;$j++){
if($arr[$i] + $data[$j] > $current_max){
$current_max =$arr[$i] + $data[$j];
}
}
$data[$i]=$current_max;
}
if($num==0)
$re1=$current_max;
else
$re2=$current_max;
$arr=explode(' ',$str);
$data=array();
$len=count($arr);
}
return max($re1,$re2);
}
再就是综合题,比如设计个方案来承载高并发的高容灾的服务器架构等,这个每个方向不同。具体原则是把自己知道的都写上去,别管相不相关,但绝对不能答错。
BAT
其实B和A的笔试题侧重点还是不怎么一样的,但我把他们归为一类来说,就是这两家,我其实是投的前端。(人家也不想,,说多了都是泪)。
阿里笔试总共一个小时,没有编程题。20道题,5个填空,其他选择题。总结起来就是各种前端框架(vue,react,angular)。直接被虐残了,考的知识的广度非常大,但深度不大。看来校招真的是流程了,完全不想招人。。
百度的笔试其实还好,之前有幸在百度实习过一段时间,前端PHP,JQ,CSS3,H5,linux。基础还算正常难度,编程题是亮点,两道题都是来自于现实的问题,一个是web的颜色反转,还有一个是xml的标签定位。把算法融合到相应的实际问题中。
腾讯
鹅场的笔试和全年一样,30个选择,2个编程,2个问答,2个小时。个人认为鹅场的面试和笔试是最难的,笔试不管什么岗都考c++,这真的是醉了。不过还好鹅场编程题不是很难,基本都是写常规算法题。。基本没什么问题。
面试
比起笔试来说面试则更加重要,因为如果说笔试能作弊,面试几乎不可能。这里只说技术面,因为到了hr就基本妥了,hr就就是聊人生聊理想。
百度
首先说"老东家"百度,由于是内推,在正式校招开始前就面试了。
- 一面
自我介绍后基本就是聊项目了,在百度实习经历加分不少,然后说出一道智力测试题吧:
是不是有点蒙,我也是。然后开始问概率论,问的什么记不清了,难度还行,之后来个算法,国际象棋的上有两个棋子,只能斜着走,给出两个棋子的位子(x,y),一个棋子用几步能把另一棋子吃掉。说实话这道题答得并不好,思路都不怎么被面试官认可,,唉,然后就是问了问session和cookie的区别呀,PHP如何进行session全局,跨服务器共享等,这还行。
- 二面
也是上来问项目,但和一面不同的是问的更加细致,还有实现的效率问题。记得当时的算法题是这样的,有100多万的无规律大数array,然后对其进行一个100多万次的无规则运算,比如第3000个所有数相加,2000到4000数相加,可能越界。不接受O(n*n)的算法复杂度。
这个当时真不会考虑越界问题怎么处理,感觉真的答得不是很好。。
然后就随便聊了聊相关的职业发展方向。感觉答得真的不好。。。
360
- 一面
问的很细致,PHP的基本语法,mysql的两种引擎的区别,和锁的机制,索引的实现,left join和right join的区别,http协议的优化,缓存控制等,tcp/ip
的三次握手,四次挥手等等,很多,最后算法是给你个n,求n之前所有素数。现场写代码,还行吧,面完一看表1个小时10分钟。 - 二面
休息了30min,开始了二面,二面的面试官很nice,完全没有压力面的意思,上来就说了下他们的面试流程,然后就是对着简历问项目,也是问的很细致,还问了这个项目的盈利点是什么。这,呵呵。但人真的不错,,算法题是两个无序数组求差集,并求算法复杂度。还好,再有就是除了mysql,还用过什么,除了PHP,js还会什么语言。并大概讲了讲为什么,很好,面试官全程笑呵呵的。很nice,很像和主管聊天。。
腾讯
- 一面
这个挂的最惨,一面什么都不问,就问你投的是WXG吧,我是IEG的,微信并不招人,在西安。然后就聊了聊我在百度的实习过程,唯一的一个技术问题就是js的匿名函数有什么作用,然后同学你还有什么问题吗?我去。。。好吧,不到30min,,然后就没有然后了。直接蒙了,,这是干嘛??
乐其网络
- 一面
这个是个创业公司,是陪同学去面的,我就顺带霸面了一波。上来介绍项目,然后一个有序数组求一个数第一次出现的位置,简单二分查找,就是return的时候不能直接返回,再向前挪动指针,知道和查找到的不同就行,,然后让我写了几句sql,还行。 - 二面
一面后2min后,开始二面,看来真的是挺急的。二面问的有深度点,https的原理,ssl如何防止中间人攻击等,mysql的索引原理,为什么联合索引是左优先原则,然后就问了问今后的职业规划,和期待薪资。
总结
面试什么的都是你和面试官的直接对话,这个很有运气的成分在里面,不过不代表你能力不行,只是更多的是不合适他们公司吧。
还有就是别,太,看,重,薪,资(我自己都有点不信,唉~),适合自己的最好,确定了一家公司就一心一意干。我们程序员都是写很普通的人,很简单,看准一件事,只要自己觉得值得,就会奋不顾身。比如一个女孩,聊的来,那她就是全世界。
最后再次恳求拿到高薪资offer的大大们给我们留条生路,都不容易,还没拿到理想offer的大大们加油,祝好~