技术面试官,招聘面试,面试过程及面试经验收集(自我介绍,项目经验,技术难点等)

 面试对于知识的考核可以分为三个层次:对于基础知识的考核、对于项目经验的考核、对于项目深度的考核。
 对技术的考量绝大多数都是以深度优先、广度次之为标准的.项目中的难点/亮点,程序员的技能水平/学习能力/团队合作/工作心态。
面试招聘Android应用开发人员:主要是学习能力和人品等。

-- 面试现场:
 1.知彼:透过面试官的视角深入剖析面试的各环节,快速理解面试官眼里人才模型,面试考查能力的一般方法,让你更容易理解面试官的问题意图,针对性地面对和准备。
 2.知己:带你做好个人的职业规划,教你提炼经验、总结技能、挖掘潜能、调整动机,进而准备一份详历,把自己的能力、价值和亮点浓缩给面试官看。
 3.问答:为你深入分析面试中常见的几类问题,包括如何解释清楚一个技术点,如何体现你在项目中的重要性等,从而在面试中把与职位匹配的部分充分、有效、有力度地展现出来,最大限度地得到认可。
 4.贯通:教会你如何抓住时机展示以下能力:让自己越来越优秀(学习能力),让工作越来越高效(精益能力),与人共赢(协作能力),让别人与人共赢(领导力)。这些能力不仅仅是软技能,而是构筑在技术能力只上的综合工作能力,是面试官很看重的部分。
 5.综合:如何在面试中了解对方团队,衡量工作机会,建立互信互赏的局面。另外,如何恰当处理和老东家关系,如何在失败的面试中总结经验,提高自己。

> 技术面试官
-- 如果你做过技术面试官,就至少犯过下面9大误区中的一个:
压制求职者;

拿自己擅长的东西问求职者;

寻找全才;

根据自己喜好评判求职者;

盲目相信求职者
自己说得太多,让求职者说得太少;
不了解公司、团队、产品和岗位职责;

不清楚自己在面试中的角色和职责;

表现得对公司、团队、产品、技术等很失望。

-- 如何做好一个技术面试官了:
了解公司、行业、团队、产品;

明确自己在面试中的职责;

对公司、团队、产品、技术抱有热情;

把握要招聘岗位的需求,对候选人的能力要求;

针对岗位要求,设计面试题目;
牢记面试的目的是甄选人才,忘掉自我,多给求职者机会表现;
牢记面试的目的是选择适合需求的人才,而不是全才;

考虑求职者的工作经验、技术水平,结合岗位要求,问匹配的问题,避免过多超纲问题,避免以己之长攻彼之短;

跟踪求职者的话语,捕捉关键信息,跟踪询问,了解详情;
适时记录求职者的表现、自己的感受和评估

- 面试有些考察算法,有些是考察编程能力,有些是考察设计。
- 给面试官留下好印象呢?
 让面试官重复问题(确认问题内容,争取思考时间);
 复述问题(让面试官确认一下你是否理解了问题,同时争取思考时间);
 表明自己没有研究过(让面试官可以谅解,毕竟再厉害的人也有没有研究过的问题);
 请求时间思考一下(争取时间,拼命想);
 30秒到1分钟后,讲思路与面试官探讨,不一定要有答案(表明自己的思路,以探讨的方式和面试官交流,面试官会引导你向正确的答案靠近。)。

不同经验的工程师如刚毕业、3年、5年、10年都有不同的面试都是不一样的。还有不同title等。

推荐一份 Google 面试指南- http://blog.csdn.net/googdev/article/details/70045481?ref=myread

18届清华硕士狂拿18家互联网公司sp offer总结- http://blog.csdn.net/Ch97CKd/article/details/78557120

Google 面试指南coding-interview-university技术面试- https://github.com/jwasham/coding-interview-university

经验之谈!35岁程序员的独家面试经历- https://yq.aliyun.com/articles/26901?utm_campaign=wenzhang&utm_medium=article&utm_source=QQ-qun&2017317&utm_content=m_14179#

聊聊技术面试 http://mp.weixin.qq.com/s?__biz=MzA5MTA0NjgzMQ==&mid=403675854&idx=1&sn=1315ab77402ea0e9c64c92cfc10f0536&scene=23&srcid=03221SEaJQjeAqwhw3mlHt5U#rd

面试感悟----一名3年工作经验的程序员应该具备的技能-- http://www.cnblogs.com/xrq730/p/5260294.html

关于Android面试中如何应对内存优化-http://blog.csdn.net/lighthouse666/article/details/70230614

