上个月4号通过阿里工作的学长进行内推,7天简历评估,11号接到电话面试,尽管猝不及防回答仓促,但好在前期准备充分,通过。3天后进行现场面试,通知时间为早上10点。当日设了七点闹钟,结果五点五十三分惊醒后再无法入睡,起床,重新翻看之前做的笔记和重点,在lintcode上找了几道可能性较大的题进行练手。10点准时在蚂蚁金服总部开始面试,十点四十七分结束。15号收到通知,现场面通过,16号进行HR面,22号收到Offer。
面试内容如下:
一、 电面:
自我介绍
项目情况:
对你来说影响最大的一个项目(该面试中有关项目问题都针对该项目展开)?
为什么会想做这个项目?这个项目的ideal是谁提出来的?
项目中如何实现的大数据的传输和存储
项目中哪一部分最难攻克?如何攻克?
基础知识考察:
模块化的好处
Htttp协议
hashmap和concurrenthashmap区别及两者的优缺点
对MySQL的了解,和oracle的区别
对设计模式的看法和认知
有哪些设计模式
如何实现分布式缓存
多线程如何避免死锁
关于树的算法题-二叉树的锯齿形层次遍历:http://www.lintcode.com/zh-cn/problem/binary-tree-zigzag-level-order-traversal/
Java的垃圾回收机制
对Runtime的了解
电面过程中非常注重基础知识的考察,面试前务必对基础知识内容进行复习和梳理。基础知识考察的内容一般会围绕项目内容进行展开,在前期对项目介绍进行准备时需适当换位,思考面试官的提问逻辑,避免给自己设下陷阱。
二、 现场面:
背景了解:
为什么要选择编程这条路
何时开始编程
如何进行自学
阅读过那些书籍
项目考察
项目运行过程中成员是否曾就某一点发生争执?作为Leader你是如何解决的?具体事例?
项目最终实现效果
项目具体部分使用的设计模式并简述选择理由
项目有何需改进之处并初拟改进方案
第一个项目:
第二个项目:
基础知识考察:
数据库的范式
JVM内存模型及调优
浏览器的缓存机制
如何解决高并发问题?是否进行过相应程序的编写?
LintCode 算法题 - 最小子串覆盖。原题链接:http://www.lintcode.com/zh-cn/problem/minimum-window-substring/
想问的问题
技术面中项目占了相当一部分时间,项目中从技术到个人团队领导能力,从完成执行能力到思想灵活度,都是面试官希望得到的信息。因此,必须对自己的项目多方面展开准备,项目回顾的过程中需不断思考改进方案和具体措施。
算法题部分由于之前练习时做过且在 www.jiuzhang.com/solution 上研究过参考答案,此次应对较为轻松,面试官反应较好。在算法题考查过程中,正确率和代码效率都是面试官关注的重点,因此在Lintcode上刷题时必须强调每一个细节的改进,不能仅安于正确。上述参考网站中的标准答案工业风较强,适合实际工作,建议在刷题过程中充分利用。此外,面试前做两道算法题练手可使面试时写算法更为娴熟,如时间富裕可尝试。
三、 HR面:
业余爱好
为什么不参加竞赛?
你觉得你在项目运行过程中作为组长是否最大限度发挥了组员的优势?具体事例?
如何看待阿里在大数据方面的投入?对阿里的发展有什么建议?对蚂蚁金服的发展有什么看法?
职业规划,今后想发展的工作方向
家乡在哪里,是否愿意长期在杭州发展?
薪酬问题及入职情况
适当藏拙很重要,因为作为面试者,我们很难判断什么不足对公司来说是无法容忍的,如果临场随性发挥,就容易出现语言漏洞,从而被作为切入点暴露自身缺陷。因此,面试前要仔细准备各种问题,对语言进行推敲,尽量将话题引向有利于自己的方向。
面试详细题和面试答案我已经整理成文档和视频资料,加架构群:692845439 领取资料
网友评论