------------------------------------------------------------------------------------------写在最前--------------------------------------------------------------------
其实主观上并不是很想写,但坚持写完是希望能分享给准备进互联网实习或工作的同学或朋友一些经验和收获
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
阿里的内推面试一共4轮,持续的时间说短也不短,说长应该算是挺长的,20天的样子。。。
初面:大概是下午5点30,面试官给我打来电话,说是阿里的面试官,要跟我聊聊,由于第一次电话面试,还是有点小紧张的,但其实面试官人很nice,上来让我做一下自我介绍(自我介绍的时候,千万别以我叫xxx开头,开门见山地说自己的情况,比如自己最近在做什么,自己平时的兴趣爱好),面试官好像对我的毕设内容挺感兴趣,问了不少关于并行计算,多线程编程的东西(其实他根本就不懂),之后又问我运行时多态和编译时多态的区别,如何用C实现C++的三大特性,聊完了C和C++,又问我还会什么语言,我说了python,shell等,便问我如何用python实现一个http协议,然后又叫我说出自己对python这门语言的看法,聊完python之后,又问我一些网络编程的东西,比如阻塞与非阻塞I/O的模型区别,然后问我改进方案,我跟他说用select/poll并发机制,他又叫我简单地说明了一下select机制的原理。接着又问我linux内核的知识,问我浏览器的内核机制,又问了内核必备的核心配置(寒假带了本linux内核设计与实现回去,放在床头就没翻过 - -!)还好之前有点基础,跟他扯了扯一些管道线程,内存机制,任务调度之类的也就蒙混过关了。最后他问我平时喜欢做什么,我就说看看书,写写博客,逛逛论坛,打打球之类的(不要说一些没有情怀的兴趣就ok),他问我有什么要问他的,我想了想,就问他一些阿里的核心技术,面试官人很好,跟我聊了聊阿里的平台与架构(阿里的核心技术是Java,so...)。整个面试过程五十多分钟,初面主要就是看着你的简历问,什么都问,问的知识面非常广,很基础,主要就是考察你的知识面,看你懂的技术是否多。
复面:初面后一天,就接到了复面的电话,面试官是部门总监(P9,M4级别的),上来又来了一次自我介绍。。。然后,直接开始进入了面试,后来总结了一下,问了我五道题目:
1.如何创建双向循环链表。我用C代码跟他描述了一边如何生成双向循环链表,然后说了节点域和指针域,头结点和尾结点。他问我如何进行双向链表进行删除操作,我又把思路和注意点说明了一下。
2.选取一种最优的排序法,将无序链表进行排序。这里要考虑到成本之类的,核心其实就是链表是线性表,读取写入的成本巨大,跟数组这种非线性结构不同,考虑到最优只能是相邻之间的数据操作,我说了我选择稳定性高的双向冒泡排序,他又问我如何看待排序算法的复杂度跟稳定性,我说稳定性是绝对的,复杂度是相对,快排是好,但是不稳定,o(n2)跟o(nlogn)并不是衡量一个排序法的绝对指标,面试官好像还是比较赞同我的说法。
3.第三道题是一个user case的题目。他给我描述了一整套事件,叫我分析出其中的所有个体,并说明之间的依赖性与继承性,最后叫我如何运用多态性设计另外一个实例。这道题纯粹的是一个面向对象的概念题,应该就是考察我对OO模型的认识有多深,这道题目其实最难的是找出所有的个体,极度地抽象(面试官很nice,给了提示),最后我自己你定了一个行为(就是C++中的虚函数,C中的接口)说明了多态性如何在该案例中体现。
4.用图论的知识求出从北京到杭州的最短距离,前提是路况分成国道,省道,县道。我就说了“分而治之"后,利用网格进行dijkstra算法。我就说出了我的思路,面试官说可行,然后跟我说了一些图论的知识(我又没学过- -!)
5.在一篇无限长的英文文献中,找出包含a-z26个字母的最短一段。其实就是选取数据结构,然后进行查找。刚开始说‘滑动窗’,说着说着自己说不下去了,还好后来又找到了另外一种方案(其实就是一种优化算法,具体的方案就不叙述了),后来面试官跟我说这道题目最佳的方案就是我刚开始说的‘滑动窗’遍历,然后仔细地给我讲解了如何实现的算法,很有耐心,一点都不像一个部门老大的作风。
题目大致问完了,面试官又问了我的一些项目经历,问了一些现阶段流行的技术,流行的框架,再后来聊了聊我的性格特点之类的。复面是真正的技术面,大概持续了90分钟,问的问题相对深入,主要是算法与数据结构,考察的是思维能力和反应能力,不会不要紧,但要多动脑多想,说出自己的想法就ok,毕竟一个企业并不喜欢懒于思考,思维能力迟缓的员工。
终面:隔了一周,进行了终面。终面属于部门交叉面,问的问题相对基础。跟我聊了聊项目上的一些东西,然后,问了一些关于C语言的知识,比如无头链表的删除(陷阱题啊),问了TCP建立连接的‘三次握手’,而后又问了我linux的知识,比如grep,mount命令。问完了技术,又开始问生活,问我平时生活中的优点和缺点(千万不要跟面试官直接了当的说自己的缺点,那是真的傻。),后来问我将来的人生规划,为什么选择阿里,但是我就想,这不是hr应该问的吗,但还是跟他随便聊了聊。交叉面毕竟是其它部门的面试官,比较轻松,面试持续了40分钟,终面应该属于技术面+非技术面两项
HR面:隔了大概十天,HR给我打来了电话(当时心情不是很好,等太久也不通知)。HR还是比较严肃的,上来就问我的缺点(当时我想,我哪来那么多缺点,个个都要问)但还是避轻就重地跟她聊上了我的优缺点。又问我为什么选择阿里,自己的职业规划之类的。再后来又问了家庭情况(主要是考察你的价值观,家教是一个人成长的关键)。问完了又问如何看到工作压力这种事情,就是问你的抗压能力,之后又问以后准备在哪发展。。。简直没完没了地问,差一点就问我有没有女朋友了(阿里的HR果然不是吹的),至于HR面嘛,主要就是看你的价值观,你的人格,你的心态,个人觉得不反动,有进取心就没什么问题的。
阿里的内推面试过程大概就是这样,面试的内容基本也写了,仅供参考。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------写在最后----------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
用自己最喜欢的蟒蛇语言结尾
#!/usr/bin/env python
# @ @~ coding=utf-8 @ @~
__author__='yjf'
import sys
class success(obj):
def __init__(self):
pass
def makeit(self,energy):
return energy
if __name__=__main__:
new energy='不要惶恐明天会发生什么,你的汗水不会欺骗你'
success toU
print toU.makeit(energy)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)