182

如何在面试中介绍自己的项目经验 - hsm_computer

 6 years ago
source link: http://www.cnblogs.com/JavaArchitect/p/7586949.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

       在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。

       根据我们的面试经验,发现有不少候选人对此没准备,说起来磕磕巴巴,甚至有人说出项目经验从时间段或技术等方面和简历上的不匹配,这样就会造成如下的后果。

       1 第一印象就不好了,至少会感觉该候选人表述能力不强。

       2 一般来说,面试官会根据候选人介绍的项目背景来提问题,假设面试时会问10个问题,那么至少有5个问题会根据候选人所介绍的项目背景来问,候选人如果没说好,那么就没法很好地引导后继问题了,就相当于把提问权完全交给面试官了。

       面试时7份靠能力,3份靠技能,而刚开始时的介绍项目又是技能中的重中之重,所以本文将从“介绍”和“引导”两大层面告诉大家如何准备面试时的项目介绍。

       好了,如下是正文内容。

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

1  在面试前准备项目描述,别害怕,因为面试官什么都不知道

       面试官是人,不是神,拿到你的简历的时候,是没法核实你的项目细节的(一般公司会到录用后,用背景调查的方式来核实)。更何况,你做的项目是以月为单位算的,而面试官最多用30分钟来从你的简历上了解你的项目经验,所以你对项目的熟悉程度要远远超过面试官,所以你一点也不用紧张。如果你的工作经验比面试官还丰富的话,甚至还可以控制整个面试流程(笔者在面试方面成精后也经常干这种事情,大家一定也能行)。

面试官

对你以前的项目和技能

只能听你说,只能根据你说的内容做出判断

在面试过程中的职责

在很短的时间内防守成功即可

如果找不出漏洞,就只能算你以前做过

面试前你有充足的时间准备

一般在面试前用30分钟阅读你的简历

你可以出错,但别出关键性的错误

不会太为难你,除非你太差

你有足够的技巧,也可以从网上找到足够多的面试题

其实就问些通用的有规律的问题

       既然面试官无法了解你的底细,那么他们怎么来验证你的项目经验和技术?下面总结了一些常用的提问方式。

提问方式

目的

让你描述工作经验和项目(极有可能是最近的),看看你说的是否和简历上一致

看你是否真的做过这些项目

看你简历上项目里用到的技术,比如框架、数据库,然后针对这些技术提些基本问题

还是验证你是否做过项目,同时看你是否了解这些技术,为进一步提问做准备

针对某个项目,不断深入地问一些技术上的问题,或者从不同侧面问一些技术实现,看你前后回答里面是否有矛盾

深入核实你的项目细节

针对某技术,问些项目里一定会遇到的问题,比如候选人说做过数据库,那么就会问索引方面的问题

通过这类问题,核实候选人是否真的有过项目经验(或者还仅仅是学习经验)

2  准备项目的各种细节,一旦被问倒了,就说明你没做过

       一般来说,在面试前,大家应当准备项目描述的说辞,自信些,因为这部分你说了算,流利些,因为你经过充分准备后,可以知道你要说些什么。而且这些是你实际的项目经验(不是学习经验,也不是培训经验),那么一旦让面试官感觉你都说不上来,那么可信度就很低了。

        不少人是拘泥于“项目里做了什么业务,以及代码实现的细节”,这就相当于把后继提问权直接交给面试官。下表列出了一些不好的回答方式。

回答方式

后果

我在XX软件公司做了XX门户网站项目,这个项目做到了XX功能,具体是XX和XX模块,各模块做了XX功能,客户是XX,最后这个项目挣了XX钱

直接打断,因为业务需求我不需要了解,我会直接问他项目里的技术

(需要招聘一个Java后端开发,会Spring MVC)

最近一个项目我是用C#(或其他非Java技术)实现的,实现了……或者我最近做的不是开发,而是测试……或者我最近的项目没有用到Spring MVC

