1.2.4 如何回答技术性的问题

在面试中,面试官经常会提问一些技术性的问题,尤其是程序员的面试。那么如何回答技术性的问题呢?

1.善于提问

面试官提出的问题,有时候可能过于抽象,让应聘者不知所措,因此,对于面试中的疑惑,应聘者要勇敢地提出来,多向面试官提问。善于提问会产生两方面的积极影响:一方面,提问可以让面试官知道应聘者在思考,也可以给面试官一个心思缜密的好印象;另一方面,方便后续自己对问题的解答。

例如,面试官提出一个问题:设计一个高效的排序算法。应聘者可能没有头绪,排序对象是链表还是数组?数据类型是整型、浮点型、字符型还是结构体类型?数据基本有序还是杂乱无序?

2.高效设计

对于技术性问题,完成基本功能是必须的,但还应该考虑更多的内容,以排序算法为例:时间是否高效?空间是否高效?数据量不大时也许没有问题,如果是海量数据呢?如果是网站设计,是否考虑了大规模数据访问的情况?是否需要考虑分布式系统架构?是否考虑了开源框架的使用?

3.伪代码

有时候实际代码会比较复杂,上手就写很有可能会漏洞百出、条理混乱,所以,应聘者可以征求面试官同意,在写实际代码前,写一个伪代码。

4.控制答题时间

回答问题的节奏最好不要太慢,也不要太快,如果实在是完成得比较快,也不要急于提交给面试官,最好能够利用剩余的时间,认真检查边界情况、异常情况及极端情况等,看是否也能满足要求。

5.规范编码

回答技术性问题时,要严格遵守编码规范:函数变量名、换行缩进、语句嵌套和代码布局等。同时,代码设计应该具有完整性,保证代码能够完成基本功能、输入边界值能够得到正确的输出、对各种不合规范的非法输入能够做出合理的处理。

6.测试

任何软件都有Bug,但不能因为如此就纵容自己的代码错误百出。尤其是在面试过程中,实现功能也许并不十分困难,困难的是在有限的时间内设计出的算法,各种异常是否都得到了有效的处理,各种边界值是否都在算法设计的范围内。

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

☆注意☆ 在回答技术性问题时,千万别一句话都不说,面试官面试的时间是有限的,他们希望在有限的时间内尽可能地多了解应聘者,如果应聘者坐在那里一句话不说,则会让面试官觉得应聘者不仅技术水平不行,而且思考问题能力及沟通能力都存在问题。