9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路: http://www.cnblogs.com/figure9/archive/2013/01/09/2853649.html 

  一个五年Android 开发者百度、阿里、聚美、映客的面试心经-http://blog.csdn.net/jdsjlzx/article/details/51860422
  ListView 的实现原理?   Java 的内存管理?  推送,怎么实现?  偏底层的东西以及性能优化的地方?   Java 层面的东西,多态,抽象类,多线程,内存管理等?  Android 基础和 Java 基础以及内存管理?
  Service 上能不能弹出对话框?:1.必须在 Manifest 里面注册系统权限
2.在显示 dialog 的时候必须要加一个 flag.
我的理由是:系统对话框可以在低电量的时候弹出对话框,我们同样也可以采用该方式来实现。

-- 百度、腾讯和阿里内部的级别和薪资待遇是什么样的-https://blog.csdn.net/u014469537/article/details/78723842

HR教你简历中怎么写期望薪资: http://arts.51job.com/arts/05/399158.html

我就是个非常不专业的hR...我想在这里说下我看别人简历的方式,看是否可以给大家提供有用的经验?
  首先,我不会看求职信.没用.
  第二,除了对职位有必要的岗位,例如财务类岗位,我很少看他下面的一大堆证书,没啥用.本科就是本科,在入职后会交材料的.
  第三,我喜欢看他对于他所工作的岗位描述,但是不要复杂.简短,精辟.
  第四,我喜欢对方明确标出期望薪资待遇范围,不喜欢面议,所有岗位我都不喜欢面议,直接就看他的期望薪资范围就OK了,因为我们本身有个度,这个岗位的工资介于多少钱之间.
  第五,时间点希望描述清楚,别摆乌龙.有的人简历,从1997年9月到至今,都在什么大学念什么专业,大哥,咱认真点成不?

-- 招聘面试的套路与原则- http://blog.csdn.net/mindfloating/article/details/77149611

内部的晋升评审中,考察点有下面一些维度:

通用能力:考察其沟通表达、学习成长等;

专业知识:考察其知识的掌握、深度、广度等;

专业能力:考察其技能应用的能力和结果;

工作业绩:考察其工作成果、产出、创新点等;

价值观:考察其认知、理解、行为等;

晋升采用的是工作述职与评审问答形式,其实也很像一次面试过程。只不过晋升用的是述职报告,而面试用的是简历。

-- 为何面试时都会问你的职业规划呢?

-- 回答问题的时候最最基本的两个要求:
1、不紧不慢,平心静气
2、条理清晰

-- HR面试主要问的是几点:
1、简历中写的过去工作经历的离职原因
2、当前公司薪资待遇
3、期望能到怎样的一家公司
4、个人未来的发展方向.

-- 面试其实是自我营销,卖的是自己的时间和能力。买和卖的实质是供求关系,从这个关系来看,IT行业目前还处于需求旺盛的阶段,市场上有需求。剩下的就看营销的表现了。说到营销,其实还没有说到点上,就像前面提到的,营销的本质是取得客户的信任。说到底面试的过程,就是被面试者的极力表现,让面试官相信被面试者能给公司带来价值。

  我的导师曾经说过一句让我印象特别深刻得话,他说去一家公司找工作,重要得不是你能做什么,而是让对方相信你能做什么。现在大公司招聘,一个必考的项目是算法,另外一个必考的项目是设计。这两点也是开发人员的一项基本功,无论是否去面试,都是要掌握的。平时开发过程中,多多注重积累。
   外企的工作环境和氛围,外企工作环境,零加班,自由时间,最前沿的技术,很规范的工程管理,很nice的技术分享氛围,牛人非常多(有些是业界知名度很高的大佬)
   非常标准的国内互联网式面试,先问简历,再问项目,再问基础知识。

   正常校招流程,笔试+四轮onsite技术面试+HR面。--

-- 自我介绍和项目经验

   自我介绍?
   先做好自己的工作总结和自我认知,做好这些才有了自我介绍的内容。自我介绍其实不是演讲,是呈现,得先把呈现的内容准备好,而不是太过关注技巧。
  首先有一点特别特别注意:不要标新立异。 你的面试才开始,你的面试官还未跟你开聊,所以你不了解面试官的性格。不要随便打趣,不要开玩笑,不要太活泼,因为有被认为玩世不恭不可靠的风险。
  其次,我最讨厌上来就罗罗嗦嗦地陈述简历的人。礼节性听完以后多半就否了。建议自我介绍内容短小精炼,把”相关经验“一句话说到,对于有亮点的经历最多加两到三句。 
  最后就是,表述时要自然,正常聊天语速即可,记得说的时候要看着面试官,一方面有互动,另一方面可观察到对方表情变化,发现对方对你的什么经历比较感兴趣。

  首先有一点特别特别注意:不要标新立异。 你的面试才开始,你的面试官还未跟你开聊,所以你不了解面试官的性格。不要随便打趣,不要开玩笑,不要太活泼,因为有被认为玩世不恭不可靠的风险。
  其次,我最讨厌上来就罗罗嗦嗦地陈述简历的人。礼节性听完以后多半就否了。建议自我介绍内容短小精炼,把”相关经验“一句话说到,对于有亮点的经历最多加两到三句。
  最后就是,表述时要自然,正常聊天语速即可,记得说的时候要看着面试官,一方面有互动,另一方面可观察到对方表情变化,发现对方对你的什么经历比较感兴趣。

