选择基础架构还是业务开发?
这个问题主要是已经工作的朋友在问,或者是拿到多个offer在纠结选哪个。
先解释一下这两个方向
业务开发:就是做公司的业务系统。比如你在电商公司,做订单系统、商品系统、用户系统这些。大部分程序员都是做业务开发的。
基础架构:做公司的基础设施。比如做RPC框架、消息队列、数据库中间件、监控系统这些。用户不直接接触,但业务系统都依赖它。
两者的区别
业务开发:
- 离用户近,能直接看到自己做的东西被人用
- 需求变化快,经常改来改去
- 技术深度相对浅,广度要求高
- 加班可能多,因为要跟着业务跑
- 岗位多,好找工作
基础架构:
- 离用户远,做的东西是给内部用的
- 需求相对稳定,不会天天改
- 技术深度要求高,要懂底层原理
- 加班相对少(但也看公司)
- 岗位少,但竞争也小
我的看法
新人建议从业务开发开始。
为什么?因为:
- 业务开发岗位多,更容易找到工作
- 做业务能快速了解一个系统是怎么运转的
- 基础架构岗位一般要求3-5年经验
工作几年之后再考虑转基础架构。
等你业务做熟了,对系统有了整体认识,再去做基础架构会更顺。而且那时候你的技术深度也够了。
什么人适合做基础架构
- 喜欢钻研底层原理,看源码
- 不喜欢天天被需求追着跑
- 对"造轮子"有热情
- 能接受自己做的东西不被用户直接看到
什么人适合做业务开发
- 喜欢看到自己做的东西被人用
- 适应能力强,需求变了也能接受
- 更关注"把事情做完"而不是"把事情做到极致"
- 想快点找到工作
薪资差别
整体来说差不多,都是看公司和个人能力。
不过基础架构在大厂可能会高一点点,因为要求高。但在小公司可能还没有业务开发高,因为小公司不太需要基础架构的岗位。
最后
不用太纠结这个选择。
很多人都是先做业务开发,后来有机会了转基础架构。也有人一直做业务开发做到架构师。两条路都能走得很好,关键是你在这条路上能不能持续成长。
