背景介绍:计算机本科+硕士毕业。工作6年半,三份工作,都在金融IT。前两份各三年,应该都比较充分,第三份半年。恰好是三个不同类型的地方。可以回答一下这个问题。
第一份工作:全国性大型知名商业银行,软开中心。作为应届生从程序员做起,到小型项目的项目经理。行内对科技非常重视,有战略性投入。以自主开发为主,绝少引入供应商,对新人的技术培养、老人的知识传承都比较有体系。但实际升迁空间有限。
技术上单位内有很好的一些技术资源储备,有一些公共库可以使用,一些技术业务方面的专家可以供你咨询。开发上以解决需求为主,一些技术细节问题不会深究,能解决问题就行(参考我的另一个回答
开发、测试、发布流程上相对比较严谨,分工很细。特别让我印象深刻的是测试人员非常专业。基本没有应用运维,应用运维靠开发组自己。运维只负责基础环境准备和DBA。
按时上下班,中午休息两个小时还能午睡。单位离市区近,整体生活节奏比较舒适。会学习到很多业务知识,和全国各分支行的业务人员会有不少交流,对整个银行IT的生态分布也有一个比较全局性的认识。在里面,做一颗舒服的螺丝钉就好。适合应届生锻炼技术、业务、开阔眼界、或nb的社招专家进入,或靠经验资历颐养天年,不适合有很强事业心或提升欲望的人。
第二份工作:第二梯队的全国性商业银行,某业务条线事业部的科技团队,对外和总行科技部对接,对内负责本条线一些系统的开发。做项目经理为主,往架构师方向进行发展。行内战略对科技重视度一般,对本业务条线更是很弱。所以虽然收入上去了,但工作内容比较繁杂痛苦。
开发上比较依赖供应商,付款又很抠,所以供应商不可能给你交付什么好东西,这样反而耗费了自己人的大量心力在里面。领导从上到下没有技术精神,精力都在政治斗争和整人上面,干活儿的人不到一半。这么多系统的正常运行,靠的是基层员工的尽职尽责高素质,和比较强有力的运维保证。
单位在荒郊野外,上下班痛苦,生活质量比较低下。每天需要面对长途跋涉、年久失修的老旧系统,供应商希望给你不咸不淡贿赂你还要担合规风险,大领导信口开河画大饼,小领导莫名其妙骂人,从不罩手下,只会把手下推出去挡枪,还要当心不小心说错话被同事抓住把柄坑你。
团队效率极低,内耗严重,每天的时间就在一封一封扯皮邮件中度过。倒是锻炼出了一幅老油条嘴脸,和所谓“沟通能力”、“推动能力”。不适合应届生、有技术追求、亚美体育或职业追求的人去,比较适合有政治斗争经验、或有相当社会资源的人进去获取利益。
第三份工作:小型券商,初创的互联网金融团队,在行业内领先发力,处于急剧上升阶段。公司战略层面对团队非常重视,有战略性倾斜投入。领导技术出身,对前沿技术研究、储备很有sense,对业务也十分精通。在招收团队成员时候非常务实。互联网风格的团队。目前希望通过自己的努力,能够成为团队的骨干。比较忙,时常可能会到晚上9,10点。到半夜12点都会在网上讨论问题。
总结:在职场上,我的观点还是“专才甚于通才”。回顾我遇见过的在职场上发展很好的人,无一例外都是有一技之长+执行力极强的人。“一技之长”这个词其实是很重的,并不是你有个知识好像比其他人提前了解一点就可以的,而是确实要在某一方面成为专家,当别人有这方面问题的时候第一时间能够想到向你求助,而你在大部分时候都能够有效率的搞定。这样才能树立一个有一技之长的口碑。
特别在金融IT行业,会有很多“继续做技术还是转作业务”的迷思,可能是我个人能力有限,我还是觉得所谓“复合型人才”是个伪命题,在金融企业中就是定位你为技术人员,就是需要你把各类技术问题搞定,去应聘面试就是要考察你的技术能力亚美体育。诚然了解一些金融知识会帮助你理解需求、更好沟通,但绝不是你的核心竞争力。除非你有过人之处,你的金融技术比科班出身的人更强,才能够成为你的一技之长。
团队需要的是能够把一方面事情搞定落地的人,而不需要看起来背景优秀、风度翩翩、实际卷起袖子来却又漏洞百出要人擦的人。
1.工作的内容其实和在互联网公司或者软件公司区别不大,以开发为主。但开发的流程严谨和复杂程度,根据每个项目和每个公司不同而不同。
2. 生涯规划这就不好说了。有稳定升职的,有跳到业务部门的,有转行的都有。
3. 目前感觉工作幸福感挺高的,无论同事,技术氛围都挺满意。而且公司在技术上投入很大,很多技术的讨论和分享,让人感觉技术在公司是收到重视的。不过想想,幸福感高的原因,也可能是因为有个好老婆!
金融公司的范围太大了。我来尝试从对冲基金的角度来说几句吧。抛砖引玉,欢迎批评指正。
有比较复杂的界面:被要求开发一个同时用六个显示器的程序,在开发的时候会有遇到
对实时性要求比较高:在市场大幅波动的时候,如果因为你程序的性能的原因,交易没有完成的话,交易员惨了,你也惨了
主要是为了抓住市场机会,任务一般要求比较急:我们的一个程序按照正常的软件开发流程开开发的,有DEV/QA/PROD版本。但是上线以后我们的交易员一直使用QA版本,PROD版本后来都不去做Release了
Risk这个部门不应该算是IT部门。不过一般里面有不少Quant每天也是在编码,所以就一起说一说。他们会偏数学一些,用的语言也会是C#、Java、C++、Python、R或者Matlab。而前台和后台的开发一般是:Java/C#。
Infrastructure这个和一般公司差别不大。无非就是预算比较大,设备买好的。对于有交易团队的地方,交易时间断网了,他们就可以不用混了。再有就是对安全比较重视,装一堆七七八八的监控。
在业内公认领先的银行IT机构里搞过推广、开发、生产运维和项目管理等多个角色,转眼五年多过去了,昔日的同事一下遍布整个金融IT圈子——国有大行,股份银行,城农商行,基金证券还有互联网金融公司。
金融IT算是金融业与IT业的混血儿,但却有时候却同时受到这两个母业的误解:
金融业:在金融公司搞IT也算是搞金融?那金融公司的门卫大爷也算是搞金融的咯?
它一直以来都是作为成本中心而存在,想知道投入到哪里的可以参考下面这个传送门
这里主要讲下金融公司总部的IT部门的工作体验,如果想知道分行/分公司的发展规划,请参考以下传送门
从不同行业的横向对比来看,业务种类越多越复杂的金融公司,其系统复杂性越高,所需的人力也就越多。商业银行作为业务种类最多的金融机构,一直都是金融IT业的大头,基金、证券、期货和投行等金融机构业务种类较为单一,业务系统数量相对来说较为较少,可维护性较强。业务系统越多其系统复杂性便呈指数型增长:如果只有两个关联系统,潜在的连接是两个(双向关联),如果有三个关联系统,潜在的连接便是六个了。商业银行特别是国有大行不同业务系统之间的关联关系已经复杂到令人发指的程度,越复杂体现在工作上也就是越繁忙。
从发展时间轴来看,购买厂商产品--雇佣外包开发团队--建设研发团队是金融IT发展的三个主要阶段,每个阶段内部员工逐渐增多,外部支持逐渐减少。在购买厂商产品阶段,工作以搜集整理需求为主,厂商提供的一般是普遍适用的产品,金融IT从业员根据业务部门提出的要求整理需求,不断向厂商提出个性化改进的需求。在雇佣外包开发团队阶段,工作转向IT团队及项目开发方向,IT外包公司提供驻场工作人员,提供部分技术支持,金融IT团队在公司原有产品的基础上增加自身的需求,逐渐转化为独有的产品;这个阶段运维也逐渐转为专业化,开始建设自己的专用机房。最后,在建设研发团队阶段,开发、测试及运维团队开始转向内部员工为主,外包外聘员工逐渐减少,产品在吸收公司产品优点基础上,开始具有自主知识产权,开始大规模升级重构。
从工作强度上来看,总的来说,“在路上”发展阶段工作强度较大,用那句百用不厌的话来形容就是“时间紧任务重”。什么是“在路上”?简单来说就是正在面临重大架构、体系调整,人数有限经验有限,任务是死的人是半死的。如何巧妙地避开这类阶段?从公司选择上避开几乎不可能,金融IT业近些年发展很快,几乎每个金融公司的IT部门都会有这样的项目,加入之后也就意味着较大的工作强度,同时也意味着较大晋升机遇。
其次就是不同岗位的工作区别,大致上可以分为科技管理、开发测试和生产运维三个方向。
1.科技管理。听起来似乎有些高大上,但实际上就是个打杂的。工作以沟通(吵架)、报告(请示)、协调(博弈)为主,琐碎事情非常多。
工种涉及应用管理(应用系统建设规划)、项目管理(跟踪项目进度)、报告管理(定期整理汇总数据)、采购管理(产品、服务的测评及竞标)、需求管理(将业务部门的需求翻译成程序猿看得懂的语言)乃至专利管理(专盯专利局)、安全管理(合规内控、安全案件等)。
常见于银行总行科技部,各公司PMO(项目管理办公室)、研发管理办公室、测试管理办公室,项目组项目经理等。
工作体验:鉴于广大程序猿不爱说人话、不会说人话的特点,工作的成就感在于通过刷脸的方式帮广大一线工作者提供翻译服务,游走在刀锋的感觉;挫败感在于经常被杂事所淹没,经常一天下来发现没干正事。如果想要在这个岗位有所成长,那么强烈建议在一线(开发测试、生产维护)锻炼一年以上。
工种如果用游戏来比喻的话,开发人员(码农)和测试人员(黑盒)是两个基础职业,所有进阶职业都需要在基础职业满足经验需求后才可获得提升。
开发人员(码农):工作以修改代码为主,参考老代码根据业务规则的变化进行修改,新增功能等,工作难度不大,会读代码就能写代码,各类非计算机出身(数学、物理、电子等)的应届毕业生可顺利转型。
开发人员(技术专长):如Oracle、DB2、AIX、z/OS、Cobol等,通过时间累积总能在技术上获得专长。
开发人员(业务专长):如银行卡收单、法贷、纸黄金、电子银行、SWIFT汇款等,代码怎么写业务流程就是怎么样,业务人员也没法比自己更清楚。
架构师:脱离了某类语言或某类系统的局限性,开始全局性考虑系统性能容量、体系架构、跨应用交互、横向纵向扩展性等问题,可以回答“双十一你这系统顶得住吗”这类进阶问题,开始思考应用系统“是什么?从哪里来?往哪里去”这类终极问题。
测试人员(黑盒测试):工作以做交易为主,编写测试案例,模拟业务人员交易场景,对照软需验证功能,发现Bug及时报告。
测试人员(技术专长):不满足于黑盒测试,开始阅读代码尝试白盒测试,开发自动化测试工具、推进持续集成测试,编写测试脚本,实施性能压力/疲劳测试。
测试人员(业务专长):开发人员看到的只是一个点,测试人员看到的是整个面,相对于开发的深,测试人员更擅长广,整个业务条线的交易代码倒背如流,业务流程如何优化他们更有发言权。
工作体验:谁说金融IT只能搞技术?技术和业务两个方向始终向你打开。人的性格特点不一样,有的喜欢跟机器打交道,有的喜欢跟人打交道,适合自己的才是最好的。我选择了业务方向,你呢?不用急,慢慢摸,没人在一开始就知道。开发测试累吗?累,开发是一线,功能如何实现所有人都要问你;测试是二线,一不小心就可能漏过几个亿。
3.生产维护。金融IT成果的最终把关者,再牛逼的系统最后没上线都是白搭。
工种涉及应用维护(与开发测试对接)、操作系统维护(操作系统用户管理、参数管理等)、存储维护(外置存储挂接、NBU备份)、网络维护(思科网络实验室算什么!的可是跨国的广域网!)、系统组件维护(DB2\WAS等等)、运行操作(在规定时间按下规定按钮)、设施维护(空调、排水、电力等)。
工作体验:系统上线、机房搬迁等是最崩溃的,为了减少业务影响,金融生产系统的变更一般安排在晚上10点后,凌晨6点前。熬夜是常有的事情,半夜被电话吵醒也是常事,加上数据中心常建在郊外,晚上万物俱静,加班后如何归家是个难题。但如果系统运行稳定,事情会相对少些,由于工作的特殊性,调休也会比较容易,凑出个长假出个远门还是很方便的——对了,手机别忘了开漫游。
总的来说,金融IT是个细分度很高的职业,没有人可以做到一门通门门通,永远保持一刻谦卑的心,向不同专业的人学习才是成长之道。
软件研发 (application development): 投行会有一些自己研发的软件,所以需要研发人员。即使是从各种供应商那里购买专业的软件,也需要有自己的程序员来根据公司具体的需要来加工处理这些软件(customization).
技术支持 (IT support): 除了专门写代码的程序员以外,当然还有专门的技术支持人员负责这些软件的日常维护,给用户疑难解答之类。当然,发现重大问题的时候就得需要软件研发的人来进行调整,甚至找供应商解决。
商业分析 (business analyst):business analysts是其他部门和IT间的桥梁,比如说,risk IT的business analyst就负责和风险管理部接洽,把风险管理部门的用户需求翻译成具体的IT任务,甚至帮助测试。
质量测试 (quality assurance): 顾名思义金融,就是进行各种测试
基础设施构建与维护 (IT operations, system engineering):构建和维护各种基础设施,比如服务器,网络,数据库,以及一些全银行的人都会用的系统,比如邮箱啦即时通讯工具啦之类。
项目管理 (project management):可以是任何方面的IT项目,确保钱到位,人到位,项目进展顺利。
行政管理 (business management):负责管理预算,经费,编制等等。
服务管理 (service management): 由于IT终极意义上讲是一种服务,而且现在很多银行会把一部分IT外包,就产生了服务管理岗。它可以是和外包商接洽,确保外包的质量,也可以是IT内部确保服务高效高质量的一种岗位。
IT风险管理:银行最重要就是安全,所以有专门的风险管理人员来评估和解决IT方面的风险问题。
继续做投行IT,努力爬到管理层:你可以在同一种岗位上一直做,或者在各个IT岗位和各个IT部门跳来跳去,随着年资,能力,阅历的增长,你负责的东西会越来越多,与此对应的就是升职。但是比起负责给投行赚钱的front office,IT的升职会相对缓慢。而和所有的企业一样,投行IT也是金字塔层级,所以越往上越难升职,机遇人脉就越重要。
跳去对口的投行其他部门,比如finance IT的跳去做投行的财务:一直做finance IT的系统,能把系统玩得很熟不说,对finance部具体的业务也肯定是要了解,和finance部的用户也会有接触,所以有合适的机会就可以跳过去。但是即使你做的是front office的系统,跳去front office还是很难。
跳去供应商公司(vendor side):比如你一直在做一个从vendor那里买来的财务系统,你对这个系统有了相当的了解,也经常和vendor打交道,那么,跳去vendor side不难。跳去以后很有可能继续被派去做金融机构财务系统的consultant或者support
跳去咨询公司:因为有了多年从事金融业IT的经验,可以去咨询公司做偏金融IT的咨询师
跳去纯科技企业,做和金融不相关的纯IT工作:金融IT以用户需求为主,以安全性为最高考量,所以比起谷歌之类纯IT公司,投行IT使用的科技必然相对陈旧。有一些技术很强的程序员之类可能做了一段时间觉得金融IT无法实现自己做尖端科技的愿望,或者太迁就用户,所以会选择跳去纯IT企业。
投行IT是支持性部门,所以氛围相对轻松。工作强度取决于很多因素,比如你做什么岗位,支持的对口部门是否pushing,你组里人手够不够,今年上的项目多不多,等等。但是就国际投行而言,很多时候会需要和其他地区的同事开会讨论,或者有可能你支持的用户在其他地区,那就要求你很有可能晚上上线工作,开远程会议。另外金融,普通工作日很难进行系统维护和更新,所以经常会有周末做升级做维护之类。不过,现在大家都比较人性化,IT部门也因为要晚上开会或者周末工作之类可以有灵活的工作时间,比如昨晚开会了,今天就晚去上班,周末工作了,就能拿到半天一天的额外假期。很多时候也可以在家办公,尤其是晚上开会之类。
总体而言,投行IT其实并不适合特别有野心的人。如果你立志在金融界有一番作为,那么front office更适合你;如果你想在IT领域大展宏图,去纯科技类企业当弄潮儿吧。但如果你想要的只是一份待遇不错的工作,不谋求火速升职,工作时间相对灵活,压力也不大的工作,那么可以来投行做IT。当然,在投行做IT不代表混吃等死毫无建树,毕竟,支持性部门cost很重要,如果你做的东西没有给企业带来价值,或者有办法找个比你薪水低很多的人做同样的东西,那么你的位子岌岌可危,这种现象在中低管理层里尤为明显。所以你得一直想办法让自己不可或缺,想办法让自己给企业带来价值,这也就意味着从长期来讲,你必须要保持思考,保持学习。其实做任何工作都是如此,当你觉得学不到东西得不到发展的时候,就是该改变的时候了。