我的2018校招

我是2016届专升本,今年参加的是2018届各大公司的校招,有苦有甜,有悲有欢,有过失落,也有过欢喜,虽然现在校招还没有结束,但是我还是决定先把我这次校招的经历写出来,希望对我的学弟学妹们有所帮助。
我目前投过简历的公司有:阿里巴巴、京东、腾讯、美团点评等等,其中阿里巴巴、京东是笔试通过,但是一面挂了,链家等过了笔试拒了面试,网易、腾讯笔试未通过,美团点评拿到了offer……

阿里巴巴

笔试

阿里巴巴的笔试题比较坑,题目描述的比较模糊,而且没有对应的测试样例,这一点不同于ACM等比赛,我想可能主要看的是思路和代码风格等方面,笔试题还是基础题为主,主要涉及的有:操作系统、计算机组成原理、接口、C/C++/Java语言、网络原理还有一部分的智商题,题目还是挺强的,编程题是在思路难度和编码难度之间平衡,可能遇到思路很难但是编码简单的题,也可能遇到思路很简单但是编码很复杂的题。

一面

一面是远程面试,用的阿里自己开发的网络会议平台(一个网页),面试官先要求自我介绍一下,就大体的介绍一下自己的名字、学校等就可以了,主要问一些基础知识,然后一定会问到一个问题,就是“你觉得你最拿手的地方是什么”,注意这个问题,一定要提前准备一个非常充足的一个方面,比如:设计模式、布局、网络编程、优化等等方面,然后你说哪方面,面试官下面就会专门问这个方面的问题,我因为经验不足不小心透露了一点设计模式,然后就被问到死……
算法方面面试官只问了一个问题“如何判断一个单链表有环”,我当时只想到一个hash表,面试官说这个空间复杂度是O(n)的,有没有O(1)复杂度的,然后我没答出来,探后面试官就没有继续往下问就结束了,后来才知道是一道经典的题,解法我放在文章的最后面了,有兴趣的读者可以去看一下。
因为一面回答的简直灾难,所以顺利的挂到这里,没有二三面了……

总结

阿里的面试强度比较高,面试官水平都很高,比较注重基础知识,对于算法的关注度一般,所以校招阿里的时候一定要基础知识过硬。


京东

京东虽然没有BAT那么的高冷,但是也是一梯队公司中的佼佼者,所以要是没有过硬的基础,还是比较困难的。

笔试

京东的笔试跟阿里巴巴一样,基础知识题占绝大多数,但是更注重算法题,算法题在笔试中好像是有60分以上。但是京东的笔试题不像阿里巴巴那么的随心所欲,他是ACM的提交规则,OI的评分规则,即可以无数次提交,根据通过的测试样例数来评分,最后去所有提交中的最高分。
京东的算法题难度很有梯度,题目从简单到难都有,一般是三道题,只要ACM能达到省赛银牌水平,AK是没有什么问题的。

面试

