Java程序员除了做增删改查还能干嘛?
就以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程序员除了做增删改查还能干嘛?的更多相关文章
- java对xml文件做增删改查------摘录
java对xml文件做增删改查 package com.wss; import java.io.File;import java.util.ArrayList;import java.util.Lis ...
- java对xml文件做增删改查
http://www.cnblogs.com/wangchenyang/archive/2011/08/23/2150530.html http://www.blogjava.net/weishuan ...
- sqlHelper做增删改查,SQL注入处理,存储值,cookie,session
一.存储值 eg:登录一个页面,在进入这个页面之前你怎么知道它登没登录呢?[在登录成功之后我们把状态保存起来] 存储值得方式有两种,一种是cookie,一种是session 1.1区别: 代码: if ...
- 使用java对sql server进行增删改查
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...
- Java API实现Hadoop文件系统增删改查
Java API实现Hadoop文件系统增删改查 Hadoop文件系统可以通过shell命令hadoop fs -xx进行操作,同时也提供了Java编程接口 maven配置 <project x ...
- MVC学习-用EF做增删改查
在做增删改查先,先介绍几个知识点: 1.代理类 在将对象方法EF数据上下文时,EF会为该对象封装 一个代理类对象, 同时为该对象的每一个属性添加一个标志:unchanged, 当对该对象某个属性进行操 ...
- Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用
前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WH 一.JDBC是什么? Java Data Base Connectivity,java数据库连接,在 ...
- Hibernate第一个程序(最基础的增删改查) --Hibernate
本例实现Hibernate的第一个程序,Hibernate的优点我想大家都很清楚,在这里不做过多赘述.总之,使用Hibernate对数据库操作,也就是来操作实体对象的! 项目目录: 一.第一步要做的就 ...
- 【ES】ElasticSearch初体验之使用Java进行最基本的增删改查~
好久没写博文了, 最近项目中使用到了ElaticSearch相关的一些内容, 刚好自己也来做个总结. 现在自己也只能算得上入门, 总结下自己在工作中使用Java操作ES的一些小经验吧. 本文总共分为三 ...
- Java项目——模拟电话薄联系人增删改查
该项目模拟了电话本记录联系人的业务功能,用来练习对数据库的增删改查等操作. 菜单类:Menu -- 用来封装主菜单和个选项的子菜单 Person类: Person--联系人的实体类 TelNoteRe ...
随机推荐
- 企业微信报警中关于markdown的用法
官方文档地址:https://open.work.weixin.qq.com/api/doc/90002/90151/90853#markdown消息 请求方式:POST(HTTPS) 请求地址: h ...
- 使用Receiver接收告警信息
告警接收器可以通过以下形式进行配置: receivers: - <receiver> ... 每一个receiver具有一个全局唯一的名称,并且对应一个或者多个通知方式: name: &l ...
- useContext 解决函数父子组件传值
1在父组件外部定义变量A创建上下文,2在父组件使用变量A<A.Provider> <子组件/> </A.Provider> ,3.在子组件中创建变量使用useCon ...
- MySQL学习(2)---MySQL数据类型
ps:此随笔基于mysql 5.7.*版本. 补充: UNSIGNED:所有整数类型都可以有一个可选(非标准)UNSIGNED属性.无符号类型可用于在列中仅允许非负数存在,或者当开发者需要该列的较大数 ...
- centos离线安装nvm
PS:因为项目需,客户现场不能联网需要不同的node版本来切换,里面已经内置好了node 8.11.2和12.1.0 两个版本,使用nvm可以切换 链接:https://pan.baidu.com/s ...
- 使用Pytorch进行多卡训练
当一块GPU不够用时,我们就需要使用多卡进行并行训练.其中多卡并行可分为数据并行和模型并行.具体区别如下图所示: 由于模型并行比较少用,这里只对数据并行进行记录.对于pytorch,有两种方式可以进行 ...
- vue实现功能 单选 取消单选 全选 取消全选
vue实现功能 单选 取消单选 全选 取消全选 代码部分 <template> <div class=""> <h1>全选框</h1> ...
- Python模拟客户端
本机客户端 import socket # 获取到socket sk = socket.socket() # 获取到地址 ip 和 端口号 server端的 address = ('127.0.0.1 ...
- Java模拟生产者-消费者问题。生产者不断的往仓库中存放产品,消费者从仓库中消费产品。其中生产者和消费者都可以有若干个。在这里,生产者是一个线程,消费者是一个线程。仓库容量有限,只有库满时生产者不能存
需求分析:生产者生产产品,存放在仓库里,消费者从仓库里消费产品. 程序分析: 1.生产者仅仅在仓储未满时候生产,仓满则停止生产. 2.消费者仅仅在仓储有产品时候才能消费,仓空则等待. 3.当消费者发现 ...
- 硬核剖析ThreadLocal源码,面试官看了直呼内行
工作面试中经常遇到ThreadLocal,但是很多同学并不了解ThreadLocal实现原理,到底为什么会发生内存泄漏也是一知半解?今天一灯带你深入剖析ThreadLocal源码,总结ThreadLo ...