从14年毕业到现在也从业六年了,普通本科毕业,现在一家互联网公司担任Java部门主管,摸爬打滚,坑坑洼洼也经历了不少。思绪很久决定还是写下这篇,希望对后进的小伙子少走一点弯路。
很多人把职场想得太美好,其实不然。如果你没有规划好,你就会难免遇到各种各样的问题:工作不开心;没有前进的动力;工作不是自己想像的那么好;自己的才能无法发挥;看到以前的同学待遇如何如何,便受不了刺激,急切地想跳槽;当初为了生存而找的工作,根本就不适合自己……
这些问题通常会在步入职场的1-3年之内最明显(3年之后之所以不明显,是因为你已经被现实折磨得太久了,已经被种种不平现象同化了,因此也就习惯了。你曾经的种种抱负被现实碾得粉碎。于是,你也从一个志向远大的年轻人一下子变成了一个碌碌无为、甘于平庸、成天为了生计而奔走的普通打工者)。如果不及早解决这些问题,那么,你就会荒废这3年的时间(有的人可能会更长),而对于一个职场新人来说,这3年至关重要,是锻炼能力、积累资本的黄金3年!一旦错过,则要花费更多的时间,从头再来,重新弥补!更有甚者,可能一辈子都无法弥补!这绝对不是危言耸听!
为什么要清楚自己的目标?因为,有了目标,才有行动的指南。知道自己想干什么,喜欢干什么,这才是你前进的最终动力。工作不开心、动力不足、盲目跳槽的最根本原因是职业目标不清晰。
作为Java程序员头三年更是如此。清楚自己的定位,规划好自己的前进路线,这是将是你超越其他人的最快方式。当然学习是枯燥的,这也使得大部分人会普通,坚持不下去,但是坚持下去的人那都是优秀的人,在今后的日子里他们的优势会更加的明显。这不可否认,业界大牛都不是平白冒出来的,都是通过自身努力拼出来的。
作为前辈我不确定我现在给出的一定百分百正确,但至少能让你少走一点弯路。
参加工作0-1年之间,java程序员必须要做得事儿
当你学会了Java的基础知识以后,你还不足以参加工作,你还需要继续深造。你必须要学会java开发框架。公司里为了提高开发的效率,会使用一些Java Web框架。目前比较主流的是SSM框架,即spring、springmvc、mybatis。你需要学会这三个框架的搭建,并用它们做出一个简单的增删改查的Web项目。你可以不理解那些配置都是什么含义,以及为什么要这么做,这些留着后面你去了解。但你一定要可以快速的利用它们三个搭建出一个Web框架,你可以记录下你第一次搭建的过程,在搭建的过程中,也可以顺便了解一下maven的知识。在你目前这个阶段,你只需要在网络上了解一下maven基本的使用方法即可,一些高端的用法随着你工作经验的增加,会逐渐接触到的。
Spring、Spring MVC源码
MyBatis源码
参加工作1-2年之间,Java程序员必须要做得事儿
这部分时间段的同学,已经对Java有了一个更加深入的了解。
这一年,你必须对于设计模式了如指掌,此外,设计模式并不是你这一年唯一的任务,你还需要看一些关于代码编写优化的书。总而言之,这个阶段,你的核心任务就是提高你的代码能力,要能写出一手优雅的代码。
另外,在过去2年的工作当中,你肯定或多或少接触过并发。这个时候,你应该去更加深入的了解并发相关的知识,与此同时,这个阶段你要做的事情还远不止如此。这个时候,你应该对于你所使用的框架应该有了更深入的了解,对于Java的类库也有了更深入的了解。因此,你需要去看一些JDK中的类的源码,也包括你所使用的框架的源码。总而言之,这个阶段,你需要做的是深入了解Java底层和Java类库,也就是JVM和JDK的相关内容。而且还要更深入的去了解你所使用的框架,方式比较推荐看源码或者看官方文档。
并发编程
参加工作3-4年之间,Java程序员必须要做得事儿
这个阶段的同学,提升已经是很难了,而且这个阶段的学习往往会比较多样化。因为在前3年的过程中,你肯定或多或少接触过一些其它的技术,比如大数据、分布式缓存、分布式消息服务、分布式计算、软负载均衡等等。这些技术,你能精通任何一项,都将是你未来面试时巨大的优势,因此如果你对某一项技术感兴趣的话,这个时候可以深入去研究一下。这项技术不一定是你工作所用到的,但一定是相关的。
- 分布式架构思维
- 分布式协调分流
- 异步与消息中间件
- 缓存和NoSQL
- 高可用数据存储
- 分布式场景解决方案
参加工作4-5年之间,Java程序员必须要做得事儿
参加工作4年到5年的同学,相信你在自己所钻研的领域已经有了自己一定的见解,这个时候,技术上你应该已经遇到瓶颈了。这个时候不要着急提高自己的技术,已经是时候提高你的影响力了,你可以尝试去一些知名的公司去提高你的背景,你可以发表一些文章去影响更多的人。当然,你也可以去Github创建一个属于你的开源项目,去打造自己的产品。技术学到这个阶段,很容易遇到瓶颈,而且往往达到一定程度后,你再深入下去的收效就真的微乎其微了,除非你是专门搞学术研究的。然而很可惜,大部分程序猿做不到这一步,那是科学家做的事情。这个时候提高影响力不仅仅是因为技术上容易遇到瓶颈,更多的是影响力可以给你创造更多的机会。所以,在这个阶段,你最大的任务是提高自己的影响力,为自己未来的十年工作生涯那一天做准备。
项目实战
小米B2C商城系统实战
美团商户分布式营销系统实战
SpringCloud Alibaba 美团商户系统实战
以上就是作为Java程序员前五年你必须要去努力达到的,这是一个路线提升的方向,更加详细的路线图这里没办法展现出来,如果需要可以文末公众号获取最新路线。
Java高级工程师核心面试1080题解析
Java高级架构面试知识点问题解析整理
Java面试知识点笔记整理
如果需要获取学习资料可关注下方公众号获取领取方式