-- HR从自我介绍中看中什么?
1经验
  这个是直接跟工作岗位做匹配的,直接的工作内容、工作时效和优秀的结果是最有效的,也是最想要听到的。比如:跟岗位匹配的工作了几年,做了哪些项目,有哪些产出好的结果。
  2 技能同上  
  3 系统性逻辑思维能力
  做事有没有系统的分析、思路和方法论,有没有直接看清楚问题核心的能力,这个问题直接决定了一个人的能力和潜力。
做事都是先有条件限制的,好的方法也不是万能的,有经验、会分析才能用好方法和资源。
思路和方法论都是直接体现先进、精准、有效经验和认知的积累。
至于看问题的战略级核心部分,至少经理级别的人才有的。
  4 习惯
  一个优秀的人肯定拥有优秀的习惯,即时是一个爱好或者特长也会玩的特别深入、系统、有自己的见解。
这里碰到好些人说自己有爱好,比如说看电影,然后你问喜欢什么电影,最喜欢的电影,好在哪里,为什么,那个答案简直就是自杀行为,因为往往是一句话、台词,这个一点深度都没有,还不如不说。
 
  通过自我介绍,用具体的案例,来介绍自己的经验、技能,以及做事的逻辑思维能力和优秀的习惯,摆事实、讲道理,无往而不利。 
  不用100%匹配职位,只要把你的优点放大,展现出自己的潜力,工作自然找上你。
 
  一个优秀的人才是用自己的优点和表达来吸引别人的,不是要有什么模板,模板HR都能把耳朵听出来茧子了,反而会 暴露你的稚嫩,简直就是自杀行为。
  有特点、有优点、有脾气、有战略级逻辑思维能力的人才老板都是跪求入职的。
  一面非常看重基础,涉及的内容非常广泛,语言,算法,网络,操作系统。。。
  腾讯主要看中的是三点。第一:学习能力强;第二:有积极性,热爱自己的事业;第三:技术水平。其实第三点是其次,最主要的是前两点。

-- 项目经验
  面试主要看几点:项目经验+基本技术+个人潜力(也就是值不值得培养)。
  关于项目经验,我认为并发编程网的创始人方腾飞老师讲的一段话非常好:
介绍产品时面试官会考察应聘者的沟通能力和思考能力,我们大部分情况都是做产品的一个功能或一个模块,但是即使是这样,自己有没有把整个系统架构或产品搞清楚,并能介绍清楚,为什么做这个系统?这个系统的价值是什么?这个系统有哪些功能?优缺点有哪些?如果让你重新设计这个系统你会如何设计?
    补充一点,在面试中聊你的项目的时候,有一个问题90%是绕不过的:谈一下你在项目中解决过的比较复杂的问题。这需要在工作中不断去发现和探索,不需要多,在你自己目前的项目中只要你找到一两个能说的问题就行。一个小技巧是,即使问题不是你解决的而是别人解决的,但是你把这个问题弄懂、搞透了,在面试的时候你一样可以把这个问题当作是你自己解决的来说----毕竟,谁来管这个问题当时到底是不是你解决的呢?
   在求职面试时,大多数面试考官会要求应聘者做一个自我介绍,一方面以此了解应聘者的大概情况,另一方面考察应聘者的口才、应变和心理承受、逻辑思维等能力。

-- 面试和简历还有两个重要区别:

   第一,面试是一个双向互动的过程,简历是单方向呈现。有些人可能工作经验很丰富,专业能力很突出,但是面试的经验不足,所以面对面试官叙述吞吞吐吐,抓不住要点。
  第二,简历介绍应是倒叙为好,但面试正相反。当你面向面试官时,应按照时间的顺序从前往后讲,先讲你上大学的教育经历,之后从你参加工作,一直讲到现在,因为面试官要听到你整个成长的经历。否则,面试官会有一种很错乱的感觉。

      总结的四个要求还是很不错:性格 、 经验、 视野 、基础。(权重按照当前顺序划分)
 性格是最重要的,因为这个涉及到方方面面。
 经验堆叠起来的技术是强壮的,能有更多预见性能力,改bug,找问题,组织架构等
 视野还是看人的学习积极性,视野宽阔,在遇到问题和选择技术的时候很有帮助
 基础这个不说啦,决定上层建筑的.

