毕业三年,如何达到月薪30K?我想跟你聊聊!!

写在前面

不少读者私信问我,本身工做三多年了,随着工做年限的不断增加,感受本身的技术水平与本身的工做年限严重不符。想跳槽出去换个新环境吧,又感受本身的能力达不到心仪公司的标准,即便投了简历也没人来通知本身面试。就这样在原来的公司一每天的混日子,时间久了,感受本身废了,就这么恶性循环着。html

文章已收录到:
https://github.com/sunshinelyz/technology-binghe
https://gitee.com/binghe001/technology-binghe

如何破局?

首先,若是你认为本身是一个天才程序员,那么你能够不按照我说的作,由于你是天才,你能够分分钟达到甚至超过30K。若是你认为本身只是一个普通人,那好,继续往下看,相信会对你有所帮助的。git

咱们该如何打破本身的技术水平和工做年限严重不符的这个僵局呢?程序员

首先,最重要的仍是心态 。为何这么说,由于从事互联网开发工做,程序员的压力其实仍是蛮大的,在高强度的平常工做中,就须要咱们以良好的心态来面对本身的工做。其次,就是要学会释放压力,以正确的方式来释放或者缓解本身心中的压力。github

其次,就是关键的一点,你要从心底问本身是否对如今的工做感兴趣。 其实,咱们都知道,只要是作咱们本身感兴趣的事情,就会事半功倍,若是是出于某种缘由不得不去作某件事,这样每每会是投入了很大的精力,效果每每还不太好,这就是咱们常说的事倍功半。面试

常常有小伙伴在微信上私信我:我是学Java呢?仍是学Python呢?哪一个吃香啊?哪一个好找工做啊?学习大数据怎么样啊?大数据是否是已经饱和了啊?这一连串的问题,其实,我看到小伙伴们的这些问题,我都不知道如何回答。为何呢?其实这些问题,小伙伴们内心应该都清楚:只要你足够认真的坚持学下去,学什么都可以找到一份好工做。算法

究其本质, 对于咱们这些搞技术的人来讲,年龄的增加其实没有外界说的那么可怕,真正可怕的是你的年龄和你所掌握的技术深度没有匹配。若是你的年龄与你的技术深度不匹配时,你是很难找到一个令本身满意的工做的。试想,若是你已经工做五、6年了,你所作的工做连一、2年工做经验甚至是应届毕业生都能作时,那公司为啥还要你来作呢?给你养老吗?公司是要盈利的,盈利就意味着要赚钱。怎么赚钱?节省成本就是一种赚钱的方式,那很差意思,你就会被淘汰掉。数据库

因此,在技术这条道路上,你也须要选择一个本身感兴趣的方向。好比:Java、Python、大数据、云计算、云原生等等。接下来,就是深刻学习了。要知道: 再牛逼的技术,也抵不过傻逼似的坚持。 只要坚持,就没有学不会的技术。编程

在学习的过程当中,必定要明确本身学什么,切记不要三心二意。不要今天学习Java,明天又想学习Python了。必定要给本身制定一个目标,并将目标拆分为天天的学习计划。设计模式

学些什么?

调整好心态后,咱们再来看看须要学习哪些内容。安全

夯实基础

首先,就是要夯实本身的基础。好比对集合类,并发包,IO/NIO,JVM,内存模型,泛型,异常,反射,等有深刻了解,最好是看过源码了解底层的设计。

好比通常面试都会问 ConcurrentHashMap,CopyOnWrite,线程池,CAS,AQS,虚拟机优化等知识点,由于这些对互联网的企业是绝对重要的。并且通常人这关都过不了,还发牢骚说这些没什么用,为何要面试。

这里,我给你们举一个我所经历的项目的真实案例。以前,我所在的公司,在作一个高并发电商项目时,一名开发同窗在项目中,由于使用了默认的建立线程池的方式,致使线程池中使用了默认的无界队列,在远程服务异常状况下致使内层飙升。最终经过排查源码定位到问题,将其修改成有界队列,解决了问题。

试想,你要是连线程池都不清楚,你怎么去玩?再举一例,因为对 ThreadLocal 理解出错,使用它作线程安全的控制,致使没能实现真的线程安全。此时,你会怎么解决这个问题?

因此,基础很重要,必定要把基础学扎实。万丈高楼平地起,只有把基础搞扎实了,上层建筑才会更加牢固。

深刻互联网技术知识

关于这一点,咱们须要从底层提及,你起码得深刻了解 MySQL,Redis,MongoDB,Nginx,Tomcat,RPC,JMS、Dubbo、SpringCloud、SpringCloud Alibaba、性能调优、Netty、服务注册发现、服务治理、各类中间件、互联网工程、并发编程、分布式、微服务等等方面的知识。

你要问须要了解到什么程度,这里,我能够给你举几个例子:首先对于 MySQL,你要知道常见的参数设置,存储引擎怎么去选择,还须要了解常见的索引引擎,知道怎么去选择。知道怎么去设计表,怎么优化 SQL,怎么根据执行计划去调优。掌握如何去作分库分表的设计和优化,通常互联网企业的数据库都是读写分离,还会垂直与水平拆分,因此这些也须要你多多少少掌握。

而后 Redis,Mongodb 都是须要了解原理,须要会调整参数的。

而 Mginx 和 Tomcat 几乎都是 JAVA 互联网开发必配的Web服务器,这点,可能跟阿里的技术栈选择有点关系。

至于RPC相关的就比较多了,必须了解各类网络协议,序列化技术,SOA 等等,你要有一个深刻的理解。如今应用比较广的 RPC 框架,在国内就是 dubbo 了,小伙伴们能够到Dubbo的官网进行学习,也能够到github下载源码进行学习。

至于其余的嘛,就须要小伙伴们本身去研究了。总之,掌握它们,对你没坏处。

培养硬核能力

我这里说的硬核能力,指的就是:编程能力,编程思想,算法能力,架构能力。

这里,我就简单的说下,除了基础部分和互联网技术须要掌握的技能外,还有几个是必需要掌握的,那就是:编程能力、编程思想、算法能力、架构能力。

编程能力这个我以为很差去评价,可是拿一个 2000W 用户根据姓名年龄排序这种题目也能信手拈来。问你个 AOP 和 IOC 你起码要清清楚楚,设计模式不说每种都用过,但也能了解个几种吧。对于算法来讲,你须要掌握基本的算法知识吧。其实,开发一个系统时,不少地方都须要考虑使用算法来实现。有些小伙伴认为本身是作业务开发的,用不到算法,不须要学习算法啊,其实这种思想就是错误的!!

最后就是架构能力,这种不是说要你设计个多牛逼多高并发的系统,起码让你作一个秒杀系统,防重请求的设计能快速搞定而没有坑吧。

我出版的书籍

好了,今天就到这儿吧,我是冰河,咱们下期见,后面给你们另外推荐一些书单,若是你也想月薪达到甚至超过30K,就请在下方留言吧,也能够加我微信【sun_shine_lyz】进行交流,让我知道你的想法~~

相关文章
相关标签/搜索