所以年薪40W在不同的城市,要求的水平就不一样,在成都、西安、武汉这些新一线城市,年薪40W,到了北上广深差不多可以拿70W。反过来在北上广深拿40W,去新一线城市,差不多拿26W左右。
柿子当然是捡软的捏,我们看看在北上广深拿40W大概需要什么样的技术水平。国内目前以Java技术栈为主的公司有阿里、美团、京东等等,我们从中选择一家,看看年薪40W的要求是什么,就能明白要求的技术水平。
按照网上流传的互联网公司薪酬表格,年薪40W,相当于阿里的P6,资深工程师的水平。
阿里的P6的要求是什么?从阿里的社招官网我们可以很容易的查到:
职位详情 - 阿里巴巴集团招聘
首先要求JAVA基础扎实,这里面包括熟练掌握数据结构、多线程编程,掌握常用的设计模式;熟悉JVM,包括内存模型、类加载机制以及性能优化。
数据结构是个老生常谈的东西了, 这是程序员的基本功,不限于Java程序员。只不过为什么要考察数据结构和算法,很多人其实并不知道,用知乎上一位大牛的说法:
对于年薪40W来说,数据结构和算法仅仅掌握数组、链表、栈、队列,基本的排序和查找肯定是不够的,如何计算算法的复杂度,图论,动态规划等等还是需要掌握的,除此之外必要的刷题和面试前对常见大厂算法面试题的突击,无疑在面试中可以大大的加分。
多线程编程,也就是我们常说的并发编程,只会用线程池和JUC下的并发工具类,不能算基础扎实。 至少应该包括但不限于通晓CAS的原理和问题,阅读过JUC中诸如AbstractQueuedSynchronizer之类的源码,明白Java内存模型JMM和相关的并发安全问题,对synchronized和volatile的底层实现有一定的涉猎等等,才够得上对多线程编程基础扎实。
设计模式和JVM,虽然是两个完全不同的知识,但是对于年薪40W来讲,却有一定的相似性。 什么相似性?两者都是仅仅记住概念和理论是远远不够的,一定要有实际的经验。
再看第二条,精通spring mvc、orm框架(ibatis或hibernate),熟悉前端开发(js、html、css)。在现在前后端分离的大趋势下,对Java程序员来说,前端的知识不会要求特别高,一般来说能看懂就差不多了。 而对各种开源框架,知道或者用过里面的常用注解,能写出一个完整的SSM程序就算精通了?我想,在IT职场待过一年以上的人,都会有一个共同的答案,不是!什么是对开源框架的精通?必然包括阅读过框架的源码,对底层的原理和机制非常熟悉,出了问题,能快速定位到具体的原因和位置; 或者接触了一个从未用过的公司内部框架后,能够从已知的开源框架原理和机制里得到的知识迅速地推断、掌握这个陌生的框架。
第三条,“熟悉常见的中间件、分布式解决方案及其原理:分布式缓存、SOA、消息中间件,负载均衡、连接池等;”,虽然只有一句话,包含的信息量却很大。
第四条,“具有一定的项目规划和决策能力,善于捕捉业务需求、架构设计中存在的问题,并给出有效的解决措施和方法;”,很明显,指明了需要架构设计经验和解决相关问题的能力,这条和前面的第三条是密切关联的,没有第三条作为基础,架构设计经验和解决相关问题的能力都是无根之水,无本之木。
上述的这些,都是在业务和架构设计中都有可能遇到的问题,能不能给出有效的解决措施和方法,这些都是年薪40W甚至更高应该达到的水平。
总的来说,掌握的技术越精通,越全面薪资越高。经过总结和细化,下面的思维导图中的技能掌握了,年薪40W就问题不大了:
具体的提升架构进阶路线图私信我【学习】即可获取源文件免费领取方式!
相信这份路线图对于你系统进阶以及准备 Java 方向的面试都很有帮助!正如作者说的那样,这是一份:涵盖大部分 Java 程序员所需要掌握的核心知识的 Java 学习+面试指南!
说明:收集内容过多,限于篇幅,本文只做部分内容的目录展示。由于机制,不能带外部链接,在线版和离线版点击下面卡片加入即可来免费获取完整版解析文档或在线链接进行学习,有需要的话我这边可以免费分享给大家,麻烦转发后私信我【学习】即可获取源文件免费领取方式!
1. Java基础知识面试题
2. Dubbo面试题
3. Java异常面试题
4. Java虚拟机(JVM)面试题
5. Java集合容器面试题
6. Linux面试题
7. MyBatis面试题
8. MySQL数据库面试题
9. Netty面试题
10. Redis面试题
11. Spring面试题
12. Spring Boot面试题
13. Spring Cloud面试题
14. Spring MVC面试题
15. Tomcat面试题
16. ZooKeeper面试题
17. 并发编程面试题
18. 消息中间件MQ与RabbitMQ面试题
1. 面试前的准备
2. 面试中的技巧