-- 面试心经:http://www.codeceo.com/article/android-5-years-interviews.html
这次看机会我将所有公司分为三类:
1. A类: BAT公司,非常靠谱,各项待遇都是很优厚的
2. B类:一些知名的互联网公司(基本都在C轮以上),基本很靠谱,该有的都少不了
3. C类:就是那些正在招聘的公司,没啥名气,虽然钱多但是事也多。靠不靠谱真还不知道,只能碰运气
C类公司:
  《孙子兵法》的一句:“求其上,得其中;求其中,得其下,求其下,必败。”
这个想法来源于在K 公司我第一任leader曾经跟我说过的话:『对于新东西,如果你觉得掌握了,但是不应用到项目里面来,是没有什么意义的,时间长了还是会忘记的。』
  『你了解过Android上的黑科技么?比如Android 5.0 之上有一个辅助功能,如果用户开启后,就能像豌豆荚那样自动安装app,等同于拥有了root权限,但是手机重启后,这个就自动关闭了,有没有办法可以自动打开呢?』据他了解,有很多不知名的小App 都实现了,但是很多大公司都没用。--> 那些小App, 都是开启了一个进程(或者是service,具体记不清了,有兴趣的童鞋可以试试)来守护,因此能够开启。--可能会导致耗电量增加啊.
  职业规划,平时有什么兴趣爱好,以后有什么打算,薪资要多少?我说到公司后可以先接触一些业务层面的东西,然后慢慢再走架构路线,之后可以负责主要核心模块。平时就看看书,参加沙龙活动,没事打打游戏。以后还是要像架构师方向进发的,一个合理的期望薪资。

  - ANdroid面试
  问了一些基本的Android基础,然后问了一下 Android的绘图原理,我说: onMeasure, onLayout, onDraw。 然后他说每一个什么作用? 那个onMeasuer主要做什么的?并举了一个例子:一个自定义的滚动View A里面如何放另外一个滚动的View B?我说把 View B将 onMeasure 里面的高设置成最大,这样就能解决冲突问题。最后他简单说了一些 onMeasure 里面的几个参数,我对此加深了解了。
  问我一些工作经历,然后问问职业发展规划,平时的兴趣爱好,以及你觉得你和其他人有什么优势。我挺好奇的,为什么最后的这些面试官都要问类似的问题,之后从一个关系还不错的猎头那里了解到,其实他们也就是了解下以后的动向,以及看看这个人的人品。

  关于优势我是这么说的:我说到公司后可以先接触一些业务层面的东西,然后慢慢再走架构路线,之后可以负责主要核心模块。
  再来复试的时候,这个大美女HR给我了一些建议,说这个CTO是阿里出来的,喜欢会说话的人,想到什么就说什么,别紧张。在这面的时候,我就很放松,该怎么说就怎说,他也问了一些职业发展规划
  问了我一些基础的面试题,比如:View 的事件分发机制,View的绘图,ListView 的实现原理(这个应该是几年前面试的时候经常问题,没想到现在也能遇见)。
-- 二分法 『你来说说 Java 的内存管理。』
  我心想上面两个公司的 offer 基本感觉到手了,这个可以适当的要高点,能给就来,给不了那就算了(我事后想想才明白,这种2B 的想法绝对不能有,要时刻保持低调,把握住任何一次机会)。
  因此奉劝各位,要时刻保持低调,谦虚谨慎,莫要装B,否则肯定遭雷劈,我这就是一个活生生的例子。
B类公司:
  Android 的面试题, Java 内存管理,聊人生理想,提到一些 Android系统原理性的东西
  多看看例如 handler 原理,windowManager 的东西,并且从源码上去分析,网络上的理论知识还是要结合实践的。
  推送,怎么实现,已经存活情况说了一些。发展前景,要做海外产品。跟我谈薪资以及经历。
  静态变量引用了 Activity 的上下文,然后指出,他再问了一些偏底层的东西以及性能优化的地方。很多 Java 层面的东西,多态,抽象类,多线程,内存管理等等。
  问了工作经历上的事情以及兴趣爱好,之后的发展方向,想做什么层面的。
  提及到 Volatile 的作用。项目中有没有比较 NB 或者比较有亮点的地方。
  不知道的话,可以说说思路和想法,然后说说以后会怎么做,利用迂回包抄策略去应答,准没错。至少给面试官知道你还是可以动脑子的人。
  在此我真心后悔当时的冲动,只需在面试的时候尽力表现自我就可以,以后切莫带着情绪去看待或者回答问题。
  『咱们先来谈谈 Android 的四大组件。』我彻底懵逼了,尼玛,跟我谈四大组件,有意思么? 没想到一直到最后都跟我谈这些,一个接一个的问。说到广播那块,关于一个 app 被杀掉进程后,是否还能收到广播的问题纠结了好久。
  为什么选择K 公司的时候,我都会自豪的说:『我的老大很不错,我在那里很很舒服,很开心』。
  在K 公司的时候,老大一直鼓励我创新,遇到想做的就去做,所以一路下来,虽然很累,但是干的很开心。『你要时刻反思自己此刻是不是已经被别人洗脑了。』
