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
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
Java序员的成长之路的更多相关文章
- Java程序员的成长之路
阅读本文大概需要 8.2 分钟. tips:虽然题目是写的Java程序员,但对其他语言的开发来说也会有借鉴作用. 本篇介绍的是大体思路,以及每个节点所需要学习的书籍内容,如果大家对详细的技术点有需要, ...
- .NET序员的成长之路
- 0~5年一个Java程序员的晋升之路
在程序界流行着一种默认的说法叫“黄金5年”,也就是一个程序员从入职的时候算起,前五年的选择直接影响着整个职业生涯中的职业发展方向和薪资走向,如何走好这5年,彻底从一个刚入行的菜鸟蜕变成可以以不变应万变 ...
- java序员必备的十大技能
想成为一名出色的Java程序员么?本文将为大家重点介绍程序员必备的十大技能,成就您的梦想. 1.语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样 ...
- php程序员的成长之路
第一阶段:基础阶段(基础PHP程序员) 重点:把LNMP搞熟练(核心是安装配置基本操作) 目标:能够完成基本的LNMP系统安装,简单配置维护:能够做基本的简单系统的php开发:能够在PHP中型系统中支 ...
- 映射篇:request-String-Object-Map之间相互转化(程序员的成长之路---第5篇)
为什么写这一篇 问题一:jdbc连接数据库返回的对象是ResultSet,如何把ResultSet对象中的值转换为我们自建的各种实体类? 我估计,80%的程序员会写jdbc数据库连接,但开发项目依然用 ...
- Java程序员的C++回归路(一)
前言:工作后吃饭的语言是java,同时写一些python和js,在学习机器学习的时候发现有必要再熟悉一下c++,同时工作也有c++的使用需求.于是开始对照c++ primer自学,希望能够对同样是其他 ...
- Java程序员的C++回归路(二)
接前: 之前记录的笔记,终于想起来上传完整. 第7章: 类 定义抽象数据类型 任何对成员对象的访问都可以解释为使用this来访问,即this->member. =default :默认构造函数. ...
- 高级Java程序员的技术进阶之路
据不完全统计,截至目前(2017.07)为止,中国Java程序员的数量已经超过了100万.而且,随着IT培训业的持续发展和大量的应届毕业生进入社会,Java程序员面临的竞争压力越来越大.那么,作为 ...
随机推荐
- [转帖]USB-C和Thunderbolt 3连接线你搞懂了吗?---没搞明白.
USB-C和Thunderbolt 3连接线你搞懂了吗? 2018年11月25日 07:30 6318 次阅读 稿源:威锋网 3 条评论 按照计算行业的风潮,USB Type-C 将会是下一代主流的接 ...
- Logrotate还有谁记得它??
我发现很多人的服务器上都运行着一些诸如每天切分Nginx日志之类的CRON脚本,大家似乎遗忘了Logrotate,争相发明自己的轮子,这真是让人沮丧啊!就好比明明身边躺着现成的性感美女,大家却忙着自娱 ...
- JAVA 时间"dd/MMM/yyyy:HH:mm:ss Z", Locale.US
工作遇到时间格式转换问题, 就是在日志分析时, 需要将格式“15/Oct/2009:14:00:00 +0800”转为格式“2009-10-15 14:00:00”, 找了好久没有找到合适的,终于在友 ...
- 用JavaScript添加选择按钮的背景颜色和juqery添加选择按钮的背景色
在项目开发中经常遇到要选择的按钮,选择完之后被选择的按钮的背景色会发生变化,表示被选择 样式图如下: 每点击一个数字,相应的背景色变为蓝色,其他的依旧是白色,先用JavaScript实现 html代码 ...
- poj3320 Jessica's Reading Problem
Description Jessica's a very lovely girl wooed by lots of boys. Recently she has a problem. The fina ...
- Graph And Its Complement CodeForces - 990D(思维构造)
题意: 图中有n个点,开始有a个连通块,然后连着的边断开,不连的边连上,变为b个连通块,输出原图的邻接矩阵. 解析: 原图中连通块大于1的图,经过上述操作后,一定变成只有1个连通块的图. 若n != ...
- XOR and Favorite Number CodeForces - 617E(前缀异或+莫队)
题意原文地址:https://blog.csdn.net/chenzhenyu123456/article/details/50574169 题意:有n个数和m次查询,每次查询区间[l, r]问满足a ...
- Spanning Tree Protocol (STP) in NetScaler Appliance
Spanning Tree Protocol (STP) in NetScaler Appliance 来源 https://support.citrix.com/article/CTX112341 ...
- 【刷题】BZOJ 2346 [Baltic 2011]Lamp
Description 2255是一个傻X,他连自己家灯不亮了都不知道. 某天TZ大神路过他家,发现了这一情况, 于是TZ开始行侠仗义了. TZ发现是电路板的问题, 他打开了电路板,发现线路根本没有连 ...
- 【BZOJ2423】最长公共子序列(动态规划)
[BZOJ2423]最长公共子序列(动态规划) 题面 BZOJ 洛谷 题解 今天考试的时候,神仙出题人\(fdf\)把这道题目作为一个二合一出了出来,我除了orz还是只会orz. 对于如何\(O(n^ ...