提问,你最近用到SSH技术的项目是什么时候,然后在评语上写:最近XX时间没接触过SSH

在毕业设计的时候(或者在读书的时候,在学习的时候,在XX培训学校,在XX实训课程中),……

直接打断,提问你这个是否是商业项目,如果不是,你有没有其他的商业经验。如果没商业项目经验,除非是校招,否则就直接结束面试

描述项目时,一些关键要素(比如公司、时间、所用技术等)和简历上的不匹配

我们会深究这个不一致的情况,如果是简历造假,那么可能直接中断面试,如果真的是笔误,那么就需要提供合理的解释

       在避免上述不好的回答的同时,大家可以按下表所给出的要素准备项目介绍。如果可以,也请大家准备一下用英语描述。其实刚毕业的学生,或者工作经验较少的人,英语能力都差不多,但你说了,这就是质的进步。      

控制在1分钟里面,讲出项目基本情况,比如项目名称,背景,给哪个客户做,完成了基本的事情,做了多久,项目规模多大,用到哪些技术,数据库用什么,然后酌情简单说一下模块。重点突出背景,技术,数据库和其他和技术有关的信息。

我在XX公司做了XX外汇保证金交易平台,客户是XX银行,主要完成了挂盘,实盘成交,保证金杠杆成交等功能,数据库是Oracle,前台用到JS等技术,后台用到Java的SSH,几个人做了X个月。不需要详细描述各功能模块,不需要说太多和业务有关但和技术无关的。如果面试官感兴趣,等他问。

要主动说出你做了哪些事情,这部分的描述一定需要和你的技术背景一致。

我做了外汇实盘交易系统,挂单成交系统,XXX模块,做了X个月

描述你在项目里的角色

我主要是做了开发,但在开发前,我在项目经理的带领下参与了业务调研,数据库设计等工作,后期我参与了测试和部署工作。

可以描述用到的技术细节,特别是你用到的技术细节,这部分尤其要注意,你说出口的,一定要知道,因为面试官后面就根据这个问的。

你如果做了5个模块,宁可只说你能熟练说上口的2个。

用到了Java里面的集合,JDBC,…等技术,用到了Spring MVC等框架,用技术连接数据库。

这部分你风险自己承担,如果可以,不露声色说出一些热门的要素,比如Linux,大数据,大访问压力等。但一旦你说了,面试官就会直接问细节。

这个系统里,部署在Linux上,每天要处理的数据量是XX,要求是在4小时,1G内存是的情况下处理完5千万条数据。平均访客是每分钟XXX。

      面试前,你一定要准备,一定要有自信,但也要避免如下的一些情况。     

要避免的情况

正确的做法

回答很简单。问什么答什么,往往就用一句话回答

把你知道的都说出来,重点突出你知道的思想,框架

问:你SSH用过吗?

答:用过。

问:在什么项目里用到?

答:一个保险项目

问:你做了哪方面的事情?

我直接不问了

说得太流利

适当停顿,边思考边说

让面试官感觉你在背准备的东西,这样后面问题就很难

项目介绍时什么都说,

就说些刚才让准备的一些,而且要有逻辑地说

会让面试官感觉你思路太乱

别太多介绍技术细节,就说你熟悉的技术

技术面点到为止,等面试官来问

你说到的所有技术要点,都可能会被深问。面试官一般会有自己的面试节奏,如果你在介绍时就太多说技术细节,很有可能被打断,从而没法说出你准备好的亮点。

3  不露痕迹地说出面试官爱听的话

       在项目介绍的时候(当然包括后继的面试),面试官其实很想要听一些关键点,只要你说出来,而且回答相关问题比较好,这绝对是加分项。我在面试别人的时候,一旦这些关键点得到确认,我是绝对会在评语上加上一笔的。

       下面列些面试官爱听的关键点和对应的说辞。

能考虑到代码的扩展性,有参与框架设计的意识

