查看: 6810|回复: 33
收起左侧

[找工就业] 从微软面试官角度谈面试准备2

    |只看干货
butterwang | 显示全部楼层 |阅读模式
本楼: 👍   97% (40)
 
 
2% (1)   👎
全局: 👍   99% (111)
 
 
0% (1)    👎

2021(10-12月)-CS博士+5-10年 | 猎头| 码农类General全职@Microsoft

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

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
上一篇帖子我浅谈了从微软面试官角度如何准备面试以及面试的基本流程(原帖 https://www.1point3acres.com/bbs/thread-820763-1-1.html
没想到收到了很大的反响,我想借这个机会再深入谈一下如何准备算法面试,以及在面试的过程中如何回答算法面试题。. check 1point3acres for more.

1. 算法面试,就是coding interview,对于大部分人来说是面试的重中之重,所以这个帖子我重点谈一下算法面试。如果以后有机会,我可以从面试官的角度谈一下behavior questions和system design interview。
2. 我是从面试官的角度来讨论这个问题,并不限于微软面试官。从面试官的角度来说,算法面试的目的就是获得足够多的求职者的signal。这些signal 一般包括 coding skills, cs fundamentals, communcation skills, potentials, etc.. 我们一般都是在这几个地方打分。当然最后的decision还考虑到了一些别的原因,比如我们觉得你是否fit 这个职位,以及你表现出了多大的热情想要加入我们。
3. 所以这里面一直存在一个长期的误区,就是很多求职者认为我题目都答对了,也bug free了,为什么我就挂了?是不是被面试官黑了?可能情况还真不一定!记住,算法面试只是一个手段,我们不是招一个会做题的机器,否则直接做OA就发offer就行了;-). 我们最后的目的是通过算法面试,来获得我们想考察的signals,并考察是否达到了公司的要求。所以并不是题目答对了就保证你能通过。当然,题目做的太差,基本上也会挂掉. :-D
4. 这里面我就重点谈谈面试中应该怎么正确的回答一道算法面试题,以及在平时刷题的过程中应该如何练习。 第一,当你拿到一道题目的时候,一定要和面试官在三确认三点:输入,输出,以及examples。 很多面试者一看到说这个题我做过,心中狂喜,然后就直接开始说思路,写代码。殊不知这已经掉到了面试官故意挖的坑中了,基本上面试就凶多吉少了。很多时候,我喜欢去找leetcode的题目,自己稍加变形,可能解法就有所不同。作为一个面试官,我想考察的是一个面试者如何deal with ambigurity的能力。所以,拿到一道题目,不管做没做过,一定要先把题目搞清楚,多要几个例子,确定你把题目理解对了。我见过太多的情况是面试者他以为他把题目理解对了,然后就一顿猛写,最后发现题目都理解错了。这种人一般都是必挂的。可想而知如果我招了这种人做同事,他连需求都没搞清楚就自己闭门造车,最后浪费了大家宝贵的时间和资源做了无用功。搞清楚题目的过程大概5-10分钟
5. 好了, 在你和面试官确认了题目以后,你就可以开始说思路了。这里面我加过太多的求职者直接上来就写代码了,这就又掉到另一个坑里面去了。communication skill不行。拿到一个题目,一定要先把思路说清楚,最好用一个test case,画一个图把你的方法说清楚了。注意,这是重中之重的地方。一定要假设面试官不懂这题怎么做,你的目的就是要把他讲明白了!!!我面试的过程中如果有谁直接上来写代码我都会叫停,让他跑一个例子把思路说清楚。这里面一半以上的人可能都说不清楚。那如果说不清楚最后代码还迅速写出来了呢?很显然我们就会怀疑这题目你是背了答案。这时候我一般都会follow up一下,基本上就原形毕露了。所以,大家在平时准备的过程中,一定不要贪求刷题的数量,而是说每刷一道题,都要把这个题目先讲清楚。另外, 我不建议上来直接写代码还有一个原因是一道题目可能有好几种解法,你怎么知道面试官想让你写哪个解法呢?所以,在最终写代码之前一定要沟通好了,确保他非常理解你的方法,并且给了你green signal写代码。这个过程一般10-15分钟
6. 最后,终于可以写代码了。如果已经有了前面的几步,最为一个面试官我一般心里都已经有数这个人能不能把代码写出来。这里面主要要注意的是写代码要快,要一气呵成,不要来回修改,尤其是对senior 以上level的人来说,如果你50行左右的代码5-10分钟写不完,我基本上就会觉得你coding skill不行。对于new grad,这个要求可以降低一些,我们甚至都不要求你能bug free的写出来。我的hm经常在debrief meeting问大家,虽然这个new grad最后代码没时间写完,但如果你再给他一些时间,你觉得他能写出来吗??这就是衡量一个人potential的地方了。如果前面的两部你都答的不错,写代码真的其实没那么重要,因为我已经知道这道题你能做出来。但是对于senior以上的人来说,coding skill是考察的一个重点,因为我们希望你来了能直接干活。我有时候面试的时候甚至会直接告诉candidate这个题大概思路是什么,你来写出来。注意,你写代码的代码直接出卖了你的能力。我基本是通过你写的前 3-5行代码心里就有数了。写代码应该控制在10分钟左右。
7. 写完代码然后干什么,一定要跑test啊。。。这个简单的道理很多求职者都会犯错,很多人写完了就不说话了,或者就说好了。。好心的面试官会提示一下要不要跑个测试,不是善茬的面试官就把这个直接写在了feedback里面。。。
8. 最后,面试官一般都会留5-10分钟时间让你问问题。这个还是挺重要的,一般是给求职者一个机会来展现你对这个职位有多少的兴趣。所以还是要好好准备一下。千万不要说我没有问题(我还真见过不少国人new grad这么说,我当时就会很尴尬。。),或者问我hiring process (这个你应该去问recruiter啊。。。),以及有些人直接要feedback(这个就非常不专业了,我也不会正面给你)。比较好的问题比如问问平时都做些什么项目,用什么技术之类的。或者问问公司文化之类的。

