再论面试前准备简历上的项目描述和面试时介绍项目的要点

    前几天我写了篇文章,在作技术面试官时,我是这样甄别大忽悠的——若是面试时你有这样的表现,估计悬,获得了你们的普遍关注,一度上了最多评论榜。不过,也收到了4个反对,也有有朋友说:”简直不给人活路!”,我能够想象是哪些朋友给的反对。html

   因为项目介绍是面试中的重头戏,一些技术问题会围绕你介绍的项目展开,你也能够在介绍项目时亮出你的优点。因此,在准备面试的时候,你能够刷题,但首先得准备好你的项目介绍,由于这关系到你面试的成败,文本就将围绕这点展开。linux

    若是在简历中的项目经验是真实的,那么本文给出的技巧必定能提高面试官对你的评价,毕竟你不只要能力强,更要让面试官感受出这点。若是你的项目经历是虚构的,那么我也不能阻止你阅读本文。若是你用虚构的项目经验外加你的(忽悠)本事外加本文给出的技巧进了某个公司,我想这个公司的面试官也怨不到我头上,毕竟面试技术是中立的,就看被谁用。nginx

     开场白结束,正文开始。web

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------面试

1 面试前,回顾下你最近的项目经验,在对比下职位介绍,在简历中多列些契合点

    好比某个职位介绍里,要求候选人有Spring Boot相关经验,数据库要会Oracle,并且须要有分布式组件,好比nginx,dubbo等的相关经验,那么你就得回顾下你上个或以前的项目,是否用到过一样的或相似的技术,若是有,那么就得加到简历上,这些技术无需在简历上展开,但得结合项目具体需求写。redis

    通常的写法,在项目里,我用到了dubbo,redis等的技术。 spring

    比较好的写法,在项目里的订单管理模块里,咱们是用dubbo的方式调用了客户管理系统里的方法,调用的时候咱们还考虑到了超时等的异常状况。在页面展现部分,咱们用redis缓存了商品信息,redis是用主从热备。sql

    对比上述两种写法,很明显,第二种写法明显更有说服力,由于其中列出了只有用过才知道的点,这样就能向面试官证实你确实用过相关技术。数据库

    相似的,在职位介绍里提到的技术,最好都用一样的方法写到简历中。不过这里请注意,过犹不及,好比职位介绍里提到了5个技术,你用到了其中的3个,那么你原本也能够经过面试。但若是你本身在项目里拼接了一个实际没用到的技术,那么你就得本身承担后果了。 设计模式

2 能帮到你的实际上是和职位相关的商业项目经验(含简历疑点和如何避免)

    在本文开头提到的这篇文章里,我已经分享过甄别商业项目的方法。这里我经过些伪装商业项目的案例来做为反面教材,以此来讲明商业项目经验该怎么描述。

    1 小A,3本学校毕业,计算机系,2年相关经验,以前的公司是一个名不见经传的公司,也就叫xx科技公司,但描述的项目却很高大上,是xx ERP项目。疑点分析:若是某大型公司,或国企,要作ERP或之类的大型项目,或者本身开发,或者让别的大公司开发(由于能出得起这个钱),若是是小公司要用,估计也就拿别人的现成的代码来改,通常不会出这个钱,因此遇到人经历少,公司规模小但项目颇有名头的简历,我不能说是一概排除,但我会问很细。

    2 小B,2本计算机系,3年经验,但最近有3个月工做断档的记录。以前的公司是个软件公司,但并不是是一个互联网公司,但简历上写的技术很是新潮,好比分布式缓存,dubbo之类的,并且用到了集群。仍是这句话,技术是为成本服务,你上个项目规模不大,也不可能有高并发的流量,那么为何要用这些技术?

    遇到这类简历,我就找些用过就必定能知道的问题来问,好比Redis的基本数据结构,redis如何部署,如何看redis日志,在上述案例中,我就经过这个方法发现该项目实际上是个学习项目,并且这个项目是在培训学校里学的。

    3 小C,最近简历上写的是个xx系统(你们能够理解成金融物流保险等),但时间跨度比较可疑,通常来讲,作个系统至少10我的左右,并且得大半年,但他简历上写的参与时间是3个月,这和培训学校里的学习时间很是相近。并且,在简历中写的是本身开发了xx系统里的xx模块,用到了redis,logstash等技术。这类简历的疑点是,第一,用了3个月完成了一个项目,并且该项目里有高新技术,且作好了之后立刻离职了,这个和实际状况不符,很像培训项目。

    其实简历的疑点不止上述三个,你们也能够换位思考下,若是你是面试官,看到这份简历,会相信吗?不少疑点其实很明显。

    下面我说下真实项目里会出现的状况,写这些内容的目的不是让有些同窗把学习项目和培训项目往商业项目上靠,而是让你们的简历更具有说服力。

    1 工做年限比较少的同窗,未必会开发完成一个模块或参与一个项目的开发,更多场景下是参与一个维护项目,好比公司一个项目已经上线了,这个项目是历史项目,因此用的技术未必最新,但在维护项目里,其实也会开发一些功能点,该用的技术一个不会少,针对每一个模块维护的时间周期也不会太长,好比每月,针对某个模块上线3个功能点,这样也是合情合理的。

    2 仍是这句话,若是有用到比较新的技术,结合业务场景写,好比用到了redis,你是缓存了哪类业务数据,这类业务数据的特色若是真的是符合缓存条件的,那么就加深了你熟悉这个技术的可信度。

    3 你站在项目经理的角度想一下,某个功能若是工期很紧,并且数据量和并发量真的不大,那么为何要用分布式组件?换句话说,若是你在简历里写的项目背景里,有高并发请求,那么引入分布式组件的可信度就高了。并且,项目经理会让一个工做经验不足的人独立使用技术含量高的组件吗?若是候选人工做经验很少,那么比较可信的描述是,由架构师搭建好组件框架,本人用到其中一些API,但用的时候,对该组件的流程和技术坑很是了解,那么以此证实本身对该组件比较熟悉,这样可信度就很是高了。

     换句话说,你写好简历里的项目描述后,本身先读一遍,若是有夸张的成分,更得多推敲,除了个别虚假简历以外,不少状况下,其实简历是真实的,但没写好,有不少漏洞,被面试官一质疑就慌了,致使面试官认为简历不真实。     