A类公司:
我们简单聊了下 Android技术,其中有两点有必要提下:
  其中一点是:说说 View 的事件分发机制。然后我就说了好多,从 WindowManager->window->Decorview->子 view。最后我说当所有的 view 都不处理事件,事件会最后会传递到 Activity 的 onTouchEvent 上。然后面试官立刻说:『哈?你这是颠覆我的三观啊?』 然后我意识到可能有问题,但是记得 《Android 艺术开发探索》上确实写过到 Activity,但是不是到 onTouchEvent还真没底。面试官很自信的样子,让我颤抖了。但是随着我的坚信,面试官说:『不行,我不能冤枉你是不!』立刻在手边的 MBP 上看了一下,自言自语感叹道:『还真有啊!』 我顿时无语了。
  另外一点是:问我 Service 上能不能弹出对话框。对于这个问题,我印象最深刻了,记得一年前的时候,在另外一个公司就因为这个问题让我尴尬万分,回去后专门对这块进行补充。我的回答是可以的,但是面试官面带差异的表情告诉我这是不行的,Dialog 必须要依附于 Window 才能显示出来。然后我的解释会让面试官郁闷一会:我说这个是可以弹出的,我之前也专门试过,不过他弹出是有条件的。 条件是:
必须在 Manifest 里面注册系统权限在显示 dialog 的时候必须要加一个 flag. 我的理由是:系统对话框可以在低电量的时候弹出对话框,我们同样也可以采用该方式来实现。
  面试官语塞,然后给我说 Dialog 是必须要依附在 Window 上,Toast 其实也是一个 Window。我听着这些话,就想起以前看过的一篇文章上也确实是这么说的。估计该面试官回去要好好补充下一些知识了哦。 

  然后该面试官让我不能用 Arraylist,用数组 写一个队列。这块刚好我在之前项目中特意用了一下,写的时候,主要有三个方法: put(), get(),peek(). 然后考虑下队列的特性,一端进入,一端出去。我当时遇到了盲点,没怎么写完,最后给面试官说了下思路,大体是对的。但是关于选择位置那块没怎么想好。
  从动画实现原理,到 handler 实现原理,一步步深入各种原理,当我感觉回答的不错的时候,然后他就顺着我的问题继续深入。我只能说我尽力了,有些东西,平时开发的时候真心不注意,但是就因为没有留意 
  
  有时间多看看原理性的东西,最好整理一个自己的博客。写上自己的一些看法和感悟,这样记得最深刻。即使几年后也不会遗忘,如果只是看看别人总结的东西,也许有一天你就会模糊。
  基础的 Java 问题。 面试前必须要刷题,虽然简单,但是不失为一种方法,虽然不一定有用,但是会加深印象,尤其是去 BAT 这些公司,一定要准备好,否则就别浪费机会,这就是我的教训和经验。

  一些 Android 基础和 Java 基础以及内存管理。问了一些经历和基本情况后,问我薪资要多少以及之后的发展方向。我说要合适的薪资,之后希望在架构方面发展,但是也可以从业务开始。
  很多面试后我总结出了结论就是要薪资太高了。
  看见他要主动加我微信,但是我想可能只是安慰的话语,最多告诉我,我不适合他们的职位,因此我为了避免尴尬,直接删除那个加我好友的请求(如果说真的合适的话,应该会很重视你的,不可能好几天都回复,怎么有一种备胎的感觉,呜呜呜,我不想被发好人卡,宁愿做高傲的兔子,也不想做纸老虎,虽然尽管只是纸老虎,但是也会拥有属于它的一片森林)。可能我的做法太极端了,以后希望大家不要这样想,或许多了一条人脉。
  于是阿里的这次机会就失去了。总结后的结论就是:去大公司要的薪资不要太高,否则对方只能感谢你的到来,因为比你优秀的人太多了。
  问我是否有意见,我当然没意见了,这是很标准的面试流程(如果你有意见,建议还是别说太多的话,基本都这样的,要淡定)。
  一面技术给我一种很成熟的感觉,开始问了我一些基础技术问题,外加 Java 内存管理知识。后给我出了一道算法题,说有一个数组最多存储6个数,如果有普通用户的话,存储四个 vip的客户,另外两个是普通用户(留出一定的空间给普通用户),让考虑全面点(一般都是结合实际场景,让你写出一个算法,要具备的能力就是抽象,处理问题的思路与细节,还有最基本的编码功底)。
  然后等第二轮的面试,看起来更成熟,但是说话有一种很亲近的感觉。问了基本情况,然后拿出他们的 app 让我看看首页的实现效果,说说怎么实现的。对于这种情况,基本就是考察你的抽象能力,以及分析问题的能力。我先说出使用 ListView 的 header,footview,然后使用 ListView 的 type 来实现。然后简单说了一些性能优化的东西,该面试官提出我的做法可能会存在性能瓶颈。
  其实他说出这块是在指导我说这块会有问题,我当然明白他的意思,于是说这块采用 RecyclerView + Fresco 来实现,可以有效的改善问题(其实提到这些,就说明你看过很多新技术了,有时间最好还是要自己练练这些东西,毕竟孰能生巧)。

