一句话总结
Block的实习面试不是考察你会多少种语言或背多少算法,而是考察你在有限信息下能否做出合理的工程判断——那些在Hiring Committee讨论中让你通过的候选人,往往不是代码写得最漂亮的,而是能在45分钟内展现出工程思维完整性的。
Block(原Square)作为Jack Dorsey创办的金融科技公司,2024年市值超过400亿美元,其技术栈以Ruby on Rails、C++和Java为主,对分布式系统和支付基础设施有深厚积累。实习转正率在硅谷科技公司中属于中上水平,但转正流程的hard cutoff比表面看起来更严格——HC投票中只要有一票strong no,基本就进入waitlist序列。这篇文章不教你刷题技巧,而是告诉你Block真正在找什么样的工程师,以及如何在面试中展现他们想要的那一面。
适合谁看
这篇文章面向两类读者:第一类是正在准备Block 2026年暑期实习面试的软件工程专业学生,包括本科生和硕士生;第二类是已经在Block实习、正在等待转正结果或希望提高转正概率的现任实习生。
如果你属于以下情况,这篇文章的价值会最大化:你已经刷完了200道LeetCode中等题但不确定自己的面试表现到底好不好;你收到过"strong hire"和"no hire"两种截然不同的反馈但不知道为什么;你在实习中感觉表现不错但不确定manager是否真的会推动你的full-time offer。纯小白(连算法基础都没有)不适合这篇文章,因为我不打算解释时间复杂度是什么——你需要先去补基础。这篇文章假设你有一定的编码能力,缺的是对Block面试逻辑的系统理解。
需要明确的是,本文讨论的是Block的General SWE实习项目,不包括专门的前端、数据或安全方向。不同团队的HC标准会有细微差异,但核心评估框架基本一致。
Block到底在考察什么
不是语言熟练度,而是工程判断力
很多候选人犯的第一个错误是把面试当成语言考试——在coding round疯狂展示自己知道多少trick,用Python写出一行搞定一切的代码,或者在system design环节大谈特谈最新的框架名词。Block的面试官看到这些表现时,内心OS往往是"这个人可能很好用,但不是我们需要的人"。
Block的核心业务是支付处理——每秒处理数万笔交易,任何一个bug都可能造成真金白银的损失。这决定了他们要找的工程师不是学术型选手,而是能在约束条件下做决策的实用主义者。在coding面试中,面试官真正想看到的不是你的算法最优解,而是你如何理解问题、如何与面试官沟通你的思路、如何在发现错误后优雅地修正。
一个具体的场景是:面试官给你一道类似"设计一个简化版支付系统"的题目,很多候选人立刻开始写class定义和API接口。但有经验的候选人会先问几个问题——这个系统是单线程还是多线程?数据需要持久化吗?失败重试的策略是什么?这几个问题一问出来,面试官对你的评估立刻从"会写代码"升级为"会思考工程问题"。
不是完美主义,而是优先级判断
第二个常见的误解是认为Block想要完美代码。实际上,Block的面试评分表中有一个关键维度叫"trade-off awareness"——候选人是否能在时间和质量的权衡中做出合理取舍。
在45分钟的coding round中,大多数题目都无法写出production-ready的完美代码。面试官考察的是你能否识别出代码中的潜在问题(比如race condition、memory leak、边界条件),并主动与面试官讨论哪些问题需要在有限时间内解决,哪些可以标记为后续改进。一个常见的反面教材是:候选人花了30分钟把代码优化到极致,但完全没有讨论测试用例和边界情况,最后时间不够只能匆匆收尾。正确的做法是用20分钟写出能跑的baseline代码,然后用剩下的时间讨论如果这是production code,哪些地方需要加强。
这种优先级判断能力在system design面试中更为关键。Block的system design题目往往涉及真实的支付场景——比如"设计一个支持千万级用户的支付系统"。很多候选人把大量时间花在load balancer的选型上,但有经验的候选人会先问:我们的SLA要求是什么?99.9%还是99.99%?这个差异直接决定了架构的复杂度。这不是技术细节,而是工程判断。
不是独立完成,而是协作沟通
第三个误解是认为面试是个人表演。Block非常重视工程师的协作能力,这在面试中通过多个维度考察——你如何clarify问题、你是否主动确认假设、你是否听取面试官的反馈。
一个典型的反面案例是:面试官说"这个API需要支持高并发",候选人立刻开始写代码,完全没有确认"高并发"的定义是什么、QPS是多少、有没有一致性要求。结果写了20分钟后发现方向错了,面试官不得不提醒他重新理解需求。这种情况在真实工作中就是典型的"做了错误的事"——高效地完成错误的任务比低效地完成正确的任务危害更大。
正确的做法是:听到需求后先复述一遍自己的理解,确认关键参数(数据规模、延迟要求、一致性级别、可用性目标),然后提出自己的初步设计方案供面试官反馈。在Block的debrief meeting中,面试官会明确标注候选人是否展现了"effective communication"——这个词出现的频率直接决定你是否进入下一轮。
> 📖 延伸阅读:Block留学生求职产品经理攻略2026
面试流程拆解与每一轮的考察重点
第一轮:Recruiter Screen(30分钟)
这一轮由HR进行,主要目的是确认你的基本信息和Availability。Block的recruiter screen相对简短,不会问技术问题,但会确认你是否可以full-time onsite(如果你是国际学生,需要确认OPT/CPT状态)。这一轮基本不刷人,除非你的时间完全不符合实习周期或者有明显的red flag(比如简历造假)。
重点准备:把自己的项目经历用两句话能说清楚。Recruiter会问你"Tell me about yourself",这不是technical question,但好的回答能让你从一开始就建立积极的印象。建议准备一个1分钟的版本和一个30秒的版本,根据recruiter的反应灵活调整。
第二轮:Technical Phone Screen(45分钟)
这一轮是正式的coding面试,用CoderPad或类似工具共享屏幕。题目难度介于LeetCode Easy和Medium之间,但重点不在于你能不能写出最优解,而在于你的思考过程。
具体流程通常是:面试官先用5分钟介绍自己和题目背景,然后用5-10分钟让你clarify问题并提出方案,接下来25-30分钟是你写代码的时间,最后5分钟是问答环节。题目类型以数组/字符串/链表为主,偶尔会有简单的图或树的问题。
一个关键细节是:Block的phone screen通常会有一道follow-up。第一个问题解决后,面试官会修改条件让你重新思考。比如第一题是"判断一个数组是否包含重复元素",follow-up可能是"如果数组已经排序了呢"或者"如果内存有限呢"。这一轮考察的是你的adaptability——不是让你重新写一遍,而是看你能否快速调整思路。
第三轮:Onsite Interview(5-6轮,每轮45-60分钟)
Onsite是决定性环节,通常包括:
2轮Coding:和phone screen类似,但复杂度更高,follow-up更深。Block的coding题目有一个特点——很多题目改编自他们实际遇到的工程问题,所以有些题目看起来"不规范"(边界条件不明确、需要主动问面试官假设)。这是故意的,就是在测试你是否会主动clarify。
1轮System Design:通常是一个支付相关的场景,比如"设计一个支持退款功能的支付系统"或"设计一个防止欺诈的交易监控系统"。Block的系统设计考察重点不在于你用不用Microservices,而在于你能否识别关键的技术决策点并给出合理的理由。在hiring committee的讨论中,系统设计轮的表现往往是分歧最大的——有些面试官更看重scalability的考虑,有些更看重failure handling的完整性。
1轮Behavioral:Block的行为面试通常围绕他们的文化价值观展开——比如"Inclusive"(包容性)、"Think Customer First"(客户优先)。常见的问题包括"描述一次你和队友意见不合的经历"、"描述一次你搞砸了的事情"。重点不是你的故事多精彩,而是你能否展示自我反思和成长。
1轮Deep Dive:这是Block比较特色的环节,通常是你的简历项目和面试官深入讨论。面试官会问非常细节的问题——为什么选这个技术方案、遇到了什么技术挑战、如何解决的。这一轮考察的是你的technical depth和诚实度。编造经历在这一轮很容易露馅。
转正流程:Final Round Review
实习结束后,你的manager会提交一份evaluation report,然后进入HC讨论。Block的HC会综合所有面试官的评价,包括实习期间的mentor feedback。如果你实习期间表现好但某轮面试评价一般,HC会倾向于给pass;反之,如果面试很好但实习表现拉胯,HC会进入深度讨论。
一个 insider 场景是:在HC meeting中,manager的advocacy很重要。如果你的manager强力推荐并且能举出具体的例子(比如你独立解决了某个production issue、你的code review质量很高),HC通常会跟随manager的意见。但如果manager的反馈模糊("表现还可以"),HC会更依赖面试表现。
准备清单
- 系统复习核心算法:不需要刷完LeetCode 1000题,但需要熟练掌握数组、字符串、哈希表、栈队列、双指针、滑动窗口、递归、树的遍历这些基础模式。Block的coding题目很少出现hard题,但medium题的follow-up深度超出预期。
- 准备behavioral stories:至少准备3个完整的行为面试故事——一个团队协作的经历、一个解决冲突的经历、一个失败/反思的经历。每个故事准备STAR(Situation, Task, Action, Result)结构,并且能回答"what would you do differently"这种追问。
- 深入理解Block的业务:去官网了解Block的产品矩阵——Square(商户服务)、Cash App(个人支付)、Tidal(音乐)、Bitcoin。面试中提到你对这些产品的理解会是加分项。PM面试手册里有完整的Block业务拆解可以参考。
- Mock interview至少3次:找朋友或使用Pramp、Interviewing.io进行模拟。重点练习"边说边写"的沟通能力——很多候选人习惯沉默写代码,这在Block的面试中是减分项。
- 准备简历项目细节:每个项目准备一个3分钟版本和一个30秒版本。3分钟版本用于deep dive轮,30秒版本用于recruiter screen。确保能回答"为什么选这个技术方案"这种问题。
- 熟悉Block的技术栈:Block主要使用Ruby on Rails、C++、Java和Go。如果你在coding中使用这些语言并且能解释为什么选这个语言,会增加真实感。但不要为了迎合而用不熟悉的语言——用你最熟悉的语言但能解释trade-off更好。
- 了解Block的价值观:Block有明确的culture code,包括"Be Human"、"Level Up"、"Make Impact"。在behavioral面试中引用这些价值观并展示你如何践行,会让面试官觉得你是"culture add"。
> 📖 延伸阅读:Block数据科学家面试真题与SQL编程2026
常见错误
错误案例1:沉默式编码
BAD版本:面试官给了一道coding题目,候选人点头说"好的",然后开始闷头写代码。面试官全程沉默,偶尔抬头看code progress。20分钟后候选人提交代码,面试官说"有问题,你跑一下test case",然后发现边界情况没处理。面试官问"你能解释一下你的思路吗",候选人开始支支吾吾。
GOOD版本:候选人拿到题目后先复述一遍理解,"我理解的是要实现一个函数,输入是一个数组,输出是布尔值表示是否有重复,对吗?"得到确认后,候选人说"我的初步思路是用hash set来检测,时间复杂度是O(n),空间复杂度也是O(n)。在写代码之前我想确认一下,输入的数组大小有上限吗?"确认无上限后,候选人开始写代码,但过程中会不断同步思路——"现在我在遍历数组并插入hash set"、"我发现如果要处理duplicate的情况,我需要先检查再插入"。最后提交前,候选人主动说"我考虑了空数组和单元素数组的边界情况,但我没有考虑字符集的限制,如果输入是unicode可能会有问题,这个可以后续优化"。
区别不是代码质量,而是沟通模式。Block要找的是能协作的工程师,不是能独自解题的选手。
错误案例2:System design堆砌名词
BAD版本:面试官说"设计一个支付系统",候选人立刻开始"首先我们需要微服务架构,用Kubernetes做容器编排,用Redis做缓存,数据库用PostgreSQL做主数据,用MongoDB做日志,然后用Kafka做消息队列..."。面试官打断说"等等,你的系统需要支持多少用户?"候选人愣了一下,说"可能几千万?"面试官问"那你觉得需要微服务吗?"候选人语塞。
GOOD版本:候选人先问问题——"我想先确认几个参数:目标用户规模是多大?SLA要求是多少?一致性和可用性的优先级哪个更高?"假设面试官说"目标是一千万日活,SLA是99.9%,可用性优先"。候选人继续问"是面向商家还是个人用户?"面试官说"主要是个人用户,类似Cash App"。候选人开始设计——"基于可用性优先的考虑,我会采用最终一致性模型,用异步处理交易确认。核心服务包括用户账户服务、交易服务、风控服务。数据库选型上,交易数据用关系型数据库保证一致性,用户画像可以用NoSQL..."。面试官追问"如果某个服务挂了怎么办",候选人讨论了熔断、限流、failover策略。
区别在于:好的候选人先理解问题再给方案,差的候选人先给方案再问问题。在HC讨论中,system design的表现差异往往就在这里。
错误案例3:Behavioral回答空洞
BAD版本:面试官问"描述一次你和队友意见不合的经历",候选人说我和队友在技术选型上有分歧,我认为应该用React他认为用Vue,最后我说服了他用React,项目成功了。面试官问"你觉得他为什么不同意?"候选人说他可能不太了解React的好处。面试官问"如果再来一次,你会怎么做?"候选人说我还是会坚持用React,因为这是正确的选择。
GOOD版本:候选人说我和队友在技术选型上有分歧,我认为应该用React他认为用Vue。面试官问"你觉得他为什么不同意?"候选人说他有Vue的经验而且之前用Vue做过类似项目,他的担心是有道理的。面试官问"最后怎么解决的?"候选人说我提议我们各用一周时间做prototype,然后让整个团队来评估。评估后发现React在性能测试中更好,但Vue在开发效率上有优势,最后我们决定核心模块用React,辅助模块用Vue。面试官问"如果再来一次,你会怎么做?"候选人说我会更早提出prototype的方案,而不是直接试图说服他。我当时太执着于技术最优解,忽略了团队协作的效率。
区别在于:好的behavioral answer展示的是反思能力和成长心态,空洞的回答只展示结果。在Block的culture code中,"Be Human"和"Level Up"都是通过behavioral面试来验证的。
FAQ
Q1: Block的实习转正率是多少?没有转正还有机会吗?
Block官方不公开具体的转正率数据,但根据公开信息和内部讨论,实习转正率在60%-75%之间波动,取决于当年的headcount和业务需求。没有转正并不意味着你不够好——有时候只是没有hc(headcount)或者团队匹配度问题。如果你在实习中没有拿到转正,recruiter通常会在实习结束后的1-2周内通知你,并给你feedback。如果你想继续尝试,可以问recruiter是否可以重新申请full-time entry level或者下一年的实习。Block有"rehire"政策,如果你的实习评价不是negative,通常可以在其他团队找到机会。
一个具体的案例是:有位候选人在Block实习了12周,manager给出了"solid performer"的评价但没有hc给他。Recruiter在 debrief 后告诉他"你的技术能力没问题,只是这个团队今年没有opening"。这位候选人在3个月后重新投递,HR帮他匹配到了另一个正在招人的团队,最终拿到了offer。所以实习没有转正不完全是死路,重点是你在实习期间建立了什么样的 reputation。
Q2: Block的薪资在硅谷是什么水平?国际学生有没有区别?
Block的软件工程师实习薪资在硅谷属于中上水平。根据2024年的数据,Block的SWE Intern基本月薪约为$8,000-$10,000(取决于地点和年级),旧金山办公室通常在上限区间。薪资和Google、Meta、Stripe相比略低,但高于中小型公司。
具体拆解来看:Base Salary(月薪)约为$9,000-$11,000 for interns in SF;Signing Bonus通常为$5,000-$10,000,一次性支付;RSU/Stock(实习期间一般不给RSU,但full-time offer会包含,通常价值$10,000-$50,000 depending on level)。
对于full-time,new grad的Total Compensation约为$150,000-$250,000,其中Base约$130,000-$180,000,RSU约$20,000-$50,000(分4年 vesting),Bonus约$10,000-$20,000。国际学生在薪资上没有区别,但需要考虑OPT/CPT的时间安排和sponsorship问题。Block是sponsor H1B的,但每年的sponsorship数量取决于公司的整体策略。
Q3: 面试中如果遇到不会的题目怎么办?
这是几乎所有候选人都会遇到的情况。Block的面试官训练有素,不会故意出超纲题,但如果真的遇到完全没思路的题目,有一些策略可以最大化你的表现。
第一,诚实承认你不确定,但展示你的推理过程。你可以说"这个题目我没有直接见过,但我可以尝试用类似的方法来解决..."然后把你的思路说出来。面试官更看重你的思考过程而不是你能不能写出正确答案。
第二,主动问问题来降低难度。你可以说"这个条件如果放宽一点,比如不需要考虑时间复杂度,我可能会用这个方法..."这展示了你的 adaptability。
第三,如果完全卡住,可以请求提示。Block的面试官通常会给一定程度的hints,不会让你卡太久。但请求提示的时机很重要——不要一开始就请求提示,先尝试自己思考至少5-10分钟。
一个真实的案例是:有位候选人在system design面试中被问到"如何设计一个支持离线支付的系统",完全超出他的经验范围。他没有慌,而是先问"离线支付是指多久的离线?1小时还是1天?",然后讨论了"如果用户手机没网但商家有网怎么处理",然后引申到"如何防止离线状态下的欺诈"。虽然没有给出完整方案,但面试官在 debrief 中评价他"展现了优秀的推理能力和压力下的沟通能力",最终给了 hire。
面试的核心不是答对所有题,而是展示你如何处理未知问题。
准备好系统化备战PM面试了吗?
也可在 Gumroad 获取完整手册。