作者:苍何,前大厂高级 Java 工程师,阿里云专家博主,CSDN 2023 年 实力新星,土木转码,现任部门技术 leader,专注于互联网技术分享,职场经验分享。
🔥热门文章推荐:
- (1)对程序员来说,技术能力和业务逻辑哪个更重要?
- (2)搭建GitHub免费个人网站(详细教程)
- (3)itchat实现微信聊天机器人
- (4)嗖嗖移动业务大厅(源码下载+注释全 值得收藏)
大家好,我是苍何。据统计,截至2021 年底,中国服务外包产业从业人员共 1395.4 万人,. 其中大学(含大专)以上学历 897.6 万人,占从业人员总数 64.3%。外包提供了很多的就业岗位,而对于程序员特别是那些转行过来的或者是没经验的,外包成了很多人无奈下的选择。
既选之,则安之。不管我们处在那个平台,成长都是需要自己的努力。特别是做 IT 技术,更需要我们与时俱进,不断学习。那在外包公司,我们究竟该如何更好的提升自己呢?
最近有小伙伴问的问题是关于这方面的,除去敏感部分,现在给读者朋友们做个分享。
一、问题
苍何,您好。先自我介绍一下哈,我是三本自动化专业 18 年毕业的,毕业后一直从事自动化方面工作,22 年自学java,今年 4 月找到一家银行外包。 工作内容:银行开发的旧系统移到 java 上。业务代码不是重新写的,而且通过转换工具将代码生成到 java。平时只需要检查 java 代码是否有语法错误,在通过数据库找到符合业务的数据去检验业务逻辑是否有问题。
系统采用 dubbo 架构,但平时工作中也只是弄自己负责的接口,也接触不了 dubbo,也接触不到redis 那些常见的中间件。就连 spring 都涉及不到。 总的来说,还是对这个岗位不太满意,觉的学不到太多东西,
银行技术跟别的企业脱钩有点严重(但对一个刚转行的我来说还是能学到一些东西的)。 想提高自身能力,换个好点工作。
我的困惑是:
1、如何能通过工作内容去提高自身?
2、学习方向,规划? 目前是应该学些基础的,底层的,例如jdk源码。还是直接去背常见的八股文,学习些中间。还是找一些开源项目去做呢…
3、如何复盘呢?有推荐的文章吗
4、之前想在工作摸鱼时间 看看 jdk 源码。但是公司不许连外网,看源码时,总感觉抓不到重点,不知道这个问题改怎么解决 辛苦苍何帮解惑一下。
二、苍何回答
同学你好,针对你的问题,以下是我的一些个人建议:
1、如何能通过工作内容去提高自身?
大部分银行系统是出了名的老旧,银行的业务追求的是稳定,资金在各个系统之间的流转优先要保障稳定,技术创新或新技术一般是要市场上经过很长时间的验证,银行才会引入。所以处理银行业务业务时,最先关注的也是要求稳。代码陈旧,业务代码技术落后,不会干预你在这份工作中得到成长。
因为你是刚转码没多久,编程经验相对欠缺,在银行外包,你的工作看似只负责接口和处理一些简单的没太大技术含量的事情,倒不如先在此沉淀一段时间,可以着重关注以下去学习:
① 学习经融领域业务知识
经融业务其实挺复杂,涉及到资金交割、资金流转、备用金、关联交易、safeguarding 等专业术语知识和业务知识是需要沉淀学习的,业务了解到位,下一份可以继续在经融行业待着,以后也可以跳到银行本部去。
② 关注开发流程、提效工具
即使外包、或是系统陈旧的银行系统,都会有比较成熟的开发流程,比如上线流程是怎样的,pre环境、灰度环境、以及线上环境是如何过度的,如何解决链路调用的问题的,如何做的CI/CD,其实列举还有很多,这些无关乎代码的提升,但对刚入行的同学来说,熟悉开发流程和提效工具,会是你以后编程道路的基石。
③ 梳理你负责模块业务,寻求可优化点
本项目的源码你应该是可以拉到的,对着源码和一些文档,尝试自己去梳理业务流程,试着画出流程图、按照链路自己试着写主流程用例,去debug,每一步深挖,看是否有优化的地方,或者别人这么写是不是可以学习一下,逻辑思想或设计模式是否可以参考,即使代码再陈旧,这些都是可以学习的地方。
2、学习方向,规划?
如果你想跳槽,那建议照着八股文先去复习,不过看你时间,如果跳槽时间充裕的话,可以从底层的开始准备,如计网、算法、Java虚拟机、消息队列等(我之前也发了一些我之前复习的文章,可以参考下),也可以在过程中去通过开源项目提升能力,看别人是怎么做的,如何设计的系统。
如果想短期内快速跳槽,复习时间较短的话,建议直接啃八股文,来的快些。
3、如何复盘呢?
复盘是反思和总结的过程,可以帮助发现问题、改进和提升自己。分工作复盘和个人复盘。
①工作复盘
你可以记录每个项目的收获和教训,思考自己在其中的表现和成长点,找到可以改进的地方,记录下来,比如一个小的迭代结束后,你去做下复盘总结,看你在这个过程中的成长点和做的不好的地方。不瞒你说,我之前在阿里,我们组每两周就会有技术双周会,主要就是总结这两周做的好的和不好的,在会上进行分享。其实是很好的一件事,能看自己这段时间是否有成长。
那一般怎么进行呢?
我是通过语雀的知识库,专门有个共享空间可以做工作复盘,团队成员也都是可见的。如果你不能连接外网的话,建议用markdown,记录下,在周会上或者项目结束总结会上拿出来做分享,听取别人对你的建议。
⑤个人复盘
周期可以不用太短,比如可一个月或者半年复盘一次,总结这段时间的成长点,或者生活遇到的趣事,自己发现的新大陆,都可以拿出来复盘总结,并且把这些分享出来,比如分享到星球,得到别人的赞认可,也能可以正向激励,关键是,对自己这一段时间做的复盘,会让人觉得自己的时光不是在混沌中度过。
我看到的很多的大佬都有复盘的习惯,推荐去语雀的“「逛一逛」可以发现很多大佬的复盘总结文章,相信对你会有些启发。
4、公司不能连外网如何看源码
通过你描述,我2个理解,分别回答一下:
1、可以下载 jdk 的源码包,在 IDEA 可以看到 JDK 的源码,但是因为电脑无法连接外网,对有些源码没法上网查注释
比较好的读源码的方式是:
①拉源码,通过单元测试,调试技巧,各种IDE的辅助功能和插件了解调用关系。
②根据单元测试打断点,查看调用栈。
③结合源码解读的图书和文章再去理解(可以下班自己电脑查看)
④结合官方文档的功能文档和架构文档来读(可以下班自己电脑查看)
⑤带着问题或者遇到问题后深入研究某一块,可以查看 pull request 或者 issues。
⑥使用 chatgpt 或 cursor 等人工智能工具学习源码(可以下班自己电脑查看)。
2、无法直接下载 jdk 源码
即使不能连接外网,像 JDK 这样的源码,在银行外包也决对能找到下载的路径,一般有些企业是放在私服上,有些企业是有专门的网盘来存源码,或者找呆的久的同事问问,也可找银行同事问问,应该都可以找到。
三、总结
对于经验缺少的小伙伴来说,在银行外包其实也能学到不少的东西,比如规范的发布流程,良好的编码规范,复杂的系统业务,甚至你可以看看里面大神写的漂亮优雅的代码。还是那句话,在一个平台,在服务岗位的同时需要不断挖掘平台能给自己带来的价值,做到和岗位共成长。
全文完,你觉得咋银行外包工作能锻炼人吗?欢迎评论区留言。
创作不易,如果本文对你有帮助,欢迎点赞、收藏加关注,你的支持和鼓励,是我创作的最大动力。