技术成就梦想

Java面试与回答技巧(1.如何正确的面试)



在IT行业中,大部分公司很难用有效的方式招到合适的人。
直接暴露出来的问题是:
・花重金招了一个人,但实际的战斗力还比不上应届毕业生。
・招聘了一个知名企业的高管,引入了一些高大上的技术,结果本来稳定的生产系统问题频发,大部分时间用来改善架构和管理方法。
・面试时候面面俱到,但实际工作能力却相差甚远。

正是由于大部分公司很难有有效的招聘方式,于是出现了按学历,工作背景,当前薪水等硬性条件来筛选候选人。
但这只能说根据这些条件大概能招到合适的人。还是无法解决一些人混入公司甚至危害公司。

我把程序员分为两种。真程序员和假程序员。
软件开发分为应用和研发。
拿应用来说:
一个新框架,新语言,一门业务,一种管理方法,某项技术的学习达到应用的目的话,真程序员最多一个月即可,假程序员可能半年都未必掌握到精髓。

也就是说真程序员的生产性和假程序员的危害性是我们不可想像的。

所以,整个面试过程应该围绕区分真假程序员来进行。
1.对于见过和没见过的问题和概念性的问题,很容易被假程序员利用并借题发挥,所以面试中应避免问这类问题。
比如:
说一说对某个流行框架的理解。
生产环境遇到过什么问题,是怎么解决的。
有没有遇到过某某问题。
用过某某语言没有。

2.为了研究源码而研究源码,这种人对公司有一定的危害性。
应该避免问如下问题:
研究过什么开源框架,看过那些源代码。
有没有博客,地址是什么。

3.避免问一些非连续的问题。
比如:
HashMap和HashTable有什么区别。
Servlet是否是线程安全的。
JavaScript是如何实现面向对象的。

因为上述问题如果做针对性的准备的话,不需要超过一周的时间即可对答如流,而我所说的假程序员会经常在上班时间关注这些与工作不相干的事情,
甚至利用公司资源去试验新技术。

要知道技术不在新,够用即可,如果对[够用]这两个字的把握不到位的话,那必然是没日没夜地加班干活。

所以,应该针对大小系统都用的共通的技术,问一些连续性的问题,并且针对这些问题多问几个为什么。
因为对[为什么]回答的比较好的人,我认为创造性和兴趣是很好的,IT行业需要的就是这种人。

比如这样展开问题:
1.说一说添删改查的流程。(别笑,系统中大部分的操作都是围绕着这个过程来进行的,包括高并发和大数据。你笑,说明你还不行)
好的回答会用最简单语言描述从浏览器到数据库的全过程。
而对于掌握高大上技术和面试技巧但却不能说出一个简单的添删改查的流程的人来说,直接筛选掉即可。
因为公司的大部分业务都是根据这条线展开的。

2.纵向扩展浏览器到数据库这条线遇到的问题,解决方法,多问一些为什么。
比如:
数据库的连接在哪里管理,为什么要在那里管理。
Service对象是否是单例还是多例,为什么。
单例的话,怎么保证多个请求不共享一个事务。
。。。
从数据库问到浏览器,好的回答会思路清晰。

3.横向扩展浏览器到数据库这条线遇到的问题,解决方法,多问一些为什么。
比如:
遇到多个人更新同一条记录的时候怎么办,如果在集群环境中怎么处理。
数据量增大到一定程度时怎么办,如果在集群环境中怎么处理。
请求数增大到一定程度时怎么办,如果在集群环境中怎么处理。
。。。
从数据库问到浏览器,好的回答会思路清晰。

4.考察解决问题的能力和经验(问所有系统都会遇到的问题)。
比如:
如何定位生产环境中内存溢出的问题,如何解决它,如何避免它。
如何定位生产环境中的性能问题,如何解决它,如何避免它。
。。。
好的回答会思路清晰。

5.软件工程(一定要问,这关系到工作中对团队协作的认识,不解释)
考察软件工程最直接的方式是针对如何控制软件质量,成本来展开的一系列问题。
比如:
说一说你认为如何控制软件的质量。
。。。
好的回答会把软件工程的各个阶段对软件质量有影响的问题,解决方法都说出来,针针见血。

6.业务(一定要问,这关系工作态度和解决问题的能力)
比如:
说一说你目前开发的系统的业务流程。
好的回答会简单,明了。

7.基础
这个不多说,大家都会。尽可能多问为什么,比如为什么要用继承,为什么不用静态方法等。

8.上述问题都回答完毕后基本上可以给面试者打分。
0分,10分,20分,50分,70分,80分,100分等。

非有效的面试只能给面试者打0分或100分,也就是告诉人事行还是不行,具体行到什么程度,哪里最行,哪里最不行都不能提供明确信息。
有效的面试是可以给面试者一个0分到100分之间的分数,对面试者有个综合评价,处在什么位置,优点,缺点,适合什么职位,风险等。

虽然上面的问题都是基础题,但可以筛选出假程序员,并且大致确定真程序员的水平。
剩下的问题可以根据公司需要,问一些实际问题。

版权声明:本教程版权归java123.vip所有,禁止任何形式的转载与引用。

原帖发表于:http://www.cnblogs.com/java123vip/p/9002247.html