【生活质量系列】评测几款用过的咖啡机

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货

最近看过此主题的会员

坐标湾区
DreamCraft创始团队
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
码农求职神器Triplebyte:
不用海投
内推多家公司面试
前Google华人高管创立
面试offer一键直通
Leap.ai助你进入热门独角兽
硅谷知名AI创业公司
图灵视频
招聘多个工程师职位
E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
查看: 9275|回复: 92
收起左侧

[算法题] 谈谈面试官在面试coding题目时的考察终点与心理活动, 求大米

    [复制链接] |试试Instant~
我的人缘0
intelliu 发表于 2018-7-12 06:43:12 | 显示全部楼层 |阅读模式
本楼: 【顶】   96% (109)
 
 
3% (4)   【踩】
全局: 顶  98% (422)
 
 
1% (6)  踩

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
最近准备换工作来地里潜水, 看了很多刷题经验和刷题交流, 这里我简单谈谈从我从面试官角度出发, 考察的重点与我的心理活动。 说的不一定完全正确, 大家自己对号入座。 发帖目的第一是帮助新人, 第二是求点大米去去看别人的帖子。 我就不隐藏了, 大家随便发表意见, 不要拍砖。

本人简介: 曾经微软dev, 35+, 10年经验, 有FLG offer.  去年加入一个start up 公司, 最近前景不明, 在犹豫要不要去个稳定点的大公司。  我从sde开始面试其他人, 到现在估计面试过100+人次的面试和debrief。 我面过coding, problem solving, design, behavior.  本帖子只谈论纯粹coding, 视情况讨论要不要再开帖子讨论其他方面。

本文涉及下面几个问题:

1) 我刷过这个题目, 还要不要伪装
2) 我觉得这题很简单, 但是不知道为什么就挂了
3) 我觉得面试官不是很友好, 没提示
4) 我一定要bug free才能被录取
5) leet code的hard问题真的会被问到吗? 考起来有什么意义?

我们从一个非常经典的, 大家可能都刷过的题目开始。 序列化/反序列化 二叉树。先说个背景, 能面到我这里的, 基本需要面试者有3-5年的面试经验。 做为应聘任何微软或者flg的高级dev (63 and above, T4/E4 and above), 面试官其实都是假设你刷过不少题目的。 我假设你刷过这个题目, 所以我并不关心你写的到底有多快,写的是不是完全bug free, 我更关心的是你做事的方式和沟通问题的能力。 具体请看下面。  
1. 提出问题, 请序列化/反序列化二叉树。  
什么? 面试者不知道什么是序列化, 反序列化? 那我就问个多线程爬虫, timing LRU 一类的。 如果多线程, 锁也不会, 那说明这个面试者的项目经验很不足。 为了和其他有经验的人相match, 往往我会给一个很open的问题, 或者一个很难的hard coding (取决于他已经被考察了哪个方面). 我个人觉得很少有面试官上来会考你 very hard coding question, 只是当某个面试者与其他面试人比显得相当缺少项目经验, 那他除非能在聪明敏捷或者下苦功方面有突出表现, 否则很难击败其他候选人。

2. 交流阶段
如果面试者马上开始写程序, 或者马上给出他的想法, 我会觉得面试者太过于着急了。 在实际项目中, 你很熟悉的地方可能成为项目中的滑铁卢, 因为你熟悉的地方可能有变化, 可能有个big change你不知道, 可能很快你熟悉的api就不工作了。 你总是要有很好的沟通能力, 确保大家知道你在做什么, 及早的发现你的错误。 在code review甚至是test 阶段被人发现问题对项目来说就是个灾难。

我期望面试者能够在这个阶段提出一些问题, 例如,有什么限制条件吗? 二叉树的value是什么类型? 这个api谁来使用, 内部的还是public的? 这个api更注重speed还是space?  我需要多线程吗? 如果面试者没问任何问题马上开始照着leetcode的signature开始coding, 甚至class 名字也叫solution(很多人), 我会觉得面试者做事的方式不够成熟。 可能以后工作中会很毛躁, 需要人来指导。

3. 无论你提出的建议是什么, 例如你说你觉得speed更重要, 我可能会说我更期待space. 这样做是避免陷入你最熟悉的套路。  假设我说, 我更需要序列化之后的空间占用最小。 这时候一般的候选人不会刷到这么深, 开始思考。
如果候选人根本没有办法优化空间, 那我会认为他give up too early.  我希望候选人能安静的思考, 提出几种方案, 哪怕方案不成立。
如果候选人提出过多的方案, 没有问help, 这些方案也不工作, 我就认为候选人沟通有问题, 无法把握好度。