- 技术面试:一轮同事面+二轮总监或部门负责人面+三轮HR面
  第一轮
  一般情况下第一轮都是基础面试,需要扎实的基础
最常用的Android 基础知识
Java 基础知识
了解一些 常用东西的原理,例如:handler, tHRead 等
项目中的技术点
   第二轮的时候需要了解更深层次的东西
Android 事件分发机制原理
Android 绘图机制原理
WindowManager 的相关知识
进程间传输方式
Java 内存管理机制
一些常用的 list,map 原理,以及子类之间的差别
能进入第三轮基本没什么问题,但是要注意以下问题
  该轮一般是 老大或者部门负责人,问的问题一般都看 深度与广度
当问及薪水的时候,要说一个合适的,小公司随意,大公司一定要慎重,当心里没底的时候,可以告诉对方,让对方给一个合理的薪资。一般都是在原工资基础之上增长,听猎头说一般涨幅都在15%-30%,超 NB 的可以要30%及以上,如果感觉自己还不错的,挺厉害的,建议最高20%,一般人就定在15% 左右最靠谱。公司内部一般有一套机制,根据公司情况而定。
我们的面试原则就是拿到合理薪资,得到 offer
  个人发展情况,这个问题很难回答,如果和公司方向不符合,极有可能和公司无缘。建议多试探性的问问公司缺少什么,你能否给予公司对应的东西。当然对于有自我追求的人,那可以放心大胆的提。我的方向就是架构师,哈哈哈,挺极端的,别学我哦。我感觉选择都是双向的,因此我知道自己需要的是什么。
你最擅长什么UI 还是其他什么?这个问题更不好回答。你要说你擅长 UI,是不是意味着你其他能力就不行?虽然我不知道面试官的用意,但是我能感觉到,这个问题不是那么好回答,我会回答说自己都行,来什么业务接什么需求。可能回答不太好,总之和公司的职位吻合就行,这样总不至于出错吧。
-- 阿里5轮面试

  目前楼主已经拿到阿里实习offer,一共经历了5次面试,其中4轮技术面,1轮HR面试。在这里分享一下自己的面试经验和学习总结。写这篇面经主要是希望能够帮助更多的小伙伴。我本科毕业于中南大学信管专业,真正开始学习Java是在大三下学期,研究生就读北航的移动云计算专业。刚开始也是小白,也是一步步成成起来的。希望能够给与我有相同经历的亲们一个参考。需要提的一点是,你将来是需要靠这个吃饭的,所以请对找工作保持十二分的热情,而且越早准备越好,摆正心态和位置,那么就开始努力吧!!

- 阿里一面 

一面是在上午9点多接到支付宝的面试电话的,因为很期望能够尽快接到阿里的电话,所以非常兴奋。电话接通之后还是非常紧张的,毕竟是第一次这样的面试。中间面的问题有些记不清了,下面列出了一面问到的问题:

1. 自我介绍下自己,不超过3分钟(实际上我的自我介绍不到一分钟)

2. 你感觉比本科阶段自己进步了多少,有哪些进步

3. 研究生期间最大的进步是什么

4. 你觉得你适合从事哪个方向的开发

5. synchronized与lock的区别,使用场景。看过synchronized的源码没

6. JVM自动内存管理,Minor GC与Full GC的触发机制

7. 了解过JVM调优没,基本思路是什么

8. 如何设计存储海量数据的存储系统

9. 缓存的实现原理,设计缓存要注意什么

10. 淘宝热门商品信息在JVM哪个内存区域

11. 操作系统的页式存储

12. volatile关键字的如何保证内存可见性

13. happen-before原则

14. Lucene全文搜索的原理

15. 你觉得自己适合哪方面的开发,为什么

16. 想去哪里实习,杭州?

17. 评价一下我的这次面试表现

18. 应该在我的技术栈中增加什么

