前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >以资深面试官的角度告诉大家面试前可以做的准备

以资深面试官的角度告诉大家面试前可以做的准备

作者头像
用户1153489
发布2022-05-10 12:58:11
2640
发布2022-05-10 12:58:11
举报
文章被收录于专栏:java架构学习交流

     本人之前写了三篇博文,从面试官角度来告诉大家,哪些人能面试成功你的简历能帮你争取到面试机会吗,以及从面试官角度告诉大家如何准备项目方面的描述,均得到了比较好的反响。这里我们就从面试流程入手,告诉大家哪些人能面试成,本文同样是是据java web轻量级开发面试教程改编的。

    其实有时候面试官自己也知道,在一些问题上候选人很有可能做过准备,从这些问题上可能无法了解到候选人的真实情况,但如果候选人没回答好,那就不会认为候选人“没做足准备”,而会认为候选人在问题所涉及到的方面有欠缺点。

    而且,通过准备,候选人还能在面试中找到合适的机会更有效地展示自己的亮点,相反,如果候选人没说,或没说好,面试官是一定无法了解到候选人的相关特长的。

    如果大家认为我这篇博文写不好,请反对我,同时给出改进建议,如果认为确能从中得到收获,也请大家尽量点击“推荐”按钮,大家的推荐是我继续写文章的动力,谢谢大家了。

1 事先准备些亮点,回答问题时找机会抛出

    在下表里,我们归纳了些可以在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使用技能以及项目管理软件的使用经验方面展示自己的亮点。这里请注意,一定找合适的机会“顺带”地说,如果没机会宁可别说,更不能仗着有所准备就直接自说自话地说。否则的话,反倒可能会得到“表达能力不清晰”或“叙述条理混乱”等的不良评价。

2 事先练习展示责任心和团队协作能力的方式

    面试官只有当确认候选人在责任心和团队协作能力方面没问题,才敢把他招进公司。有些面试官会通过问问题来确认这两点,但有些有经验的面试官甚至可以通过候选人回答问题的方式和说话的语气上来确认。

    所以大家在面试前,首先可以按如下的要点,在平时的生活和工作中练熟良好交流方式。

    第一,谈吐清晰,语速不急不缓,至少让面试官能听懂你说的话。而且力求说话果断,别吞吞吐吐的,这样能显示出你有足够的担当。

    第二,交流时尽量目视面试官,语气不亢不卑,别太僵硬,说话别过于强势。脸部可以适当微笑,面试官在说话时可以适当点头互动,总之得让面试官感觉和你交流不吃力,最好还让面试官感觉乐意和你交流。

    第三,应积极主动回答面试官的提问,如果没听明白问题,别僵持着等面试官进一步解释,应当主动询问。如果感觉面试官没完全理解自己的回答,或者理解有误,应当进一步主动解释,以展示积极沟通的姿态。

    第四,即使不认同面试官的观点,也应当心平气和地交流,不能急躁,别轻易打断面试官的话,可以倾听完面试官的话后耐心地与之交流。有些面试官可能会故意刁难候选人,美其名曰“压力测试”,在这种情况下,候选人更应当心平气和,不能起争执。

     在面试过程中,再有经验的面试官可能也无法通过实例来验证候选人的“团队协作能力”(因为在短时间内无法协作),但如果大家能给面试官留下“沟通表达没问题”、“为人和善”和“遇到难点能积极主动协调沟通”的良好印象,那么面试官一般也能认可候选人的团队协作能力。

    此外,大家还可以准备如下的说辞,一旦能找合适的机会说出来,面试官更会认可大家的责任心和团队协作能力。

    说辞1:(在介绍项目时)这个项目做到一半时,客户方变更了一些需求点,这给我们项目组造成了比较大的压力。在项目经理的带领下,我们都被分配了更多的任务,在这种情况下,我通过加班按时按质完成了任务,而且在做的过程中,一旦出现需求或技术方面的问题,我也会主动找同事或项目经理确认。

    总之,在出现问题时,你不是退缩,而能通过加班等方式积极面对和解决问题,而且一旦有问题,你不是得过且过,而会主动确认。

    说辞2:(介绍自己在项目中的角色)在这个项目组里,除了本职的开发工作外,我还会积极主动地和测试人员沟通,一方面告诉他们该怎么测,另一方面,一旦发现问题,我会和他们一起重现问题,完成修改后我也会主动告诉测试人员,让他们尽快确认。

    总之,在项目里,你不仅能完成本职工作,而且还能和团队其它人员一起协作。

    说辞3:(介绍项目的亮点)在项目里,我遇到一个需求点,这需要多个团队一起开发,这时我会和相关人员一起开会,确定各自的任务点和工期,完成功能点后我们会一起联调。

    说辞4:(如果面试官问你,遇到自己无法解决的问题该怎么办?)我不会推掉任务,我先会查阅资料,如果不行,我会问项目经理,在他们给出的解决方案基础上,我会细化成具体的实现代码,最后我会把实现好的功能点和项目经理确认,以求没有理解上的偏差。

    在责任心和团队协作能力这两方面,不建议直接说“我有”,因为这相当于自我表扬,可信度不高,大家可以采用上述“用具体事实证明”的方式,这样面试官听了后就自然能认可大家的相关能力。

