本人以前写了三篇博文,从面试官角度来告诉你们,哪些人能面试成功,你的简历能帮你争取到面试机会吗,以及从面试官角度告诉你们如何准备项目方面的描述,均获得了比较好的反响。这里咱们就从面试流程入手,告诉你们哪些人能面试成,本文一样是是据java web轻量级开发面试教程改编的。html
其实有时候面试官本身也知道,在一些问题上候选人颇有可能作过准备,从这些问题上可能没法了解到候选人的真实状况,但若是候选人没回答好,那就不会认为候选人“没作足准备”,而会认为候选人在问题所涉及到的方面有欠缺点。前端
并且,经过准备,候选人还能在面试中找到合适的机会更有效地展现本身的亮点,相反,若是候选人没说,或没说好,面试官是必定没法了解到候选人的相关特长的。java
若是你们认为我这篇博文写很差,请反对我,同时给出改进建议,若是认为确能从中获得收获,也请你们尽可能点击“推荐”按钮,你们的推荐是我继续写文章的动力,谢谢你们了。web
在下表里,咱们概括了些能够在Java核心(Java Core)方面展现的亮点。事实上,咱们不可能列出全部的亮点,这里只是给出些案例,你们能够据此扩展。面试
技术方面数据库 |
能够说的亮点后端 |
Java集合对象设计模式 |
1 能根据项目的需求选用合适的集合对象,好比知道ArrayList和LinkedList的差别,并能合理选用。多线程 2 能在合适的场合选用WeakHashMap。架构 3 能够适当讲一些集合的JDK底层实现代码。 |
异常处理方面 |
能在finally从句里写释放资源的代码 |
JDBC方面 |
1 能经过PreparedStatement的预处理方法来防止SQL注入。 2 能经过批处理来提高操做性能。 3 能经过实例讲述事务隔离级别的含义 |
多线程方面 |
1 会使用线程池 2 能经过锁或信号量等手段正确地处理多线程并发时的数据一致性。 |
在下表里,咱们列了些在数据库方面能够准备的亮点。
技术方面 |
能够说的亮点 |
建表 |
建表时须要根据项目的数据状况,考虑是采用三范式或是反范式。 |
SQL调优 |
1 能够经过查看日志等方式看哪些SQL须要调优。 2 能够经过执行计划查看SQL的所消耗的代价,并据此调优。 3 能够经过建索引,建分区等手段来优化SQL性能。 |
事务 |
1 能够说下JDBC或Spring里是如何管理事务的。 2 能够说下Spring里的声明式事务的作法和优势。 3 能够举例说明事务隔离级别和事务传播机制的用法。 |
分布式数据库 |
1 能够经过水平或竖直等方式的方式来拆分数据库,从而减轻对单表访问所须要的代价。 2 能够经过集群等方式来承担对数据库的过量的访问请求。 |
NoSQL和Hadoop |
这两个自己就是个亮点,若是你们用过,能够结合项目来讲明。 |
在下表10.8里,咱们也概括出在这方面你们能够准备的亮点。
技术方面 |
能够说的亮点 |
Spring MVC架构 |
1 能够说下Spring的IOC和AOP是如何优化项目结构的。 2 能够说下拦截器等Spring组件对项目的帮助。 |
ORM,好比Hibernte或Mybatis |
使用这种ORM技术时,如何优化访问和操做数据库的性能。 |
Spring和Mybatis等的整合 |
能够讲下整合框架的细节,并能够举例说明整合后的框架能很好地适应需求的变动。 |
此外,你们还能够在Linux使用技能以及项目管理软件的使用经验方面展现本身的亮点。这里请注意,必定找合适的机会“顺带”地说,若是没机会宁肯别说,更不能仗着有所准备就直接自说自话地说。不然的话,反倒可能会获得“表达能力不清晰”或“叙述条理混乱”等的不良评价。
面试官只有当确认候选人在责任心和团队协做能力方面没问题,才敢把他招进公司。有些面试官会经过问问题来确认这两点,但有些有经验的面试官甚至能够经过候选人回答问题的方式和说话的语气上来确认。
因此你们在面试前,首先能够按以下的要点,在平时的生活和工做中练熟良好交流方式。
第一,谈吐清晰,语速不急不缓,至少让面试官能听懂你说的话。并且力求说话果断,别吞吞吐吐的,这样能显示出你有足够的担当。
第二,交流时尽可能目视面试官,语气不亢不卑,别太僵硬,说话别过于强势。脸部能够适当微笑,面试官在说话时能够适当点头互动,总之得让面试官感受和你交流不吃力,最好还让面试官感受乐意和你交流。
第三,应积极主动回答面试官的提问,若是没听明白问题,别僵持着等面试官进一步解释,应当主动询问。若是感受面试官没彻底理解本身的回答,或者理解有误,应当进一步主动解释,以展现积极沟通的姿态。
第四,即便不认同面试官的观点,也应小心平气和地交流,不能急躁,别轻易打断面试官的话,能够倾听完面试官的话后耐心地与之交流。有些面试官可能会故意刁难候选人,美其名曰“压力测试”,在这种状况下,候选人更应小心平气和,不能起争执。
在面试过程当中,再有经验的面试官可能也没法经过实例来验证候选人的“团队协做能力”(由于在短期内没法协做),但若是你们能给面试官留下“沟通表达没问题”、“为人和蔼”和“遇到难点能积极主动协调沟通”的良好印象,那么面试官通常也能承认候选人的团队协做能力。
此外,你们还能够准备以下的说辞,一旦能找合适的机会说出来,面试官更会承认你们的责任心和团队协做能力。
说辞1:(在介绍项目时)这个项目作到一半时,客户方变动了一些需求点,这给咱们项目组形成了比较大的压力。在项目经理的带领下,咱们都被分配了更多的任务,在这种状况下,我经过加班按时按质完成了任务,并且在作的过程当中,一旦出现需求或技术方面的问题,我也会主动找同事或项目经理确认。
总之,在出现问题时,你不是退缩,而能经过加班等方式积极面对和解决问题,并且一旦有问题,你不是得过且过,而会主动确认。
说辞2:(介绍本身在项目中的角色)在这个项目组里,除了本职的开发工做外,我还会积极主动地和测试人员沟通,一方面告诉他们该怎么测,另外一方面,一旦发现问题,我会和他们一块儿重现问题,完成修改后我也会主动告诉测试人员,让他们尽快确认。
总之,在项目里,你不只能完成本职工做,并且还能和团队其它人员一块儿协做。
说辞3:(介绍项目的亮点)在项目里,我遇到一个需求点,这须要多个团队一块儿开发,这时我会和相关人员一块儿开会,肯定各自的任务点和工期,完成功能点后咱们会一块儿联调。
说辞4:(若是面试官问你,遇到本身没法解决的问题该怎么办?)我不会推掉任务,我先会查阅资料,若是不行,我会问项目经理,在他们给出的解决方案基础上,我会细化成具体的实现代码,最后我会把实现好的功能点和项目经理确认,以求没有理解上的误差。
在责任心和团队协做能力这两方面,不建议直接说“我有”,由于这至关于自我表扬,可信度不高,你们能够采用上述“用具体事实证实”的方式,这样面试官听了后就天然能承认你们的相关能力。
当技术面试官问完全部问题后,通常都会说:“我没问题了,你有什么问题?”
这时你们能够在这个环节里经过提问进一步展现本身和这个职位的匹配度,这些问题也能够事先准备。下面列些能够提问的要点,在具体操做中你们能够酌情选用。
要点一,展现本身技能和要作项目的匹配度。具体而言,你们能够看下职位介绍里列的技能点,这些技能点应该在以前的面试里都已经聊过。这时你能够问,接来下我会进哪一个项目组?作哪一个项目?其中会用到哪些框架和技术?
当面试官解释好以后,你就能够“顺口”说,xx技术或框架(这能够是以前没充分展现的)我以前在项目里用过,我作了xx(必定是亮点),能够再介绍下优化后的效果,再说下体会。
要点二,展现本身吃苦耐劳的能力,同时也能够展现下责任心。好比能够问,大家加班多很少?会不会到客户现场?会不会出差?
不论面试官如何回答,你也能够“随口”说,其实在项目比较紧的状况下,首先得保证进度和质量,在以前的项目里,有段时间确实进度比较紧,我就去和项目经理多申请了些任务,而后经过加班,按时按质完成了任务。
要点三,展现本身学习能力。好比能够问,在这项目里,会不会“调研新技术”?若是项目经理说没,那就别继续说了。若是有,那么你就能够说,在以前的项目里,咱们须要用到xx技术,但谁也没太多的经验,在项目经理的带领下,我用了一些时间作了调研,最后项目组根据个人调研后写的代码,成功地把这技术应用到项目里。
要点四,展现本身的职业发展规划和这个项目的需求是一致的,同时展现本身的稳定性。好比能够问,若是我在这个项目里作得好,我能够获得哪些提高的机会?
当面试官说完后,你也能够“随口”一说,这也是我指望的发展方向。或者也能够说,若是我有幸面试成功,我也打算沉浸到这个项目里,好好几年,若是有机会,我也打算向高级开发或架构师发展(请注意,这个发展方向最好和项目组的指望一致)。
要点五,进一步展现本身沟通交流和团队协做的能力,以前面试官必定考察过,这里能够再强调一下。好比能够问,这个项目组有哪些成员?通常是怎么构成的?
这时面试官就会和你介绍,这个项目有一位项目经理,一位架构师,x位后端开发,x位前端开发,x位测试。这时你就能够说,这和我以前的公司很类似,在以前的项目里,我作的是后端,个人体会是,在项目组里必定得多交流多沟通才能把项目作好,靠一我的是不行的,好比有需求或进度上的问题,我会及时和项目经理交流,若是发现bug,我也会及时和测试人员交流。
再次强调,出于诚信的原则,这阶段你们介绍的状况必定得是真实的。
在这个阶段,你们也能够问些比较关心的问题,好比后继的面试流程,但别什么都不问,这样面试官可能会感受你没准备过,也不在意这个岗位。也别问些能轻易从网上能找到的资料,好比这个公司主营业务是什么,这样会让招聘方感受你以前由于不在意这个机会,因此没了解过这个公司的状况。也最好别问工资(或和应聘者切身福利有关)的事,一方面技术面试官(或后继的项目经理)未必能作主,另外一方面会给他们留下比较功利的印象,关于这些能够等到经过面试后和人事具体地谈。
通常来讲,国内公司会要求候选人有“读英语文档”的能力,而外企则会要求候选人能在纯英语环境下工做,即不只能看英文文档,能用英文邮件交流,并且还能用英语和国外的同事开会交流。
面试的时间有限,通常不会让候选人当场翻译英文文档,而是会考察英语的口头交流能力。
有些公司会全程用英语面试,这要求就高了,通常的公司(包括一些外企),则是大部分用中文面试,中间夹杂着一些英文问题。这里给出些常见的英语问题点。
1 用英语介绍最近的项目。2 用英文作自我介绍。3 用英语介绍本身的兴趣爱好。4 用英语介绍你本身最擅长的技术点。5 用英语介绍下你的优缺点。6 用英语介绍上家公司,并叙述离职缘由。这些均可以事先准备,面试时,发音能够稍微不标准,但力求流利,并且说得量须要适当。
准备时,你们能够根据问题点先把要回答的英语句子写下来,多练习几遍,这样在面试时就能有信心地展现准备好的成果。
讲个咱们据说过的笑话,小A被临时抽调去为一个日本项目组面试,其中须要考察候选人的日语,但问题是小A不懂日语,时间又比较紧,又找不到其它面试官。在日本项目组的容许下,小A采用以下的面试方式,让候选人用日语介绍本身,并介绍上个项目。
虽然小A听不懂,但若是候选人说不上或不说,日语评定是“不及格”,若是能说得上,但磕磕巴巴,并且说得量又少,属于及格,若是发音标准并且流利,那么就属于良好或优秀了。
从这个笑话里你们能够获得以下的启示:
第一,说不说有着本质的差异,不说必定是不及格。
第二,内容尽可能符合要求,不求措辞精美,用比较简单的表达方式便可。由于面试官考察重点不是内容,而是发音(至少能保证听懂)、流利程度(有信心流利地说,尽可能别磕磕巴巴)和说的语句的数量(别太少,也别太啰嗦)。
第三,说的时候能够目视面试官,并用手势等方式互动,以此来展现本身说英语很是有信心。而别低着头或用其它方式暴露出本身信心不足。
面试官有时会问些刁钻的问题,对于这类问题,你们应当事先准备好。若是等面试时被问到时再临时想,未免会措手不及,并且一旦回答很差,轻者面试失分,重者可能直接致使面试失败。
问题一,你有哪些缺点?
你们别说没缺点(说出来没人信),也别说主观上的缺点,好比粗心办事拖拉等,能够往“好心办坏事”方面说,甚至还能够适当展现本身的一些优点。好比能够说,以前在项目里,我可能比较心急,总想让项目一天内就作好,因此总会加班来力求按质提早完成任务,这样就让其余成员感受压力过大了,不利于团队建设。
最后还得提一句,本身已经意识到这个缺点了,正在改进或已经改正了。好比能够这样说,后来项目经理和我沟经过这个问题,让我定时和组员分享些技术点,以求你们一块儿进步,当我作了几回分享后,整个项目组的进度都提高了。
问题二,你本身感受,在以前的项目里,你有哪些失误?
这里你们也能够往“好心办坏事”方面说,应当尽可能避免说可能致使项目有重大损失的失误,好比写代码得过且过,或不注重单元测试。
你们能够按以下说辞的思路来回答这个问题。在以前写代码时,我总会尽可能在代码里使用设计模式以求提高代码的可维护性,后来通过项目经理的帮助,我意识到了应当注重进度和质量的平衡,应当只在可能会常常变动的模块里使用设计模式。
或者能够说,在以前遇到问题时,我和测试人员沟通时,总会说些技术相关的术语,这就致使了沟通效率不高。后来我也注意到了,和他们沟通时,应当尽可能注重功能点的实现方式,如今和他们沟通起来就没什么问题了。
问题三,若是你和项目经理或同事工做上有分歧,你通常会怎么处理?
在项目里,遇到分歧是很正常的,但要让面试官感受遇到分歧你不会回避,而是会主动沟通,在沟通时也不是一味强求别人接受你的观点,而是经过协商得出一个你们都能接受的方案。
对此你们能够举例说明,在xx项目里,在xx功能的实现上,我和项目经理有分歧,我主张用链接池,项目经理主张用通常的链接便可,不必用链接池。对此,我会主动和项目经理沟通,说出我主张的理由,同时也听下项目经理的理由,最后你们讨论出了一个解决方案。
问题四,你指望的团队工做氛围是什么样的?
遇到这种问题,若是你的指望和招聘公司的状况不一致,招聘方可能就会怀疑你未必能作久。因此在回答这类问题时,应尽可能少加些本身主观的愿望,好比别说,我但愿团队能定时出去活动,或但愿工做的氛围比较宽松。这样一说,一旦招聘方项目压力比较紧,而你却但愿宽松,那么成功应聘的可能性就下降了。
对此你们能够说些不大容易被挑错的答案。好比能够说,我但愿在团队里,遇到技术难点,你们能一块儿协商解决,遇到有什么好的点子,也能够和你们一块儿分享,若是项目进度比较紧,我也愿意一块儿加班。
问题五,你是否有失败的经历?
这里面试官不在意结果,更关注于你处理问题的心态(得积极些)和措施(应尽最大努力)。所谓失败,就是没达到预期目标,这里你们能够把预期目标设置高些(对本身严格要求),并且能够展现出是在穷尽一切可能后才遗憾地失败,同时说下失败后的补救措施。
这里给个咱们以前听到的回答,在以前的项目里,一段程序消耗的内存过大,峰值达到2个G,我就去优化,(中间省略一些积极的优化措施),最后虽然减小1个G,但离开预约的500M的目标还有差距。在和项目经理确认后,最终咱们不得不给这段程序分配了更多的内存空间。