就以Java后端开发为例,说说不同级别程序员干的事情。

1 初级开发,大概是有3年Java开发经验。

    22年底,上海,这批程序员如果学历是本科,薪资一般是8k到2w,当然如果能进好公司或互联网大厂,薪资能更高。初级开发干的活一般是能做各种增删改查业务,遇到简单问题,比如空指针之类的,能通过看日志解决,也能适当干些和人沟通的事情,比如和其它组沟通API。

    初级开发阶段,熟手和新手的差别不仅体现在业务上,更体现在技术层面。或者说,如果初级开发只是熟悉业务,后继发展会受限。初级开发阶段,熟手更应该从数据库优化、解决各种数据库问题以及分布式组件或微服务组件使用层面来提升自己。

    这里再说个可能会引发争议的观点,比如某程序员,学历可能是大专甚至更低,在一家小公司里做java后端,也干了5,6年,但如果技术层面只是做增删改查,可能这位程序员凭借对业务和产品的了解,在小组里甚至是公司里起到比较重要的作用,但从技术角度来说依然是初级开发,因为如果出去面试,很难展示比增删改查更值钱的技能。所以哪怕是初级开发,都应该不仅仅做增删改查。

2 高级开发,3年以上其实就已经具备成为高级开发的经验年限。

    还是按上海,22年底的薪资,高级开发起步的薪资可能就已经接近2w了,如果高级开发具有5,6年java经验,要个3w也不成问题,但年薪40w一般是高级开发的上限了。

    相比初级开发,高级开发在日常工作中一般高级在如下两个方面,第一是能带一些人做业务,即成为项目开发小组长,第二是能解决些比较有难度的问题。

    高级开发在公司里,可能未必能做到项目经理的级别,但在带人开发的时候,需要全面掌握项目测试部署的技能,而一些初级开发解决不了的问题,比如分布式组件方面的问题,高级开发能解决。

    这里再说个可能会引发争议的观点,在一些小公司,尤其是人数在50人以内的楼层公司甚至是房间公司,其中技术负责人,当然有些公司可能还给挂上个技术总监的头衔,论能力的话,其实也就是个高级开发的水准。而且有些小公司的这些技术负责人,估计薪资也就是2w出头些。

    所以如果java后端开发,达到高级开发的水准的话,平时工作,增删改查已经是占很小的比例,更多地要负责项目的开发维护运行,以及要解决些相对值钱的问题。

    顺带再说个高级开发和初级开发的差别。初级开发的话,平时工作一般是仅限于java和数据库,比如spring boot+oracle数据库,而高级开发就要涉及些测试工具,部署工具,同时就已经要在linux上干些部署项目和看日志排查问题的活了。

3 再往上就是架构,一般有5,6年开发经验的后端就能去挑战架构的职位了。

    上海22年底底行情,架构的薪资一般能达到3w,一般公司的架构师,哪怕做到技术负责人,封顶一般是50w年薪,大公司的话,架构一般能给到七八十万,但年薪过100w的架构真不多。

    顺带说下,要成为架构,不是说公司给个头衔就成,一般小公司的技术总监,有些放大厂也就是个高级开发的水平,要成为架构,得薪资上达到架构的水平,一般至少得40w吧。

    架构的活,一般是根据业务的特征,比如并发量可用性等特性,或者看要不要接消息中间件,然后设计出整个产品,或一些模块的架构,同时还要搭建环境,比如在linux上安装redis或kafka。此外,架构还有个比较重要的活,是要确保系统运行的平稳性,比如要搭建监控,设计出系统上线的方案,以及出现故障的修复方案。当然如果出现组件或架构方面的问题,架构也要修改。

    就举个典型的例子来说高级开发和架构的差别,比如系统遇到个dubbo远程调用的问题,从日志上看,报错不是在业务代码层面,而是dubbo组件内部的class类里,这时高级开发可能就不大能解决,但架构师能解决,而且是在架构的职责范围内。

    从实际工作中,其实高级开发和架构的一些职责是重叠的,比如都需要搭建系统的架构,都需要排查和解决架构层面的问题,但从技术角度来看,架构师需要更资深的技能。

    通过上文,大家能看出,在java后端方面,如果只会增删改查,估计顶多只能做到初级开发,不过事实上真有不少Java程序员在一些小公司呆久了,虽然工作年限很长,但论能力只会增删改查,这也是不少程序员在30岁以后就失去竞争力的原因,这也是不少有一定工作年限的程序员出现薪资倒挂的原因。

posted on 2022-12-13 11:28  hsm_computer  阅读(2008)  评论(8编辑  收藏  举报