我的项目XX保险项目,用到SSH技术,数据库是Oracle,(这个是铺垫),开发的时候,我会先和项目经理一起设计框架,并参与了框架的构建,连接数据库的时候,我们用到了DAO,这样做的理由是,把SQL语句封装到DAO层,一旦要扩展功能模块,就可以不用做太多的改动。

有调优意识,能通过监控发现问题点,然后解决

在开发阶段,我就注意到内存的性能问题和SQL运行的时间问题,在压力测试阶段,我会通过xx工具来监控内存和数据库,发现待提升的代码点,然后通过查资料来优化。最后等项目上线后,我们会部署监控系统,一旦发现内存和数据库问题,我们会第一时间解决。

动手能力很强,肯干活,会的东西比较多,团队合作精神比较好

在项目里,我不仅要做开发的工作,而且需要自己测试,需要自己根据一些日志的输出到数据库或Java端去debug,当我开好一个模块时,需要自己部署到Linux上测试。

或者,一旦遇到问题,如果是业务方面的,我会及时和项目经理沟通,如果是技术方面的,我会自己查资料,如果是测试方面的,我会及时和测试的人沟通。

责任心比较强,能适应大压力的环境

被问“你如果在项目里遇到问题怎么办?”

回答:遇到问题我先查资料,如果实在没法解决,不会拖,会及时问相关的人,即使加班,也会在规定的时间内解决。

有主见,能不断探索新的知识

在项目里,我会在保证进度的前提下和项目经理说我的想法,提出我的解决方案。在开发过程中,我会先思考一下,用一种比较好的方式,比如效率最高的方法实现。

另外你要找机会说出:平时我会不断看一些新技术(比如大数据Hadoop),会不断深入了解一些框架和技术的实现底层。

4  一定要主动,面试官没有义务挖掘你的亮点

    我去面试人家的时候,往往会特别提问:你项目里有什么亮点?或者你作为应聘者,有什么其他加分项能帮你成功应聘到这个岗位。即使这样问,还有些人直接说没有。

       我这样问已经是处于角色错位了,作为面试者,应当主动说出,而不是等着问,但请注意,说的时候要有技巧,找机会说,通常是找一些开放性的问题说。

        比如:在这个项目里用到了什么技术?你除了说一些基本的技术,比如Spring MVC,Hibernate,还有数据库方面的常规技术时,还得说,用到了Java内存管理,这样能减少对虚拟机内存的压力,或者说用到了大数据处理技术等。也就是说,得找一切机会说出你拿得出手的而且当前也非常热门的技术。

        或者找个相关的问题做扩展性说明,比如被问到:你有没有用到过一对多和多对多?你除了说基本知识点以外,还可以说,一般我还会根据需求适当地设置cascade和inverse关键字,随后通过一个实际的案例来说明合理设计对你项目的帮助,这样就能延伸性地说明你的技能了。相反如果你不说,面试话一定会认为你只会简单的一对一和一对多操作。

       面试的时候,如果候选人回答问题很简单,有一说一,不会扩展,或者用非常吝啬的语句来回答我的问题,那么我一般会给机会让他们深入讲述(但我不敢保证不是每个面试官都会深入提问),如果回答再简洁,那么也会很吝啬地给出好的评语。

      记住:面试官不是你的亲戚,面试官很忙,能挖掘出你的亮点的面试官很少,而说出你的亮点是你的义务。

      我在面试别人过程中,根据不同的情况一般会给出如下的评语。

      1 回答很简答,但回答里能证明出他对框架等技术确实是做过,我会在评语里些“对框架了解一般,不知道一些深层次的知识(我都问了多次了你都回答很简答,那么对不起了,我只能这么写,或许你确实技术很强,那也没办法,谁让你不肯说呢?)”,同时会加一句“表达能力很一般,沟通能力不强”,这样即使他通过技术面试,后面的面试他也会很吃力。

      2 回答很简单,通过回答我没法验证他是在项目里做过这个技术,还是仅仅在平时学习中学过这个技术。我就会写“在简历中说用过XX技术,但对某些细节说不上来,没法看出在项目里用到这个技术”,如果这个技术是职务必需点,那么他通过面试的可能性就非常小。

      3 回答很简单,而且只通过嗯啊之类的虚词回答,经过提醒还这样,我会敷衍几句结束面试,直接写“技术很薄弱,没法通过面试”。

      4 虽然通过回答能很好地展示自己的技能,但逻辑调理不清晰,那么我会让他通过技术面试,但会写上“技能很好,但表达能力一般(或有待提高),请后继面试经理斟酌”。这样通过后继综合面试的机会就一般了,毕竟综合面试会着重考察表达能力交往能力等非技术因素。