举个leetcode的例子来说明问题的深入, leetcode的序列化格式中, ','是必要的吗? ‘[’是必要的吗? 有没有办法用byte直接序列化? byte还能变长吗? base64是什么? zip会有帮助吗?

4. 候选人选定方案后, 我希望他能和我沟通, 看看是不是在有限时间内能够写完。 项目中, 很多时候谁都知道什么design是正确的, 什么是bad smell, 最聪明的人不是能做出最好design的, 而是在有限时间内能给出大家都能接受的solution的人。  如果空间优化非常好, 但是代码将超级复杂, 无法写完, 那么面试者应该及时和我交流。 我也会偶尔提醒一下这样能不能在40分钟内写完。 如果面试者坚持, 我不会坚持, 我会看他是不是能写完。 这就是either strong hire or fail.

5. 候选人可能这时候说太复杂了, 我们简化一下, 简化到他熟悉的, 刷过的coding.

6. coding 开始
到这一步, 如果你做了2,3,4,5中的大部分, 并且code看起来似乎是work的, 没有什么致命的问题,我不会纠结于比如正负数, nullpointer, int.min, coding是不是整洁一类的无聊问题。  一般就开始7. 如果你2,3,4,5都skip, 那么一般我就希望你bug free, 否则你没办法和其他候选者做比较。往往bug free又要求你code组织很好, 否则谁都很难一眼看出你有没有问题。

7. follow up
还有什么能改进的吗? 这是考察面试者的知识面, 也看你是不是耐心。 很多时候, 很多面试者做出题目高兴的得意忘形, 到这里就开始语无伦次的乱说, 这不会影响到是不是hire, 但是可能会影响是不是strong hire, 也可能影响到你的level.

举例子: 我觉得还需要写点java doc啊,unit test, regression test, performance tuning, benchmarking, A/B testing, 等等。

总结: 如果你能想到1-7中的所有点, 谁会在乎你是不是刷过这个题目? 即使你刷过这个题目, 我也十分确定你刷的比别人好很多, 你就是我心中想要的那个同事。 反之, 如果你只做到了6#, 但是别人做了1,2,3,4,5,6,7, 那你又怎么能面试成功呢?

有感而发, 组织的不是很严密, 大家去粗取精, 也说说你们的想法。







评分

参与人数 193大米 +1207 收起 理由
天遥 + 3 给你点个赞!
ywang118 + 1 给你点个赞!
yiliaobailiao + 5 很有用的信息!
elizabethxiazhi + 5 给你点个赞!
scarletthln + 5 给你点个赞!
Jffery + 3 给你点个赞!
EETHAN + 5 给你点个赞!
Tracy + 50 很有用的信息!
wAg + 5 很有用的信息!
yufeiwang + 1 给你点个赞!
chase99 + 3 给你点个赞!
extrovert + 10 给你点个赞!
魔路 + 20 给你点个赞!
haayahaaya + 1 很有用的信息!
Yui_tycc + 1 给你点个赞!

查看全部评分


上一篇:如何判断dp array size应该是len 还是 len +1
下一篇:面试答题的时候,用到instance variable会不会不太好

本帖被以下淘专辑推荐:

  • · CS|主题: 185, 订阅: 14
  • · 刷题|主题: 31, 订阅: 4
  • · 王中王|主题: 33, 订阅: 2
我的人缘0
RightSoFar 发表于 2018-7-23 04:36:08 | 显示全部楼层
本楼: 【顶】   85% (6)
 
 
14% (1)   【踩】
全局: 顶  89% (124)
 
 
10% (14)  踩
好奇,就这样的干货帖还有人踩....

是为了不让楼主骄傲么?
回复

使用道具 举报

全球28万学生4.7分推荐
我的人缘0
漫漫人生路 发表于 2018-7-13 01:39:44 | 显示全部楼层
本楼: 【顶】   100% (6)
 
 
0% (0)   【踩】
全局: 顶  80% (32)
 
 
20% (8)  踩
大神,再开个帖子讨论design吧~
回复

使用道具 举报

我的人缘0
 楼主| intelliu 发表于 2018-7-14 04:37:21 | 显示全部楼层
本楼: 【顶】   100% (4)
 
 
0% (0)   【踩】
全局: 顶  98% (422)
 
 
1% (6)  踩
Zetecx 发表于 2018-7-13 14:25
谢谢楼主分享。我挺想去软家工作 请问楼主能额外给一些建议给 new grad吗?
对于楼主给的建议 都非常有用  ...

微软太大了, 每个team风格有所不同。 所以面试肯定要看一点运气。 从整体来说, 我个人觉得bug free是从facebook开始的。 至少我了解的微软和谷歌都不是特别在意bug free, 相反, 如果你有bug, 能通过自己的test case, 或者别人的test case, 能快速迭代(或者举一反三的fix掉其他bug), 那是个加分项。

微软对new grads更看重下面几点:
1)思路是不是清楚, 写出的code是背下来的一般就没有一个清晰的推理过程, 背题的人写代码和讨论test case和真明白背后原理或者数学证明的是完全不同的。
2)  到底为什么选择做程序员, 未来的规划是什么, 你有没有想清楚自己如何做才能支持自己的职业规划。
3)面试者能不能自己通过走查代码, 加测试用例自己发现自己的bug, fix的对不对, 能不能保证不引发新的regression bug.

