微信号:hollischuang

介绍:Hollis的个人公众号.该公众号会定期发布Java开发相关技术

跨专业考研也能拿到微软的Offer

2018-05-17 08:00 Bamboo

最近,春招已经基本接近尾声了,我找了几位拿到名企Offer的粉丝,请他们总结了面试经验,近期会分批的推送给大家。希望给那些正在准备秋招的同学提供些帮助。


今天给大家分享的面经作者本科物理专业,跨专业考研到计算机。18年春招拿到了微软的实习Offer。以下是他总结的面试经验及准备思路。Hollis只做了简单的格式修改。希望对你有帮助。


本科是某 211 物理专业,然后考研到了本校计算机专业。 从年后开学正式准备暑期实习,java 后台开发岗位,基础很差,所以一直在看各种面经。

刚开始面的几家,面啥啥崩,从网络到操作系统再到数据库、Linux 命令,基本上啥也不会, 实验室的项目也用不到这些。所以只能在网上找面经,各种死记硬背,有些即使能回答上来, 但是面试官问的一深,就懵了。


面试准备

这几个月学的东西比研一整年学的都多,下面是我看的书的清单:

1、《深入理解 Java 虚拟机》,这本书真的写的特别好。
2、《Java 多线程编程核心技术》
3、《Java 并发编程的艺术》

4、《图解 TCP/IP》

5、《鸟哥的私房菜》,这个看的有点晚,拿到 offer 之后才看的。
6、《mysql 必知必会》
7、《高性能 mysql》只看了关注的几章。
8、各种面经、博客(Hollis 系列文章真的很不错),感觉这种总结的更好,更能面向面试学习。


PS:但是并没有拿到 java 相关的 offer,阿里捞了我三次,挂了我三次,已经绝望了,还是 基础太差了,感觉短时间内看了那么多书也是囫囵吞枣,根本没有了解原理。

运气比较好,拿到了微软的 offer。微软面试只问算法。因为从研一下学期,就有一直坚 持刷算法。到目前为止,leetcode 刷了 340+,牛客网 100+

算法书看过:
1、《算法导论》(只看了一部分,推导太多了,看不下去)
2、《剑指 offer》(对于面试来说,真的是利器)
3、《编程之美》
4、《算法》(橘黄色)
5、《程序员代码面试指南》
6、各种博客
上面的书就《剑指 offer》完整的看了两遍,其他的都是当成工具书了。遇到相似的问题,就都查看对比一下。


面试流程

一面


先介绍一下项目,介绍完也没怎么细问,直接开始做题。

第一题:找出一个数组中出现次数大于等于数组长度一半的数字。


很套路的一个题, 但是以前做过的题是没要求等于的。所以没注意到这个,直接按照大于做的,结果面试官指 出来了,然后又想了两个方法,用 hashmap 和排序做。

第二题:在直角坐标系给一个正方形,然后给一个点的坐标,将正方形按照水平和竖 直两条对称线分成四份,依次标上序号 0 1 2 3,观察一下这个点落在哪一部分,记下来,比如说落在 1 区,然后将 1 区继续分成四份,还是标上序号 0 1 2 3,观察点落在哪一部分。最后输出一个字符串,形如 1202331 这种的。


这个题出的有问题,没有终止条件,或者说没给 精度要求,告诉面试官之后,面试官增加了一个输出字符串长度为 10 的约束。然后用递归 解决了。

每面 50 分钟,两道题。到了 50 分钟面试官会立马停止,如果做完了时间还不到, 就会跟你聊天。然后就问了一下面试官项目组主要做什么,用什么语言

二面


先介绍一下项目,介绍完直接做题。


第一题:在直角坐标系上给两个矩形,判断是否有交集。做出来之后,面试官又加

了一个要求,求出该交集。用了最笨的方法,分类讨论。然后面试官说可以这样做,但不是 最优的。想了一会没想出来,这个题就结束了,最后问了一下面试官,面试官还给我讲了讲。 


第二题:全排列。


用了回溯和字典序生成法两种方法。面试官给了一个例子:12345, 要求我不动手画,只用脑子想,把用回溯生成的前几个数按照顺序说出来,一直说了七八个才停止。最后比较了一下字典序生成法和回溯的时间复杂度。 


做完之后又跟面试官聊了一会,问了一下为什么微软面试只问算法。(感觉问面试官问题这个环节真的很尴尬,都不知道问啥,但是又不能不问,不问的话,感觉空气都凝固了。)

三面


介绍项目完,做题。 


第一题:找一个数组中最大数、最小数、中位数。


用了一下快排。然后叫我设计测试用例,来验证这段代码。 


第二题:大致意思就是,客户端要调用后台的服务,整个过程都有哪些地方可以优化。

当时听完懵了一会,不懂这个。就按照设计模式中的工厂模式说了一下,面试官又接着问还 有哪些地方,然后又瞎说了一会,就跟她说,不太了解这个,然后结束了这个问题

最后聊天,给我系统的介绍了一下微软在中国各个项目组,每个项目组主要做啥的。 问了一下职业规划。

整个面试全是手写代码,感觉微软最关注的就是 0 Bug。

作者建议

1、  常用的基础算法一定要扎实,自己可以多在纸上练练,争取做到 0 bug,


2、  同一个问题尽量学会多种解法。

3、  不要一直只刷算法,不看其他基础知识。我从研一下学期开始,基本上只看算法,其他啥也没看,现在找实习感觉太吃亏了,大部分公司基本上每面只问一个算法,其他全是 基础知识,临时抱佛脚感觉也不懂原理,还是要平时多积累,多用。

最后祝大家都能拿到理想的 offer!


PS:至此,校招季的面经分享已经分享了四篇:

本想试试看,结果却拿到了京东的Offer

拿到阿里巴巴的实习生Offer就是这么简单。

做到我这样,你也能拿到京东Offer。


如果还有其他小伙伴拿到了名企的Offer(校招、社招都要),欢迎给我投稿(稿件发送至hollischuang@gmail.com),一经采用,稿酬丰厚。同时,也欢迎原创技术文章投稿。


- MORE | 更多精彩文章 -

如果你看到了这里,说明你喜欢本文。

那么请长按二维码,关注Hollis

转发朋友圈,是对我最大的支持。

 
Hollis 更多文章 对象并不一定都是在堆上分配内存的。 Spring Boot的自动化配置原理 | 文末送书 乐观锁的一种实现方式——CAS 常用 Git 命令清单 统一配置中心的设计方案
猜您喜欢 两年砸200亿,与世界巨头相比,百度的AI水平到了什么程度? 哪种程序Bug才是最难调试的? Hello, World of Programming Languages 交互设计不受追捧,产品经理就混不下去了? 6.29@纽约 | 导师与你面对面 - BitTiger X「燎原」求职专场