3 准备提问环节的问题,以求给自己加分

    当技术面试官问完所有问题后,一般都会说:“我没问题了,你有什么问题?”

这时大家可以在这个环节里通过提问进一步展示自己和这个职位的匹配度,这些问题也可以事先准备。下面列些可以提问的要点,在具体操作中大家可以酌情选用。

    要点一,展示自己技能和要做项目的匹配度。具体而言,大家可以看下职位介绍里列的技能点,这些技能点应该在之前的面试里都已经聊过。这时你可以问,接来下我会进哪个项目组?做哪个项目?其中会用到哪些框架和技术?

    当面试官解释好之后,你就可以“顺口”说,xx技术或框架(这可以是之前没充分展示的)我之前在项目里用过,我做了xx(一定是亮点),可以再介绍下优化后的效果,再说下体会。

    要点二,展示自己吃苦耐劳的能力,同时也可以展示下责任心。比如可以问,你们加班多不多?会不会到客户现场?会不会出差?

    不论面试官如何回答,你也可以“随口”说,其实在项目比较紧的情况下,首先得保证进度和质量,在之前的项目里,有段时间确实进度比较紧,我就去和项目经理多申请了些任务,然后通过加班,按时按质完成了任务。

    要点三,展示自己学习能力。比如可以问,在这项目里,会不会“调研新技术”?如果项目经理说没,那就别继续说了。如果有,那么你就可以说,在之前的项目里,我们需要用到xx技术,但谁也没太多的经验,在项目经理的带领下,我用了一些时间做了调研,最后项目组根据我的调研后写的代码,成功地把这技术应用到项目里。

    要点四,展示自己的职业发展规划和这个项目的需求是一致的,同时展示自己的稳定性。比如可以问,如果我在这个项目里做得好,我可以得到哪些提升的机会?

    当面试官说完后,你也可以“随口”一说,这也是我期望的发展方向。或者也可以说,如果我有幸面试成功,我也打算沉浸到这个项目里,好好几年,如果有机会,我也打算向高级开发或架构师发展(请注意,这个发展方向最好和项目组的期望一致)

    要点五,进一步展示自己沟通交流和团队协作的能力,之前面试官一定考察过,这里可以再强调一下。比如可以问,这个项目组有哪些成员?一般是怎么构成的?

    这时面试官就会和你介绍,这个项目有一位项目经理,一位架构师,x位后端开发,x位前端开发,x位测试。这时你就可以说,这和我之前的公司很相似,在之前的项目里,我做的是后端,我的体会是,在项目组里一定得多交流多沟通才能把项目做好,靠一个人是不行的,比如有需求或进度上的问题,我会及时和项目经理交流,如果发现bug,我也会及时和测试人员交流。

    再次强调,出于诚信的原则,这阶段大家介绍的情况一定得是真实的。

    在这个阶段,大家也可以问些比较关心的问题,比如后继的面试流程,但别什么都不问,这样面试官可能会感觉你没准备过,也不在乎这个岗位。也别问些能轻易从网上能找到的资料,比如这个公司主营业务是什么,这样会让招聘方感觉你之前因为不在乎这个机会,所以没了解过这个公司的情况。也最好别问工资(或和应聘者切身福利有关)的事,一方面技术面试官(或后继的项目经理)未必能做主,另一方面会给他们留下比较功利的印象,关于这些可以等到通过面试后和人事具体地谈。

4 准备用英文回答问题,以求以备无患

    一般来说,国内公司会要求候选人有“读英语文档”的能力,而外企则会要求候选人能在纯英语环境下工作,即不仅能看英文文档,能用英文邮件交流,而且还能用英语和国外的同事开会交流。  

    面试的时间有限,一般不会让候选人当场翻译英文文档,而是会考察英语的口头交流能力。

    有些公司会全程用英语面试,这要求就高了,一般的公司(包括一些外企),则是大部分用中文面试,中间夹杂着一些英文问题。这里给出些常见的英语问题点。

    1 用英语介绍最近的项目。2 用英文做自我介绍。3 用英语介绍自己的兴趣爱好。4 用英语介绍你自己最擅长的技术点。5 用英语介绍下你的优缺点。6 用英语介绍上家公司,并叙述离职原因。这些都可以事先准备,面试时,发音可以稍微不标准,但力求流利,而且说得量需要适当。

    准备时,大家可以根据问题点先把要回答的英语句子写下来,多练习几遍,这样在面试时就能有信心地展示准备好的成果。

    讲个我们听说过的笑话,小A被临时抽调去为一个日本项目组面试,其中需要考察候选人的日语,但问题是小A不懂日语,时间又比较紧,又找不到其它面试官。在日本项目组的允许下,小A采用如下的面试方式,让候选人用日语介绍自己,并介绍上个项目。

    虽然小A听不懂,但如果候选人说不上或不说,日语评定是“不及格”,如果能说得上,但磕磕巴巴,而且说得量又少,属于及格,如果发音标准而且流利,那么就属于良好或优秀了。

    从这个笑话里大家可以得到如下的启示:

    第一,说不说有着本质的差别,不说一定是不及格。

    第二,内容尽量符合要求,不求措辞精美,用比较简单的表达方式即可。因为面试官考察重点不是内容,而是发音(至少能保证听懂)、流利程度(有信心流利地说,尽量别磕磕巴巴)和说的语句的数量(别太少,也别太啰嗦)。

    第三,说的时候可以目视面试官,并用手势等方式互动,以此来展示自己说英语非常有信心。而别低着头或用其它方式暴露出自己信心不足。

