我的高盛面试经历分享
我通过内推申请分析师岗位,差不多一个月后才收到了测评链接。
第一轮:在线 HackerRank 测试(120分钟)
- 两道中等难度的题:一题贪心算法,一题图论。
- 大约 40-45 分钟完成了两题。
大约 20 天后收到了面试邀请。
第二轮:CoderPad 实时编程面试(1位面试官)
- CoderPad 是一个协作式编程平台,双方可以共同写代码,自带 IDE。
- 需要写出能够通过测试用例的工作代码。
问题1:
- 求字符串中第一个不重复的字符 —— 难度较低,10分钟内解决。
问题2:
- 给一个长字符串
str
,以及两个子串str1
和str2
,要求找出str1
出现在str2
之前的最短距离。 - 包含多个边界情况。面试官没有直接指出,而是希望我通过测试用例调试发现。
- 虽然没能在规定时间内处理所有边界情况,但面试官很耐心,也认可了我的调试思路。
第二天接到通知,通过此轮,进入 Super Day。
Super Day:3–4轮面试,每轮间隔1小时
每轮有两位面试官:一位主问,另一位主要观察。
第三轮:数据结构
面试官1:
- 出了一道类似 Candy Crush 的一维数组题。连续3个相同元素要被递归移除。
- 我给出了暴力解法和基于栈的优化解。
- 面试官基于原题进行了变种提问。
面试官2:
- 问了 Group Anagram(分组变位词)问题。
- 针对我写的代码进行了深入提问。
整体感觉这一轮表现不错。
第四轮:软件工程实践
面试官1:
- 给了一段 Java 代码,要求解释输出,重点考查静态绑定和动态绑定的多态概念。
- 给了一组字符串数组,要求用 Java Streams 进行 filter 和 map —— 如果对 streams 不熟悉会比较吃力。
- 最后出了一道简单的 SQL JOIN 查询题。
面试官2:
- 一道类似 House Robber 的动态规划问题。
- 一道 LEFT JOIN 的复杂 SQL 查询。开始我做错了,在提示下第二次做对了。
- 最后是一道难度较高的 DSA 题,记不清题目了。我提出的解法没通过所有测试用例,正准备写第二种方案时时间到了。
这一轮的最后15分钟表现不太理想,但大约30分钟后 HR 来电让我继续下一轮。
第五轮:软件设计与架构(1位面试官)
原本应有两位面试官,其中一位临时有事未能出席。
- 面试官深入了解了我的简历和当前项目。
- 问我如何扩展和优化当前项目,涉及一些高阶设计(HLD)概念。
- 项目涉及后端和数据库,他问了索引和分布式系统中索引的运作机制。我不全了解,但提到了 B+ 树,并结合多服务器的操作行为作了解释。
- 最后出了两个脑筋急转弯题:一个关于沙漏计时,一个是水果篮子问题。
这一轮感觉有些混合,但第二天收到 HR 电话通知进入 HM 环节。
第六轮:技术 + Hiring Manager 面试(1小时)
通常 GS 的 HM 面试只有30分钟,但我这一轮是技术 + HM 一起,可能是因为我在第四轮没解出 DSA 题。
面试官1:
- 问了设计原则,要求我解释 SOLID 原则。
- 给了一个场景,考查我对 Liskov 替换原则的理解。
- 问我了解哪些设计模式,重点问了 Observer 模式,并要求写出伪代码实现。
面试官2:
- 继续问我当前项目的业务影响和规划。
- 行为类问题,比如团队冲突如何处理。
- 简要介绍了他自己团队的工作内容。
这一轮我感觉比较顺利。
几天后收到了确认电话,反馈积极,会继续推进我的录用流程。
最后感想
整个面试过程面试官都非常支持和友好,覆盖面极广:数据结构与算法、Java 基础、低级/高级设计、设计模式、SQL、项目实践、逻辑题和行为问题。
是一次非常棒的经历。
感谢社区一直以来的支持,备考过程中你们的帮助意义重大,致敬!
P.S. 如果你也在申请 GS,不要太在意官网申请状态。我当时状态是“Application Turndown”,但 HR 告诉我是正面反馈,两周后他们又在系统上新建了职位继续推进流程。我还认识一些人,面试都开始了系统上还是“Application Turndown”。到底谁在管这个系统,我真的搞不懂。