首页 理论教育 程序员面试笔试技巧:成功应对技术性问题!

程序员面试笔试技巧:成功应对技术性问题!

时间:2023-11-23 理论教育 版权反馈
【摘要】:在回答技术性问题时,即便是在思考问题,也不要“惜字如金”。面试官面试的时间是有限的,他们希望在有限的时间内尽可能地去了解求职者,求职者的“惜字如金”很有可能会让面试官觉得思考问题能力以及沟通能力存在问题。

程序员面试笔试技巧:成功应对技术性问题!

在面试中,面试官会经常询问一些技术性的问题,有的问题可能是历年的笔试面试真题,求职者在平时的复习中会经常遇到,应对自然不在话下,但有的题目可能比较难,来源于Google、Microsoft等大企业的题库或是企业为了招聘需要自己设计的题库,求职者可能从来没见过或从来都不能完整地、独立地想到解决方案,而这些题目往往又是企业比较关注的。

如何能够回答好这些技术性的问题呢?编者建议,会做的一定要拿满分,不会做的一定要拿部分分。也就是说,对于简单的题目,求职者要努力做到完全正确;对于难度比较大的题目,不要有畏难心理,即使无法完全做出来,也要努力思考问题,至少要把自己的思路表达清楚,而不是完全回答“不会”或放弃,因为面试官除了关注你独立思考问题的能力以外,还会关注你技术能力的可塑性,观察求职者是否能够在别人的引导下正确地解决问题,所以,对于你不会的问题,他们很有可能会循序渐进地启发你去思考,以期通过这个过程进一步了解你。

一般而言,在回答技术性问题时,求职者大可不必胆战心惊,除非是没学过的新知识,否则,一般都可以采用以下六个步骤来分析解决。

(1)勇于提问 面试官提出的问题有时可能过于抽象,让求职者不知所措或无从下手,所以,对于面试中的疑惑,求职者要勇敢地提出来,多向面试官提问,把不明确或是有二义性的情况都问清楚。这样做不仅不会让面试官烦恼,影响你的面试成绩,相反还会对面试结果产生积极影响:一方面,提问可以让面试官知道你在思考,也可以给面试官留下一个心思缜密的好印象;另一方面,提问有利于后续自己对问题的解答。

例如,面试官提出一个问题——设计一个高效的排序算法。求职者可能摸不到头脑,排序对象是链表还是数组?数据类型是整型浮点型、字符型,还是结构体类型?数据基本有序还是杂乱无序?数据量有多大?1000以内,还是百万以上个数?此时,求职者大可以将自己的疑问提出来,问题清楚了,就可以有针对性地设计解决方案了。

(2)高效设计 对于技术性问题,如何才能打动面试官?完成基本功能肯定是必需的,仅此而已吗?显然不是,完成基本功能只能算是及格,要想达到优秀,至少还应该考虑更多的内容。以排序算法为例,时间是否高效?空间是否高效?数据量不大时也许没有问题,如果是海量数据呢?是否考虑了相关环节,例如数据的“增删改查”?是否考虑了代码的可扩展性、安全性、完整性以及鲁棒性?如果是网站设计,是否考虑了大规模数据访问的情况?是否需要考虑分布式系统架构?是否考虑了开源框架的使用?

(3)伪代码先行有时实际代码会比较复杂,上手就写很有可能漏洞百出、条理混乱,所以,求职者可以先征求面试官的同意,在编写实际代码前,写一个伪代码或画好流程图,这样做往往会让思路更加清晰明了。

切记在写伪代码前要告诉面试官,否则他们很有可能对你产生误解,认为你只会纸上谈兵,缺乏实际编码能力。(www.xing528.com)

(4)控制节奏 如果是算法设计题,面试官都会给求职者一个用以完成设计的时间限制,一般为20min左右。完成得太慢,会给面试官留下能力不够的印象;但完成得太快,如果不能保证100%正确,也会给面试官留下毛手毛脚的印象。速度快当然是好事情,但只有速度没有质量,就不会起到加分的作用。所以,编者建议控制好答题节奏,如果完成得比较快,也不要急于提交给面试官,最好能够利用剩余的时间,认真仔细地检查一些边界情况、异常情况、极性情况等是否也能满足要求。

(5)规范编码 回答技术性问题时,多数都是在纸上写代码,离开了编译器的帮助,求职者要想让面试官对自己的代码一看即懂,除了字迹工整以外,最好能够严格遵循编码规范,同时,代码设计应该具有完整性,保证代码能够完成基本功能、输入边界值能够得到正确的输出、对各种不合规范的非法输入能够做出合理的错误处理,否则,写出的代码即使很高效,面试官也不一定看得懂或看起来非常费劲,这对面试成功都是非常不利的。

(6)精心测试 众所周知,任何软件都有缺陷(Bug)。但不能因为如此,就让自己的代码漏洞百出。尤其是在面试过程中,实现功能也许并不那么困难,难的是在有限的时间内设计出的算法是否使各种异常都得到了有效的处理,是否使各种边界值都在算法设计的范围内,等等。

测试代码是让代码变得更加完美的高效方式之一,也是一名优秀程序员必备的素质之一。所以,在编写代码前,求职者最好能够了解一些基本的测试知识,做一些基本的单元测试功能测试、边界测试以及异常测试。

在回答技术性问题时,即便是在思考问题,也不要“惜字如金”。面试官面试的时间是有限的,他们希望在有限的时间内尽可能地去了解求职者,求职者的“惜字如金”很有可能会让面试官觉得思考问题能力以及沟通能力存在问题。

其实,在面试时,求职者往往会存在一种思想误区——把技术性面试的结果看得过于重要。对于面试过程中的技术性问题,结果固然重要,但也并非最重要的内容,因为面试官看重的不仅仅是最终的结果,还包括求职者在解决问题的过程中体现出来的逻辑思维能力以及分析问题能力。所以,求职者在面试过程中,要适当地提问,通过提问获取面试官的反馈信息,并抓住这些有用信息进行辅助思考,从而提高面试的成功率。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