Java程序员阶段性目标以及要做什么?

最近看了一篇文章,感悟特别深。决定自己总结一下,送给还在Java路上迷茫的人,以及警示自己。

对于各个阶段的Java程序猿应该学习什么?怎么学习?

1、对于初学者:不管是在校生,还是在培.训,又或者是准备转行的人,很高兴你们选择了Java,Java的前景目前来说还是很可观的。既然选择了Java,或多或少,你已经对Java、web开发有了一定的了解,技术方面我就不多说了,我想说的是一定要学好基础’,这是重点。个人认为,基础的掌握程度将很大程度的影响到你在Java领域的造诣或者说是成长速度。

2、对于刚刚参加工作到参加工作一年的人:你很棒,已经找到了自己合适的工作。也许你会经常加班,也许经常碰到自己看不懂的bug,但这些都不是问题。这个阶段是你成长极快的阶段,接触到了很多的新技术,新框架。但这个时候不要松懈,更不要贪心想每个技术都了解的非常透彻,在这个阶段,这不是你的重点,你学起来也会比较吃力,你应该加深自己对Java本身的理解、对基础的巩固,而盲目贪多。你至少要把《Java编程思想》这本书看完,大概需要4-6月的时间。我说的不是读一遍就完了,而是要看懂,要理解,有很多的知识点不止要看几遍。总而言之,这个阶段的你,需要根据自己工作接触到的,去巩固Java基础,深入理解Java本身知识。

3、对于工作1-2年的人:你已经通过自己的工作,以及学习对Java有了更深的理解,但不能得意,你现在编程还仅仅停留在完成功能这个层次,很少能兼顾到其他,这个时候就需要了解设计模式的概念了,在这一年中需要对设计模式深入的了解,个人推荐《大话设计模式》这个本书,这个一年需要提供你的代码水平,可以写出一手优雅的代码,并且在此时需要养成写博客的习惯,而设计模式就是你博客的开端。

4、对于工作2-3年的人:这个时候你已经可以完成工作中的大部分功能,但这个时候千万不要松懈,你还嫩的很。在这个时候有一本书你一定要看,就是《深入理解Java虚拟机》,这本书绝对是Java开发中最重要的一本书,个人感觉还要排在《Java变成思想》之前。这个时候你已经知道Java程序是运行在JVM之上,你需要了解一些更加底层的东西了。

    另外在过去的工作中,你肯定也接触到了并发,这个时候你需要了解跟并发相关的知识了,《Java并发编程实战》这本书也是你接下来的重中之重。如果你把这本书啃下来,你对并发的知识也了解的差不多了。与此同时,在这个阶段你还需要去了解你所使用到的框架中底层的东西,以及Java系统类库中的东西。最有效的方式就是看源码,

5、对于工作3-4年的人:

我也是出于这个阶段的人,也是局中人,所以接下来我就不发表自己的见解,将原文挑拣贴出,以免理解不够对大家造成误导。

