Java序员的成长之路

对于Java程序猿学习的建议

第一阶段——Java基础

第二阶段——Web开发

  这些内容主要是Web开发相关的内容,包括HTML/CSS/JS(前端页面)、Servlet/JSP(J2EE)以及MySql(数据库)相关的知识。

第三阶段——开发框架

    目前比较主流的是SSM框架,即spring、springmvc、mybatis。

工作年限匹配的技能

1年以内

  《Java编程思想》 3月以内

1年-2年

  《大话设计模式》 http://www.cnblogs.com/zuoxiaolong/p/pattern26.html

  《重构 改善既有代码的设计》

  《effective java》

   总而言之,这个阶段,你的核心任务就是提高你的代码能力,要能写出一手优雅的代码。

2年到3年

  《深入理解Java虚拟机》。这本书绝对是Java开发者最重要的书,没有之一

   JVM系列的知识  http://www.cnblogs.com/zuoxiaolong/category/508918.html

  《Java并发编程实战》

  《Java多线程编程核心技术》

  《Java并发编程的艺术》

  需要去看一些JDK中的类的源码,也包括你所使用的框架的源码

  这个阶段,除了上面提到的了解JVM、JDK和框架源码以外,也请你根据别人优秀的源码,去造一个任何你能够想象出来的*。

3年到4年

  在这个阶段,你就不能再简单的去学习前3年的内容了,虽然前面的学习如果还不够深入的话依旧要继续,但这个时候你应该更多的考虑建立你的优势,

也可以称为差异性。

  比较推崇的基础书籍有三本,分别是《深入理解计算机系统》,《tcp/ip详解 卷一、二、三》,《数据结构与算法》。

其中TCP/IP有三本书,但我们这里把这三本看成是一本大书。

  这三本分别适合三种人,《深入理解计算机系统》比较适合一直从事Java Web开发和APP后端开发工作的人群。

  《tcp/ip详解 卷一、二、三》比较适合做网络编程的人群,比如你使用netty去开发的话,那么就要对TCP/IP有更深入的了解。

  而《数据结构与算法》这本书,则比较适合做计算研究工作的人,比如刚才提到的分布式计算。

4年到5年

  在这个阶段,你最大的任务是提高自己的影响力,为自己未来的十年工作生涯那一天做准备。  

  如果你能够靠你的影响力和以前积累的技术,参与到一个伟大的项目当中,那么你后面的五年也就有着落了。

5年以上

  《深入理解计算机系统》

书籍

  《Java编程思想》【5星】:这本书就不说了吧,Java的经典,经典中的经典,LZ从去年10月份开始读,大约花了三个月读完。

  《深入理解Java虚拟机》【5星】:这本书也是经典中的经典,LZ读的时间好像并不长,但是收获巨大!

  《重构:改善既有的代码设计》【4星】:这本书将LZ带进了重构的世界,LZ看的也非常快,但说实话,里面的技巧目前还真没什么施展的余地。

  《大话设计模式》【电子版】【5星】:大话这本书是LZ进入设计模式世界的引导者,也正因为它,有了LZ的设计模式博文系列,也因此有人找LZ写书。

不过LZ最近的生活和工作都有些改变(这点后面再说),所以写书一事暂且放下了,不知是好是坏,个人觉得多沉淀一下其实也好,但不得不说,写书真的是一件

绝对靠毅力的事,这与写博客完全是两码事。

  《编译原理》【5星】:这本书就不需要LZ评价了,不过LZ目前还没看完,当时看了大约两章暂且放下了。这本书是LZ以后必读之书。

  《设计模式:可复用面向对象软件的基础》【4星】:GOF的名著,之所以给4星,是因为难度太高。LZ现在看起来还有难度,原因是因为里面的smalltalk,

实在是骨灰级语言。

入手这本书的原因,原本是为了写书而准备的,不过由于写书的进度被拉下来了,所以这本书就没有急于攻破。

  《Java并发编程实战》【5星】:好书中的好书,它也算当时解了LZ的燃眉之急。通过它,LZ才算进入了并发的世界,而且并发系列也将因它而出现,