所以,说了这么多,核心的问题是题做出来了远远不等于通过面试。很多人以为写代码是最重要的,其实面试中的沟通才是最重要的一步。

最后,住大家都拿到心仪的offer!!

评分

参与人数 49大米 +81 收起 理由
xss889268 + 2 给你点个赞!
jack2030 + 1 赞一个
dream1995.cp + 1 赞一个
whdawn + 6 给你点个赞!
jiayunda + 1 赞一个!
小民 + 1 给你点个赞!
tablu666 + 1 给你点个赞!
妖妖900 + 1 很有用的信息!

查看全部评分


上一篇:FB/Meta 被拒可以Complain嘛 求各位前辈指教!
下一篇:22年5月毕业之后微软summer intern
johnhuull 2021-11-28 17:48:54 | 显示全部楼层
本楼: 👍   100% (18)
 
 
0% (0)   👎
全局: 👍   93% (2445)
 
 
6% (162)    👎
MasterBachelor 发表于 2021-11-27 23:42
大佬,那像Facebook这种实习面试要45分钟写两道题的咋办。。。LOL

其实,FB这种呢,你想想,说45分钟,实际上要求是30分钟写两题。

不知道以前如何,根据我的观察,最近的话,实际上不是bug free。这个不是bug free,指的是,那个面试环境实际上不让你运行代码的,所以,你是几乎不可能做到编译运行程度的bug free的,也没必要。

但是,你在程序逻辑上必须做到bug free,否则,你一旦在自己test的时候发现有bug,再改一改,你的时间肯定不够做两道题的。

那么,如何做到程序逻辑上bug free呢,根据我的观察,只有你一开始思考的时候,想的足够全面了,才可能bug free,否则,基本没可能bug free的。但是呢,这里面又有特点了,因为这种面试题要求你在30分钟内能做出来2道,那么,平均每题也就15分钟而已,所以,这注定了,实际的解答不可能很复杂,代码不可能很多行。所以啊,刷题的时候,一些很难的,答案代码行数比较多的(超过50行就算偏多了),其实不可能考的。