5 准备些常见刁钻问题的回答,别现场想

    面试官有时会问些刁钻的问题,对于这类问题,大家应当事先准备好。如果等面试时被问到时再临时想,未免会措手不及,而且一旦回答不好,轻者面试失分,重者可能直接导致面试失败。

    问题一,你有哪些缺点?

    大家别说没缺点(说出来没人信),也别说主观上的缺点,比如粗心办事拖拉等,可以往“好心办坏事”方面说,甚至还可以适当展示自己的一些优势。比如可以说,之前在项目里,我可能比较心急,总想让项目一天内就做好,所以总会加班来力求按质提前完成任务,这样就让其他成员感觉压力过大了,不利于团队建设。

    最后还得提一句,自己已经意识到这个缺点了,正在改进或已经改正了。比如可以这样说,后来项目经理和我沟通过这个问题,让我定时和组员分享些技术点,以求大家一起进步,当我做了几次分享后,整个项目组的进度都提升了。

    问题二,你自己感觉,在之前的项目里,你有哪些失误?

    这里大家也可以往“好心办坏事”方面说,应当尽量避免说可能导致项目有重大损失的失误,比如写代码得过且过,或不注重单元测试。

    大家可以按如下说辞的思路来回答这个问题。在之前写代码时,我总会尽量在代码里使用设计模式以求提升代码的可维护性,后来经过项目经理的帮助,我意识到了应当注重进度和质量的平衡,应当只在可能会经常变更的模块里使用设计模式。

    或者可以说,在之前遇到问题时,我和测试人员沟通时,总会说些技术相关的术语,这就导致了沟通效率不高。后来我也注意到了,和他们沟通时,应当尽量注重功能点的实现方式,现在和他们沟通起来就没什么问题了。

    问题三,如果你和项目经理或同事工作上有分歧,你一般会怎么处理?

    在项目里,遇到分歧是很正常的,但要让面试官感觉遇到分歧你不会回避,而是会主动沟通,在沟通时也不是一味强求别人接受你的观点,而是通过协商得出一个大家都能接受的方案。

    对此大家可以举例说明,在xx项目里,在xx功能的实现上,我和项目经理有分歧,我主张用连接池,项目经理主张用一般的连接即可,没必要用连接池。对此,我会主动和项目经理沟通,说出我主张的理由,同时也听下项目经理的理由,最后大家讨论出了一个解决方案。

    问题四,你期望的团队工作氛围是什么样的?

    遇到这种问题,如果你的期望和招聘公司的情况不一致,招聘方可能就会怀疑你未必能做久。所以在回答这类问题时,应尽量少加些自己主观的愿望,比如别说,我希望团队能定时出去活动,或希望工作的氛围比较宽松。这样一说,一旦招聘方项目压力比较紧,而你却希望宽松,那么成功应聘的可能性就降低了。

    对此大家可以说些不大容易被挑错的答案。比如可以说,我希望在团队里,遇到技术难点,大家能一起协商解决,遇到有什么好的点子,也可以和大家一起分享,如果项目进度比较紧,我也愿意一起加班。

    问题五,你是否有失败的经历?

    这里面试官不在乎结果,更关注于你处理问题的心态(得积极些)和措施(应尽最大努力)。所谓失败,就是没达到预期目标,这里大家可以把预期目标设置高些(对自己严格要求),而且可以展示出是在穷尽一切可能后才遗憾地失败,同时说下失败后的补救措施。

    这里给个我们之前听到的回答,在之前的项目里,一段程序消耗的内存过大,峰值达到2个G,我就去优化,(中间省略一些积极的优化措施),最后虽然减少1个G,但离开预定的500M的目标还有差距。在和项目经理确认后,最终我们不得不给这段程序分配了更多的内存空间。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 事先准备些亮点,回答问题时找机会抛出
  • 2 事先练习展示责任心和团队协作能力的方式
  • 3 准备提问环节的问题,以求给自己加分
  • 4 准备用英文回答问题,以求以备无患
  • 5 准备些常见刁钻问题的回答,别现场想
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档