Java web程序员发展路径

观一位资深程序员大牛给予Java初学者的学习路线建议有感,共勉。

总结

一、学习Web开发相关的内容,包括HTML/CSS/JS(前端页面)、Servlet/JSP(J2EE)以及Mysql(数据库)相关的知识。HTML/CSS/JS(前端页面)这部分内容对于后端Java来说,理论上不是特别重要,但至少要达到可以自己写出一些简单页面的水平。接下来,需要学习的是Servlet/JSP(J2EE)部分,这部分是Java后端开发必须非常精通的部分。关于Servlet/Jsp部分视频的选择,业界比较认可马士兵的视频,因此推荐给大家。

二、学习一些开发框架。目前比较主流的是SSM框架,即spring、springmvc、mybatis。需要学会这三个框架的搭建,并用它们做出一个简单的增删改查的Web项目。可以不理解那些配置都是什么含义,以及为什么要这么做,这些留着后面去了解。但一定要可以快速的利用它们三个搭建出一个Web框架,可以记录下第一次搭建的过程。在搭建SSM的过程中,可能会经常接触到一个叫maven的工具(或gradle工具)。

三、参加工作一年,至少需要看懂《Java编程思想》这本书。这本书的内容是Java基础的升级版。总而言之,这个阶段的核心学习思想就是,在工作中实践,并且更加深入的了解Java基础。

四、参加工作1年到2年,需要学习设计模式。这一年,必须对设计模式了如指掌,《大话设计模式》可以作为开端。此外,设计模式并不是这一年唯一的任务,还需要看一些关于代码编写优化的书。比如《重构 改善既有代码的设计》,《effective java》。总而言之,这个阶段,核心任务就是提高代码能力,要能写出一手优雅的代码。
  
五、参加工作2年到3年,需要学习《深入理解Java虚拟机》、并发多线程、框架。这本书绝对是Java开发者最重要的书,没有之一。这本书的内容是帮助你全面的了解Java虚拟机,在这个阶段,一定已经知道Java是运行在JVM之上的。在过去2年的工作当中,肯定或多或少接触过并发。这个时候,应该去更加深入的了解并发相关的知识,而这部分内容,推荐《Java并发编程实战》这本书。只要把这本书啃下来了,并发的部分基本已经了解了十之六七。与此同时,这个阶段你要做的事情还远不止如此。这个时候,你应该对于你所使用的框架应该有了更深入的了解,对于Java的类库也有了更深入的了解。因此,你需要去看一些JDK中的类的源码,也包括你所使用的框架的源码。这些源码能看懂的前提是,你必须对设计模式非常了解。否则的话,你看源码的过程中,永远会有这样那样的疑问,这段代码为什么要这么写?为什么要定义这个接口,它看起来好像很多余。

六、参加工作3年到4年的同学这个阶段的同学,提升已经是很难了,而且这个阶段的学习往往会比较多样化。因为在前3年的过程中,你肯定或多或少接触过一些其它的技术,比如大数据、分布式缓存、分布式消息服务、分布式计算、软负载均衡等等。这些技术,你能精通任何一项,都将是你未来面试时巨大的优势,因此如果你对某一项技术感兴趣的话,这个时候可以深入去研究一下。这项技术不一定是你工作所用到的,但一定是相关的。而且在研究一门新技术时,切忌朝三暮四。一定要记住,作为一个程序猿,平日里所接触的技术可能会很多,但是想要让一门技术成为你的优势,那么一定是你对这门技术的了解强过绝大多数人才行。因此在这个阶段,你就不能再简单的去学习前3年的内容了,虽然前面的学习如果还不够深入的话依旧要继续,但这个时候你应该更多的考虑建立你的优势,也可以称为差异性。差异性相信不难理解,就是让你自己变得与众不同。你前面三年的学习足够你成为一名基本合格的Java开发者,但你离成为一名优秀的Java开发者还有很大的距离。所谓优秀,即能别人所不能。而你前三年所学习的内容,是很多做过几年的Java开发都能够掌握的。那么为了让自己有差异性,你就需要另辟蹊径,找一个方向深入研究下去,以期在将来,你能够成为这个领域的专家,比如分布式计算领域的专家,大数据领域的专家,并发领域的专家等等。此外,你除了建立你的差异性之外,还要去弥补你基础上的不足,直到现在,我都没有提及基础知识。原因是基础是很枯燥无味的,学的太早不仅容易懵逼,而且懵逼的同时还容易产生心理阴影,以至于以后再不想去研究这些基础。但基础又是你深入研究一些领域时所必须掌握的,比如你去研究分布式计算,你不懂算法你玩个毛毛?比如你去做分布式缓存,你对计算机系统的内存不了解,你如何去做缓存?首先,我比较推崇的基础书籍有三本,分别是《深入理解计算机系统》,《tcp/ip详解 卷一、二、三》,《数据结构与算法》。其中TCP/IP有三本书,但我们这里把这三本看成是一本大书。这三本分别适合三种人,《深入理解计算机系统》比较适合一直从事Java Web开发和APP后端开发工作的人群。《tcp/ip详解 卷一、二、三》比较适合做网络编程的人群,比如你使用netty去开发的话,那么就要对TCP/IP有更深入的了解。而《数据结构与算法》这本书,则比较适合做计算研究工作的人,比如刚才提到的分布式计算。另外,我要强调的是,这里所说的适合,并不是其它两本对你就没有用。比如你做Java Web和APP后端开发,《tcp/ip详解 卷一、二、三》这本书对你的作用也是很大的。这里只是分出个主次关系而已,你要是时间足够的话,能把三本都精读那当然最好不过了。

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

你可能感兴趣的:(修炼秘籍)