这篇文章的适用范围其实不仅限于Java后端或Java Web,不过其中有些是拿这方面举例的,在其它方面,大家可以举一反三,应该也能得到些启示。

    我们在面试时,会发现有些候选人技术不错,比如在Java Web后端方面,Spring MVC框架也做过,数据库方面不仅有经验,而且还有调优能力,Java Core方面的一些问题也能回答非常好。但由于他们在团队合作或责任心或其它综合能力方面有所欠缺,导致他们的综合竞争力甚至低于一些技术还比他们差的人,进而导致他们落选。    

    而且在我们的观察到的不少程序员中,会技术但缺乏其它综合能力的情况不在少数,在这篇文章里,本人不想探究原因,而是会给出些面试时的注意点。而且大家还可以在平时,根据本文给出的一些建议来提升自己的综合能力。

    开场白结束,以下是正文。

--------------------------------------------------------------------------------------------------

第一部分,如何描述你在项目里的作用?别单说你仅仅coding。

    一般这种问题是:“你在项目里干了什么”,或者类似的问题。

    回答的时候可以适当夸张,但要量力而行,一般项目里有如下角色。

    ①需求调研,除非是内部项目,否则一般是项目经理做的,调研的时候会写一些需求和设计文档,也会用UML之类的工具画点图。

    你可以说,在项目经理的带领下了解需求;也可以适当说写了一些文档,绘制过一些UML图;也可以说,如果在开发过程中遇到不清晰的业务,会及时和项目经理或相关人员确认。

    ②设计,包括文档上的设计和代码上框架的设计以及数据表的设计。一般是比较资深的人做的。你可以在了解各细节的基础上,说参与过部分设计。

    ③开发,这个就不说了。

    ④测试,你自己的模块需要你自己测试,此外还有专职的Test人,如果你了解一些黑盒、白盒以及自动化测试工具,或者是JUNIT等技术,可以说出来。

    ⑤部署上线,包括打包上传发布到Linux之类的工作,这个很考验一个人的动手能力,你可以去专门了解这方面的技术,比如怎么写Ant,怎么deploy到Tomcat,websphere,怎么到Linux上运行,然后可以根据你的项目情况适当准备一下。

    除了写代码,程序员在项目里或多或少会做些其他的事情,比如测试或者部署上线,但我们在面试别人的时候,不少人真就说他只参与了编码工作。对此我们一般会深入提问,比如会继续问,你是否参与了设计、测试等。如果他在我们提问后能准确说出还做了其它事情,那么不会有什么不好的影响。但万一你遇到一个不大擅长挖掘候选人能力的面试官,而且你只说会coding,那他就真会写上“项目中除了coding基本没干过其他事”这样的评语。

    这种评语的潜台词是,除了写代码,你没有单元测试、数据库设计、模块设计、系统发布等各种其它的经验,大家可以自己比较下其中的后果。

 

第二部分,  一定要找机会说出你的团队合作能力

    面试过程中,我们一般会随口问一些和项目相关的情况,比如这个项目有多少人?都是做什么的?然后再进一步问,如果你在开发的时候遇到问题怎么办?不管问题是什么,其实我们想了解的内容用大白话说出来就是:“你是不是能和别人一起协作开发,会不会是刺头,遇到问题你是积极主动地解决还是消极地得过且过”。

    很多人都会漫不经心随口回答,但一般来说,面试官在得不出候选人团队合作能力之前,是不会终止提问的,因为在软件开发里,不可能一人把什么事情都做了。

    我们也遇到过一些人,在回答这类问题时过于简单,实在没法得出结论,就只能写“沟通和理解能力有待提升(因为你总没法理解我们提的问题,或者未表达出你的意思),没法考查团队合作精神”。如果技术可以,即使他进下一轮面试,也会因为这个原因出局。

    下面列出一些关于团队合作方面需要大家展示出的能力,其实这些能力大家应该在谈吐中展示,因为这方面没什么太多的问题。

需要讲出(或者表现出)的要素

回答样式和面试官的考查点

沟通能力如何

如果有问题,我会及时和项目经理(或者测试人员,或者其他相关人员)确认和沟通,如果遇到我不太明白的问题,我也会及时沟通,不会按我理解的做下去

需要讲出(或者表现出)的要素

回答样式和面试官的考查点

 

同时,你需要在面试过程中展示出比较好的沟通能力,比如有疑问点赶紧确认,说话别吞吞吐吐,别太自大

理解和表达能力如何

这个没什么样式,表现形式是候选人能很好理解面试官提出的问题,即使个别地方不理解也能及时问懂,然后说出来的话有条理,能让面试官听明白

解决问题的方式

你需要想办法说明你是会积极主动地解决问题,而不会消极地回避问题

比如你可以说下在之前项目里解决问题的方式,你可以说,你是先通过查询网络资料尝试自己解决,如果再有问题,可以和你的同事或者领导一起协商解决

是否适合和其他人一起协作开发

候选人不会傻到自己说团队合作能力不行,一般面试官的考查点是:

①看看这个人的说话方式是不是很冲,是不是过于自大,是不是有什么沟通障碍,从中推断出这个人为人处世的大致情况

②直接问对待问题的态度

③有时候深入一个问题不断问,做类似的压力测试,看看候选人在被逼急了的情况下能否还心平气和

能不能适应在外派环境下工作

外派一般钱会多些,但可能压力会大些,因为毕竟甲方的压力会转嫁到外派的头上

