一名拿到阿里offer的Java程序员分享三轮面试经验

一、 面试流程:

我一共经历三轮面试,两轮技术面,一轮HR面。HR面结束次日拿到offer。

二、 前期准备

  • 参加竞赛。如果是为明年或后年面试做准备,可尽量参加阿里举办的相关竞赛,作为自己的加分项。

  • 巩固自己的计算机基础知识。阿里面试官在校招过程中,对基础知识的扎实程度很看重,所以一定要稳扎稳打。

  • 项目在精不在多。对手头已经进行的项目,一定要认真做,深入了解其内在原理,不可浮于表面。

三、 面试内容:

1.自我介绍。

虽然并不是每次面试面试官都会要求自我介绍,但连续三轮面试都不遇到自我介绍的可能性也不大。同时,自我介绍是一个较易准备的部分。所以,无论如何准备好自我介绍。考虑到大部分人对编程内容都会有所偏重,所以在自我介绍过程中使用技巧引导面试官的注意力也非常重要,当面试官的注意力落在你所擅长的领域时,你就能在面试过程中发挥最大的优势。

2. 项目

两轮技术面过程中,面试官都花了很多时间针对项目进行提问。但提问方向很常规,包括项目整体构架、所使用的数据结构、项目主要技术难点、遇到难题如何解决、项目人员分配问题等,只要全程参与项目并对项目足够熟悉,基本可以应付这一部分的问题。

3. 编程

阿里虽并不强制要求面试过程中进行现场编程,但面试官总要对面试者的算法和编程能力进行检验,所以大部分面试者还是会被要求进行现场白板编程。

4. 基础性问题

基础性问题涉及范围很广,你会被问到的具体问题取决于你项目的偏向、面试中回答的情况及面试官的偏好。就我个人而言,被问到的问题包括:

Hashtable, HashMap,和ConcurrentHashMap 的底层实现原理;GC的工作原理;OSI七层协议;实现多线程的方式;线程同步,并发操作怎么控制;HTTP和HTTPS的区别;sendRedirect, foward的区别;JVM垃圾回收实现原理;基本数据类型;死锁;数据库事务隔离机制的特点等。(排序不分先后)

四、 算法题

阿里面试考察的编程题都较简单,基本就是对数据进行排序或查找,相同或者相类似的题目都可以在Lintcode上面找到。我当时被要求现场手写二分查找的算法。算法不难,比较麻烦的是现场手写以及尽量做到bug-free。

五、 前期准备

  • 参加竞赛。如果是为明年或后年面试做准备,可尽量参加阿里举办的相关竞赛,作为自己的加分项。

  • 巩固自己的计算机基础知识。阿里面试官对基础知识的扎实程度很看重,所以一定要稳扎稳打。

  • 项目在精不在多。对手头已经进行的项目,一定要认真做,深入了解其内在原理,不可浮于表面。

六、 小建议

  • 在进行面试前,对自己的项目进行回顾、加深熟悉和梳理。保证不在项目问题上丢分。

  • 知之为知之,不知为不知。面试官不会因为你在一个领域的不熟悉而否决你,重要的是表现出扎实的基础功底和优秀的潜能。

  • 使用lintcode进行刷题时,利用类别分类及难易分类功能从易到难集中刷题,提高刷题效率。

  • 刷题过程时,适当进行白板训练,降低面试过程中白板编程的陌生感和不适应感。

  • 刷题过程中勤加总结并进行记录,方便面试前突击。

猜你喜欢

转载自my.oschina.net/u/3773144/blog/1618284