毕业五年从月薪3000到年薪百万我掌握了哪些核心技能

大家好,我是冰河。很多读者私信问我,自己时间不短了。随着工作年限的不断增长,他们觉得自己的技术水平与工作年限严重不符。想跳槽出去换个新环境,觉得自己的能力达不到自己喜欢的公司的标准。即使你提交了简历,也没有人会通知你面试。就这样,在原来的公司里,日复一日的混日子,久而久之,感觉自己浪费了,就这样恶性循环。
如何破局?

首先,如果你认为自己是一个有才华的程序员,那么你可以不按照我说的做,因为你是一个有才华的人,你可以分分钟达到甚至超过百万。如果你认为你只是一个普通人,那么继续往下看,我相信它会对你有所帮助。

如何打破技术水平与工作年限严重不符的僵局?

首先,最重要的是心态 。为什么这么说?因为从事互联网开发,程序员的压力其实挺大的。在高强度的日常工作中,我们需要以良好的态度面对自己的工作。其次,要学会释放压力,以正确的方式释放或缓解内心的压力。

其次,关键是你要从心底问自己是否对现在的工作感兴趣。 事实上,我们都知道,只要我们做我们感兴趣的事情,我们就会事半功倍。如果我们因为某种原因不得不做某件事,我们往往会投入大量精力,效果往往不是很好。这就是我们常说的事倍功半。

微信上经常有朋友给我发私信:我在学Java?还是学Python?哪个吃香?哪个好找工作?学习大数据怎么样?大数据饱和了吗?事实上,我不知道如何回答这一系列的问题。为什么呢?事实上,这些问题,朋友们应该知道:只要你足够认真地坚持学习,你就能找到一份好工作。

究其本质, 对于我们这些从事技术的人来说,年龄的增长并不像外界说的那么可怕。真正可怕的是,你的年龄与你所掌握的技术深度不匹配。如果你的年龄与你的技术深度不匹配,你很难找到一份令人满意的工作。想象一下,如果你已经工作了5、6年,你所做的工作连1、2年工作经验甚至是应届毕业生都能做时,那么为什么公司要你去做呢?给你养老金吗?公司想盈利,盈利意味着赚钱。怎么赚钱?节约成本是一种赚钱的方式。对不起,你会被淘汰的。

因此,在技术的道路上,你也需要选择一个你感兴趣的方向。比如:Java、Python、大数据、云计算、云原生等。接下来,就是深入学习。要知道: 再牛逼的技术,也比不上傻逼般的坚持。 只要你坚持,就没有你学不到的技术。在学习的过程中,一定要明确自己学到了什么,切记不要三心二意。今天不要学习Java,我明天又要学Python了。一定要为自己设定一个目标,把目标分成日常学习计划。

学些什么?
调整心态后,我们来看看需要学习什么。

夯实基础
首先要巩固自己的基础。例如,Java集合框架,多线程并发包,IO/NIO,JVM,对内存模型、泛型、异常、反射等有深入了解,最好看源码了解底层设计。

比如面试一般都会问 ConcurrentHashMap,CopyOnWrite,线程池,CAS,AQS,虚拟机优化等知识点,因为这些对互联网企业绝对重要。而且一般人这关都过不了,还发牢骚说这些没什么用,为什么要面试。

在这里,我给大家举一个我经历过的项目的真实案例。

之前,我所在的公司,在做一个高并发电商项目时,一名开发同学在项目中,因为使用了默认的创建线程池的方式,导致线程池中使用了默认的无界队列,在远程服务异常情况下导致内存飙升。最终通过排查源码定位到问题,将其修改为有界队列,解决了问题。试想,你要是连线程池都不清楚,你怎么去玩?

再举一例,由于对 ThreadLocal 理解出错,使用它做线程安全的控制,导致没能实现真的线程安全。此时,你会怎么解决这个问题?所以,基础很重要,一定要把基础学扎实。万丈高楼平地起,只有把基础搞扎实了,上层建筑才会更加牢固。

深入了解互联网技术

关于这一点,我们需要从底层开始,至少你必须有一个深刻的理解 MySQL,Redis,MongoDB,Nginx,Tomcat,RPC,JMS、Dubbo、SpringCloud、SpringCloud Alibaba、性能调优、Netty、服务注册发现、服务治理、各种中间件、互联网工程、并发编程、分布式、微服务、云原生等知识。

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

然后 Redis,Mongodb 所有这些都需要理解原理,并且需要学会调整参数。而 Nginx 和 Tomcat 几乎都是 JAVA 网络开发必备的Web服务器,这可能与阿里技术栈的选择有关。RPC相关性较多,必须了解各种网络协议、序列化技术,SOA 等等,你要有深刻的理解。现在应用广泛 RPC 框架,在国内就是 dubbo 朋友们可以去Dubbo的官网学习,也可以去Github下载源码学习。至于其他的,需要朋友自己研究。总之,掌握它们对你没有坏处。

培养硬核能力

我在这里说的核心能力是指编程能力、编程思想、算法能力、架构能力、设计能力、沟通能力、优化能力、系统控制能力和行业影响力。在这里,我将简单地说,除了基本部分和互联网技术需要掌握的技能外,还必须掌握编程能力、编程思想、算法能力、架构能力、设计能力、沟通能力、优化能力、系统控制能力和行业影响力。

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

然后就是架构能力,这种不是说要你设计个多牛逼多高并发的系统,起码让你做一个秒杀系统,防重请求的设计能快速搞定而没有坑吧。最后是要提升自己的系统设计能力、沟通能力、系统调优能力和系统驾驭能力,逐步提升自己的行业影响力!

好了,今天就到这里。如果您有任何问题,可以在下面留言,一起交流技术,一起进步,一起进入大工厂。稍后,我将推荐一些书单。如果你想毕业五年,年薪甚至超过100万,请在下面留言,让我知道你的想法~

声明:本站内容转载于网络,版权归原作者所有,仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任,若侵犯到你的版权利益,请联系我们,会尽快给予删除处理!

大鱼项目网 » 毕业五年从月薪3000到年薪百万我掌握了哪些核心技能