如果你应聘的是一个外派的岗位,最好别太有个性,最好让面试官感觉你是“逆来顺受”的,这样你的成功几率就会大得多

    我们在招聘的时候,如果某个项目比较着急,或者是某个人员流动比较多的项目,或者在招聘的淡季,往往会降低技术上标准,比如本来要对Spring MVC很熟悉的,现在只要做过就行,但不论怎么降低要求,团队协作能力不会降。也就是说,即使你能力稍微欠缺些,但很擅长和别人一起协作开发,机会就要比技能很强但沟通协作有问题的人要多得多。

 

第三部分  当问项目周期规模和技术时,是在考查你值多少钱

    我们往往会随口问,XX项目你做了多久,多少人做,或者是,你项目里用到了什么新技术?

    这时请大家注意,一旦你有大项目经验,或者用到某个新技术,你的身价会适当往上涨一些,但如果你不注意这方面的回答,让面试官感觉你只有小作坊、小团队的经验,则很可能会给你一个比较低的工资,因为某些技术、经验只有从大项目中才能得到。下面列出一些大项目的常用标准。

    ①客户是比较知名的银行保险等大公司。

    ②外派到某个著名大公司。

    ③展现出在项目里用到一些比较值钱的软件,比如IBM的WebSphere、Oracle之类的,而不是用免费的,因为大的项目能负担得起比较大的软件花费。

    ④一般在知名公司做的项目都可以理解成大项目。       

    如果你实在没有,可以往“长项目”上靠,比如一个项目大概10个人规模(别多说,不是大项目,人多了别人未必信,而且10个人我们都嫌多,可以说在7个人左右),做了8个月以上,你是从需求分析开始做起的,一直做到上线和维护,毕竟这样你还能深入了解软件开发的周期,而且在项目里做长了你积累也多,这个时候你在谈价格的时候也有底气。

    如果我们在面试的时候,别人告诉我,他不断换项目,每个项目都做不长,比如三个月到半年,而且做的项目客户背景总换,我们就没法写上“有大项目经验”,或者是“做一个比较长的完整项目”这种评语了。

 

第四部分  想尽办法展示你的责任心和学习能力

    责任心和学习能力看上去都是虚的,似乎没法衡量,但在面试的时候,我们会通过一些问题旁敲侧击地问出来,相信有经验的其他面试官也都会做到这点。

提问方式

需要展示的要素

如果你的项目进度比较紧/或需要加班/或需要出差/总之要你额外付出,你会怎么样

①先别问回报,比如别问加班是否有钱,因为不管你问不问,该给的总会给你

②态度很诚恳,语气很平常,表达出愿意的意思

③不仅要完成手头的事情,而且要经常和对应的人沟通协商,或者帮助其他开发人员、测试人员,或者帮助项目经理一起想办法解决问题

④可以适当准备几个在上个项目里你责任心很强的例子,一般只要候选人语气措辞可以,说得头头是道,面试官听着像就会让他过关

    下面列下学习能力方面你需要展示的能力。

考查点

需要展示的要素

你在以前的项目里,有没有遇到问题?你是怎么解决的

①总会遇到问题的,不可能不遇到

②先自己用点时间看,但别无限期看

③和相关的人协商,协商的时候要能说出你哪块不懂,或者说出你的想法

④同样可以准备几个例子,但别夸张,比如遇到过在一周内学好一个大数据框架的,面试官就有些半信半疑了

    这些方面其实是考查一个人的潜力,如果公司对候选人要求不高,只想招个初级的,其实也知道人和人之间差别不会太大。若这些方面你表现得很好,那么你入职的机会就会大很多。

 

第五部分  总结(外带讲述提升这方面能力的技巧)

    在本文里,我列出了一些说辞和技巧,但这总是有穷尽的。在平时,大家可以通过如下的途径来提升自己的综合能力。

    第一,一定得认真参加项目组的会,在其中得认真听项目经理如何分析项目的需求,如何划分任务,如何制定进度。

    第二,平时在项目里,多和业务人员、 测试和实施等做非coding的人接触,观察下他们在做什么,怎么做。

    第三,平时一定得多和别人沟通。我就见过一个人,刚毕业,开始很内向,表达能力也不算好,往往词不达意。但我就逼着他多说话,多表达,别怕丢脸别怕别人笑,也是就1个月,他的沟通能力大大改善,经过半年后,甚至能力能赶上和客户打交道的人了。

    第四,别怕加班,别推诿事情,多做事情就相当于让自己多锻炼。

    第五,如果你的项目组确实很难呆,比如项目经理或组员很难打交道,你尽量忍,至少在这个项目组里呆上半年。因为一方面社会上各种人都有,大家得学会和不同的人打交道,另一方面,如果你在一个项目的时间少于半年,后继面试官大多数会认为是你个人的问题。

    本人根据面试官的经验写下此文,而且这些内容都来自java web轻量级开发面试教程这些内容都是从诸多候选人的表现中总结出来的,扪心自问,字字谨慎,不敢误导大家。事实上,本人根据这些经验辅导过不少将要参加面试的学生,从反馈上来看,多少有些帮助。这也是本文有自信申请加入首页的理由(当然博客园藏龙卧虎,如果本文没到标准,本人还将继续努力)。最后感谢大家的阅读,大家如果在面试写简历或其它方面有任何问题,可以给我留言,本人将尽可能地解答大家的问题。

 

posted on 2017-10-09 07:55  hsm_computer  阅读(2168)  评论(2编辑  收藏  举报