而且,你要想想,逻辑上要bug free,还要你30分钟能做出来两道,那么,这说明了什么?说明了,测试用例,肯定不可能很大的,肯定是很小的测试用例,比如,如果测试的用例是数字,绝不可能很大的数字,否则,怎么在面试中去验证?所以,这种题目必然是你用一些单个用例的数字很小,字符串很短就能验证的。你这个时候要关注的是测试用例的分类覆盖要够广,不要去担心数字很大怎么办,字符串很长怎么办,链表很长怎么办,数组/图非常大怎么办。. From 1point 3acres bbs

当然,不同公司也不同,有的公司那是真的要你实际写代码并且执行出来的,这种一般来说40分钟只能要求1题,并且难度会比要求2题的高些。当然,万一遇上了那种上来就hard题的,并且事后查答案真的是代码行数很多的,这种我也不知道到底怎么一回事了。

评分

参与人数 1大米 +1 收起 理由
longjia + 1 分析的很全面啊

查看全部评分

回复

使用道具 举报

lifesuckad 2021-11-29 09:30:09 | 显示全部楼层
本楼: 👍   100% (6)
 
 
0% (0)   👎
全局: 👍   89% (1470)
 
 
10% (174)    👎
不是我说绝大多数 面试官算法 都不过关。
回复

使用道具 举报

itgoujie2 2021-11-28 21:46:49 来自APP | 显示全部楼层
本楼: 👍   100% (4)
 
 
0% (0)   👎
全局: 👍   98% (463)
 
 
1% (5)    👎
MasterBachelor 发表于 2021-11-27 23:42:35
大佬,那像Facebook这种实习面试要45分钟写两道题的咋办。。。LOL
一般来说第一题很简单 赶紧写完 第二题才是重头戏 要讨论解法选择最优解 写完了还有一两个follow up和复杂度分析 都答好了且沟通顺畅就是strong hire 如果follow up没答好也有hire 如果题没做出来多半挂了 竞争者太多
回复

使用道具 举报

本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   20% (29)
 
 
79% (115)    👎
大佬,那像Facebook这种实习面试要45分钟写两道题的咋办。。。LOL
回复

使用道具 举报

 楼主| butterwang 2021-11-28 15:51:20 | 显示全部楼层
本楼: 👍   100% (3)
 
 
0% (0)   👎
全局: 👍   99% (111)
 
 
0% (1)    👎
MasterBachelor 发表于 2021-11-27 23:42
大佬,那像Facebook这种实习面试要45分钟写两道题的咋办。。。LOL

5分钟搞清题目。5分钟说思路。5分钟写代码。最后5分钟跑测试。两题45分钟,基本上除了前面5分钟和最后5分钟,一道题也就15分钟的样子。
回复

使用道具 举报

我都没事儿 2021-11-28 15:53:03 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   100% (11)
 
 
0% (0)    👎
个人体验也确实是这样哈哈,微软面三次有两次都聊太久题没写完,沟通比较好,还是拿了offer。不过之前真的不知道直接要feedback不好,我问的几个面试官倒是都给了一些feedback,虽然能感觉到只说了正面的。。。lz可以说说为什么这样不专业吗?
回复

使用道具 举报

hsxny 2021-11-28 16:51:24 来自APP | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (6)
 
 
0% (0)    👎
真好,收藏了。谢谢。
回复

使用道具 举报

本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   20% (29)
 
 
79% (115)    👎
butterwang 发表于 2021-11-27 23:51:20
5分钟搞清题目。5分钟说思路。5分钟写代码。最后5分钟跑测试。两题45分钟,基本上除了前面5分钟和最后5分钟,一道题也就15分钟的样子。
感恩……….
回复

使用道具 举报

本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   20% (29)
 
 
79% (115)    👎
johnhuull 发表于 2021-11-28 01:48:54
其实,FB这种呢,你想想,说45分钟,实际上要求是30分钟写两题。

不知道以前如何,根据我的观察,最近的话,实际上不是bug free。这个不是bug free,指的是,那个面试环境实际上不让你
好的,谢谢大佬🙏
回复

使用道具 举报

本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   20% (29)
 
 
79% (115)    👎
itgoujie2 发表于 2021-11-28 05:46:49
一般来说第一题很简单 赶紧写完 第二题才是重头戏 要讨论解法选择最优解 写完了还有一两个follow up和复杂度分析 都答好了且沟通顺畅就是strong hire 如果follow up没答好也有h
好的,谢谢大佬🙏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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