与阿里巴巴面试不同,京东的面试是现场面试,一个大厅,里面上百个座位(有钱就是任性),每一个座位有一个面试官,提前一点去扫码签到,会短信通知面试位置等信息。
我面试的时候提前去了一个多小时,然后距离一个小时的时候就有了面试通知,去把面试官吓了一跳,那时候面试官还没有准备好……
面试过程还好,主要还是基础知识,不过是偏向于Android的基础和Java的一些知识,问的比较底层,差不多是这样的过程:
面:做一下自我介绍吧
我:我叫XX,来自XXX学校(巴拉巴拉……)
面:我看你的简历上项目经验不少呀,有已经上线的吗?
我:大部分都是内部项目,但是有一个是在线可以演示的(掏手机演示……)
面:(指着里面的滚动Banner)这个是怎么实现的呢?
我:这个用的一个第三方的框架。
面:(翻了半天APP)那我们来问一些基础知识吧,你能说一下activity的生命周期吗?(划重点,问出这个问题来的面试官一定是不懂Android的面试官,下面就可以适当的吹一点了…)
我:生命周期有(巴拉巴拉)
面:说一下activity的启动模式
我:(巴拉巴拉)
面:那我用singleTask模式下,A跳转到B在跳转到A,生命周期分别执行了哪些呢?
我:(巴拉巴拉)
面:(画了一个actionBar)如果这个布局让你来做的话,你会怎么做呢?
我:可以(巴拉巴拉,大体就是定义一个带返回箭头、title和menu的一个actionBar,很基础也很简单)
面:偶偶,其实没有那么麻烦,你说的那个我都没见过(我:???),可以这样就行了,定义一个相对布局(我:???)然后……(我:喵喵喵???)
我:……
面:那我们来说一下Java吧,你说一下java中的map和hashmap的区别吧。
我:(喵喵喵???)map是一个接口,hashmap是实现的map接口,使用哈希表实现的一个储存键值对的一个容器,对应的还有treemap(注意这里,说的太多了,掉坑里了),实现方式是红黑树。
面:诶呦?你了解过红黑树呀,那说一下红黑树吧
我:(祸从口出……然后把我知道的一些红黑树的东西说了一下)
面:好的,那今天的面试就到这里,你有什么想问我的吗?
(基本到这里就结束了,然后就回去等通知就可以了)
这次面试中,那个面试官一直问的是Android一些被问臭了的东西,所以我怀疑是交叉面试,而那个面试官可能不是专业做Android相关开发的,所以面试还是有一定的运气成分在里面,这个东西就不好说了,但是基础知识还是要过硬才行。
就这样,我的京东莫名其妙就挂了……

总结

京东比较注重算法,面试有可能会遇到交叉面试,一定要注意识别是否碰到了交叉面试。基础知识一定要过关,算法一定要过关,对于Android和Java一些底层的一定要掌握好。


美团点评

因为美团点评我没有选择某一部门,所以随机分配到了美旅部门,还好还是美团的三个核心部门之一。

笔试

美团因为有一个CodeM大赛在那里,所以美团是非常注重算法与数据结构的,而且要求是能非常灵活的运用,假如你还是仅限于书本知识(比如严蔚敏版的《数据结构》)的话,还是抓紧时间去LeetCode、牛客等OJ去刷题吧,如果你的水平在ACM省赛铜牌的水平或者Noip二等奖左右的水平的话,只要编码能力过关,算法能力上还是没太有什么问题的。

面试

美团的面试一共四轮,一面试基础知识,二面比较深入了,三面一般是性格测试,看你的学习积极性,性格什么的,然后就是HR面。这四轮面试会在一天之内全部面完,所以要做好持久战的准备。同样,美团也是现场面试,而且是在美团的总部大楼里面面试。

一面

一面时间是最长的,大约面了一个半小时。一面问的问题都是基础知识,大约包含以下:
1、activity的启动模式是怎样的
2、activity的生命周期的一些细节和比较奇葩的场景下的一些问题
3、handler的内部实现原理(这个表示临近面试恶补了一下,正好问到了)
4、关于使用activity和fragment之间传数据问题
5、关于activity和fragment的内存泄漏问题
6、handler使用内存泄漏的问题
大体问了这些东西,然后又问了一些算法数据结构问题
1、手写一个求一棵二叉树的最大深度,并且任意输出其中的一条最深的路径(裸的DFS)
2、给一棵二叉树和这个二叉树中的两个点,求这两个点的最短距离(最近公共祖先,上一个DFS简单变形就可以)
3、给一颗二叉树,求他的左右视图(贪心+DFS+哈希表就可以,不过面试官貌似不知道这个思路,我说完这个思路以后他自己一脸懵逼……)
4、给一棵二叉树,求里面距离最远的两个点和路径距离(这个题我没太有思路,刚说了一句DP可解的时候面试官就说可以了,一面超时,找HR准备二面……)
美团的手写数据结构和算法是出了名的,所以美团不光要有过硬的基础知识,还要有非常灵活的思维和很好的算法基础。

二面

