微软软件工程师面试经验 | 1年经验
通过员工推荐申请。从门户网站申请之日起 1.5 个月后收到面试通知。
第 1 轮(Codility Screening Round): 2 个问题需要在 60 分钟内完成。
- 基本字符串问题。>
- https://www.geeksforgeeks.org/lexicographically-smallest-string-formed-by-removing-at-most-one-character/
一天之内得到确认,我已入围进一步的轮次
第2轮(技术面试1):由具有2-3年经验的软件工程师参加。
- OOPS 的所有 4 个支柱
- 链表和数组的区别
- 反转链表
- 队列和优先队列的区别
- 给定几个表,它们有一些值链接表中的几行,编写一个功能代码来打印具有最高优先级的条目。 (这里的主要重点是创建具有模块化和明确定义的结构的类,在正确的点使用正确的数据结构 [HashMap、ArrayList、PriorityQueue] 和干净的编码)
第 3 轮(技术面试 2):由具有 5 年以上经验的软件工程师参加。
- 关于当前工作和技术堆栈的详细讨论。
- 添加两个已使用链接列表表示的二进制字符串(https://www.geeksforgeeks.org/add-two-numbers-represented-by-linked-lists/ 的变体)
- 搜索一个词。 (基于 Trie 的方法。只要求方法,不要求编码)
- 讨论Java中的多线程、互斥、设计模式、继承与接口、同步、生产者-消费者问题
接到招聘人员的电话,我已经通过了两次技术面试,并且我的最后一轮面试将在几天内进行。
第四轮(经理轮):由具有 20 年以上经验的工程经理参加。在简单介绍了自己之后,有人问我
- 换工作的原因
- 建设性地听取同行反馈的时期
- 你参与过的最艰巨的任务
- 关于当前项目和技术栈的讨论
- https://www.geeksforgeeks.org/check-for-balanced-parentheses-in-an-expression/ (仅询问数据结构和时间复杂度的选择)
- https://www.geeksforgeeks.org/length-of-the-longest-substring-without-repeating-characters/(仅询问数据结构和时间复杂度的选择)
同一天接到招聘人员的电话,说我已被选中担任该职位。
尖端:
- 专注于基础知识。 DSA、OOPS、操作系统
- 在技术面试中表现出学习和合作的意愿和渴望。
- 不要失去信心,相信你的准备。在校园实习期间以及在校外尝试期间,我曾被多家基于产品的公司拒绝。
- 与您指定的招聘人员/人力资源部保持良好的联系。这表明了您的渴望,他/她可以很好地指导您完成整个过程的来龙去脉。
最重要的是,相信自己。