2018春季实习生校招面经(一)阿里篇
写在前头的概况
笔者末流985大三学渣一枚,追寻学长学姐的步伐,在2018年3月份踏上了寻找实习的漫漫征程。现在想起来,准备得还是有些晚了,也没有十万分重视,所以造成准备不足,据说有的小伙伴在寒假就开始准备了。所以插一句,早早准备很重要!!!
笔者一共投递了16家企业,有纯互联网,有软件硬件结合,包括腾讯、阿里、华为、360、小米、去哪儿网、京东等等,收到面试的有六七家,截止到写这篇文章,一共收到了腾讯的测试offer,去哪儿网的开发offer,深信服的IT工程师offer,思前想后,还是准备去腾讯走自动化测试的路子。
也是不容易,有一些在笔试阶段就挂了,自己的算法基础还有很大的提升空间。笔试面试真是提升能力的最快方法,当然也比较消耗精力和财力(hahaha),因为还要兼顾学校的学业。我的性格就是学生一定要搞好学习的本职工作。但是不针对其他人。有的同学是不挂科就行,而把更多精力放到自己感兴趣的领域。见仁见智。
经历
首先说说阿里吧。
阿里是我第一家正式面试的企业,吃了准备不足的亏。
内推的阿里的Java开发-服务应用开发的实习岗位。在内推的第二天就打电话来了约一面,当时在上课,所以约了第二天。这时候有的同学已经面了阿里的一面,我就去向同学取经,同学说了一下他的面试经历,他笑着说归结起来四个大字”惨不忍睹“。面试官提了一些经典问题,比如Java的自动装箱机制,classloader加载,jvm等等。听到这些,结合在牛客网上看的面经,算是临时抱佛脚了。因为平时在学校写Java算是”API搬运工“,没有深入思考过一些常用工具的原理。准备了包括从开始的自我介绍,到Java的JVM模型、GC机制、hashmap结构、CAS、CAP、分布式等等一些常问的。
第二天,面试官如期打了电话,不得不说阿里是我所有面试过的企业中面试体验最棒的一家,全程态度很和蔼,一直是引导性的。针对一面的问题,我做了一个总结。当然很多问题都是针对简历来问的,所以在简历上写的,自己要有充分准备。
问题:
1.自我介绍(工作、项目经历)
2.你刚才说你喜欢写作,包括哪些方面的?技术文章?
3.你说你之前实习做过一些测试方面的工作,能不能介绍一下测试使用的框架和方法论?从哪些方面保证测试的质量?
4.那你们当时测试主要是手工测试么?有没有自动化的一些方法?
5.你说你仿照天猫做过网站,那这个网站都实现到了什么程度,实现了哪些功能呢?
6.能不能说一些网站的架构?用到了哪些开源的软件?
7.对spring了解多少?
8.说出几个你比较熟悉的设计模式。
9.工厂模式和抽象工厂模式的区别。
10.网站考虑并发的处理。比如一个库存,好几个人去买,怎么控制?
11.你是在代码里面加了锁来控制是吧?
12.比如说你这个应用是单机部署,实际可能需要多个jvm,多机部署,那这种情况下怎么锁定库存,解决并发?
13.分布式集群解决库存?
14.乐观锁和悲观锁的区别?
15.数据库事务的特性?
16.java里面的集合类、数据结构之类的,用到过一些吗?
17.hashmap的底层的结构了解多少?
18.hashmap是不是线程安全的?
19.比方说我想用hashmap去把它变成线程安全的,那有没有类似的现成的类可以使用?
20.TCP和UDP的区别。
21.HTTP和HTTPS的区别。
22.有没有了解过java运行时的模型,jvm运行的模型。
23.jvm使用的堆和栈有什么区别?
24.java和C++的区别。
25.比如有一天你发现你上线的网站非常慢,有没有什么办法提高网站的性能?
26.为什么nosql会快一些?
27.数据库的分区,能具体说一下么?
28.CDN机制?
29.你对我们这边有什么方面要问的?
感觉自己答上了百分之六七十的样子,但是有的问题回答得不是很深入,从这次面试中也了解到自己的很多不足。
过了两天,二面的面试官打来了电话,约我二面,我们约定了一个时间,面试官提醒我说二面会涉及到在线编程,让我做好准备。
二面面试官如期打来电话,自我介绍说是阿里淘宝平台的架构师。听了他的介绍,顿感这是一位大佬,心里有些紧张。时间比较久了,大致是下面的情况。
面试官:首先自我介绍吧。
我:好的,balabala。
面试官:我对你说的关于个人小账本程序比较感兴趣,在编写这个小程序的时候遇到哪些哪些困难呢?
我:(woc,这些比较久远的细节模糊了。。。)emmm,我记得当时在我的设备上有时候不能实时刷新,但是在同学的设备上可以,所以我怀疑有兼容性的问题。
面试官:那怎么排查呢?
我:……(当时比较懵,其实应该说可以写日志的)
面试官:没关系,对于spring boot这样的微服务架构有过了解么?
我:……不是很了解,只是知道spring boot是spring的一个精简。
面试官:嗯,好,你平时使用的序列化工具都有哪些呢?
我:平时Java开发一般都是实现Java的序列化接口(我估计当时面试官可能想引导我回答fastjson,gson之类的)。
面试官:好吧。你今后有什么规划么?读研?工作?
我:工作。
面试官:嗯。你有什么问题要问我么?
我:emm,我想问一下,从大学生到比如您这样的架构师,需要在哪些方面下功夫呢?
面试官:balabala(面试官讲了很多,大致是说专业领域、前瞻性、工具之类的)。好了,今天暂时这样吧,我也是做业务的,算法今天就不写了。
一星期之后,查询状态“已回绝”。
5月8日更新:又收到了阿里的笔试通知,估计是内推转网申的,不过现在感觉很晚了,但是还是准备试试,毕竟阿里是我非常喜欢的公司。
总结
1.准备不足。有的小伙伴准备了好几个月的时候,我才刚刚开始看,很多面试题本来都是可以深入回答的,但是却没有回答好。
2.要认真推敲简历上的每一个字。因为面试官会针对简历问问题,所以简历上写的东西,要深入理解,最好从原理、编码、场景、应用、实现(深入汇编)多方面想想。
3.对于一些常见的问题,可以事先想好,比如什么自我介绍啊,要问面试官什么问题啊,日常怎么学习新知识啊之类的。
未完待续…