有人说这只能是大企业或者互联网企业工程师才能拿到。是的,小公司或者非互联网企业三万的不太可能是码农了。还有区域问题,这个不在我的考虑范围内,因为除了北上广深杭,其他地方也很难达。
还有人提到其实工资是跟面试表现有关的,也跟其他综合水平有关,比如你是985,TOP10,或者研究生学历,也或者懂点节点,懂点大数据等等,或者表达能力强,击中面试官痛点都会加分。有其他优秀的表现还会在这个基础上加分。但纯JAVA方面待遇是比较吻合的。还有SSH真的不是我要黑,3W水平的面试几乎很少问SSH的知识,要问也是问架构层次的还有设计模式的。例如MyBatis的是如何管理会议和高速缓存的.spring里面有哪些你熟悉的设计模式,你怎么理解和应用的。
高薪在BAT实在太普遍了,一般是高级工程师和资深工程师的职位。在阿里是P6〜P7左右,在百度是T5左右,腾讯是T2-3左右,京东是T3-1,美团是P6左右,其他的我不了解。这种级别是他们主要码农层级,加班多,能解决大部分问题,但对系统的整体架构能力和深入分析瓶颈的能力还需要培养。
以阿里巴巴招聘标准举例
分析
1.Java基础扎实,理解IO,多线程,集合等基础框架可以理解为熟悉J2SE,J2EE;对JVM原理有一定的了解,可以理解为对什么是JVM,JVM内存模型以及JVM运行时数据区熟练掌握,为什么JVM要划分为新生代,老年代,永久代等。
2.对你用过的开源框架,能了解它的原理和机制;对Spring,ibatis的开源框架熟悉可以理解为用过主流的SSM,网状等框架,并且一定程度上看过它们的源码,不能一直停留在写业务代码上,不然永远突破不了你的技术瓶颈。
- 掌握多线程以及高性能的设计与编码,这块需要对并发编程有所认识,比如从JMM角度看并发,知道同步状语从句:volitile关键字的原理等。
- 性能调优可以理解为对JVM,Tomcat,MySQL的优化;
- 具有高并发应用开发经验,实际上是对分布式这块的概括,比如你使用过zookeeper,dubbo,redis缓存,nginx负载均衡等。
- 最好再能有微服务经验,比如Spring Boot,Spring Cloud等。
4 . 对技术有浓厚兴趣......这块是对软实力的一个要求,说明你积极向上,能吃苦耐劳,敢于拼搏。这种软技能,实际上还有一方面要考察你的探索学习能力,比如你有没有研究过netty源码的底层实现,有没有经常写一些自己的博客,有没有在github上经常活动,更好地是做一些contribution。
- 有做过大型项目的技术PLA / PM者优先。这句话是对你能力以及经验有一个加分项的考量。
总结概括你需要拥有全面的互联网技术相关知识:
从底层说起,你起码得深入了解的MySQL和Redis的的,的MongoDB的响应,Nginx等的Tomcat的,RPC,JMS等方面的知识。
当我们聊技术实力的时候,我们到底在聊什么?需要了解到什么程度?
首先对于MySQL的,你要知道常见的参数设置,存储引擎怎么去选择,还需要了解常见的索引引擎,知道怎么去选择。知道怎么去设计表,怎么优化SQL,怎么根据执行计划去调优。高级的你需要去做分库分表的设计和优化,一般互联网企业的数据库都是读写分离,还会垂直与水平拆分,所以这个也有经验的成分在里面。然后redis的,mongodb的都是需要了解原理,需要会调整参数的,而nginx的和tomcat的几乎都是JAVA互联网方面必配,其实跟阿里的技术栈选择有点关系。至于RPC相关的就多的去,必须各种网络协议,序列化技术,SOA等等,你要有一个深入的理解。现在应用比较广的RPC框架,在国内就是Dubbo了。一般情况下不是专门开发中间件系统和支撑系统的不需要了解太多细节,国内企业常用的主要是ActiveMQ的和kafka。总结一个非常全面的互联网Java架构技术学习路线总纲:
在互联网公司面试中,架构的底层一定是面试官会问到的问题,针对面试官一般会提到的问题,我录制了一些底层原理的录像视频,加群619881427可以免费获取这些录像,里面有些分布式,微服务,性能优化,Spring,MyBatis的等源码知识点的录像视频。上图的性能优化只是其中的一小部分,这些视频都是我找一些资深架构师朋友一起录制出来的,视频希望能够帮助到以下几类程序员:
1.对现在的薪资不满,想要跳槽,却对自己的技术没有信心,不知道如何面对面试官。
2.想从传统行业转行到互联网行业,但没有接触过互联网技术。
3.工作1 - 5年需要提升自己的核心竞争力,但学习没有系统化,不知道自己接下来要学什么才是正确的,踩坑后又不知道找谁,百度后依然不知所以然。
4.工作5 - 10年无法突破技术瓶颈(运用过很多技术,在公司一直写着业务代码,却依然不懂底层实现原理)
如果你现在正处于我上述所说的几个阶段可以加下我的群来学习。而且我也能够提供一些面试指导,职业规划等建议。