👩 个人主页:不爱吃糖的程序媛
🙋♂️ 作者简介:前端领域新星创作者、CSDN内容合伙人,专注于前端各领域技术,成长的路上共同学习共同进步,一起加油呀!
✨系列专栏:前端面试宝典、JavaScript进阶、vue实战
📢 资料领取:前端进阶资料以及文中源码可以在🎈公众号【不爱吃糖的程序媛】领取
经验技巧1 如何巧妙地回答面试官的问题?
所谓“来者不善,善者不来”,在程序员面试中,求职者不可避免地需要回答面试官各种刁钻、犀利的问题。回答面试官的问题千万不能简单地回答“是”或者“不是”,而应该具体分析“是”或者“不是”的原因。回答面试官的问题是一门很深的学问。那么,面对面试官提出的各类问题,如何才能条理清晰地回答呢?如何才能让自己的回答不至于撞上枪口呢?如何才能让自己的回答结果令面试官满意呢?
谈话是一门艺术,回答问题也是一门艺术,同样的话,不同的回答方式,往往会产生不同的效果,甚至是截然相反的效果。下面我将结合自身的面试经验,给出一些比较有用的建议给大家参考下。
首先回答问题务必谦虚谨慎。既不能让面试官觉得自己很自卑,唯唯诺诺,也不能让面试官觉得自己自负,应该通过问题的回答表现出自己自信从容、不卑不亢的一面。
例如,当面试官提出“你在项目中起到了什么作用”的问题时,如果求职者回答:我完成了团队中最难的工作,此时就会给面试官一种居功自傲的感觉,而如果回答:我完成了文件系统的构建工作,这个工作被认为是整个项目中最具有挑战性的一部分内容,因为它几乎无法重用以前的框架,需要重新设计。这种回答不仅不傲慢,反而有理有据,更能打动面试官。
其次,回答面试官的问题时,不要什么都说,要适当地留有悬念。人一般都有猎奇的心理,面试官自然也不例外,而且,人们往往对好奇的事情更有兴趣、更加偏爱,也更加记忆深刻。所以,在回答面试官问题时,切记说关键点而非细节,说重点而非和盘托出,通过关键点,吸引面试官的注意力,等待他们继续“刨根问底”。例如,当面试官对你的简历中一个算法问题有兴趣,希望了解时,可以如下回答:我设计的这种查找算法,对于80%以上的情况,都可以将时间复杂度从O(n)降低到O(log n),如果您有兴趣,我可以详细给您分析具体的细节。
最后,回答问题要条理清晰、简单明了,最好使用“三段式”方式。
所谓“三段式”,有点类似于中学作文中的写作风格,包括“场景/任务”“行动”“结果”三部分内容。
以面试官提的问题“你在团队建设中,遇到的最大挑战是什么”为例.
第一步,分析场景/任务:在我参与的一个ERP项目中,我们团队一共四个人,其他三个人中,两个人能力很强,人也比较好相处,但有一个人却不太好相处,每次我们小组讨论问题的时候,他都不太爱说话,也很少发言,分配给他的任务也很难完成。
第二步,分析行动:为了提高团队的综合实力,我决定找个时间和他好好单独谈一谈。于是我利用周末时间,约他一起吃饭。吃饭的时候,顺便讨论了一下我们的项目。我询问了一些项目中他遇到的问题,通过他的回答,我发现他并不懒,也不糊涂,只是对项目不太了解,缺乏经验,缺乏自信,所以越来越孤立,越来越不愿意讨论问题。为了解决这个问题,我尝试着把问题细化到他可以完成的程度,从而建立起他的自信心。
第三步,分析结果:他是小组中水平最弱的人,但是,慢慢地,他的技术变得越来越厉害了,也能够按时完成安排给他的工作了,人也越来越自信了,也越来越喜欢参与我们的讨论,并发表自己的看法,我们也都愿意与他一起合作了。
“三段式”回答的一个最明显的好处就是条理清晰,既有描述,也有结果,有根有据,让面试官一目了然。回答问题的技巧是一门大学问。求职者完全可以在平时的生活中加以练习,提高自己与人沟通的技能,等到面试时,自然就得心应手了。
经验技巧2 如何回答技术性的问题?
程序员面试中,面试官会经常询问一些技术性的问题,有的问题可能比较简单,都是历年的笔试面试真题,求职者在平时的复习中会经常遇到,应对自然不在话下。但有的题目可能比较难,来源于Google、Microsoft等大企业的题库或是企业自己为了招聘需要设计的题库,求职者可能从来没见过或者从来都不能完整地、独立地想到解决方案,而这些题目往往又是企业比较关注的。
如何能够回答好这些技术性的问题呢?编者建议:会做的一定要拿满分,不会做的一定要拿部分分。即对于简单的题目,求职者要努力做到完全正确,毕竟这些题目,只要复习得当,完全回答正确一点问题都没有;对于难度比较大的题目,不要惊慌,也不要害怕,即使无法完全做出来,也要努力思考问题,哪怕是半成品也要写出来,至少要把自己的思路表达给面试官,让面试官知道你的想法,而不是完全回答不会或者放弃,因为面试官很多时候除了关注你的独立思考问题的能力以外,还会关注你技术能力的可塑性,观察求职者是否能够在别人的引导下去正确地解决问题,所以,对于你不会的问题,他们很有可能会循序渐进地启发你去思考,通过这个过程,让他们更加了解你。
一般而言,在回答技术性问题时,求职者大可不必胆战心惊,除非是没学过的新知识,否则,一般都可以采用以下六个步骤来分析解决。
(1)勇于提问面试官提出的问题。有时候可能过于抽象,让求职者不知所措,或者无从下手。所以,对于面试中的疑惑,求职者要勇敢地提出来,多向面试官提问,把不明确或二义性的情况都问清楚。不用担心你的问题会让面试官烦恼,影响你的面试成绩,相反,这样做还会对面试结果产生积极影响:一方面,提问可以让面试官知道你在思考,也可以给面试官一个心思缜密的好印象;另一方面,方便自己对问题的解答。例如,面试官提出一个问题:设计一个高效的排序算法。求职者可能丈二和尚摸不到头脑,排序对象是链表还是数组?数据类型是整型、浮点型、字符型还是结构体类型?数据基本有序还是杂乱无序?数据量有多大,1000以内还是百万以上个数?此时,求职者大可以将自己的疑问提出来,问题清楚了,解决方案自然也就出来了。
(2)高效设计对于技术性问题,如何才能打动面试官?完成基本功能是必需的,仅此而已吗?显然不是,完成基本功能顶多算及格水平,要想达到优秀水平,还应该考虑更多的内容,以排序算法为例:时间是否高效?空间是否高效?数据量不大时也许没有问题,如果是海量数据呢?是否考虑了相关环节,例如数据的“增删改查”?是否考虑了代码的可扩展性、安全性、完整性以及鲁棒性?如果是网站设计,是否考虑了大规模数据访问的情况?是否需要考虑分布式系统架构?是否考虑了开源框架的使用?
(3)伪代码先行有时候实际代码会比较复杂,上手就写很有可能会漏洞百出、条理混乱,所以,求职者可以首先征得面试官的同意,在编写实际代码前,写一段伪代码或者画好流程图,这样做往往会让思路更加清晰明了。切记在写伪代码前要告诉面试官,否则他们很有可能对你产生误解,认为你只会纸上谈兵,实际编码能力却不行。只有征得了他们的允许,方可先写伪代码。
(4)控制节奏如果是算法设计题,面试官都会给求职者一个时间限制用以完成设计,一般为20min左右。完成得太慢,会给面试官留下能力不行的印象,但完成得太快,如果不能保证百分百正确,也会给面试官留下毛手毛脚的印象,速度快当然是好事情,但只有速度,没有质量,速度快根本不会给面试加分。所以,编者建议,回答问题的节奏最好不要太慢,也不要太快,如果实在是完成得比较快,也不要急于提交给面试官,最好能够利用剩余的时间,认真检查一些边界情况、异常情况及极性情况等,看是否也能满足要求。
(5)规范编码回答技术性问题时,多数都是纸上写代码,离开了编译器的帮助,求职者要想让面试官对自己的代码一看即懂,除了字迹要工整,不能龙飞凤舞以外,最好严格遵循编码规范,注意函数变量命名、换行缩进、语句嵌套和代码布局等,同时,代码设计应该具有完整性,保证代码能够完成基本功能、输入边界值能够得到正确输出、对各种不合规范的非法输入能够做出合理的错误处理,否则,写出的代码即使无比高效,面试官也不一定看得懂或者看起来非常费劲,这些对面试成功都是非常不利的。
(6)精心测试在软件界,有一个共识:任何软件都有bug。但不能因此就纵容自己,允许代码错误百出。尤其是在面试过程中,实现功能也许并不十分困难,困难的是在有限的时间内设计出的算法,各种异常是否都得到了有效的处理,各种边界值是否都在算法设计的范围内。
测试代码是让代码变得完备的高效方式之一,也是一名优秀程序员必备的素质之一。所以,在编写代码前,求职者最好能够了解一些基本的测试知识,做一些基本的单元测试、功能测试、边界测试以及异常测试。在回答技术性问题时,注意在思考问题的时候,千万别一句话都不说,面试官面试的时间是有限的,他们希望在有限的时间内尽可能地去了解求职者,如果求职者坐在那里一句话不说,不仅会让面试官觉得求职者技术水平不行,还会觉得求职者思考问题能力以及沟通能力可能都存在问题。
其实,在面试时,求职者往往会存在一种思想误区,把技术性面试的结果看得太重要了。面试过程中的技术性问题,结果固然重要,但也并非最重要的内容,因为面试官看重的不仅仅是最终的结果,还包括求职者在解决问题的过程中体现出来的逻辑思维能力以及分析问题的能力。所以,求职者在与面试官的博弈中,要适当地提问,通过提问获取面试官的反馈信息,并抓住这些有用的信息进行辅助思考,从而博得面试官的欢心,提高面试的成功率。
经验技巧3 如何回答非技术性问题?
评价一个人的能力,除了专业能力,还有一些非专业能力,如智力、沟通能力和反应能力等,所以在IT企业招聘过程的笔试面试环节中,并非所有的笔试内容都是前端知识体系、数据结构与算法及操作系统等专业知识,也包括其他一些非技术类的知识,如智力题、推理题等。技术水平测试可以考查一个求职者的专业素养,而非技术类测试则更加强调求职者的综合素质,包括数学分析能力、反应能力、临场应变能力、思维灵活性、文字表达能力和性格特征等内容。
每个人都有自己的答题技巧,答题方式也各不相同,以下是一些相对比较好的答题技巧(以行测为例):
(1)合理有效的时间管理。由于题目的难易不同,所以不要对所有题目都“绝对公平”、都“一刀切”,要有轻重缓急,最好的做法是不按顺序回答。行测中有各种题型,如数量关系、图形推理、应用题、资料分析和文字逻辑等,不同的人擅长的题型是不一样的,因此应该首先回答自己最擅长的问题。例如,如果对数字比较敏感,那么就先答数量关系题。
(2)注意时间的把握。由于题量一般都比较大,可以先按照总时间/题数来计算每道题的平均答题时间,如10s,如果看到某一道题5s后还没思路,则马上放弃。在做行测题目的时候,以在最短的时间内拿到最多分为目标。
(3)平时多关注图表类题目,培养迅速抓住图表中各个数字要素间相互逻辑关系的能力。
(4)做题要集中精力,只有集中精力、全神贯注,才能将自己的水平最大限度地发挥出来。
(5)学会关键字查找,通过关键字查找,能够提高做题效率。
(6)提高估算能力,有很多时候,估算能够极大地提高做题速度,同时保证正确率。
除了行测以外,一些企业非常相信个人性格对入职岗位的影响,所以都会引入相关的性格测试题来测试求职者的性格特性,看其是否适合所应聘的职位。大多数情况下,只要按照自己的真实想法选择就行了,千万不要弄巧成拙。
因为测试是为了得出正确的结果,所以大多测试题前后都有相互验证的题目。如果求职者自作聪明,选择该职位可能要求的性格选项,则很可能导致测试前后不符,这样很容易让企业发现你是个不诚实的人,从而首先予以筛除。
以上就是今天的一个前端面试经验分享了,如果你还想了解更多的前端面试知识,欢迎来看看我的专栏 前端面试宝典,里面有更多的前端面试干货!
我是不爱吃糖的程序媛夏天,关注我不迷路,向前端大佬出发!💖💖💖