3 沉浸入项目角色,多列些项目管理工具和技术使用细节(就是坑)

    其实证实相关项目经验是商业项目,这仅仅是第一步,更多的时候,你得经过简历中的项目描述,证实你的技能和职位描述相匹配,再进一步,你也能够证实你确实用过一些比较值钱的技术。

    对于项目开发而言,只要项目是真实的,你就必定会经历过一些场景,对于技术而言,只要你用到了,那么必定能说出些“海底针”。因此在写简历时,建议你们列些以下的关键点,以证明真实性。

    1 项目的背景,多少人作?作了多久?用什么工具打包部署发布(好比ant加jenkins)?用到哪些测试工具?用什么来进行版本管理(好比Maven+JIra)?如何打印日志(好比logger)?部署环境时,用到哪一个web服务器和数据库(好比spring boot+oracle)。

     这些话在简历中一笔带过也用不了多少文字,但这样不只能提高项目的真实性,更能展现你的实际技能。

    2 项目的开发模式和开发周期,好比用敏捷开发,那么每个月做为一个周期,每次发布个若干功能,在每一个周期发布前几天,会冻结开发,在开发过程当中,会有天天的站会,代码开发完成后,会有code review。

    3  在写技术(尤为是值钱技术)描述时,最好写些细节,好比用到了dubbo,那么能够写须要设置dubbo超时时间和重试次数是1,不然可能会出现调用,若是用到了线程池,那么如何避免线程池中的OOM问题,或者用到了nginx,你就把配置文件里的关键要素写些出来。

    也就是说,你写技术时,不只得结合项目需求写(即xx技术实现了xx功能),最好再些一些(不用太多)这个技术的用法细节(也未必太深)。面试官其实就看你用到的技术是否和职位匹配,若是职位介绍里的技术点你有都招这点要求写了,至少在筛选简历的时候,你过关的可能性就很大了。

    4 最好写些你解决的实际问题,大而言之,实际问题能够包括配置集群时的要点(好比必定要设置某个配置),小而言之,你能够写如何实现一个功能(好比出统计报表时,你用到了数据库里的行转列的功能)。哪怕是学习项目和培训项目,你运行通现有代码的时候,也会遇到各种的坑,这就更不用说商业项目了。在简历里项目描述部分,你就写上一两个,这样证实真实性的力度绝对会很是高。

    5 加上单元测试和分析问题和排查问题的描述。

      好比,在这个系统里,我是用SoapUI做为自测的工具(或者用JUnit),在测试环境上,若是出现问题,我会到linux里,用less等命令查看日志,再用JMeter等工具查看JVM的调用状况,以此来排查问题。

    这种话在简历中写下大概的描述,给出关键字(好比Jmeter,SOAPUI或职位介绍里出现的关键字)便可,不用展开,但在面试前要准备说辞。

    我知道有些候选人会对项目描述作些改动,好比在最近的项目描述里,加上些以前项目里用到的技术,或者加上职位描述里提到的技术。在这种作法是否恰当,你们本身评估,但若是你在这类技术描述里,加上本部分提到的一些要点,面试官就很难甄别了。

