[置顶] think in java interview-高级开发人员面试宝典(一)

“生死六重门”

无论你是在职,非在职,高级工程师,工程师,架构师,如果你正在面试阶段,请看完此文!

相信这篇文章对你的职业生涯和阶值观会造成重大的改变!

 

如果你是一名PM或者是管理者正在物色合适的开发人选,那么我相信这篇文章同样会在在你考虑如何挑选技术型人材上给你带来重大的帮助。

 

本系列不适合想去应聘PM,管理路线的人士!!!

 

作为一名技术型人材由其是程序员,用什么可以恒量自己是否合格或者我们怎么去恒量一个程序员是否质深、是否合格?

比如说:他可以适合一般的软件工程师岗位,还是适合高级工程师岗位,还是架构师、系统分析员这样的岗位呢?

 

作为一名JAVA开发人员来说,JAVA涉及到的面太广了,我们就拿企业级开发人员即J2EE开发人员的基本功来说事吧!

 

在面试前先问自己5个问题:

 

1. 我想要什么

 

2. 我会什么

 

3. 目前的市场需要什么

 

4. 目前我还缺什么

 

5. 如何去补缺


一个J2EE高级开发人员需要具备些什么技能?

 

或许你会说:我会SSH,我会工作流,我会JQuery, ExtJS,我参加过数个大型项目,我带过5,6个人的队,我有SCJP, SCEA证书,我工作经验达5年。

 

我会告诉你,其实你是Nothing,Nothing!!!

 

我这个Nothing的前提是指好的公司,好的项目组招人时的要求!!为什么这么说?

 

这样告诉你吧,越是好的公司,越是好的项目组在招开发人员时他们面的东西越是底层。

 

本人结合以前在公司负责JAVA开发人员的招聘与策划,和对新进JAVA人员的培训经验即自己本身近10年来50多次的面试经历总结,发觉:

 

越是工作年限长的人,技术越是倒退

 

尤其到了3年,5年,7年的工作经验的高级开发工程师群体们,往往发现自己在择业上碰到了一个瓶劲,上不上去,跳槽时工资能涨个1000,2000已经到顶了,几乎不太可能达到他们本身期望的的30%-50%的涨幅。这些原因主要源自于”基础”。

 

大部分人基础全忘了,或者以前做过几年程序,但是后面转向管理,TL等角色后,平时开发的时间下降到只占到本身工作的30-50%这样的量了;

或者有很多一批人,或者由于工作、项目等其它的原因,没有接触过一些正规的,系统化的知识;

或者平时不善于总结,只求我用技术时就google, copy & paste,忘记了代码基本功了;

您别不信,来,我们就来试一下

不许查网络,你现在就处在面试官面前,面试官问你这么一个问题:

面试官:  你有没有平时自己覆写过hashcode, equals两个方法?

