MS面经。# JobHunting - 待字闺中
M7
1 楼
非名校CS PHD, 5月毕业。去年12月网投的,一周后说要电面。
电面:
1. 博士做什么题目?最挑战的部分是什么?
2. If you started this (your research) over, what do you want to do first fo
r the same project?
3. What is a good program?
4. Why do you rate your preferences for SDE, SDET and PM. 我当时perfer SDE。
面试官要我be flexible.
5. A game is about to ship, how do you want to to test it?
6. Given a year and unlimited funding, what do you want to do?
没有coding问题。说是三到四周给回音。结果两天后(而且是在周末)recruiter就说通
过了。要onsite SDET。
Onsite:
10:30和recruiter聊了一下: why MS?
11:15面试正式开始:
interviewer 1: 写一个函数validate XML tags (类似parentheses matching). 我用了
stack. 然后测试这个函数。答完之后倒是聊了很多关于这个组的工作。
interviewer 2: lunch interview. 我选择take out, 所以在办公室里边吃边聊。把一
个BFS转成doubly LL in BFS fashion. 我实现了BFS traversal但是发现pointer
relinking很难。结果面试官说他也不确定能否实现。于是我们就把BFS都放到一个
array里,然后relink pointers. 第二个问题,有一个洗牌程序,如何测试是不是真的
随机。
interviewer 3: Why microsoft? Why SDET? What programs I’ve written? What is
the most challenging? 说了一些PhD research. 最后出题:设计一个airplane
control system. 如何测试。
interviewr 4, Test Lead: Why microsoft? Why SDET? 让我介绍了一下我简历上的所
有experiences. 问题: 一个单线程程序 looping over a million records, 一个双线
程程序,每个线程looping over 500,000 records, respectively. Which one is
faster? 在什么情况下那个双线程程序的效率会下降?问题:有一环数字,每隔一个数
字,划掉一个数字。如此循环,直到所有数字都划掉。写程序实现,随便什么数据结构
都行。(我用了doubly LL,先写了程序。然后立刻debug, 处理了special cases,
such as when there are two numbers left and there is only one number left).
interview 5, Dev Lead: 如何测试一个程序?看不看有关Software engineer的杂志/周
刊?问题1: 估计一下一个map system(such as google map)需要多少存储。他需要实际
数字,所以每一步都要参考实际情况。比如说地球的半径(6400KM), 而后计算表面积。
然后,假设最小单位是20米乘20米,估算这个最小单位显示时为100X100pixel, 每个
pixel(R/G/B)占3bytes, 所以这个最小单位占30KB, 压缩后大约1KB..... 我算下来大约
1.2PB = 1200TB. 然后再考虑zoom,支持多少级zoom. 不过zoom out之后,空间小很多,
所以总和还是在1.2PB左右。问题2: 一个已排序但是有重复的int array. rotated. 写
一个函数,return 原来index=0现在的位置。比如4,4,5,6,6,1,1,2,3, 函数returns 5
. 如果数组是2,2,2,2,2,2,2, 则return 0. 对于没有重复的情况,可以实现logN, 但是
现在只能实现N. 这个interviewer对coding非常picky, 不能有一点pseudo code, 而且
对程序要求很高(那种为追求效率,宁可牺牲可读性的程度)所以我的程序被他数落得
很差.... 最后,让我实现merge sort. 写完后他发现一个syntax error, 我马上改掉。
他点了头。
已经下午六点半了。
最后再和recruiter随便聊了几句......
祝这里找工作的都能心想事成!
电面:
1. 博士做什么题目?最挑战的部分是什么?
2. If you started this (your research) over, what do you want to do first fo
r the same project?
3. What is a good program?
4. Why do you rate your preferences for SDE, SDET and PM. 我当时perfer SDE。
面试官要我be flexible.
5. A game is about to ship, how do you want to to test it?
6. Given a year and unlimited funding, what do you want to do?
没有coding问题。说是三到四周给回音。结果两天后(而且是在周末)recruiter就说通
过了。要onsite SDET。
Onsite:
10:30和recruiter聊了一下: why MS?
11:15面试正式开始:
interviewer 1: 写一个函数validate XML tags (类似parentheses matching). 我用了
stack. 然后测试这个函数。答完之后倒是聊了很多关于这个组的工作。
interviewer 2: lunch interview. 我选择take out, 所以在办公室里边吃边聊。把一
个BFS转成doubly LL in BFS fashion. 我实现了BFS traversal但是发现pointer
relinking很难。结果面试官说他也不确定能否实现。于是我们就把BFS都放到一个
array里,然后relink pointers. 第二个问题,有一个洗牌程序,如何测试是不是真的
随机。
interviewer 3: Why microsoft? Why SDET? What programs I’ve written? What is
the most challenging? 说了一些PhD research. 最后出题:设计一个airplane
control system. 如何测试。
interviewr 4, Test Lead: Why microsoft? Why SDET? 让我介绍了一下我简历上的所
有experiences. 问题: 一个单线程程序 looping over a million records, 一个双线
程程序,每个线程looping over 500,000 records, respectively. Which one is
faster? 在什么情况下那个双线程程序的效率会下降?问题:有一环数字,每隔一个数
字,划掉一个数字。如此循环,直到所有数字都划掉。写程序实现,随便什么数据结构
都行。(我用了doubly LL,先写了程序。然后立刻debug, 处理了special cases,
such as when there are two numbers left and there is only one number left).
interview 5, Dev Lead: 如何测试一个程序?看不看有关Software engineer的杂志/周
刊?问题1: 估计一下一个map system(such as google map)需要多少存储。他需要实际
数字,所以每一步都要参考实际情况。比如说地球的半径(6400KM), 而后计算表面积。
然后,假设最小单位是20米乘20米,估算这个最小单位显示时为100X100pixel, 每个
pixel(R/G/B)占3bytes, 所以这个最小单位占30KB, 压缩后大约1KB..... 我算下来大约
1.2PB = 1200TB. 然后再考虑zoom,支持多少级zoom. 不过zoom out之后,空间小很多,
所以总和还是在1.2PB左右。问题2: 一个已排序但是有重复的int array. rotated. 写
一个函数,return 原来index=0现在的位置。比如4,4,5,6,6,1,1,2,3, 函数returns 5
. 如果数组是2,2,2,2,2,2,2, 则return 0. 对于没有重复的情况,可以实现logN, 但是
现在只能实现N. 这个interviewer对coding非常picky, 不能有一点pseudo code, 而且
对程序要求很高(那种为追求效率,宁可牺牲可读性的程度)所以我的程序被他数落得
很差.... 最后,让我实现merge sort. 写完后他发现一个syntax error, 我马上改掉。
他点了头。
已经下午六点半了。
最后再和recruiter随便聊了几句......
祝这里找工作的都能心想事成!