前言

按照一贯的尿性,脱离了剂量谈毒性都是耍流氓,年薪这种事,脱离了地域城市谈多少钱也是耍流氓。我有个同事,最近去了腾讯,职级为8级,从他那里获得的信息是,在深圳,8级可以拿到将近50W,而在非北上广深的城市,即使也是在腾讯,8级一般拿到是30W左右,相比在深圳,基本上要打个6、7折。

所以年薪40W在不同的城市,要求的水平就不一样,在成都、西安、武汉这些新一线城市,年薪40W,到了北上广深差不多可以拿70W。反过来在北上广深拿40W,去新一线城市,差不多拿26W左右。

柿子当然是捡软的捏,我们看看在北上广深拿40W大概需要什么样的技术水平。国内目前以Java技术栈为主的公司有阿里、美团、京东等等,我们从中选择一家,看看年薪40W的要求是什么,就能明白要求的技术水平。

按照网上流传的互联网公司薪酬表格,年薪40W,相当于阿里的P6,资深工程师的水平。

阿里的P6的要求是什么?从阿里的社招官网我们可以很容易的查到:

抛开第5和第6条,我们仔细分析下岗位要求中的技术条目。

首先要求JAVA基础扎实,这里面包括熟练掌握数据结构、多线程编程,掌握常用的设计模式;熟悉JVM,包括内存模型、类加载机制以及性能优化。

数据结构是个老生常谈的东西了, 这是程序员的基本功,不限于Java程序员。只不过为什么要考察数据结构和算法,很多人其实并不知道,用知乎上一位大牛的说法:

  1. 程序员这个群体也是有金字塔结构的。如果连基本的算法和数据结构都不会,基本上就比较底层,底层就意味着低薪酬。
  2. 没有扎实的算法和数据结构基础,很难及时发现问题并提出独到的见解。
  3. 技术栈日新月异,如何快速适应新技术和新环境?要求程序员必须具有以不变应万变的的计算机思维、算法思维和逻辑思维能力。

对于年薪40W来说,数据结构和算法仅仅掌握数组、链表、栈、队列,基本的排序和查找肯定是不够的,如何计算算法的复杂度,图论,动态规划等等还是需要掌握的,除此之外必要的刷题和面试前对常见大厂算法面试题的突击,无疑在面试中可以大大的加分。

多线程编程,也就是我们常说的并发编程,只会用线程池和JUC下的并发工具类,不能算基础扎实。 至少应该包括但不限于通晓CAS的原理和问题,阅读过JUC中诸如AbstractQueuedSynchronizer之类的源码,明白Java内存模型JMM和相关的并发安全问题,对synchronized和volatile的底层实现有一定的涉猎等等,才够得上对多线程编程基础扎实。

设计模式和JVM,虽然是两个完全不同的知识,但是对于年薪40W来讲,却有一定的相似性。 什么相似性?两者都是仅仅记住概念和理论是远远不够的,一定要有实际的经验。

  • 例如JVM,岗位上面的要求是“熟悉JVM,包括内存模型、类加载机制以及性能优化”,类加载机制和相关联的双亲委派模型的概念半天就记住
  • JVM性能优化也无非就是那几条原则,比如尽可能减少FULLGC的次数,缩短每次GC的时长等等
  • 但是具体在生产环境中应该如何做呢?通过阅读GC日志能发现JVM哪些可以调整的地方?项目中内存泄漏问题怎么排查?内存占用过高怎么解决?

再看第二条,精通spring mvc、orm框架(ibatis或hibernate),熟悉前端开发(js、html、css)。在现在前后端分离的大趋势下,对Java程序员来说,前端的知识不会要求特别高,一般来说能看懂就差不多了。 而对各种开源框架,知道或者用过里面的常用注解,能写出一个完整的SSM程序就算精通了?我想,在IT职场待过一年以上的人,都会有一个共同的答案,不是!什么是对开源框架的精通?必然包括阅读过框架的源码,对底层的原理和机制非常熟悉,出了问题,能快速定位到具体的原因和位置; 或者接触了一个从未用过的公司内部框架后,能够从已知的开源框架原理和机制里得到的知识迅速地推断、掌握这个陌生的框架。