回答:我写过的(可能很多人以前用的是eclipse或者是myeclipse里的自动生成器

面试官:怎么写?

回答 :。。。。。。(大致讲出来什么原理)

面试官:你为什么要覆写hashcode & equals方法

回答:(如果准备过的人能够回答的出这个问题)

面试官:如果说两个对象equals它们的hashcode是否一定相同?如果两个对象的hascode相同它们一定equals吗?

回答:70%以上的人会挂在这个问题上

面试官:你知道在写hashcode时为什么要使用一个31这样的数,我用100,11,17是不是一样呢?有什么不一样的地方呢?

到此为之,基本都挂了(如果在没有网络的情况下)

你看到这边或许会说:come one,有eclipse代码生成器,这个没必要。

 

OK,我们再来:

 

面试官:Oracle中的index有bitmap, btree两种索引,请比较它们

回答:70-80说自己Oracle用了3,4年的人首先就不知道这个bitmap和btree是什么,更无从谈起比较了

 

以上两道问题,可以作为一个面试官判断你是否在一直写代码和是否真正熟悉oracle的标准,可能因为这两道题,你就挂了,面试官不愿意再和你谈下去了。

真的,这两道问题其实基础了不能再基础了,就和你不会1+1=2一样,你说“我熟练掌握四则运算”是一个道理。

记住,越是好的公司,越是好的项目,面试的问题就越是底层,IBM, eBay, HP, 百度,MS,1号店,阿里巴巴,Oracle,starcite等都是这样。

一般,一个高级JAVA开发人员的面试,其实是分成3个部分

一、基础考核

二、J2EE相关知识和框架以及J2EE相关性能调优等的考核

三、综合考核,即给你1-2个CASE,让你说说你的设计和想法

其中,最难过的就是这个基础。

这个基础中,其实再可以分为四个部分的考核:

第一部分:笔试,45-60分钟笔试卷,基本都是多选

第二部分:SQL部分,一般是数据库基础,SQL统计函数等的写法是肯定逃不掉的

第三部分:然后是1-2道的问答类也可以是设计模式方面的题

第四部分:放入一道智力题(ebay, Oracle, MS, 百度)很喜欢干这种勾当

有的公司也会把这四部分都放在笔试题里,有的则会加上多线程,算法变成6道问答直接让面试者在面试时给面试者一些白纸,然后就此一问一答。

 

像一些外资类公司,会加入一道"电话面试“关,一般在30分钟,过了电话面试再去他们公司本部,然后就是3轮的f2f的面试,最后再和主管谈,HR谈,一般6轮面试是需要的。

这边请记住,这6轮面试9成的可能性都是全英语面试。。。。。。

很多搞IT的,首先英语本身没有重视,有的不能够很好的交流,基础又丢了不少,那基本这样的面试都会被挂,这也是为什么有些人总觉得这些大公司怎么怎么好,怎么怎么难进!

其实不然,掌握了技窍,要通过这样的面试,易入反掌,因为你发觉吗,一般人都是伤在基础部分的面试,这关过了基本后面都很好过的,所以我们把基础部分4个部分的面试,即:

JAVA基础+SQL+设计模式+2EE+算法+智力题,总结成”6道题“,别看看这些都是基础,如果真的让你处在面试官面前时,你不能查GOOGLE,没有eclipse,相信90%的人都会挂掉。

 

这”6道题“其实就是考核一个高级开发人员是否真正适合高级开发人员岗位的标准,也是一个真正做技术的人必须要具备的能力,没有了这个基础,你的一切,你的工作经验,你的简历再漂亮,也都是浮云。

有些人会说,我能达这6个部分的50%左右的能力,有些人能达到70%,那有些面试官就会觉得:这个人我可以用了,只是招进来后砍砍价吧。

试问,你愿意被人砍价吗?对吧,被人砍掉2-3K,你不疯了,如果你工资本身就4,50万被砍个2,3K也无所谓,大部分人都是5K冲8K,更多的是8K冲13,15或者是12,15想冲20k的人,那么,我告诉你,你就必须,对,是必须这”6道题“至少,这边看清了哦,是至少能够回答到90%,如果是英语面试你还要准备全英语面试哦!!!

那么,我们说为什么一个企业要这么去考核一个开发人员呢?

首先,对于企业来说,招一个高级开发人员,是不容易的,中国人,做什么都喜欢一哄面起,96年房地产发展时,短短1,2年内到处都是房地产公司,设计所,设计公司,CAD盛行一时。

2000年初,IT开始盛行,这个更猛,到处都是IT公司,都是IT人员,学个IT就高档了,学个IT就高技术了,搞得连在6层楼居民住宅中租个2室户也能开个IT公司了。

从业人数一庞大,就造成了鱼龙混杂,层次参差不齐。

于是SSH满天飞,大有

练好STRUTS,HIBERNATE,SPRING,货卖帝王家”的感觉,嘿嘿,你别不喜爱看,现在的市场还真TMD的是这个样。

但是,事实摆在那边,你要想进一个好的公司,要被一个好的项目组,你的工作想要有价值,可以学到真正知识、煅练到能力的项目、TEAM中去,你就得过这6道关,所以,无论你觉得现在如何,或者觉得不爱看我写的这些或者觉得“我这样挺好呗”,但你就是不能否认这6道关是摆在那边的,它是你提高一个层次的拦路虎,不打掉它,你永远上升不了。

啊。。。或许这就是许多人到了后来选择走管理的道路的原因吧,这也或许是中国的IT至所以还停留在初级阶段的原因吧,唉。。。中国式的一夜暴富梦想充斥着搞IT人们的头脑,建筑在沙滩上的城堡总有一天会倒塌。。。。。。

 

come on MAN!! 又来了,老套了,不好意思,发发牢骚。

 

下面我们就要讲如何来过这六道关,一道道我们来过,任何一个以技术为终生目标的开发人员,这些基础,其实不是通过看了我这篇文章,您临终抱一下佛脚就可以抱得出的,我告诉你,抱不出的,就算你死记硬背了我在这系列文章中提到的近百道例题,你如果不是真正把它们做为你一直需要修练的基本功的话你到头来还是要露馅的。

这就和我上面用1+1=2都不知道何谈四则运算是一个道理,这就和练武功一样,奇材很少,所有人都是从练马步开始的。

下面我们将慢慢来谈“面经”。

我这一阵超忙,小孩小照顾起来不易,工作上又是做的研发,没有时间概念,如果更新不及时,还往大家抱歉!

 

 

 

 

 

 

 

posted @ 2013-08-05 19:40  pangbangb  阅读(311)  评论(0编辑  收藏  举报