就以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岁以后就失去竞争力的原因,这也是不少有一定工作年限的程序员出现薪资倒挂的原因。

Java程序员除了做增删改查还能干嘛?的更多相关文章

  1. java对xml文件做增删改查------摘录

    java对xml文件做增删改查 package com.wss; import java.io.File;import java.util.ArrayList;import java.util.Lis ...

  2. java对xml文件做增删改查

    http://www.cnblogs.com/wangchenyang/archive/2011/08/23/2150530.html http://www.blogjava.net/weishuan ...

  3. sqlHelper做增删改查,SQL注入处理,存储值,cookie,session

    一.存储值 eg:登录一个页面,在进入这个页面之前你怎么知道它登没登录呢?[在登录成功之后我们把状态保存起来] 存储值得方式有两种,一种是cookie,一种是session 1.1区别: 代码: if ...

  4. 使用java对sql server进行增删改查

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  5. Java API实现Hadoop文件系统增删改查

    Java API实现Hadoop文件系统增删改查 Hadoop文件系统可以通过shell命令hadoop fs -xx进行操作,同时也提供了Java编程接口 maven配置 <project x ...

  6. MVC学习-用EF做增删改查

    在做增删改查先,先介绍几个知识点: 1.代理类 在将对象方法EF数据上下文时,EF会为该对象封装 一个代理类对象, 同时为该对象的每一个属性添加一个标志:unchanged, 当对该对象某个属性进行操 ...

  7. Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用

    前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WH 一.JDBC是什么? Java Data Base Connectivity,java数据库连接,在 ...

  8. Hibernate第一个程序(最基础的增删改查) --Hibernate

    本例实现Hibernate的第一个程序,Hibernate的优点我想大家都很清楚,在这里不做过多赘述.总之,使用Hibernate对数据库操作,也就是来操作实体对象的! 项目目录: 一.第一步要做的就 ...

  9. 【ES】ElasticSearch初体验之使用Java进行最基本的增删改查~

    好久没写博文了, 最近项目中使用到了ElaticSearch相关的一些内容, 刚好自己也来做个总结. 现在自己也只能算得上入门, 总结下自己在工作中使用Java操作ES的一些小经验吧. 本文总共分为三 ...

  10. Java项目——模拟电话薄联系人增删改查

    该项目模拟了电话本记录联系人的业务功能,用来练习对数据库的增删改查等操作. 菜单类:Menu -- 用来封装主菜单和个选项的子菜单 Person类: Person--联系人的实体类 TelNoteRe ...

随机推荐

  1. Linux 上安装 PostgreSQL

    打开 PostgreSQL 官网 https://www.postgresql.org/,点击菜单栏上的 Download ,可以看到这里包含了很多平台的安装包,包括 Linux.Windows.Ma ...

  2. do-while循环的使用

    一.循环结构的4个要素 ① 初始化条件 ② 循环条件 --->是boolean类型 ③ 循环体 ④ 迭代条件 二.do-while循环结构: ①do{ ③; ④;}while(②); 执行过程: ...

  3. 论文解读(GGD)《Rethinking and Scaling Up Graph Contrastive Learning: An Extremely Efficient Approach with Group Discrimination》

    论文信息 论文标题:Rethinking and Scaling Up Graph Contrastive Learning: An Extremely Efficient Approach with ...

  4. apijson 初探

    apijson 初探 本文试着用 5W1H 方式切入,试图快速建立自己对 apijson 的整体认知,所以这不是一趟快速入门的 demo 之旅,而是显得比较务虚的探索式知识体系整合过程. 持续更新中. ...

  5. 并发编程之 ThreadLocal

    前言 了解过 SimpleDateFormat 时间工具类的朋友都知道,该工具类非常好用,可以利用该类可以将日期转换成文本,或者将文本转换成日期,时间戳同样也可以. 以下代码,我们采用通用的 Simp ...

  6. 三、Ocelot请求聚合与负载均衡

    上一篇文章介绍了在.Net Core中如何使用Ocelot:https://www.cnblogs.com/yangleiyu/p/16847439.html 本文介绍在ocelot的请求聚合与负载均 ...

  7. UE优化性能

    UE 优化 参考:风恋残雪的博客 Stat unit 启动一个非Debug的游戏进程 打开控制台输入 Stat UNIT .PC端 ` , Android 四指点击 正常的渲染状态: 名称 功能 Fr ...

  8. @confirguration(proxyBeanMethods = false)的作用,如何选择Full模式和Lite模式

    @Configuration(proxyBeanMethods = false) //告诉SpringBoot这是一个配置类 == 配置文件 public class MyConfig { @Bean ...

  9. shardingsphere-jdbc 水平分表学习记录

    放在自己博客里搬过来一份~ 前司使用的是自己魔改的TDDL,在家时间比较多就尝试学一些业内比较常用的中间件. 这里记录一下学习中遇到的一些问题. 环境 设置的比较简单(太懒了就测试了几个表), 两个分 ...

  10. JavaWeb2

    1. web服务器软件:Tomcat 1.1 概述 服务器:安装了服务器软件的计算机 服务器软件:接受用户的请求,处理请求,做出响应 web服务器软件:接受用户的请求,处理请求,做出响应 在web服务 ...