原文分割线 ----

    参加工作3年到4年的同学这个阶段的同学,提升已经是很难了,而且这个阶段的学习往往会比较多样化。因为在前3年的过程中,你肯定或多或少接触过一些其它的技术,比如大数据、分布式缓存、分布式消息服务、分布式计算、软负载均衡等等。这些技术,你能精通任何一项,都将是你未来面试时巨大的优势,因此如果你对某一项技术感兴趣的话,

    这个时候可以深入去研究一下。这项技术不一定是你工作所用到的,但一定是相关的。而且在研究一门新技术时,切忌朝三暮四。有的同学今天去整整大数据,搞搞Hadoop、hbase一类的东西。过不了一段时间,就觉得没意思,又去研究分布式缓存,比如redis。然后又过不了一段时间,又去研究分布式计算,比如整整Mapreduce或者storm。结果到最后,搞得自己好像什么都会一样,在简历上大言不惭的写上大数据、分布式缓存、分布式计算都了解,其实任何一个都只是浮于表面。到时候面试官随便一问,就把你给识破了。

 一定要记住,作为一个程序猿,平日里所接触的技术可能会很多,但是想要让一门技术成为你的优势,那么一定是你对这门技术的了解强过绝大多数人才行。因此在这个阶段,你就不能再简单的去学习前3年的内容了,虽然前面的学习如果还不够深入的话依旧要继续,但这个时候你应该更多的考虑建立你的优势,也可以称为差异性。差异性相信不难理解,就是让你自己变得与众不同。你前面三年的学习足够你成为一名基本合格的Java开发者,但你离成为一名优秀的Java开发者还有很大的距离。

 如果你的基础本来就非常强,那么恭喜你,相信你在之前的工作中已经充分体会到了这些基础对你的帮助。但我相信大部分人的基础都很薄弱,哪怕是科班毕业的人,很多人也不敢说自己当初的基础学的多么强大,比如算法、计算机系统原理、编译原理这些。但是每个人时间都是有限的,而且这些基础的书籍每一本读下来,没个一年半载的,还真拿不下来,因此还是要有所抉择的。虽然艺多不压身,但问题是艺多是有代价的,是需要你付出时间和精力的,而我个人更赞成在同等代价的情况下获取最大的收获。

  首先,我比较推崇的基础书籍有三本,分别是《深入理解计算机系统》,《tcp/ip详解 卷一、二、三》,《数据结构与算法》。其中TCP/IP有三本书,但我们这里把这三本看成是一本大书。这三本分别适合三种人,《深入理解计算机系统》比较适合一直从事Java Web开发和APP后端开发工作的人群。《tcp/ip详解 卷一、二、三》比较适合做网络编程的人群,比如你使用netty去开发的话,那么就要对TCP/IP有更深入的了解。而《数据结构与算法》这本书,则比较适合做计算研究工作的人,比如刚才提到的分布式计算。另外,我要强调的是,这里所说的适合,并不是其它两本对你就没有用。比如你做Java Web和APP后端开发,《tcp/ip详解 卷一、二、三》这本书对你的作用也是很大的。这里只是分出个主次关系而已,你要是时间足够的话,能把三本都精读那当然最好不过了。

6、对于参加工作4-5年的人:

    参加工作4年到5年的同学经过前面一年的历练,相信你在自己所钻研的领域已经有了自己一定的见解,这个时候,技术上你应该已经遇到瓶颈了。这个时候不要着急提高自己的技术,已经是时候提高你的影响力了,你可以尝试去一些知名的公司去提高你的背景,你可以发表一些文章去影响更多的人。当然,你也可以去Github创建一个属于你的开源项目,去打造自己的产品。

  这次的开源项目不同于之前的造轮子,你这个时候是真的要去尽量尝试造出来真正对别人有价值的轮子。技术学到这个阶段,很容易遇到瓶颈,而且往往达到一定程度后,你再深入下去的收效就真的微乎其微了,除非你是专门搞学术研究的。然而很可惜,大部分程序猿做不到这一步,那是科学家做的事情。这个时候提高影响力不仅仅是因为技术上容易遇到瓶颈,更多的是影响力可以给你创造更多的机会。程序猿在某种程度上和明星很像,一个好的电视剧和电影就可以成就一批明星,程序猿有的时候也是,一个好的项目就可以成就一群程序猿。比如国内几个脍炙人口的项目,像淘宝、支付宝、QQ、百度、微信等等。这每一个项目,都成就了一批程序猿。我敢说,这里面任何一个项目,如果你是它的核心开发,光是这样一个Title,就已经是你非常大的优势。更何况还不止如此,Title说到底也是个名头,更重要的是,这种项目在做的时候,对你的历练一定也是非常给力的。

  而你如果想要参与这样的项目,除了靠运气之外,影响力也是很重要的一个手段。比如你在分布式计算领域有一定的影响力,那么如果有什么好的关于分布式计算的项目,对方就很可能会邀请你。就算人家不邀请你,你自己主动去面试的时候,对方如果知道你在这个领域的影响力,也肯定会起到很大的作用,而这个作用,甚至可能会超过你现在的技术能力。所以,在这个阶段,你最大的任务是提高自己的影响力,为自己未来的十年工作生涯那一天做准备。如果你能够靠你的影响力和以前积累的技术,参与到一个伟大的项目当中,那么你后面的五年也就有着落了。当然了,我现在满打满算,做程序猿也就4年半不到,因此关于4年到5年这一部分,我的见解不一定是对的,就算是对的,也不一定是适合任何人的。


原文《一位资深程序员大牛给予Java初学者的学习路线建议》。没有找到原作者,大家自行搜索。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值