总之 微软的题并不比谷歌和fb简单, 但是相对来说bar还是比较合理的。 面试官更enjoy你做事的方法。

评分

参与人数 5大米 +28 收起 理由
neonmori + 3 给你点个赞!
caiwade + 5 给你点个赞!
GabrielaSong + 5 给你点个赞!
zzzf1995 + 10 很有用的信息!
Zetecx + 5 感谢楼主回复!非常有用!

查看全部评分

回复

使用道具 举报

我的人缘0
xfuyun 发表于 2018-7-28 06:30:57 | 显示全部楼层
本楼: 【顶】   100% (2)
 
 
0% (0)   【踩】
全局: 顶  100% (10)
 
 
0% (0)  踩
gongchen 发表于 2018-7-23 12:39
楼主这篇文章写得字字珠玑。

文中提到了“做事的方式不够成熟。 可能以后工作中会很毛躁, 需要人来指导 ...

我有空可以开篇多谈一谈。暂时没空。

表面技巧很多,多说无益。最核心的点是 你要相信和你工作的peer,manager,cross-functional 的人都是decent, reasonable people. 当你要毛躁,要抱怨的时候,认真想一想,为什么一个decent,reasonable的人会让你这么烦躁?是不是有些考虑问题的角度不一样?是不是双方信息不对等?

ps 不针对你: 地里一个不好的现象是抱怨印度人等等从一开始就走错了处理问题的原则和方向

评分

参与人数 1大米 +5 收起 理由
gongchen + 5 嗯 要信任同事和senior~谢谢你的回复

查看全部评分

21.000+ students read the Road to learn React. The course weaves all the opinionated roadmaps into one roadmap to master React. It gives you all the fundamentals in React. You will build a Hacker News App along the way.

回复

使用道具 举报

我的人缘0
xiaoxiaohutaomu 发表于 2018-7-30 15:21:23 | 显示全部楼层
本楼: 【顶】   100% (1)
 
 
0% (0)   【踩】
全局: 顶  95% (19)
 
 
5% (1)  踩
满满的干货!非常感谢无私分享。----- 面试题大体可以分为三类, Problem resolving, solid coding和bar raiser.------好期待大神的新帖子呀。
回复

使用道具 举报

我的人缘0
mclover 发表于 2018-7-23 09:00:48 | 显示全部楼层
本楼: 【顶】   100% (1)
 
 
0% (0)   【踩】
全局: 顶  98% (108)
 
 
1% (2)  踩
intelliu 发表于 2018-7-14 04:37
微软太大了, 每个team风格有所不同。 所以面试肯定要看一点运气。 从整体来说, 我个人觉得bug free是从 ...

萌新面试官表示lz说的有道理, 学到了很多。其实F家也并不是需要100% bug-free, 是因为利扣原题比较多, 挺多candidate上来就直接进入了6, skip了2,3,4,5.
回复

使用道具 举报

我的人缘0
lufan1989 发表于 2018-7-22 09:13:54 | 显示全部楼层
本楼: 【顶】   100% (1)
 
 
0% (0)   【踩】
全局: 顶  100% (110)
 
 
0% (0)  踩
我想补充一点,我们组招人会想象这面试就是是平时和面试者的一次pair coding,看彼此有没有擦出火花。

With React+D3v4 you'll learn the basics of building fast data visualization components in about an hour.

回复

使用道具 举报

我的人缘0
 楼主| intelliu 发表于 2018-7-21 03:16:38 | 显示全部楼层
