导读:月薪三万?看到这个标题就惊讶了!可能多数同学认为在小公司是不可能达到这么高的薪资,我不否定,小公司或者非互联网企业拿三万的不可能是码农了,应该已经转管理。还有区域问题,这个不在我的考虑范围内,因为除了北上广深杭,其他地方也很难达到。
还有人提到,其实工资是跟面试表现有关的,也跟其他综合水平有关,比如你是985,top10,或者研究生学历,也或者懂node,懂大数据等等,或者表达能力强,击中面试官痛点或有其他优秀的表现还会在这个基础上加分。
技术方面我们总结了以下几点。首先是基础。
1.集合框架:分别List/Queue/Deque/Map……每一类的继承/实现关系(如ArrayList实现List,继承AbstractList,List又继承Collection),几个常用的集合框架的底层实现原理(一个HashMap就能问出N多问题),哪些是线程安全的,哪些不是。
2.JVM内存模型:线程独享内存/堆内存/Perm区、年轻代/老年代、GC机制、常用的GC算法、强引用/弱引用/软引用……
3.并发编程:synchronized、volatile、ReentrantLock都有什么用,区别,场景……阻塞队列/非阻塞队列……线程的状态,线程调度常用的方法(wait/yield/join/notify)……
4.几种最常见的设计模式:单例/代理/工厂……5.IO,NIO……
第二你需要有全面的互联网技术相关知识。
IaaS、PaaS、SaaS、BaaS
IaaS:基础设施服务,Infrastructure-as-a-service
PaaS:平台服务,Platform-as-a-service
SaaS:软件服务,Software-as-a-service
BaaS:区块链服务,Blockchain as a Service
CRM、OA、ERP、HR、进销存……
第三就是编程能力,编程思想,算法能力,架构能力。
计算机科学有两类根本问题。一类是理论:算法,数据结构,复杂度,机器学习,模式识别,等等等。一类是系统:操作系统,网络系统,分布式系统,存储系统,游戏引擎,等等等等。
理论走的是深度,是在追问在给定的计算能力约束下如何把一个问题解决得更快更好。而系统走的是广度,是在追问对于一个现实的需求如何在众多的技术中设计出最多快好省的技术组合。
所以比尔盖茨才会说,看到现在学编程的人经常都把编程看作解各种脑筋急转弯的问题,他觉得很遗憾。做系统,确实不提倡“重复发明轮子”。但注意,是不提倡“重复发明”,不是不提倡“重新制造”。恰恰相反的,我以为,系统的编程能力正体现在“重新制造”的能力。
当然,我们除了技术之外,综合素养也是非常重要的。如果因为地域问题,没有达到这个薪资,当你技术和综合素养都OK,其他不用担心了,因为是你已经获得主动权,在合适的机会选择合适的企业,从而证明自己的价值。
免责声明:本文内容来源于公开网络,若涉及侵权联系尽快删除!,【本文标题和网址】做Java开发如何达到月薪三万?你得掌握这些技术:http://www.csnewer.com/java_news/128.html