小弟背景中央理院学士毕,算是个半吊子的工程师,写程式大概十年多,逆向工程、资讯安全、游戏设计、前后端开发、还有一堆莫名其妙的东西等等。
正文开始
当时过完年后开始找工作,朋友告诉我微软有举办校园征才活动,原本心想虽然不是应届毕业生,但听看看也好的心态就去了。
很幸运的,去年毕业的但在近期服完兵役的也算是符合资格,之后几年应该也会有类似的毕业生征才活动吧,如果目标是放在微软这种梦想外商的话,大家要好好把握啊!
投了履历之后接到微软的Online test邀请,时间是两小时,有四道题目,不能切视窗且要开摄影镜头,自己本身没有在写解题网站,就直接上了
第一题有点忘记了,不是资料结构也不是算法,是单纯的程式能力测试吧,记得会点循环就能解决。
第二题是音乐课学生分麦克风,给你一串数列和麦克风数量,麦克风数量必大于或等于学生群数,要把麦克风分完,第一个步骤是先把最大规模的学生群一分为二,这样就要多一只麦克风,直到群跟麦克风相等,最后回传最大那
第三题是Tree的level sum,找出最大的那层总和
第四题题目是有几种颜色的油漆,要漆墙,间隔的颜色不同...有写条件忘了,最后要求最后那面墙要用什么颜色涂
写完之后隔了一个礼拜接到on site邀请,那时候很紧张担心会有英文面试(我的英文非常非常烂),好险没有,不过有些穿插的英文单字还是让我一愣一愣的。
面试的流程是固定两轮(一轮一小时),如果都通过了就接着第三轮,再通过就第四轮这样。
我这梯次面试大概六个还八个,两个Bing ad两个Swift key其他应该是Mach
,由各自面试官带往会议室进行1:1面试,过程不外乎自我介绍、有做过什么东西,然后问你最熟悉的语言问题等等,然后直接上白板题
第一轮的白板题比较偏向资料结构和算法
第一题问link list的反转
第二题求BST的最近共同祖先
毕竟自己是个半吊子的码农,要什么就google,当场写白板题的时候画图画半天,虽然有解出来,但解的超级慢,第二题解完也差不多结束了第一轮面试。
第二轮就比较偏向问题解决的方式,面试官会在过程中给你提示并慢慢写出最佳解。
第一题是给一串数列1,2,-3,1...求最长连续子序列Sum最大,我用了一个新的空阵列计算当前连续子序列的值,并做表储存,最后回传表中最大,最后的排序过程造成O(n^2)被问能不能更快,想到用一个暂存变量去取代当前最
第二题是两个link list它们后面会接到同一个node,把那个node找出来,最一开始的想法当然是暴力造成O(n^2),后来提示屏除长度问题,先求出两条link list长度并从相同长度位置开始判断,只要O(M+N)。
这些题目对普遍人来说应该不是太难,但是我就是写的很卡哈哈,所以也没有后来的第三轮第四轮面试啦,希望能有高手分享!
这是我第一次的面试(建议不要把自己Dream Job摆在第一次,不然也是多做点准备啊!),紧张到爆,很多东西都讲的很卡,甚至在面试官问问题还听不懂XD
往后应该还会有这类型的大规模征才,希望这篇失败经验能够帮助到大家,虽然我没有去刷题(有啦大概5题就没了......)但这次的面试经验,刷题应该还是蛮有帮助的,祝大家能够顺利拿到自己的理想Offer。
我也要继续去投履历啦!