本楼: 【顶】   100% (1)
 
 
0% (0)   【踩】
全局: 顶  98% (422)
 
 
1% (6)  踩
多肉小萌梦 发表于 2018-7-18 14:55
好贴!
想问问LZ,code之前的讨论和code的时间比例是20min:40min吗?

嗯, 提醒我了, 其实这个和面试题种类有关系, 面试题大体可以分为三类, Problem resolving, solid coding和bar raiser. 我觉得需要开个新帖子讨论。 过几天写。
回复

使用道具 举报

我的人缘0
lee2009jian 发表于 2018-7-20 06:16:39 | 显示全部楼层
本楼: 【顶】   100% (1)
 
 
0% (0)   【踩】
全局: 顶  98% (51)
 
 
1% (1)  踩

大神,再开个帖子讨论design吧~
回复

使用道具 举报

我的人缘0
yguo89 发表于 2018-7-13 04:47:42 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  95% (389)
 
 
4% (19)  踩
嗯嗯,楼主说得很对。我和我所知道的面试官都是这样的。所以有时候真不知道一定bug free,一轮面试必须解出几道题才能过的条件是哪里来的…
回复

使用道具 举报

我的人缘1
肥宅快乐水 发表于 2018-7-13 12:09:47 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  78% (552)
 
 
21% (151)  踩
意外, 这么好的帖子没人顶么
回复

使用道具 举报

我的人缘0
Zetecx 发表于 2018-7-13 14:25:41 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  98% (94)
 
 
1% (1)  踩
谢谢楼主分享。我挺想去软家工作 请问楼主能额外给一些建议给 new grad吗?
对于楼主给的建议 都非常有用 但是听起来 对于 实战项目没有那么多的 new grad来说 好像还是期待bug-free 会比较靠谱。
对于这样一个沟通的过程,是软家面试特别比较注重这一点吗 ?
不同的公司风格不一样 有的公司要求题写的快 我之前看地理的帖子 都是 2 题 hire 3 题就是strong hire
谢谢!
回复

使用道具 举报

我的人缘0
Fengeey 发表于 2018-7-14 06:06:19 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (7)
 
 
0% (0)  踩
楼主的分析对我面试很有帮助,收藏了!
回复

使用道具 举报

我的人缘0
huangy17 发表于 2018-7-18 11:02:41 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (2)
 
 
0% (0)  踩
这么好的帖子,居然没有人回吗? 感谢楼主
回复

使用道具 举报

我的人缘0
ryan_hyl 发表于 2018-7-18 13:47:37 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (1)
 
 
0% (0)  踩
受益匪浅,感谢楼主~
回复

使用道具 举报

我的人缘0
多肉小萌梦 发表于 2018-7-18 14:55:53 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  98% (53)
 
 
1% (1)  踩
好贴!
想问问LZ,code之前的讨论和code的时间比例是20min:40min吗?
回复

使用道具 举报

我的人缘0
zgpeace 发表于 2018-7-18 16:34:34 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (1)
 
 
0% (0)  踩
干货,还没面试过国外的公司
回复

使用道具 举报

我的人缘0
hh821758 发表于 2018-7-19 01:01:58 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  90% (78)
 
 
9% (8)  踩
yguo89 发表于 2018-7-13 04:47
嗯嗯,楼主说得很对。我和我所知道的面试官都是这样的。所以有时候真不知道一定bug free,一轮面试必须解出 ...

不是每个公司每个面试官都像楼主这么做的而已。
回复

使用道具 举报

我的人缘0
PandasGZ 发表于 2018-7-19 06:26:58 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  75% (3)
 
 
25% (1)  踩
感谢LZ分享!
回复

使用道具 举报

我的人缘0
avirl108 发表于 2018-7-22 11:45:20 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  81% (26)
 
 
18% (6)  踩
请问lz:
如果一道题,我觉得40分钟写不完了,按照你的说法,硬着头皮写下去很可能是fail。
那我应该提前和面试官说“我写不完”?然后写个大概就可以吗?这种明知道自己“写不完”的情况,作为candidate,应该怎么处理呢?
谢谢
回复

使用道具 举报

我的人缘0
14417335 发表于 2018-7-23 03:09:00 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  62% (5)
 
 
37% (3)  踩
谢谢楼主。很有帮助。赞顶。
回复

使用道具 举报

我的人缘0
emma235 发表于 2018-7-23 03:26:41 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (1)
 
 
0% (0)  踩
感谢楼主!!期待后续!
回复

使用道具 举报

游客
请先登录

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|小黑屋|一亩三分地论坛声明

GMT+8, 2018-9-20 18:18

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表