一面结束以后大约十分钟左右就开始了二面,二面主要问的比较低层,表示全程被碾压,大约包含以下:
1、找一下项目演示一下,然后问了轮播banner的实现原理,并进一步问了循环轮播的一些问题,这个没有固定答案,主要看的是思维是否敏捷,能很短的时间内的就有一个大体的解决方案。
2、问了一下http和https的区别还有一些网络中底层的一些东西
3、网络请求方式常用的有哪些,GET和POST有什么区别,为什么登录的时候要用POST
4、如果手机上同时有一个美团APP和一个猫眼电影APP,这时候要实现,登录上美团以后,打开猫眼的时候,会使用美团的登录信息自动登录,如何实现(这个我回答的不是太好,可能他想问的是Android跨进程通讯,但是我没有Get到……)
5、说一下Java中的各个集合类,其中hashmap是如何实现的,用哈希表实现的话是如何解决变长和哈希冲突的问题,顺便问了线程安全的东西,集合类中线程不安全的如何让他们变成线程安全的,我当时是拿出单例模式来说了一下,也不知道行不行……
6、在操作系统层面,共享资源是如何实现线程安全的
7、如何让一个类中的某一个方法实现线程安全
问完这些东西以后又让手写代码了,这次是给了一个方法,让实现它,传入一个Set集合,然后返回一个List表示这个集合的所有子集。
然后我写了一个DFS,写的有点乱,面试官表示对我的字无可奈何,然后让我讲给他听……
可能面试官对我的算法水平还是挺满意的,即使我基础知识被一路碾压,但是还是让我进入了三面

三面

本来我以为二面结束以后就直接HR了,结果被告知还有一个三面,然后我就崩了,二面这难度都这样了,三面是得多变态……
结果真正到了三面,发现面试官不问技术问题了,就是一直聊天,大约内容是这样的:
做一下自我介绍,在哪里上学,实习经历怎么样,学习经历怎么样,参加的比赛的详细情况,对未来的打算,有没有学习目标,半年内有没有详细的学习计划,你觉得前景如何,学过什么语言,这些语言对比一下……就这样的一些问题,后来回想了一下,其实三面才是最重要的,因为三面是相当于性格测试,看你的性格怎么样,待人怎么样,能不能融入到团队中去,还会测试学习劲头、是不是满满的正能量之类的。
三面的技巧就是只要表现出强烈的学习欲望,表达出学无止境的想法,体现出自己的亲和力就没有什么问题,这里千万不要说自己讨厌某人或者某公司,否则是一个大大的扣分项,一定要是满满的积极向上的正能量。
只要把握了这些技巧,三面是没有问题的。

HR面

假如告知等待HR面试的话,那么就可以大体的宣布拿下了offer了,会有HR小姐姐给你介绍公司部门的一些情况,公司文化氛围,福利待遇之类的,还有最重要的薪资问题,由于薪资福利是要求保密的,所以这里就不多说了,基本HR面试就是给你介绍部门的,最后会问你是否接受这份offer,只要说接受就好了。

总结

美团点评的手写代码是业界出名的,这就要求平常练习中有过硬的编码能力和算法水平,基础知识只是不是太差一般也没有什么问题,所以还是那句话“算法是程序的灵魂”


关于其他公司的一些笔试就不多说了,但是有几个共同点,就是算法题会占有非常大的一部分,项目中的问题基本不会问,问的全部都是基础知识,但是会比较深,所以一定要知其然也要知其所以然,平常多去看一下底层实现原理,也可以去研究一下源码,这会是一个很大的加分项。

最后一点非常非常重要,每次面试,无论是否要求带简历,一定要至少带一份纸质简历去面试,否则会很尴尬的,不要问我怎么知道的,我不想说……


另附阿里面试算法题解法
给一个单链表,如何在空间复杂度O(1),时间复杂度O(n)的情况下判断出有没有环?
解法是只需要两个指针,一快一慢,都从指针开头开始向后移动,快指针一次移动两个元素,慢指针一次移动一个元素即可判断。假如链表有环,则快指针会反过来追上慢指针,假如没有环,则快指针会到达链表结尾。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值