一句话总结
高盛对软件开发工程师(SDE)的筛选本质,不是寻找改变世界的科技极客,而是筛选在极端压力下能保证资金与交易零误差的系统守护者。决定你生死的不在于你写出了多么精妙的算法,而在于你是否理解在高并发订单流下,为什么底层的并发控制和内存管理不能出任何差错。通过这场面试的关键,在于将你的思维从计算机系学生,彻底重塑为具备强业务韧性的企业级系统操作员。
适合谁看
本书指南适合正在准备2026届高盛(Goldman Sachs)New Grad SDE岗位的计算机及相关专业求职者。
如果你目前刷了500道LeetCode却依然在各大厂的面试中屡屡碰壁,如果你不明白为什么高盛的面试官放着前沿的AI大模型不问、偏偏死磕Java底层虚拟机和多线程,如果你想知道在没有金融 background 的情况下如何通过高盛标志性的Superday,这篇文章将为你彻底解密高盛技术条线的底层选拔逻辑。
为什么用刷大厂LeetCode的套路去面高盛必死无疑?
大多数应届生在准备高盛技术面试时,往往会犯一个常识性错误:把高盛当成另一个Google或者Meta。他们每天疯狂地在LeetCode上刷Hard难度的动态规划或图论题,试图用极客的算法姿态去征服面试官。然而,这种准备方向从一开始就偏离了轨。
高盛作为全球顶级的投资银行,其技术底座的本质是支撑高频交易、风险控制、合规审查以及海量资产清算的金融生命线。在这个体系里,系统的稳定性和确定性压倒一切。
在真实的面试场景中,面试官往往由来自Global Markets(全球市场部)或Asset Management(资产管理部)的Desk Lead(交易台技术主管)直接担任。
对于这些每天看着数亿美元资金在系统里流动的面试官来说,他们关心的不是你能不能用最炫酷的算法把运行时间缩短两个毫秒,而是你的代码在高并发、大流量的极端交易场景下是否会发生死锁,你的数据结构选择是否会导致内存溢出,以及你写出的金融计算公式是否会因为浮点数精度问题导致公司被监管机构罚款。
曾经在一次Securities Technology团队的debrief会议上,有一位候选人拿到了LeetCode Hard题目的最优解,但在随后的追问中,他无法解释为什么在多线程环境下不能直接使用SimpleDateFormatter,以及在高并发订单簿更新时如何设计线程安全的自旋锁。
当时主持会议的Managing Director直接给出了No Hire的判定,原因非常冷酷:这个候选人展示出的技术能力是空中楼阁,他根本不理解并发安全的代价,把这样的代码部署到生产环境,明天交易台就会因为死锁损失百万美元。
高盛的面试不是学术竞赛,而是工程可靠性测试。你必须明白,高盛的底层系统大量依赖于Java和C++。他们对语言底层的压榨达到了极致。
你不需要证明你懂最新的前端框架或者AI模型,但你必须对JVM内存模型、垃圾回收机制、TCP/IP网络协议以及关系型数据库的事务隔离级别了如指掌。如果你在面对多线程问题时,只会生硬地背诵八股文,而无法结合具体的订单撮合场景给出锁的优化方案,那么你的简历在第一轮技术轮就会被无情筛掉。
> 📖 延伸阅读:Goldman Sachs PM面试 guide指南2026
高盛Superday的三轮面试到底在筛选什么维度的能力?
高盛的Superday是对应届生心理和技术的双重高压测试。在短短半天时间内,你将连续接受三轮、每轮45分钟的密集面试。这三轮面试并非简单重复,而是有着极其严密的维度划分。正确的认知是,这三轮面试是在从不同角度测试你是否具备成为一个合格金融IT从业者的潜质。
第一轮通常是纯粹的算法与数据结构实现。这一轮的考察重点不是脑筋急转弯,而是编码的规范性、边界条件的控制以及空间/时间复杂度的权衡。高盛的算法题难度通常维持在LeetCode Medium水平,但面试官会极其看重你对异常处理(Exception Handling)和边界测试(Edge Cases)的敏感度。
例如,当题目涉及到数组操作时,你是否主动考虑了整型溢出的风险?当处理字符串时,你是否对空指针和特殊字符进行了防御性编程?
第二轮则是系统设计与面向对象设计(OOD)。对于New Grad来说,高盛通常不会要求你设计一个支撑数亿用户的推特系统,而是会要求你设计一个具体的业务模块,比如一个自动售货机、一个停车场系统,或者一个简化版的电子交易订单管理系统(Order Management System)。
在这一轮,面试官考察的不是你堆砌了多少分布式缓存或消息队列,而是你对面向对象设计原则(SOLID原则)的理解和应用。
你是否能够合理地划分各种类的职责?你是否知道在什么场景下应该使用策略模式(Strategy Pattern)来处理不同的交易规则,在什么场景下应该使用观察者模式(Observer Pattern)来通知价格变化?
第三轮则是行为面试(Behavioral)与业务契合度(Fit Round)。这是高盛最独特、也是刷人最多的一轮。高盛极其注重企业文化和团队协作。在这一轮中,面试官会模拟各种高压的工作场景来测试你的心理弹性和沟通能力。
他们会问你:当交易员在市场上遭遇紧急行情、怒气冲冲地向你抱怨系统延迟过高时,你该如何应对?当你的技术方案与资深架构师产生分歧,而项目上线截止日期就在明天时,你如何妥协与坚持?这一轮的本质,是评估你是一个只会按部就班写代码的机器,还是一个能够主动承担责任、在混乱中寻找秩序的职业人。
为什么高盛面试官极度执着于Java底层和多线程并发?
在高盛的工程实践中,Java占据了半壁江山。从支撑核心交易的Marquee平台,到后端的清算系统,Java的生态无处不在。然而,金融系统对Java的使用方式,与互联网公司有着本质的区别。
互联网公司可以通过增加服务器节点、使用分布式集群来横向扩展系统性能;而在低延迟交易系统中,单机性能和响应时间的确定性才是生死线。这就是为什么高盛面试官会像拿着放大镜一样,死死盯着你对Java底层和多线程并发的掌握程度。
在真实的面试对话中,场景往往是这样展开的。面试官不会问你什么是线程,而是会给你一个具体的业务场景:现在有一个高频报价系统,每秒钟有数万条外汇行情数据流入,你需要更新本地的缓存,同时保证多个交易策略线程能够实时读取到最新的报价。你打算怎么设计这个数据结构?
如果你回答:我用Collections.synchronizedMap来包装一个HashMap。面试官的眉头会立刻紧锁。因为这意味着你对并发锁的粒度一无所知,全局锁会导致严重的线程阻塞。
如果你回答:那我用ConcurrentHashMap。面试官会稍微点头,但紧接着就会追问:那ConcurrentHashMap在Java 8里的底层实现原理是什么?它是如何利用CAS操作和synchronized来减少锁冲突的?在扩容时,它是如何协同多个线程进行数据迁移的?
如果你依然对答如流,面试官会抛出终极杀招:如果我们的系统对延迟要求极高,连ConcurrentHashMap的锁分段开销都无法承受,你有没有听说过无锁数据结构(Lock-Free Data Structure)?你是否知道Disruptor框架的RingBuffer原理?
这不是在故意刁难你,而是因为高盛的系统每天都在真实地对抗这些技术瓶颈。如果你不理解Java的类加载机制,你就无法排查生产环境中因为第三方库版本冲突导致的NoSuchMethodError;
如果你不懂JVM的垃圾回收算法(比如G1或ZGC)的停顿时间(Pause Time)控制,你就无法解决交易系统在关键时刻因为Stop-The-World而导致的报价延迟。高盛需要的是能够直接上手排查复杂生产问题的工程师,而不是只会调用API的调包侠。
> 📖 延伸阅读:Goldman Sachs PMday in life指南2026
面对非技术出身的业务团队,你如何证明自己的系统不是空中楼阁?
在高盛做SDE,你面临的最大挑战之一,就是你的直接用户往往不是技术人员,而是那些脾气急躁、对技术细节毫无兴趣、但对业务盈亏(PnL)极其敏感的交易员(Traders)、投资经理(Portfolio Managers)和风险控制官(Risk Controllers)。在跨部门协作中,技术冲突和沟通障碍是家常便饭。
面试官在考察你的系统设计和项目经历时,会重点评估你是否具备将复杂技术语言转化为业务价值的桥梁能力。
在一个典型的Hiring Committee讨论中,经常会出现这样的争议。某位技术能力不错的候选人被拒绝,原因不是他的系统设计图画得不漂亮,而是他在阐述项目时表现出了强烈的技术自恋。当被问及为什么选择某种技术架构时,候选人滔滔不绝地解释了这种架构的学术先进性,却完全无法回答这个架构如何降低业务的交易失败率,以及在网络断开时如何保证交易数据的最终一致性。
高盛需要的沟通模式,不是自下而上的技术堆砌,而是自上而下的业务对齐。当你在面试中介绍你的过往项目或者进行系统设计时,你必须时刻将技术指标与业务指标挂钩。
例如,不要仅仅说:我使用Redis将系统吞吐量提升了三倍。
正确的表达方式应当是:我们面临的业务痛点是,在市场开盘的前五分钟内,由于大量并发查询历史持仓,导致数据库连接池耗尽,交易员无法及时下单。为了解决这个直接影响交易收入的痛点,我引入了Redis作为持仓数据的旁路缓存,设计了合理的缓存失效策略以防止缓存击穿。
最终,我们将开盘期间的下单延迟从800毫秒降低到了50毫秒,彻底消除了交易员在开盘阶段的下单卡顿现象,直接保障了开盘阶段的交易顺畅度。
这种表达方式向面试官传递了一个极其强烈的信号:你不仅是一个会写代码的工程师,更是一个能够用技术手段解决实际业务痛点、具备极强商业意识(Commercial Awareness)的潜在合伙人。在金融机构,只有能为业务创造价值或者能够为业务降低风险的技术,才是真正有用的技术。
高盛应届生的真实薪资结构与晋升路径是怎样的?
在评估高盛的Offer时,你必须摒弃互联网大厂那种高股票比例、高画饼成分的薪资认知。高盛的薪资结构非常传统,但也非常务实。对于New Grad SDE(在内部职级系统中被称为Analyst),其薪资由三部分组成:
第一部分是Base Salary(基本工资)。在纽约总部,2026届技术Analyst的起薪通常在120,000美元至150,000美元之间,具体取决于你的学历(本科或硕士)以及你所分配的具体部门(如核心交易技术部门的Base通常略高于支持性技术部门)。
第二部分是Sign-on Bonus(签字费)。这通常是一次性支付的现金,金额在10,000美元至20,000美元之间,在入职后的第一个月随工资发放。
第三部分是Discretionary Year-end Bonus(年度年终奖)。这是高盛薪资结构中最具弹性、也是最体现金融行业特色的一部分。与互联网大厂固定比例的年终奖不同,高盛的年终奖是完全根据公司当年的整体业绩、你所在部门的盈利情况(PnL)以及你个人的年度绩效评估(Performance Rating)来决定的。
对于一个表现优秀的New Grad,第一年的年终奖通常在15,000美元至35,000美元之间。如果当年赶上牛市,交易部门赚得盆满钵满,技术人员的奖金也会水涨船高。
这里有一个至关重要的内幕细节:高盛对于Analyst(初级专员)和Associate(高级专员)职级的员工,原则上是不发放RSU(限制性股票套现)的。所有的薪资、签字费和年终奖,全部以纯现金形式发放。
只有当你晋升到Vice President(副总裁)及以上级别时,你的年终奖中才会开始包含一定比例的递延股票(Deferred Stock)。这意味着,你拿到手的每一分钱都是实实在在的现金流,不存在互联网公司股票锁定期和股价波动的风险。
在晋升路径方面,高盛的技术条线有着清晰且相对迅速的通道。应届生入职为Analyst,通常在工作2.5年到3.5年后,只要表现符合预期,就可以顺理成章地晋升为Associate。
晋升为Associate后,你的Base Salary会迎来一次20%到35%的涨幅,同时年终奖的弹性空间会进一步拉大。从Associate晋升到Vice President(VP)则是一个分水岭,通常需要5到8年的时间,这需要你不仅在技术上成为独当一面的专家,更要在业务理解、团队管理和跨部门影响力上证明自己的价值。
准备清单
熟练掌握HackerRank平台的判题特性与限时训练:高盛的第一轮筛选全部托管在HackerRank平台。你必须习惯在该平台上无代码自动补全、无IDE本地调试辅助的原始编写环境。重点练习中等难度的数组、字符串处理、以及基础数学/概率题(高盛非常喜欢在Online Assessment中加入微积分和概率统计选择题)。
深入理解Java并发包(JUC)的核心源码:不要停留在背诵API的阶段。你必须能够手写一个基于AQS(AbstractQueuedSynchronizer)的自定义锁,彻底搞懂ReentrantLock、Semaphore、CountDownLatch的内部状态转化,并能清晰阐述ConcurrentHashMap在多线程下的扩容细节。
系统性拆解高盛专属的系统设计与OOP框架:高盛极其看重面向对象设计的优雅性。系统性拆解高盛专属的系统设计与OOP框架(技术面试手册里有完整的金融高并发场景实战复盘可以参考)——这种多线程模型在实际交易系统中非常普遍。你必须熟练掌握策略模式、装饰器模式和状态模式在交易流转中的实际应用。
模拟高压Superday的Behavioral Mock Interview:高盛的行为面试采用STAR法则进行极其严苛的追问。你需要准备至少4个真实的项目或校园经历故事,涵盖冲突解决、极限压力下交付、技术妥协、以及道德合规抉择。每个故事都要准备接受面试官连续3层深入细节的追问。
掌握基础的金融业务常识与术语:虽然高盛不要求应届生具备专业的金融学位,但如果你能表现出对金融业务的主动好奇心,将是巨大的加分项。你需要搞清楚:什么是Order Book(订单簿)?Limit Order(限价单)与Market Order(市价单)的区别是什么?
什么是Low Latency(低延迟)?清算(Clearing)和结算(Settlement)有什么区别?
常见错误
错误一:在金融计算中使用不精确的数据类型导致精度丢失
在算法面试或者系统设计中,当涉及到资金、价格或交易量的计算时,应届生非常容易习惯性地使用double或float来表示小数。这在金融系统中是绝对的禁忌,会直接导致一票否决。
BAD:
`java
double price = 100.05;
double quantity = 3.0;
double total = price quantity; // 结果可能是300.15000000000003,产生精度漂移
`
GOOD:
`java
BigDecimal price = new BigDecimal("100.05");
BigDecimal quantity = new BigDecimal("3.0");
BigDecimal total = price.multiply(quantity); // 严格保证十进制精度,符合金融合规标准
`
判词:不是你写出了能运行的代码就是对的,在金融系统的语境下,对数字精度的漠视就是对公司资产的犯罪。
错误二:系统设计时盲目引入复杂的微服务架构和中间件
在进行系统设计面试时,候选人为了展示自己的知识面,往往会设计一个极其复杂的分布式系统,动辄引入Kafka、Cassandra、Redis集群和几十个微服务,却完全忽视了金融系统对数据一致性和超低延迟的严苛要求。
BAD:
“为了处理高并发的交易订单,我设计了微服务架构。订单服务收到请求后,先写入Kafka消息队列,然后由撮合服务异步消费,撮合成功后通过事件驱动写入MongoDB,最后通过Redis缓存用户持仓。”
GOOD:
“考虑到交易系统对超低延迟和强一致性的要求,引入过多的网络I/O和异步消息队列会极大增加交易滑点风险。我倾向于采用单机大内存的内存数据库(In-Memory Database)来存储活跃订单簿,利用LMAX Disruptor环形缓冲区实现无锁单线程撮合,以避免线程上下文切换的开销。
对于数据持久化,我们通过顺序写入WAL(预写日志)来保证崩溃恢复,只有在非核心路径的清算环节,才采用异步消息队列发送给下游系统。”
判词:好的设计不是把系统画得多么庞杂,而是用最简单、最确定、延迟最低的架构去解决核心业务痛点。
错误三:行为面试中表现出技术至上的孤傲态度,忽视合规与团队协作
当面试官询问“当你的代码上线急迫,但合规部门要求进行繁琐的安全审查导致项目可能延期时,你该怎么办”时,技术思维严重的应届生往往会给出极度不成熟的回答。
BAD:
“我认为技术交付是第一位的。我会先将代码部署上线,确保业务正常运行,然后再去补办合规和安全审查的手续,这样可以最大程度保证业务不被耽误。”
GOOD:
“在高盛,合规和风险控制是我们的生命线,任何技术交付都不能凌驾于合规之上。如果安全审查会导致项目延期,我会首先与合规部门的同事取得联系,深入理解他们关心的具体风险点是什么,评估我们是否可以通过临时关闭非核心功能或加强监控来降低风险。
同时,我会第一时间向技术主管和业务方(Business Stakeholders)透明化这个延期风险,解释合规审查的必要性,并制定备用的发布计划(Rollback/Deployment Plan),确保在完全符合合规要求的前提下进行平稳上线。”
- 判词:行为面试不是展示你对代码交付有多么狂热,而是证明你具备在严密的合规框架内进行安全生产的职业素养。
FAQ
没有金融背景,面高盛SDE会处于劣势吗?
绝对不会。高盛在招聘New Grad SDE时,最看重的是你的计算机科学基础、逻辑思维能力和工程编码素养,而不是你的金融知识。事实上,高盛内部有着极其完善的技术与业务培训体系(如GS University),能够帮助新入职的工程师快速补齐金融知识。
在面试中,主动展现出对金融业务的浓厚兴趣,比假装自己懂金融要聪明得多。当面试官在系统设计中提到某个金融概念时,如果你不明白,正确的做法是坦诚地承认,并结合自己已有的计算机知识进行类比询问。
例如,你可以说:我之前没有直接接触过固定收益(Fixed Income)产品的衍生品定价模型,但我理解它的核心逻辑是需要根据多个实时输入的市场参数进行密集的数学计算。这在技术上是否可以类比为一个CPU密集型的计算管道?我们是否可以通过多线程并行计算或者利用GPU加速来优化这个定价引擎的响应时间?
这种沟通方式不仅不会暴露你的短板,反而会向面试官证明你具备极强的快速学习能力(Fast Learner)和技术转化业务的敏感度。
HackerRank在线测评中,数学题和编程题哪个权重更高?
在高盛的HackerRank在线测评(OA)中,编程题和数学/统计题的权重是同等重要的,甚至在某些特定部门的筛选中,数学题的正确率具有一票否决权。
高盛的OA通常包含两道编程算法题和几道单项选择题(涵盖概率论、线性代数、微积分和基本的金融常识)。许多候选人花了两小时把两道算法题写得完美无瑕,却对后面的数学选择题敷衍了事,结果连面试邀请都没拿到。
这是因为高盛的许多技术团队(如QPS - Quantitative Prime Services,或者Algorithmic Trading Tech)日常工作涉及大量的定量分析和统计建模。他们需要工程师对数字有着天然的敏感度。
在准备阶段,除了刷LeetCode,你必须花时间复习大学里的《概率论与数理统计》和《线性代数》。尤其是贝叶斯定理、期望值计算、马尔可夫链以及矩阵乘法的基本概念。在做选择题时,务必保持与写算法同样的严谨度,宁可空着不确定的题目,也不要为了赶时间而胡乱猜测,因为部分高盛的OA系统会采用倒扣分机制。
拿到Offer后,如何选择Desk(交易部门 vs 平台部门)?
在高盛,选择不同的Desk(工作台/部门)几乎决定了你未来几年的工作强度、薪资天花板以及技术成长路线。高盛的技术岗位大致可以分为两大类:Front Office Tech(前台交易技术,俗称Desk Tech)和Core Infrastructure Tech(核心平台/基础设施技术)。
前台交易技术团队(如Global Markets Technology)直接嵌入在交易台内部。你的工位可能就坐在交易员和量化研究员(Quants)旁边。
这里的特点是节奏极快、压力巨大、业务导向极强。你需要直接面对市场的瞬息万变,写出的代码可能几小时后就要部署上线去捕捉交易机会。在这里工作,你的技术视野会非常贴近业务,年终奖的弹性空间极大(因为直接挂钩交易台的盈利),但缺点是由于追求速度,你可能会面临大量的遗留代码(Legacy Code)和技术
准备好系统化备战PM面试了吗?
也可在 Gumroad 获取完整手册。