不管怎样,一旦回答简单,不主动说出你的擅长点,或没有条理很清楚地说出你的亮点,就算我让你通过面试,也不会写上“框架细节了解比较深,数据库应用比较熟练”等之类的好评语,你即使通过技术和后面的综合面试,工资也是比较低的。

5  一旦有低级错误,可能会直接出局

       面试过程中有些方面你是绝对不能出错,所以你在准备过程中需要尤其注意如下的因素。下面列了些会导致你直接出局的错误回答。

导致的后果

前后矛盾,后面的回答无法证明你的项目描述,比如一开始说用到了Spring MVC,后面没法说出最基本的实现,比如不知道Spring有哪些类,或者没法说出项目的细节。

我会怀疑这个项目的真实性,我就会进一步问:数据库用什么,数据量多少?多少人做了多少时间,一旦再出现明显漏洞,比如一个小项目用到非常多的时间,那么就不仅仅是技术问题,而是在面试过程中企图“蒙混过关”的性质了。

项目里一定会用到的基本概念性问题都回答不上,Spring的依赖注入概念是什么,怎么用的,或者Hibernate的一对多怎么实现

一旦被我发现概念不知道,我就会通过更多问题确认,如果被我确认很弱,这就相当严重,因为技术能力差和技术没用过是两个截然不同的状况,技术没用过会导致直接出局。

面试时说出的工作经验和简历上的不一致

我会直接怀疑简历是编的,我会让候选人解释,即使是说简历写错了,我也会问比较深入的问题来核实他的技能和能力。

简历上的技能描述和回答出来的明显不一致,比如明明是只会简单的Linux,但吹得天花乱坠

我会通过一些比较深的问题核实其他技能,找出其他方面吹嘘的水分。

所以建议,你可以适当夸张,但别过分,比如你在项目里没搭建框架但平时学习时搭建过,你可以写“XX项目的框架是你搭建的”,但你不能说你是一个架构师,非常了解项目的底层。

让面试官感觉你不稳定,很浮躁,比如说话不庄重,或者面试时打扮非常不正规,就穿背心来。

即使你技术再好,这个会可能导致你直接出局。

我对油嘴滑舌的候选人一般会直接写上不好的评语,这样很难过后面项目经理的面试。

我还遇到一个人,简历上工作是半年一换,我问他为什么经常换,他直接说是待遇问题,这个人我是直接Fail掉。

明说不能加班,不能出差

其实虽然有这一问,但公司里未必真的会加班会出差。但

听到这类回答,说明这个人不能承受大压力的工作,或者责任心不强,大多数公司是不会要这种人的。

