其他分享
首页 > 其他分享> > 大厂技术面试中的开放类问题该怎么答?

大厂技术面试中的开放类问题该怎么答?

作者:互联网

文章目录

如何面试大厂系列

序号内容链接地址
1大厂面试时,面试官会考查哪些能力?https://blog.csdn.net/belongtocode/article/details/117810750
2如何在国内互联网大厂面试中游刃有余?https://blog.csdn.net/belongtocode/article/details/117810951
3如何全面、高效地准备大厂的技术面试?https://blog.csdn.net/belongtocode/article/details/117811162
4在大厂面试中,如何应对算法能力考察?https://blog.csdn.net/belongtocode/article/details/117811339
5大厂技术面试中的开放类问题该怎么答?https://blog.csdn.net/belongtocode/article/details/117811446

你好,我是张凯。

“又栽在了开放问题上,好像怎么回答都答不到点上”。最近一些朋友纷纷向我吐槽,在面试中,除了典型的 Coding 和项目描述部分,开放类型的问题似乎越来越多。这也是近年来企业面试的一个趋势:企业越来越看重候选人“对实际问题的解决能力”,所以,考察综合能力的开放问题,渐渐成为了技术面试中的必备环节。

这节课我将结合自己作为面试官以及面试者的一些经历,聊一聊开放类型的问题该如何解答,给你提供一些参考。

开放类问题,有时候也称为场景设计题,会围绕一个预设的场景展开,让你代入其中,答案往往不唯一,重点考察你是否能够解决真实问题。开放类问题通常出现在面试的中后期,当你通过编码、专业知识和项目经验的考核后,它会作为一种 Bonus 登场。与其他环节相比,开放类问题的难点在于较强的不确定性,面试者没办法提前做充分准备。同时,答题方向也不太明确,没有标准答案,以面试官的主观评价为主,如果答到了面试官的心坎上,会给面试者加分,相反,如果面试者答得不好,可能会被面试官一票否决。

核心考察点

那么开放类问题真的无解吗?答案是否定的。任何一个考察环节,都不会脱离技术面试核心的几个考察目标:

img

接下来,我们就围绕以上核心考察点,来分析一下典型题目类型,并给出应对方案。

1. 方案设计题,考核知识储备

方案设计题考察技术选型能力,你需要提供基础可运行策略,以及其它可选解决方案,并进一步给出各个方案的优缺点。从问题的目标倒推解决方案,有些问题如高并发需要从系统全局角度设计系统的架构,考验知识的广度,有些问题则更加考验知识的深度。

我们以一个实际问题“识别字符串中出现的地名”为例来说明。

img

通用的解题思路分为四步:

2. 主观想法题,考核知识储备和知识管理

典型问法是:“你是如何理解 xxx 的”,xxx 可能是开发思想、架构策略、算法思路等,具体如 CI/CD、技术中台等。被询问的策略或思想,通常是你所在领域经常接触到的。那怎么回答呢?你可以先列举该策略思想相关的其它版本,说明各个方案适用的应用场景,分别用于解决怎样的特定问题,再围绕各自的优点和缺点展开阐述。

比如说,在面试 AI 相关候选人时,我曾问过这样一个问题:“你怎么看待 AI 落地中的规则方案和模型方案?”你有没有发现,上一个问题中两个解决策略就是这个问题的答案。Trie 树是一种规则解决方案,而序列标注模型是一种模型解决方案,如下表所示。我们可以沿用前文的维度对比,详细阐述两者的优缺点,同时强调最终采用结合的、互补的方案将会更好。

img

总的来说,针对主观想法题,如果你能给出这样一个实际的例子,那么答题思路将会更加清晰,也会让你具有更强的说服力。

3. 延伸算法题,考核编码能力和知识储备

延伸算法题通常有两种扩展问法,一种是“xxx 算法有哪些应用场景”或者“你在哪些场景用到过 xxx 算法”。比如说我问你,“Trie 树有哪些应用场景?”你应该可以想到有“词汇联想”,例如下图中给出的搜索引擎的输入提示例子。

img

另一种问法是基于当前算法给出扩展版本。例如回答词汇联想后,面试官可能继续问你“联想结果的排序,怎么加到 Trie 树中?”你可以回答说,一种实现方式是将 Trie 树的节点存储进行扩展,加上词汇被检索的计数,将词汇热度作为排序依据。

img

基于以上 Trie 树的扩展版本,我们也很容易想到另一个应用场景“热搜统计”。总的来说,在解答这类算法扩展题时,一方面你需要结合自身的知识储备,另一方面你要善于察觉面试官给予的提示,问题往往是递进的,适当举一反三。

img

4. 综合能力考察题,考核范围宽泛

综合能力考察题主要考核面试者的知识储备,当然其它方面也均有涉及,以交叉考核方式出现,可以说考察范围相对宽泛。

比如对于任务规划能力,问法例如“如何安排时间人力实现地名识别任务”。我们回答这类问题的基本思路可以是,先对任务进行分解,拆分成若干个阶段,包括新技术预研、数据准备、开发、评测迭代、部署测试,然后对每个阶段预估所需时间和人力,最终形成一个可执行的 timeline。

img

再比如考察资源搜索能力的问题,“当前序列标注模型的 TensorFlow 版本为 2.1,请你判别一下当前机器的 GPU 环境是否支持?”你可以现场上网搜索资料给出答案,通过 TensorFlow 版本找到对应的 CUDA 版本,再对应 CUDA 到显卡驱动版本进行验证。同时这种题还考察你的英文能力,但能较快给出正确答案的候选人也是少数。

img

总结

以上就是本节课的全部内容了,总的来说,应对面试中的开放问题,做好两个准备即可。一是在思想上建立认知,开放问题考察的是“面试者能否解决实际问题”,需要你在解答时尽可能考虑全面,突出自身擅长的优势项,并及时捕捉面试官的反馈,答到他的心坎里去。二是需要你在平日里的工作行动中,有意识地培养、积累这节课提到的五个核心考察点,在遇到相关开放问题时,就能及时调动知识储备,做到快速响应。另外,你可能也要留心一下,部分面试官会利用开放问题来“套解决方案”,比如不断追问实现细节。

参考文章:整理于极客时间每日一课
https://time.geekbang.org/dailylesson/detail/100056884

标签:面试官,知识,问题,面试,考核,考察,大厂,开放
来源: https://blog.csdn.net/belongtocode/article/details/117811446