背景
本人普通二本本科毕业 4 年,目前是在广州工作,是一家大型的人力外包公司外包到银行的开发人员,这可能也是长期在各大招聘软件上最积极的招聘岗位。
从入职到现在已经有四个月了,也大概了解了外包的主要工作情况,也有了一些心得体会,借此机会也简单和大家分享一下自己的一些想法。
是否和行内员工有什么不一样,是否会有歧视
首先从工作内容上来说,外包等级一般最多就是高级程序员,上层有很多架构师做技术选型和业务分析,这些一般是轮不到你做的。
而如果是日常的开发任务的话,其实是并没有太大的不一样,一般你分配到哪个组,行内人员做什么工作,你就会做什么工作,开发设备大家也是一样的,电脑配置都不会太高,处于让你刚好能开发,但是别想打游戏的程度。
不过作为外包人员,一些操作权限上的确有所限制,比如如果出现一些网络环境升级的事情,行内人员不会变动,外包同事就会需要重新申请访问权限的情况,其实就和公司级别高低不同,手中账号权限也有不同一样而已。
银行大部分的人素质都很高,大家彼此之间也非常和气,有刚大学毕业的小伙子,也有工作十几二十年的二级、三级经理,大家彼此之间都是互称老师,同事之间有问题互相帮助是非常正常的事情,刚进来有很多环境和工具的不适应,处于到处问人的阶段,也基本找谁都能得到一定的回应,不用担心自己成为一座孤岛。
同时,也不会出现说让你加班赶工而他们歇着的情况,甚至可以说他们因为是体制内的人员,抱着的饭碗比你的珍贵得多得多,比你认真努力的也多得多,经常会出现我回到家里,他们还打电话过来询问工作问题,如果发现你已经下班了,也不会说什么,就说明天继续跟进就好。
使用的技术栈是否很落后,有提升空间吗
以刚从一家小创业公司出来的程序员的技术能力和视野来说,银行的整体技术方向其实并不算很是落后,还有专门的技术中台组,中间件组等技术支持部门,行内最大的业务系统每日访问流量也有上亿的,同时有很丰富的技术社区,会分享技术选型的一些分析文章,以及一些使用文档,使用过程中有什么问题也可以随时上去发表讨论,跟进修改等。
但是,银行开发真的如同冰火两重天。你具体会用到什么技术,做什么方向的开发,就看你进到什么部门了。如果是新的业务部门,可能就是用最新的框架技术;最大的业务部门,就会面临最大的业务流量的挑战。 但是如果运气不好,进到老系统部门,就可能维护年纪甚至比你大的主机代码,不一定是你常用的语言写的。甚至进到测试部门,天天做测试工具人也是有可能的,所以面试的时候问一下自己的对口部门是哪里,提前有个心理准备否则落差会很大。
这一点深有体会,大部分小伙伴可能对于银行这种组织的第一印象就是使用的技术特别老,系统或者 APP 很久都不更新一次,而且做得贼丑,用户体验贼差。实际上,很多银行实际也在改变,拥抱数字化。据我了解,很多银行每年的研发投入都非常多比如招商银行。个人觉得招商银行的 APP 体验最好,而且招商银行内部很多项目的技术都是紧跟潮流的!
而对比小公司开发经验来说,银行的开发就是体现一个大而重,但是分工挺明确的,至少之前在小公司从需求分析到页面后端数据库都会写,现在就是纯粹的后台,数据库和页面都不用管。只是内部沟通系统特别多,任务管理系统,需求分析系统,接口登记系统等等,写一个功能编码可能两小时,问清楚要做什么,开会宣讲讨论,业务沟通,完成后的需要找数据自测,跟进测试组测试等真的能花掉你很多时间。同时银行使用内部网络,网络环境不稳定,访问出错不一定是程序问题,无法登陆也是常有的事情,这个也不是针对你,是每个人都面临的问题,所以沟通成本,测试成本会很高,用不惯邮件沟通的人,看到别人发“好的”都用邮件回复你有可能会两眼一黑。
关于技术进步上,业务工作中用到的是一部分,然后社区的分享内容是一部分,最后还是得靠自己多在业余时间多去学习和成长了,也有听说有同事后面去了阿里的,也有出去面试被说技术栈和业务线太过片面的,至于最终成什么样子,终究是看你自己。
待遇和职业发展怎么样,有晋升机会吗
待遇的话,只能说是比内部人员和大厂人员肯定是比不上的了,但是比起普通小公司,又稍微算是体面的了。毕竟很多外包公司是试用期全薪,入职交五险一金,每个月还会有绩效奖金,并且疫情期间也没有拖欠,至于年底双薪就是看公司的,同一家银行的不同外包公司也不一样,有些外包会和你说清楚没有年终,让你报可以接受的月薪,这也是为什么在这种时间入职外包很多,有的是没得选,有的是觉得真的也还不错。
而加不加班这个问题,也是看你进到的开发小组的进度赶不赶,有的组真的是 965 很舒服,也有的是一段时间内会加班,这些并不是绝对的,如果你说有事一般也不强求你加班。
问过行内人,目前的加班多,主要是任务进度在疫情期间落下来了,需要赶紧补上,所以这段时间依旧会是外包招聘高峰期,也是忙碌期,而能得到的加班费比起加班量来说不是很划算,不过加班时长可以做为当月调休,这个是否值当就各自体会了。
至于晋升机会,个人目前的感受是,很难。外包除了进来时依靠年限硬性定下的初中高级以外,工作岗位和内容上没有明显区别,所谓的外包项目经理只是做做沟通协调的工作,没有领导力的锻炼可言,只是绩效奖金稍微多些。所以大部分外包人员不会长久,一两年是常态,能做三年以上的就是老员工了。至于有些人说的外包转行内,我只能说这边几百号人,好像还没有人成功过。
笼统地来说,大部分外包公司对你技术的成长都是有限的。但是,如果你的经验不是很丰富的话,在外包公司其实也挺锻炼的。
因为,你可能会接触到很多的项目。另外,如果你选择了外包工作,不要自己觉得不好,觉得别的正式员工会瞧不起自己。在外包过渡一两年没啥的,对于你漫长的职业生涯来说。
总结
目前感受就是这么多了,其实很多工作都是如人饮水,冷暖自知。比起那些动不动几十万的大厂而言,外包肯定是不体面也不光鲜的,但是比起一些没有体量,不稳定的小公司,也算是一个还不错的临时避风港吧。
但是,外包工作毕竟不是长久之计,千万不要温水煮青蛙,努力提升自己,早日上岸。
最后,在这里我也分享一份干货,由大佬收录整理的Android学习PDF+架构视频+面试文档+源码笔记(点击这来github),还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
核心技术及面试题
Andorid从底层基础到架构成长笔记目录
Android开发必备底层技术模块
BATJ这些大公司都要求有扎实的Java语言基础和虚拟机底层原理,这一个部分就是Android开发中最常用的java语言相关知识。在这个里面,结合了Dex文件加密实战和热修复手写实战来让大家深刻体会Java语言体系的重要性以及在Android开发中的地位
FrameWork源码与UI及jetpack模块
在Android中,Framework泛指系统架构层。Framework的中文意思是“框架”,在软件开发中通常指开发框架,在一个系统中处于内核层之上,为顶层应用提供接口,被设计用来帮助开发者快速开发顶层应用,而不必关心系统内核运行机制,通常Framework都会隐藏main函数等应用程序必须的组件,开发人员只需把精力放在功能代码的实现上。说简单点,Framework具体的工作也就是为android应用开发的开发人员提供了一系列的服务和API的接口。
FrameWork源码解析: Binder+Handler+Zygote+ AMS+ PMS+WMS
UI底层源码深度剖析篇:UI绘制流程+ LayoutInflater + 事件分发机制+ 属性动画+ViewGroup+ View
Jetpack实战及大厂架构演进实践手册
Android性能分析与优化实战方案
作为一名Android程序员,说实话要做好性能这一块,真心不容易。为什么这么说? 是因为需要接触的知识实在是太多了, Android 是一个整体,牵一发而动全身,不是说只懂一个模块就可以做好。这份《Android性能分析与优化实战进阶手册》,让每一个想进入 Android 系统开发和优化这个领域的人,能通过这份笔记手册快速入门,同时也算是对知识的一个梳理,查漏补缺,终身学习。
- 内存优化
- 布局优化
- 启动优化
- 卡顿优化
- 稳定性优化
- 电量优化
- 线程优化
- 瘦身优化
Andorid高级音视频实战模块
- 基础语法
- H264视频编码
- H265编码原理及应用
- MediaCodec集训
- Opengl与音视频编解码
- 实战
Android架构师必备源码框架精讲解析模块
Gradle高阶实战模块
- Groovy语法
- Gradle Android插件配置
- 实战
Kotlin入门到精通模块
Flutter2.0混合式开发模块
- Dart语法
- Flutter2.0之UI
- Flutter2.0进阶
- Flutter2.0优化
- 实战
鸿蒙2.0系统开发模块
- Ability组件
- 分布式任务
- 事件总线
- 鸿蒙线程
- UI自定义控件