19. 有机会下次面试吗

    一面总结: 一面大概面了50多分钟,从面试官口中得知他是一个老员工,比我大不了多少,总体上还是聊得蛮投机的。最后的三个问题是我问面试官的,在回答我是否还有机会下次面试的时候说:竞争很激烈,不过机会还是有的。听到这才松了口气,在挂完电话后赶紧区官网查看自己的状态,刚开始出现了结果将在xxx后公布,那叫一个紧张啊,等了几分钟后,简历状态显示在面试中,这才松了口气。

  可以看出一面的问题不是很难,但是要得到面试官比较高的评价(后面听我同学说,我的面试表现是A),还是需要一定的表达能力和对技术比较本质的认识的,如果在回答问题的时候能够做一些适当的扩展,自然会让面试官对你有不一样的评价。我回答问题的遵循一定的步骤:先回答问题本质,在回答具体细节,最后做一些平时编程中的扩展。这样,会让面试官觉得你确实是在这个技术上面下过功夫的。

- 阿里二面 

    等了将近6天(还以为被刷了呢)终于在第二周的周四接到阿里面试电话,那叫一个激动啊。赶紧找了一个安静的地方,准备好后开始正式面试。二面的面试官是一个部门主管,自然还是有点小紧张的。这次面试官上来就直接问,没有一面的面试官那么好说话,下面是面试过程中的问题:

1. 自我介绍下自己,不超过3分钟(我的自我介绍仍然不超过1分钟,呵呵了)

2. 你说你熟悉并发编程,那么你说说Java锁有哪些种类,以及区别(果然深度不一样)

3. 如何保证内存可见性

4. Http请求的过程与原理

5. TCP连接的特点

6. TCP连接如何保证安全可靠的

7. 为什么TCP连接需要三次握手,两次不可以吗,为什么

8. AOP的原理

9. 动态代理与cglib实现的区别(这个,醉得很厉害)

10. 那么你说说代理的实现原理呗

11. 看过Spring源码没,说说Ioc容器的加载过程吧

12. 了解过字节码的编译过程吗(这个还真不知道)

13. 可以来杭州实习吗

14. 评价一下我的面试表现

15. 有机会下次面试吗

16.您觉得我的技术栈应该补充什么,有哪些方面还需要提高

    二面总结: 二面面试官问的问题都比较直接,答案也是知道就知道,不知道就不知道。这些问题一部分是基础一部分是根据你的专业技能的来提问的。面完后面试官对我的评价是:中规中矩,有机会下次面试。虽说是中规中矩,但听到面试官说有机会下次面试就感觉这次面试应该过了。挂完电话后赶紧登陆查看我的简历状态,刚开始仍然显示在面试中,但是有一点困惑的是:为什么这次没有出现结果待公布的页面呢?又一阵担心,上课也心不在焉,终于在晚上7点多的时候显示了结果待公布的页面,然后心跳又开始开速,过了几分钟看到终于显示在面试中才放松一点。

    虽说这次面试过了,但是我在思考的是为什么面试官对我的表现是中规中矩。后面我知道我的回答虽然答到了点子上,但是扩展程度不够,对一些问题的理解缺乏足够的实践经验。面试官告诉我,有时间可以去研究字节码的编译过程,以及JVM调优方面的知识(特别强调这个很重要)。针对自己的不足,面完后又投入疯狂的看书写代码的生活中。虽然在面试中有一些回答不出来很正常,但是如果能够做到出乎面试官的意料,也是面试官对你很重要的加分项。

- 阿里三面(总监面) 

    三面与二面隔了5天(不知道是不是因为二面面试官对我的评价是中规中矩的缘故,中间一直担心自己被刷了),仍然在下午4点多接到的电话,一看显示来电归属地是阿里巴巴集团,兴奋得不行,找了一个安静的地方开始面试。据说总监面会问项目多一点,所以在等待的这几天中给项目增加了几个比较肉的点,好在能够面试官耍耍(现在想来只能说:too young too simple)。总监刚上来非常不客气,最尴尬的是总监那边老感觉有回声,因为不好意思提就忍了。下面是三面遇到的问题:

1. 自我介绍,不超过3分钟(这次好像时间更久了,也就2分钟多点)

2. 说一下你对哪个项目比较熟悉

3. 为什么做这个项目

4. 项目采用了什么架构,数据库如何设计的

5. 数据库由哪些表,为什么有这些表

6. 主要有哪些核心模块,模块之间如何通信的

7. session放在哪里

8. 如何保存会话状态,有哪些方式、区别如何

9. 分布式session如何管理,你有哪些方案

10. 学过数据结构和算法吗(当然),你说说二分搜索的过程

11. 说一下快排的过程,写一下伪代码

12. 了解哪设计模式,举例说说在jdk源码哪些用到了你说的设计模式