目前LZ其实正在写并发系列的第二篇文章,还未发表。

  《Effective Java》【4星】:这本书LZ已经读了一半多,这类书给LZ的感觉是,看的时候会产生极强的共鸣,但是看过之后却记不住什么。不知道这是否是在潜在的影响LZ的编程手法。

  《代码整洁之道》【5星】:这一本书与《重构:改善既有的代码设计》、《Effective Java》十分类似,都是在讲如何编写优秀的代码,只是这本书给LZ的感觉更实用。

  《深入理解计算机系统》【5星】:这本书实在是难啃,但是LZ看的过程中收获巨大。这种书的价值体现,并不是最直观的收获,而是潜意识的影响。

  《算法导论》:经典之作,不过LZ一直没有时间去啃下这本巨大的著作。里面的内容相信一定是非常精彩的,LZ期待着开启的那一天。

  《数据结构与算法分析》:这本书是LZ为Java准备的算法书,之前看了一些,没有继续观摩,之后也是要补上的。

  《代码大全》:又是一本巨厚的著作,这本书号称也是经典之作,同样是LZ十分期待的一本书,期待着开启。

  《Maven实战》:当初买这本是因为项目当中用到了maven,所以准备大致了解一下,结果翻了几页发现兴趣不大。悲哀,僵尸书了。

  《linux私房菜》:这本书是给自己准备的linux工具书,买的时候就没打算仔细看,结果买过来以后发现真没仔细看。

  《分布式系统原理与范型》:买它是为了了解一下分布式系统的原理,这本书LZ还是有兴趣的,只是一直没机会开启。

  《云计算》:这本书是当时LZ要回家一趟,所以买了一本带在火车上看,当时也看了不少,属于一本消遣的书,算是开阔下视野吧。

  《云计算与SOA》:这本书与《云计算》是一起买的,因为还是想与工作联系起来,所以看到SOA就拿过来了,后续有时间可以拿来消遣,不打算细看。

基本要求

1.语言的基础部分:

  基础部分的重点,其实主要就是static、final、transient、volatile这一类的关键字,以及内部类、泛型这一类的高阶语法。

 2.Java运行时环境

 

3.并发知识与concurrent包

 

4.设计模式和反射

 

5.文件IO、NIO、网络IO以及网络协议

中等要求

 1.Spring、Mybatis框架

 2.Linux服务器

 3.数据库优化

 4.消息服务

 5.缓存服务

 6.负载均衡器

加分要求

1.数据结构与算法

2.计算机操作系统

3.计算机网络

4.熟练使用一种脚本语言

5.你的github和博客

————

并发、JVM、分布式、TCP/IP协议这些

Java的数据结构相关的类实现原理,比如LinkedList,ArrayList,HashMap,TreeMap这一类的

HashMap是不是有序的?

接下来就可能会问你,TreeMap和LinkedHashMap是如何保证它的顺序的?

你觉得它们两个哪个的有序实现比较好?

Java并发包当中的类,它们都有哪些作用,以及它们的实现原理,这些类就是java.concurrent包下面的。与上面一样,咱们也简单的模拟一个并发包的连环炮。

栅栏(Java的并发包中的CyclicBarrier)

IO包和NIO包中的内容。这部分里面NIO会是重点,IO包大部分都会比较熟悉,因此可能会直接略过,直接问你NIO的内容。

Java的虚拟机的内容。这部分主要包括三部分,GC、类加载机制,以及内存。

下面是关于类加载机制的简单连环炮。

再来一个关于内存的连环炮。

假如时光能够倒流, 我会这么学习Java

码农翻身

java学习路线

https://www.cnblogs.com/xll1025/p/10016353.html

https://blog.csdn.net/MinggeQingchun/article/details/81166827

https://www.cnblogs.com/zuoxiaolong/p/life82.html

https://www.cnblogs.com/zuoxiaolong/p/life51.html

上一篇:Configuring HTTP and HTTPS


下一篇:Spring Security3中的-authentication-manager标签详解