刚收到通知,阿里云四面跪了,无缘最后HR面,虽然意料之中,但难免有点伤心。简单整理了自己的面试经历,为今后面试提供参考,也给需要的人一些帮助,多少让这次面试多点意义。
总共经历了四轮面试,都是技术面,四面时问过面试官,第五轮是HR面。四轮面试是一天内完成的,所以当四面结束HR让回去等消息时,差不多明白自己没戏了。
面试是在酒店进行的。面试官很专业,会诚意的去了解你的各项技术水平及其他各方面素养,且专业水平高。一面、二面、四面的面试官面试过程都非常nice,但三面时遇到的面试官较不苟言笑,面试全程面无表情。
面试内容较常规,面试前翻看面经指南、刷lintcode上的题对面试帮助较大。面试中遇到的问题大致可分为以下五类:
1、 基本知识
在四轮面试中都有对基本知识进行考察,但主要集中在一面。一面除去最初的相互介绍环节基本全程在进行密集的基础知识问答。四轮面试考察的基础知识大致包括:
虚函数的调用
TCP的传输可靠性
内存泄漏
红黑树
设计模式
Java的垃圾回收机制
java的基本特性
java多线程实现及线程安全
死锁预防
常见异常
网络协议
数据结构
数据库的索引等
其中对数据结构的考察有所偏重。
2、 项目内容
二面、三面、四面中均有涉及项目。
二面主要对简历上所写内容一一进行探究,所以二面中超过半数时间在探讨项目内容。而对于简历上所写的四个项目经历,面试官更关心时间轴最近的一个。二面中问到的项目问题有:
你负责的模块内容
项目的整体架构
用到了哪些设计模式
如何处理大量数据存储问题(项目涉及)
如何进行数据更新(项目涉及)
如何提高数据传输速率(项目涉及)
考虑了哪些突发状况
项目中最大的技术难点
如何解决项目中遇到的技术难点
只要完整参与项目实施、对于项目足够熟悉,这些问题都能较好回答。中间略有发散进行相关专业知识考察。
三面中只要求单方面对自己影响最大的项目进行简单阐述。
四面中只简单问了项目的一些基本情况以及相应的人文内容,比如如何在团队内进行分工、你承担的是什么角色、项目完成过程中团队成员是否产生过矛盾、如何解决这些矛盾、如何对待一个技术点不同人存在不同偏好的情况等。由于前期对这些问题做过精细的准备,故回答较好。
3、 算法内容
除了一面之外,其余三轮面试都进行了算法的考察,即要求现场编程,两道数据结构题、一道排序题。分别是:
1. LintCode - 验证二叉查找树,即验证给定二叉树是否为合法二叉树
题目描述:https://www.lintcode.com/en/problem/validate-binary-search-tree/
参考答案:http://www.jiuzhang.com/solution/validate-binary-search-tree/
2. LintCode - 在给定时间复杂度和空间复杂度下对链表进行排序
题目描述:https://www.lintcode.com/en/problem/sort-list/
参考答案:http://www.jiuzhang.com/solution/sort-list/
3.LintCode - 在数组中找到第k大元素
题目描述:https://www.lintcode.com/en/problem/kth-largest-element/
参考答案:http://www.jiuzhang.com/solution/kth-largest-element
其中在对排序题进行编程能力考查的同时,还要求编写测试用例对自己的程序进行测试。
由于之前在Lintcode上大量刷过题,也反复研究过Lintcode上阶梯训练中给出的各公司、各类型的精选面试题,加之个人比较注重借助参考网站(推荐www.jiuzhang.com/solution)提升自身代码的精简性,故最后皆完成较好。
4、 交际能力
该项内容的考察主要在三面、四面中进行。包括平时参加的社团活动、对自己交际能力的定位、在项目完成过程与组员的互动、对于矛盾的解决交流能力、如果你的项目直系负责人对你的项目提出了异议但你又确实觉得他的说法不对将会如何沟通处理等。由于自身的交际能力一般,尽管有过相关的准备,但在最后与直系负责人沟通一问上仍表现不佳,为面试失败埋下伏笔。
5、 个人情况
四面中有小一半的时间在进行个人情况的考察。涉及日常爱好、个人优缺点、如何进行自我提高、看书频率、对阿里云的了解等。但由于近两个月来都在忙于用Lintcode刷题和准备及奔赴各种笔试面试,所以在被问及最近都在看什么书时较为支吾,随口说了一本半年前看过的java方面的书籍,但在后续问及书本的具体内容时,由于记忆模糊回答的非常差劲,再加之在问及个人缺点时说自己有时略有急性子没有耐心,直接导致了最终四面的失败。
由于大部分公司都较为看重面试者的自我提高意识,所以强烈建在面试中途也要勤加阅读。
网友评论