专栏名称: 九章算法
专业的北美IT求职经验分享、技术交流社区,帮助你找到好的IT工作。由硅谷顶尖IT企业工程师维护。提供专业的算法培训/面试咨询,官网 www.jiuzhang.com
目录
相关文章推荐
九章算法  ·  工资翻三倍!Google小姐姐建筑转码心路历程 ·  3 天前  
九章算法  ·  黑五清单来了!$19.9秒算法/项目/BQ拼团课! ·  6 天前  
算法与数据结构  ·  本科经典算法Dijkstra,被证明是普遍最 ... ·  4 天前  
九章算法  ·  11月LeetCode刷题小分队正式开始啦: ... ·  1 周前  
51好读  ›  专栏  ›  九章算法

Coding 面试如何与面试官沟通?

九章算法  · 公众号  · 算法  · 2017-02-21 10:44

正文

在 Coding Interview 中,有的人常常很困惑:


我是要一边写代码,一边跟面试官沟通,还是一阶段沟通一下?


我说太多,面试官会不会觉得啰嗦呢?


再回答这个问题之前,我们需要先了解,Coding 面试中的沟通主要考察的是什么?


在 Coding Interview 中,首先,也是最重要的,是需要通过沟通过程,考察你处理模糊信息的能力,即 Ability dealing with ambiguous。


这听起来可能没那么重要,但却是面试官重点考察的内容。因为我们在平时刷题时,题目十分清晰,也会给出一些范例。但是我们工作时会遇到很多少量、模糊的信息,并且要根据手头有限的信息去完成某项工作,这时这个能力就显得格外重要。


为了评估面试者处理模糊信息的能力,面试官会问我们这样的问题:

e.g.1

Given alist of list of files, find all duplicates


那么我们这时该怎么处理模糊信息呢?


在这个例子里,这里的"duplicates"便是所谓“模糊信息”。是文件名?还是文件内容呢?这时你需要与面试官clarify的内容。

e.g.2


Write a method to convert numbers into English?


Input: 100->one hundred

Input: 1001->one thousand and one

Input: 12543->twelve thousand five hundred forty three


那么这道题你该问面试官什么呢?


在这道面试题中,模糊信息更多,更不明确。比如input的数可以是负数么?可以是小数么?上限是多少?Input的是longlong还是string?再有就是一个数怎么读的问题,每种语言的读法都不一样,像是1234,是读作twelve thirty four呢还是one thousand two hundred thirty four呢?这就是你需要从面试官哪里中问清楚的问题。

 

那么你就可以这么问:

What's the input type?

Do we need to consider the situation where it might overflow?

 

Follow up: Inputis a string contains multiple numbers


这回该注意些什么了呢?

分隔符是什么?

需要什么样的输出?

 

作为一个软件工程师,展示给面试官你可以考虑到所有的情况,会给你的面试加分很多。不要怕啰嗦,你想如果这个题目真的这么模糊,那到底是啰嗦扣得分多,还是做错了扣得分多呢?


当然也不要为了问问题而问问题当题目真的模糊的时候,要为了问清楚而问问题。有的人可能纠结于跟面试官沟通的频率。比如,到底要不要边 Coding 边解释。这个其实要根据你自己的实际情况来判断的。比如,你边说边code会觉得分心,那就不要一直边说话边code,而是集中精神把题解出来才是王道。也就是说,在 Coding 面试中,最重要的仍然是 Coding。是否需要 Communication,取决于 Coding 中是否有模糊信息需要向面试官澄清或者说明。要是单纯为了给面试官展示自己多具交流能力去问,就可能会弄巧成拙了。


《九章算法班》

《系统设计班》

《Big Data 项目实战班》

《Android 项目实战班》

《算法强化班》


正在报名中!

报名登陆官网www.jiuzhang.com

或点击文末“阅读原文”

版权归属九章算法,谢绝转载。