第三条,“熟悉常见的中间件、分布式解决方案及其原理:分布式缓存、SOA、消息中间件,负载均衡、连接池等;”,虽然只有一句话,包含的信息量却很大。

  • 首先,常见的中间件包括的东西是很多的,Redis、Zookeeper、Dubbo、以Kafak或RcketMQ为代表的消息中间件、MongoDB、分库分表相关的数据库中间件、Nginx等等。
  • 其次,只知道这些中间件的用法,层次显然不够拿年薪40W。继续往高层次前进,仅以Redis为例,它的两种持久化方式,从原理的角度再结合自己的业务哪种更适合?在分布式架构下常见的可用性,伸缩性问题,在我们使用Redis的过程中怎么解决?其他的各种中间件当然都各有各的原理需要掌握。

第四条,“具有一定的项目规划和决策能力,善于捕捉业务需求、架构设计中存在的问题,并给出有效的解决措施和方法;”,很明显,指明了需要架构设计经验和解决相关问题的能力,这条和前面的第三条是密切关联的,没有第三条作为基础,架构设计经验和解决相关问题的能力都是无根之水,无本之木。

  1. 比如分库分表后的唯一性ID,根据业务情况,是Redis自动生成、雪花算法还是Mysql提前序列表更适合我们?
  2. 分库分表后的分布式事务,应该选择哪种解决方案?柔性事务还是TCC?
  3. 按照业务的发展趋势用标准的分布式还是转向微服务?
  4. 海量订单数据如何存储和检索?
  5. 超卖、秒杀等高并发场景怎么设计?

上述的这些,都是在业务和架构设计中都有可能遇到的问题,能不能给出有效的解决措施和方法,这些都是年薪40W甚至更高应该达到的水平。

总的来说,掌握的技术越精通,越全面薪资越高。经过总结和细化,下面的技能掌握了,年薪40W就问题不大了:

具体的架构进阶路线图 点此“传送门”即可 获取

相信这份路线图对于你系统进阶以及准备 Java 方向的面试都很有帮助!正如作者说的那样,这是一份:涵盖大部分 Java 程序员所需要掌握的核心知识的 Java 学习+面试指南!

说明:收集内容过多,限于篇幅,本文只做部分内容的目录展示。有需要的话我这边可以免费分享给大家:一键三连(点赞+收藏+关注) 后,点此“传送门”即可​​​​​​​ 获取

基础

JAVA基础

JAVA集合

JAVA多线程并发

网络

数据结构与算法

框架

Spring

SpringMVC

MyBatis

设计模式

分布式

负载均衡

Zookeeper

Redis

MQ/kafka

微服务

Netty与RPC

Spring Boot

Spring Cloud

Dubbo

调优

MySQL

JVM

Tomcat

需要获取以上资料的朋友:一键三连(点赞+收藏+关注) 后,点此“传送门”即可​​​​​​​​​​​​​​ 获取

