技术上的思考和总结
毕业之到现在一直做客户端相关的技术和管理工作,从Android到大前端,从UI,业务组件,到音视频,架构,性能,中台,小程序等,基本上在客户端这部分能做的都多少接触了一些。在工作上经历了腾讯,阿里和OPPO,最多的时候带了40人的开发团队,现在在技术上也有了一些自己的思考和总结。
黑科技or架构
刚开始工作的几年最感兴趣的是黑科技,国内Android最早的一批黑科技之一--热修复技术,就是出自我当时所在的团队:
我自己后来也做了很多这方面的工作,包括早期在终端机器学习的整套方案,还霸榜腾讯内部知识分享平台KM首页的头条文章好几天。
但在18年自己开始带团队之后,对于黑科技的兴趣度就下降了很多,我所在的团队规模都很大,所带来的一个负面影响就是稳定性和研发效率的下降,对于这些问题,黑科技已经很难解决,况且我们看到的很多黑科技都有晋升/PR的影子,实际的ROI并不高。取而代之的就是这几年把更多的精力放在架构和方案设计上,通过更合理的架构设计,包括通用架构,解耦拆分,独立编译,提高并行开发效率,缩小问题的影响范围,最终使得业务能有更快的迭代速度,也取得了一些阶段性的结果。
业务or技术
开发同学应该选择技术还是业务?前者主要的代表就是很多公司的中台团队,后者则是业务团队。部分同学会存在一个观点,就是中台这类团队的技术能力强,更NB. 其实并不是这样,业务团队大部分TOC, 中台团队则内部TOB, 业务团队是公司的基石,中台团队的存在建立在业务的体量和复杂度之上,两者的分工不同,没有孰优孰劣。
要说到底怎么选择,我认为是几个方面:
- 应届生/初级同学更应该选择业务团队,中台是建立在业务的抽象上,对于业务没有任何了解,没有抽象能力的应届生去中台团队价值不大;
- 看个人的兴趣点,业务团队服务于业务,更关注业务,数据,增长;中台团队更多的是提供通用能力,服务于业务团队的需求;
- 在业务团队中,做一些偏向于基础的工作也是一种选择,比如我现在的部分工作。
35岁继续or转行
国内一直盛行程序员青春饭观点,早些年是32岁,后来到34,35岁,对于这种情况说一下我的观点:
- 技术能力必须与年龄是匹配的,35岁还停留在较低的级别会举步维艰;
- 大部分公司都在做人才梯队的升级,高阶的程序员依旧稀缺;
- 年龄焦虑依旧存在,但没有大家认为的那么夸张,也不是非转管理不可,国内40岁+还在写代码的程序员会越来越多;
- 保持好良好的心态,NB的人会一直NB,跟他25岁还是35岁没有关系。
另外团队还在招聘,在深圳做客户端的同学感兴趣可以和我聊聊。