13. 你有什么问我吗(仍然上面三个问题)

    三面总结:本以为三面是交叉面,没想到是阿里的总监面试。由于具体的技术问题在前两轮面试中已经问过了,所以三面后不会有具体的技术问题,总结来看,对自己做过的项目一定要深入,包括使用使用到的技术原理、为什么要使用这些技术。针对项目,面试官关注的无非以下几点: 

    项目中某个比较重要的点是如何实现的(需要深入技术的原理) 

    遇到的最大困难是什么(有哪些),你怎么解决的? 

    如果需要扩展某个功能,如何降低系统的耦合度 

    如果针对某个功能进行优化,你会怎么设计和优化

    对于写在简历上面的项目,自己对照上面四个问题进行思考,才会在面试中游刃有余。因为任何在简历中作假的行为,面试官只要详细问你就露馅了。在听到面试官说有机会下次面试的时候,心中自然是非常高兴的。挂完电话后区官网查看自己的简历状态,经过几分钟的煎熬后终于仍然显示是面试中才稍稍放松一些。本以为这次总监面试后直接就是HR面了,奈何在晚上阿里打电话说明天部门总监还需要进行一次面试,让我做好准备。我也是醉了,不是已经总监面了吗。虽然存有疑虑,但不管如何还是好好准备。

- 阿里四面 (总监面) 

    果然,在第二天下午四点多接到了部门总监的电话,简单沟通后开始了面试。这次面试感觉是最放松的,没有什么高深的技术问题,感觉就像和朋友聊天的感觉,真的很感谢这位面试官。下面是面试中的问到的问题:

1. 来个自我介绍呗,不超过3分钟(这次终于由三分钟了,⊙﹏⊙b汗)

2. 介绍下你最熟悉的项目

3. 项目使用了什么架构,亮点是什么

4. 平时主要学习什么课程

5. 你目前的研究方向是什么

6. 家是哪的

7. 喜欢看什么书

8. 大概什么时候能来实习呢

9. 你有什么想要问我吗(仍然上面三个问题)

    四面总结: 虽然这面比较轻松,也没有什么具体的技术问题,但对项目仍然是面试官关注的,后面了解到总监面除了看你的基础,主要看你的潜力(就是有没有培养的价值),这个东西看起来挺虚的,但是从你平时的学习中仍然是可以看得出来的。所以,作为一名开发人员,平时对技术的研究也是很重要的。在听到面试官说让我好好等HR通知的时候可开心了,感觉饭都吃得更香了。

- 阿里五面(HR面) 

    在隔了4天左右,终于接到了HR的电话,那叫一个激动啊。感觉离阿里offer已经不远了,于是振奋精神,聊得还不错。下面是HR问我的问题: 

1. 自我介绍下吧 

2. 做了哪些项目 

3. 看你在问题中说你在杭州看到很多商贩使用付款二维码,你对支付宝怎么看 

4. 你看吧,每天有那么多人使用支付宝,这些数据如果给你存储,你会怎么设计呢(不是说HR不问技术问题吗?不愧是阿里的HR) 

5. 为什么想来支付宝实习呢 

6. 你身边同学如何评价你、老师呢 

7. 如果与同事发生了意见的不一致,你会如何解决呢 

8. 我什么时候能够得到通知呢 

9. 评价下我的面试表现(听到这个问题,HR居然笑了!) 

10. 阿里如何对实习生进行培训

   五面总结: 虽然之前就听说阿里HR很犀利,不过我感觉一点都不会啊。难道是我的错觉?不得不说的是这个HR的声音真的很好听诶。

- 关于HR面试:

    其实早就听说把面试的最终的录取结果具有一票否决权,在面完前面的技术面试之后,还是很担心的。所以咨询了师兄以及网上找了阿里HR面试的资料,大概得到以下结论:

    诚信至上,所以在简历中不要存在任何虚假信息,企图通过虚假信息得到面试机会的后果得不偿失

  HR更关注你的表达能力、与同事相处的能力以及对工作的态度

  对自己的是否一个明确的职业规划(前提是首先得对自己有一个清晰的定位)

  关于待遇的问题(由于面的实习岗位,所以这个没有提,但是就我而言,能力才是最重要的,能力上来了待遇自然就水涨船高)

- 关于面试的心态:

    在自己拿到阿里offer之前,一直都在想一个问题:我到底该如何做才能离阿里更近?一年的成长与思考让我认清了这点,虽然中间也遇到过很多坑,但却真正让我对自己有了一个清晰的定位,也有了比较明确的目标。正因为如此,我每天所学习的都给我莫大的动力,让我不断进步,并最终实现自己的目标。所以迷茫才是最可怕的,只有摆正心态,对找工作保持十二分的热情,勤奋努力,才能离目标更近一步。

    但是有了目标和努力外,不一定就能实现目标,说到底还有一个运气的成分在里面,只能说你找到心仪的工作概率更大而已。遇到一个好的面试官绝对赚了。这四位阿里的面试官我感觉都挺好的,没有因为他们资历深就为难我,所以还是非常感谢这四位技术面试官的。

你可能感兴趣的:(技术人生(职业与面试))