6  引导篇:准备些加分点,在介绍时有意提到,但别说全

       在做项目介绍的时候,你可以穿插说出一些你的亮点,但请记得,不论在介绍项目还是在回答问题,你当前的职责不是说明亮点而是介绍项目,一旦你详细说,可能会让面试官感觉你跑题了。

       所以这时你可以一笔带过,比如你可以说,“我们的项目对数据要求比较大,忙的时候平均每小时要处理几十万条数据”,这样就可以把面试官引入“大数据”的方向。

       你在面试前可以根据职位的需求,准备好这种“一笔带过”的话。比如这个职位的需求点是Spring MVC框架,大数据高并发,要有数据库调优经验,那么介绍以往项目时,你就最好突出这些方面你的实际技能。

      再给大家举个例子,比如Java虚拟机内存管理和数据库优化是绝大多数项目都要遇到的两大问题,大家都可以在叙述项目经验时说,在这个项目里,我们需要考虑内存因素,因为我们的代码只允许在2G内存环境中运行,而且对数据库性能要求比较高,所以我们经常要监控优化内存和数据库里的SQL语句。这样当面试官深入提问时,就能抛出自己准备好的虚拟机内存优化和数据库优化方面的说辞。

       实在不行,你也可以说“我除了做开发,也做了了解需求,测试和部署的工作,因为这个项目人手比较少,压力比较大”,这样你也能展示你有过独挡一面的经历。

       我在面试过程中,一旦听到有亮点,就会等到他说好当前问题后,顺口去问,一般技术面试最多办半小时,你把时间用在回答准备好的问题点上的时候,被问其他问题的时间就会少了。

7  你可以引导,但不能自说自话

       我面试的时候,也会遇到些有准备的人,其实如果你真的想应聘的话,一定要事先准备,这点我能理解,甚至赞同,你只要别露出太明显的痕迹,我不会写上“似乎有准备,没法考察真实技能”这种话,更何况未必每个面试官都能感觉出你准备过。  但你不能凭着有准备而太强势,毕竟面试是面试官主导的。

       我遇到个别面试的人,他们说话太多,一般会主动扩展,比如我问他数据库用什么,他不仅回答数据库是什么,自己做了什么,甚至顺便会把大数据处理技术都说出来。

       其实过犹不及,我就会重点考察你说的每个细节,因为我怀疑你说的都是你从网上看的,而不是你项目中用到的,我甚至会直接威胁:“你先和我说实话这个技术你真在项目里用到,我后面会重点考察,一旦被认为你项目里没做,这个性质就是蒙混过关了”,往往这些人会主动坦白。

       不过话说回来,他如果仅仅说,数据量比较大,但点到为止,不继续说后面的话,我就会深入去问,他自然有机会表达。同时请注意,一般在面试过程中,一旦你亮出加分点,但面试官没接嘴,这个加分点可能就不是项目必备的,也不是他所关注的,当前你就可以别再说了,或者等到你提问题的时候再说。    

8  不是结尾的总结

       到这里,我们已经给出了介绍项目的一些技巧。这些技巧都是从 Java Web轻量级开发面试教程Java核心技术及面试指南里摘录的。

       两句话,第一,面试前一定要准备,第二,本文给出是的方法,不是教条,大家可以按本文给出的方向结合自己的项目背景做准备,而不是死记硬背本文给出的一些说辞。

       当大家介绍好项目背景后,面试才刚刚开始,哪怕你说得再好,哪怕你把问题引导到你准备的范围里,这也得应付Java Web(比如Spring MVC,ORM等)、Java Core(多线程、集合、JDBC等)和数据库等方面的问题。

       那么本文的价值体现在哪呢?如果引导不好,你根本没机会展示自己的能力。这就是本文给出的方法价值所在。说句自夸的话,本文给出的一些方法和说辞不是拍脑袋想出来的,而是从面试上百个候选人的经历中抽取出来的,其中有不少血泪,也有不少人成功的途径,这篇文章多少对大家(尤其是经验不满3年的初级程序员)有帮助,这也是本文申请放入首页的理由。

     这不是结尾,我们还将在合适的时候写一些关于“如何应对常见问题”或“如何快速提升自己能力”等方面的博文。

请大家关注我的公众号:一起进步,一起挣钱,在本公众号里,会有更多精彩文章。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK