layout: post title: "微软面试总结" date: 2019-04-03 19:36 comments: true
上周参加了微软在 UW-Madison 的 Campus Interview,这是我的一个真正意义上的 Coding Interview,面试官也是华人小姐姐,非常 nice,给我十分详细地指导,所以这里记录下自己的面试过程和经验。
<!--more-->说起来微软真地对 UW-Madison 非常好,我其实只是在 School Info Session 和面试官谈了谈,他就给我发邮件提醒我注册面试。微软是派自己一线的 coder 来面试,所以还是非常贴近实战的。当然我的 case 比较特别,我直接告诉面试官我其实改变了自己的计划,已经开始读博,所以不会去微软实习或者工作。
可能是我的诚实打动了面试官,同时作为同胞希望帮助我,面试官给了我很多建议和指导,从我的简历如何修改到我白板写代码的具体问题,她都给出了详细地建议与帮助。都是非常实用的建议。
大概提前两周,微软发来一个邮件链接让你注册,一个人30min 的 slot 当然面试官其实和我谈了 45 min,对我帮助巨大。
然后到了时间,去微软在学校预定的 Room 等候,然后进入房间开始面试。
首先是简历的部分,面试官问了几个简历的问题,同时帮助我修改简历。然后开始了 coding 问题,leetcode 的原题,当然我并没有解答出来。但是面试官给了很多提示,结束之后还对我需要注意的地方特别做了指导。
之前的简历确实缺少了 CS 关注的关键词部分,这是第一次听到面试官的反馈。
确实是发现不同的人看问题会有不同的角度,我的简历非常学术化,所以并不是适合工业界的简历,这次面试官告诉我,她当时修改了将近15遍,确实是至理名言。
其实这是最重要的硬性技能,没有硬本事,什么都惘然。不说了接着刷题。应该每天定时起床,刷到一定数量的题目去学校。
交流内容 (1) 题意复述
(2) Test Cases & Edge Cases
(3) 时空复杂度要求
很多时候,说起来,大家都觉得 Brute Force 解法低级,但是要是仔细分析会发现其实 Brute Force 解法也很多时候就是 Leetcode 的解法。而且,好多时候 Brute Force 解法是优化的起点,其次,这个给你白板写代码的机会,不然很多时候你要是遇到了 DP 没有任何思路,你真的可能连写代码的机会都没有。
Be safe at first.
这个也被面试官耳提面命了一番,其实从更高的角度思考
(1) Function Test
比如一个正常的输入,输出是多少?
(2) Edge Test
比如,
(3) Stree Test
问下是不是需要考虑特别大的数字,特别长的字符串,特别小的数值,或者是不是需要考虑分布式系统。
这点在 Leetcode 时候不太注意就忽略了,但是其实很重要。养成在提交代码前,自己人工带入运行程序的好习惯。