去年秋天,一个学弟问我银行科技岗值不值得投。他手上有一个互联网的意向和一个银行的笔试通知,想问哪个”更有前途”。
我没法替他选。但我说了一句话,他后来记住了:这两个地方对”好工程师”的定义不一样。互联网认的是把东西做出来、做快、做大;银行认的是让一个已经跑了十年的东西继续不出错地跑下去。
这句话听起来像劝退。其实不是。它只是决定了人在里面会过得舒服还是别扭。
银行要的不是最强的工程师
银行系统的特殊性在于,它处理的每一件事都能对应到钱、账户、凭证和审计。一笔转账失败,不是页面报个错就结束了,后面有对账、有差错处理、有客户投诉、有监管口径。这套约束会一路传导到代码里:接口要幂等,状态要留痕,操作要能追到人,改动要走审批。
所以面试官问的东西,和互联网不太一样。同样是”高并发下单”,互联网会往 QPS、缓存击穿、压测上追;银行更可能问的是,重复请求怎么防、扣款成功但入账失败怎么办、月末对账不平怎么补、这笔操作三个月后被查,日志里能不能还原。
这背后是一种不同的价值排序。快当然重要,但快不是第一位的。不出错、出了错能查、查到了能改,才是。这也解释了为什么这里的很多系统看起来旧:它们不是没能力换,是换的成本比留着更高。
我见过有人在这里很不适应。他喜欢新框架,喜欢重构,喜欢把一处逻辑写得更优雅。这些在别的地方是优点,在这里经常被问一句”上线之后出问题谁负责”,然后就没有下文了。不是因为资深的人不懂技术,是因为他们见过一次事故拖垮一个团队的样子。
反过来说,如果享受的是把一个东西做稳、做久,把边角的情况一个个补上,这里给人的空间其实比想象中大。银行系统里那些没人愿意碰的老模块,往往是最好练手的地方——修一个坑,能看见它后面连着多少东西。
综合面问的也沿着这条线。为什么来银行做技术,能不能接受流程和审批,介不介意做长期维护,这些问题没有一个标准答案,但有一个共同的潜台词:这个人会不会做半年就走。回答”银行稳定”是最省事也最没用的说法,它把动机交给了外部条件。我更愿意把它说成具体的:对支付、风控、账务这类系统的复杂度感兴趣,愿意在出错代价很高的地方练手,接受改动要评审这件事。这些话不一定讨喜,但它至少是真的。
笔试才是真正的筛子
很多人把银行秋招当成”技术面定胜负”,我看到的顺序不是这样。
这条链路大致是:网申、简历筛选或测评、统一笔试、技术面、综合面或 HR 面、体检背调、签约。真正卡住大多数人的,是前两关。网申是一个结构化的表单,系统按关键词匹配,HR 再人工过一遍;笔试是统一机考,按分数排。这两关不过,项目讲得再好也没人听。
时间上,网申集中在八月到十月,提前批更早,有的银行七月就开了。笔试通常在网申后一两周陆续通知,部分机构集中在十月。面试在十月到十一月,体检和签约拖到十二月也很正常。
笔试的内容比技术人想的杂。行测类的言语、数量、判断、资料分析,英语阅读,金融和经济常识,计算机基础,再加上编程题或者 SQL。银行 IT 岗也考这些通用能力,不会因为是技术岗就免掉。
我见过技术不错的人在这里翻车,原因很具体:资料分析做不完,逻辑推理耗太久,性格测评前后答案矛盾。这些不是能力问题,是没练过。行测的时间压力跟写代码完全不是一种压力,它要求人在四十秒内做一个没把握的判断,然后立刻放弃,去做下一题。这个习惯得靠限时模拟养出来。
我自己的建议是提前四到六周开始,把复习拆成三条线:行测每天限时做一套,计算机基础按专题过,项目按面试追问重写一遍。三条线并行,不要等公告出来才动。公告出来到笔试往往只有两三周,那时候再开始,只能抓到最表面的东西。
计算机基础那一块的深度也值得说一句。它不会问某个框架的源码,但会问索引为什么能加速、联合索引什么时候失效、事务隔离级别各解决什么问题、进程和线程的区别、TCP 为什么三次握手。这些问题的共同点是:它们都能在项目里找到对应。答题时如果能补一句”我在项目里是这么用的”,分数会明显不一样。
编程题我见过的都不难,数组、字符串、哈希、排序、简单递归。难的是一小时里做完还要保证边界正确。练习的时候不要追求题量,追求一次写对:空输入、单元素、重复元素、越界。这个习惯比多刷五十道题有用。
性格测评这一项,我的看法很直接:不要扮演。它前后有重复题,扮演的人容易自相矛盾,反而被标出来。而且这类测评想筛的不是”优秀”,是”匹配”。装成一个能接受一切的人,进去之后难受的是自己。
简历要能经得起十分钟深挖
银行技术面通常不长,十几二十分钟,一两轮。时间短意味着面试官不会给机会慢慢展开,他会在前几分钟里判断要不要继续问。所以简历上写的每一个词,都得是能立刻接住的。
简历筛选我看是三层。第一层是硬条件:学历、专业、毕业时间、英语、应届身份。第二层是关键词:Java、Spring、MySQL、Redis、Linux、SQL 优化、数仓、测试自动化,看方向和岗位对不对得上。第三层是项目能不能落地,这一层最容易被写坏。
写坏的方式很典型。一种是只写技术栈:”使用 Spring Boot + MySQL 完成系统开发”。这句话没有信息,任何人都能写。另一种是夸大:”精通分布式高并发”,然后在面试里被问事务隔离级别答不上来。还有一种是硬套金融:把一个课程作业写成”金融风控平台”,追问两句就露馅。
我比较认的写法是五段:这个系统解决什么问题,我负责哪一块,技术上怎么做的、为什么这么选,遇到过什么风险、怎么处理,最后有没有可量化的结果。五段里最值钱的是第四段,因为它证明我参与过真实的判断,而不是照着教程敲完。
举个例子。一个校内设备预约系统,写成这样就有说服力:负责权限和审批模块;基于角色设计用户、角色、权限三张表;高频校验的结果放缓存,菜单加载从几百毫秒降到两百毫秒以内;提交接口加了状态校验,防止重复预约;越权审批在服务端拦截,不靠前端隐藏按钮。
这段里没有一句”精通”,但每一句都能被追问,而且追问下去还有东西可说。银行系统在意权限、审批、数据准确和稳定,这些东西正好对得上。
项目数量上,两到三个讲得透的,比五个只有标题的强。每个项目至少要能回答:表怎么设计的,接口的入参出参是什么,出问题怎么定位,如果重做会改哪里。
还有一个细节,网申表单、附件简历、面试自我介绍里的时间、技术栈、职责必须一致。不一致的地方,面试官一定会问,而且问的时候带着怀疑。
简历上的东西,到了面试要靠另一种方式证明。技术面真正拉开差距的,不是会不会背八股,是能不能把技术决策翻译成业务后果。
同样一个问题:为什么转账接口要幂等。背概念的回答是”防止重复提交”。够用的回答是:客户端超时重试、网关重发、用户连点两下,都会让同一个请求到达两次;如果没有幂等键,第二次会再扣一次钱;所以要用业务单号做唯一约束,在数据库层拦住,而不是在应用层判断”刚才是不是处理过”。
再往下问:扣款成功、入账失败怎么办。这就到了状态机和补偿的领域。回答里要出现”中间态””重试””对账””人工兜底”这些词,而且要能说清哪一步是自动的,哪一步必须有人看。
这类问题没有标准答案,面试官也不是在找标准答案。他在判断人有没有想过”钱在哪一刻算真的动了”。想过这件事的人,写出来的代码会和没想过的人很不一样。
对账是最能看出这一点的地方。日终跑批,一边是系统内的流水,一边是渠道返回的文件,两边对不上怎么办。答”重跑一遍”的人,通常没处理过真实的差错;答得出”先按状态分层,能自动冲正的自动冲正,需要人工的先挂起并生成差错单,同时限制该账户的后续操作”的人,是碰过的。这也是为什么我不建议在简历上虚构金融项目:这类追问往下走三层,虚构的人就没了。
技术栈的广度反而没那么重要。写 Java 还是 Python,用 MySQL 还是 Oracle,进来之后都可能换。真正带得走的是判断:什么时候该拦、什么时候该放、什么时候必须叫人。
我常用的一个练习是:拿自己项目里的一个接口,假设它处理的是转账、贷款审批或者账单查询,重新想一遍。哪里要加幂等,哪里要加事务,哪里要留审计字段,失败了怎么告警,出了事怎么人工补。想完这一遍,项目还是那个项目,但可讲的东西完全变了。
还有一个容易被忽略的点:不要为了显得高级,硬塞微服务、消息队列、大模型。银行面试官对这些词很敏感,一追问就是”为什么需要”,答不上来比不提更糟。简历上留白,比写满然后被拆穿要好。
数据方向是另一套问法。SQL 写得怎么样,数仓怎么分层,指标口径谁定,数据倾斜怎么处理,模型效果下降怎么发现。这里有个银行特有的关注点:可解释。一个 AUC 高但说不清为什么拒贷的模型,在业务和合规那里都过不去。准备的时候,能把”这个特征为什么进模型”讲清楚,比多报两个算法名字有用。
测试和运维方向更容易被低估。测试岗问的是怎么设计用例,转账失败、重复扣款、并发下单这类场景怎么验;运维岗问的是日志怎么排查、变更怎么回滚、备份怎么验证。这些问题的共同点是,它们都假设系统会坏。能自然地假设系统会坏的人,在这类岗位上通常比只想着怎么把功能做出来的人更合适。
技术面时间短,所以它考的不是知识面,是密度。
自我介绍我会压到一分钟以内,只说三件事:学校专业、一段最相关的经历、为什么投这个方向。不要从家乡讲到爱好,那些在表单里已经填过了。
项目介绍我给一个固定的开场:一句话说清这个系统是做什么的,一句话说清我负责哪一块,然后停下来等追问。停下来这一步很多人做不到,总想把准备好的五分钟讲完。可是面试官的时间有限,他更愿意顺着自己关心的点往下问,讲满五分钟,等于把这十几分钟里最值钱的部分用掉了。
被问到不会的,我的做法是当场划出边界:这块我没有实际做过,我理解是这样一个机制,但细节不确定。然后把它挂到一个我熟悉的场景上。硬编一个答案的风险很高,因为银行面试官往往就在这个方向上工作,两句就能听出来。
反问环节我一般问两个。一个是这个岗位最近半年主要在做哪类事情,是新系统还是存量改造。另一个是团队里一个新人的前三个月通常怎么过。这两个问题的答案,比任何招聘宣传都能说明进去之后的日子。
选机构其实是在选自研比例
同一家银行,总行科技部、软件开发中心、数据中心、金融科技子公司、分行科技条线,工作内容可以差得很远。招聘公告上写的都是”信息科技岗”,进去之后可能是写核心系统,也可能是管机房、跑变更、对接厂商。
国有大行和头部股份行的科技体系比较完整,岗位分工细,流程规范,笔试统考的特征也明显。股份行的科技子公司节奏更接近互联网,技术方向更活,压力也更大。这两类适合想要平台和体系的人,代价是流程长、决策慢、个人能推动的事情有限。
城商行和农商行是另一种情况。单家招聘人数不多,但地域覆盖广,岗位往往集中在总行科技部或者省市一级的科技平台。省会城市、经济强市的城商行,可能有相对完整的开发、数据、测试、运维团队;县域机构则更可能招一两个信息科技岗,日常是系统维护、网络、机房、业务支持和厂商对接。
这里最关键的一个变量是自研比例。如果核心系统高度依赖外部厂商,本行科技人员的主要工作是需求沟通、测试验收、生产变更、权限管理和应急处置。这不代表岗位没价值,但它和”写代码成长”是两条路。想深耕后端或者数据的人,入职前一定要问清楚实际开发占多少。
要问的问题我归成三个:入职后归属总行还是分支,日常开发和运维的比例大概是多少,核心系统是自研还是主要靠厂商交付。这三个问题答清楚,比比较”银行名气”有用得多。
风险也要说。农信改制、农商行合并、区域银行整合这些年并不少见,整合之后系统统一、平台上收、岗位调整都可能发生。对求职者是机会也是不确定。小团队的优点是接触面广,缺点是缺少系统的代码评审和架构训练,几年之后想跳去更大的平台,需要自己有意识地积累可迁移的东西:数据库、Linux、数据分析、项目交付和业务建模。
如果让我给一个粗的判断:想做技术深度,优先看有自研体系的总行研发中心或者科技子公司;想留在某个城市、接受业务与技术混合的路线,强区域的城商行是合理选择;把县域机构的综合 IT 岗当成本地就业的稳妥选项,但要提前接受它偏运维和支持的现实。
签约前还有几件事值得确认,它们不影响过不过,但影响后不后悔:岗位是正式编制还是派遣、有没有轮岗、可能被分到哪个城市、试用期的薪资比例、有没有服务期和违约金。这些问题在 offer 阶段问是正常的,入职之后再问就晚了。
流程之外,还有一件影响结果的事:节奏。我见过不少人,技术不差,最后结果不好,原因不在某一场面试,而在整条节奏。
一种是把所有希望放在几家头部机构上。大行总行、热门科技子公司,竞争最集中,任何一环出问题都没有补救。合理的组合是冲几家、稳几家、保几家,覆盖不同的城市和机构类型。这不是降低期待,是保证你有足够多的样本,让某一次的失误不至于变成整年的结果。
一种是把笔试当成面试的附属。技术好的人尤其容易这样想,觉得自己代码写得动就行,行测随便做做。实际是笔试先筛人,而且筛得很硬。这一关的投入产出比,比多背二十道八股高。
还有一种是面完就忘。银行流程长,一个人可能同时推进五六家,每家的面试问题高度相似。面完半小时内记四件事:被问到的技术题、项目被追问的细节、HR 关心的动机和城市问题、自己答得最差的那一段。下一次直接换上改好的版本。这个动作加起来不超过十分钟,但它是整个秋招里复利最高的一件事。
十二月之后还有补录。有人前面几轮没成,就不再看了,其实部分机构会在后面补人。把没成的环节逐项过一遍:是网申关键词不对,是笔试低于线,是项目讲不清,还是综合面动机太单薄。归因要具体到环节,不要停在”学历不够”或者”运气不好”这种解释上,那种解释除了让人舒服,没有任何用处。
说回最开始那个问题。这套流程走下来,我最大的感受是它筛的东西很朴素:一个人能不能在一个约束很多的环境里,把一件事做完整。
它不奖励聪明。聪明在这里的用处有限,因为大部分难题不是想不出来,是协调不动。它奖励的是耐心、书面表达的准确度、以及在没人盯着的时候仍然按流程走的习惯。这些东西在面试里表现为:项目描述有没有边界,回答里有没有”如果失败”,提到风险时是泛泛而谈还是具体到某一步。
我也不觉得这条路适合所有人。如果最享受的是从零做出一个东西、快速迭代、看着数据涨,这里会让人觉得处处是刹车。如果更在意的是把一个系统维护得让后来的人少踩坑,那这里的评价体系是认这个的。
至于 AI 会不会改变这些岗位的内容,我暂时没有答案。写代码的部分肯定在变,但”谁为这条链路的正确性负责”这件事,短期内没有变。银行招人时反复确认的,其实也就是这一点。
评论