我:搞Java年薪40W是什么水平? 阿里架构师:也就这样!相关推荐

  1. 程序员:搞Java年薪40W是什么水平?我:也就洒洒水了(滑稽)

    前言 按照一贯的尿性,脱离了剂量谈毒性都是耍流氓,年薪这种事,脱离了地域城市谈多少钱也是耍流氓.我有个同事,最近去了腾讯,职级为8级,从他那里获得的信息是,在深圳,8级可以拿到将近50W,而在非北上广 ...

  2. Java架构师和java工程师的区别是什么?架构师薪资是多少?

    java架构师,现在很多新手都知道的名词,这个职位最早在IT领域是没有的,是由于最近几年来,互联网的迅猛发展,网站对于对数据量和高并的活跃度发所引发的需求,引起了众多传统的技术人员的力不从心,越来越多 ...

  3. Java面试题以及答案精选(架构师面试题)

    整理中....未整理完 大家好,本人面试基本 "笔试死".问"基础死"."Java常识死"那一类型的....面试的过程中也从曾经被" ...

  4. 搞Java的年薪 40W 是什么水平?

    既然提到年薪40w,那我们看看什么公司,什么级别可以给到,再看看要求. 阿里是Java大厂,所以可以参考阿里的标准. 阿里一般是16薪水,所以就是税前2.5w,在阿里应该是P6就可以达到,而对P6的要 ...

  5. 搞 Java 的年薪 40W 是什么水平?

    年薪40w已经算很高的了,我觉得这个东西很难定义.有很多应届生凭借自己丰富的项目经历.不错的学校出生.在一些含金量比较高的比赛获奖的经历拿到了大厂sp或者ssp的offer的薪资就接近这个数了.不过J ...

  6. Java 程序员,年薪 40W 需要什么水平?

    前几天在网上看到这么一个问题,搞Java的程序员年薪40w是个什么水平? 一下勾起了我的兴趣,今天就来简单分析下,到底是什么水平. 那么我们先来搞清楚"JAVA"是谁家姑娘? 不不 ...

  7. 阿里巴巴Java开发程序猿年薪40W是什么水平?

    对于年薪40万的程序员,不只是技术过硬,还有一个原因是他们所在的公司福利高,或者会直接持股.在BAT中就是一个很好的案例,例如阿里巴巴P7,P8级别的员工不仅是年薪30到80万不等,还有更多股票持有. ...

  8. 有这么一套,阿里架构师熬夜一周整理的java进阶路线,你看不看?

    前言 最近老是有粉丝私信我说感觉自己学java越来越难了,这其中有刚毕业的应届生说自己的技术找不到满意的工作,也有在学校的大学习说找不到学习方式,更多的是正在工作的java开发人员说是现在的技术更新太 ...

  9. Java程序员如何成为优秀的架构师

    怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作三五年之后开始迷茫的老程序员经常会问到的问题. ...

最新文章

  1. 怎么一键备份服务器系统还原,电脑怎么一键还原
  2. mysql 连接查询_Swoole 实战:MySQL 查询器的实现(协程连接池)
  3. 一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式
  4. prometheus+consul服务发现+alertmanager配置
  5. Puppeteer设置浏览器代理的三种思路
  6. Linux环境搭建nginx负载
  7. 存储程序(1)——MYSQL
  8. qt同时连接oracle和mysql_QT连接Oracle和Mysql的详细步骤,已成功~!
  9. mysql win10 无法配置文件_MySQL设置文件无法更改的处理方案详细说明(Win10)
  10. 上传文件到某文件夹时,提示...路径访问被拒绝
  11. 【实践】网易云音乐推荐中用户行为序列深度建模.pdf(附下载链接)
  12. elasticsearch-head 集群健康值: 未连接
  13. Hadoop安装教程单机/伪分布式配置
  14. 在Ubuntu18上使用fusedav挂载城通网盘webdav
  15. 999999999分解质因数
  16. 台式计算机如何上无线网络,台式机如何无线上网
  17. 第五章 初始化和清理
  18. 数据库(Mysql)的事物详解
  19. KT148A语音芯片SOP外挂功放芯片8002D的说明_V1
  20. 青村茶舍||“城乡居民基本养老保险”社会治理创新活动

热门文章

  1. 网吧免费上从概念到实践
  2. 自动控制原理---频域
  3. htonl函数 c语言,c – 理解htonl()和ntohl()
  4. 听云-java探针安装使用
  5. 【极简版GH60】【GH60剖析】【四】轴的安装与焊接
  6. Android 实现PDF预览的全面解析
  7. opengl绘制钟表
  8. 基于单片机心率测试仪毕业设计全套
  9. java编程基础篇-- 编写一个程序,从键盘输入三个整数,求三个整数中的最小值。
  10. 移动端按住说话功能实现