4 事先得排练介绍项目的说辞,讲解时,必定得围绕职位需求要点

    这里说句题外话,我面试过的候选人,从他们的表现来看,不少人是不许备项目描述的,是想到哪说到哪,这样的话,若是你准备了,和你的竞争者相比,你就大占优点了。

    在本文的第3部分里,我给出了5个方面,在简历里,你未必要写全,但在准备面试说辞时,你必定得都准备。

    1 你在项目描述里列到的全部技术点,尤为是热门的以及在职位介绍里提到的技术点,你必定得准备说辞。也是按“技术如何服务需求”以及“技术实现细节”来讲,更进一步,你最好全面了解下这个技术的用法。好比nginx如何实现反向代理,该如何设置配置以及lua脚本,若是分布式系统里某个结点失效了,我想在反向代理时去掉,那该怎么在nginx配置里设。针对这个技术的经常使用问题点,你最好都准备下。

    2 介绍项目时,能够介绍用到哪些技术,但别展开,等面试官来问,所谓放长线钓大鱼。这个效果要比你直接说出来要好不少。

    3 有些基础的技能需求,在职位描述里未必会列,但你必定得掌握。好比经过设计模式优化代码架构,熟悉多线程并发,熟悉数据库调优等。关于这些,你能够准备些说辞,好比在这个项目里,遇到sql过长的状况,我会经过执行计划来调优,若是经过日志发现JVM性能不高,我也能排查问题,而后坐等面试官来问。

   4 开阔你的视野,别让面试官感受你只会用很是初步的功能点。好比你项目里用到了dubbo,但在项目里,你就用到了简单的调用,那么你就不妨搜下该技术的深刻技术以及别人遇到的坑,在面试过程当中,你也能够找机会说出来。

5 在项目介绍时多准备些“包袱”

    刚才也提到了,在介绍项目里,你能够抛些亮点,但未必要展开,由于介绍项目时,你是介绍总体的项目以及用到的技术,若是你过于偏重介绍一个技术,那么面试官不只会认为你表达沟通方面有问题,并且还会认为这个技术你事先准备过。

    以下列些你们能够抛出的亮点:

    1 底层代码方面,你们能够说,了解Spring IOC或Nginx(或其它任何一个职位介绍里提到的技术)的底层实现代码。面试时,你们能够先经过UML图的形式画出该技术的重要模块和过程流程,再经过讲述其中一个模块的代码来讲明你确实熟悉这个技术的底层实现。

    2 数据库调优方面。好比oracle,你能够用某个长SQL为例,讲下你经过执行计划看到有哪些改进点,而后如何改进,这样的例子不用多,2,3个便可,面试时估计面试官听到其中一个之后就会认为你很是熟悉数据调优了。

   3 JVM调优和如何经过设计模式改善代码结构,在Java核心技术及面试指南里我已经提到了,这里就不展开了。

   4 架构层面的调优方法,好比经过分库分表,经过数据库集群,或者经过缓存。

   其实关于亮点的内容,我在Java Web轻量级开发面试教程里,也有详细描述。这里想说的是,你们能够准备的亮点毫不止上述4个,你们能够从调优(好比经过分布式优化并发状况场景)和技术架构(好比SSM, 分布式消息队列)上准备。再啰嗦一句,职位介绍里提到的技能点,好比Redis,你们还能够用熟悉底层实现代码来做为“亮点”,好比介绍项目时,轻描淡写地说句,我熟悉Redis底层代码(固然也能够写到简历上),而后等面试官来问时,动笔说下。 

6 别让面试官感受你只会使用技术

    按照上述的建议,只要你能力能够(哪怕可上可下),你经过技术面试的可能性就大大增长了。但面试时,若是你表现出以下的软实力,好比在简历上项目描述部分写上,或介绍项目时说出,那么面试官甚至会感受你很优秀。

    1 该项目的工期比较紧,我会合理安排时间,必要时,我会在项目经理安排下周末加班。(体现你的责任心)

    2 这个项目里,用到了分布式组件技术,刚开始我对此不熟悉,但我会主动查资料,遇到问题,我会及时问架构师,解决问题后,我会主动在组内分享。(有责任心,学习能力强,有团队合做意识,有分享精神)

    3 遇到技术上或需求上的疑点或是我我的没法完成问题点,我会主动上报,不会坐等问题扩大。

    4 在开发项目的过程当中,经过学习,我慢慢掌握了Git+Ant+Jeninks的打包发布部署流程,如今,我会负责项目里的打包工做。或者说,在组内,我会天天观察长SQL脚本和长Dubbo调用的状况,若是遇到问题,我会天天上报,而后你们一块儿解决问题。(不只能完成本职工做,并且还能积极分担项目组里的其它工做)

    5 若是出现问题,我主动会到linux里经过xxx命令查看日志,而后排查问题。(不只积极主动,并且掌握了排查问题的方法)

    6 我会和测试人员一块儿,用xxx工具进行自动化测试,出现问题而后一块儿解决。(工做积极,并且掌握了测试等的技巧)

    7 在项目里,我会用Sonar等工具扫描代码,出现质量问题,我会和你们一块儿协商改掉。(具备代码质量管理的意识,并且具备提高代码质量的能力)

 

7 版权说明,总结,求推荐

    本文欢迎转载,转载前请和本人说下,请全文转载并用连接的方式指明原出处。

    本文给出的准备项目描述和说辞的经验,是根据本人以及其它多位资深技术面试官的经验总结而来。若是你们感受本文多少有帮助,请点击下方的推荐按钮,您的推荐是我写博客的最大动力。若是你们在这方面有问题,能够经过评论问或私下给我发消息,通常我都会回。

相关文章
相关标签/搜索