作为一个用 Java 十几年的老程序员来说几句。学Java对新人来说确实有点难,但是如果新人知道了正确学习方法,学习效果就会好得多。接下来我就尝试总结一下。
一、Java内容太多,要避开那些“没有用知识”
确实,Java 的知识体系繁冗复杂,比较“全家桶”不是白叫的。但是这其中很多知识点不建议学,因为这些知识工作中很少用到,相关岗位很少,面试很少问到。例如下面这些:
-
Java 的桌面 GUI 相关技术,
包括:AWT、Swing、SWT/JFACE、JavaFx、JavaFx2 -
Java 的 XML 相关 API
-
Java 的安全相关
-
Java 的国际化
-
Java 的 native 方法
-
Struts 和 Hibernate
以上这些,大家在看视频、看书的时候,可以先跳过,以后用的到的时候,再学也来得及。
二、看视频学习,对新人可能更友好
零基础的话,我推荐
从看视频开始学习,然后有个大概印象了再看书。
对大部分小白来说,看视频容易一些,视频里每一步都有示范,你只需做好观看和模仿。
三、看书的话,按什么顺序看书?
说说学 Java 的读书路线。下面路线中的书籍我自己都看过,希望这份读书路线,能帮大家少走弯路,对大家学 Java 有个参考。
1、Java入门
入门 Java,推荐《Java核心技术
》第 11 版,这其实是一套书,分为两本:
- 卷1 基础知识(豆瓣 9.2 分)
- 卷2 高级特性(豆瓣 8.4 分)
我估计 70% 的 Java 程序员入门看的是这本书,写的经典、全面,对 Java 各种特性,都会有对应的代码示例。
同时,光看这本书作为入门有个问题,就是只能知其然,却不知所以然。而不知所以然,必然会导致咱们的基础会不够牢靠。
所以再推荐一本书配合《Java核心技术》一起看,书的名字叫《Java编程的逻辑》(豆瓣 9.1 分),作者马俊昌
。
这本书讲解 Java 基础知识的基础上还会告诉你底层的原理,比如,Java 的枚举本质是什么,还会告诉你 Java 为什么这样设计 API。
这里多说几句,入门打基础十分重要,对于编程这种实践类的学习,想打好基础,光靠读书,是远远不够的。一定要经过大量的代码练习。所以,在这个时期一定要多作代码练习。这里,我给出一些可以自己尝试的练习:
- 排序算法的小练习
- 字符串查找的小练习
- 对系统文件做下增删查改
- 递归的小练习
- 使用 Java 集合的小练习
- 写个小游戏、小东西能综合训练下学到的所有技能
2、SQL入门
做程序员,大部分的时候,咱们都需要通过写各种各样的 SQL 操作数据库。咱们是 CRUD Boy 嘛。
所以,SQL 咱们要学,学 SQL 我推荐《SQL必知必会(第5版)》(豆瓣 9.5 分)。
这本书的组织结构非常好,哪怕是你对 SQL 一窍不通,也能通过这本书的引导,由浅入深的把 SQL 语言学个七七八八。
3、多线程
学会了 Java 基础,知道了怎么用 SQL 之后,如果往下走,想继续提升自己该学什么?
我的答案是去深入掌握多线程编程
。因为只有懂了多线程编程,咱们才能处理各种稍微困难的需求。比如,快速处理大量用户对系统的访问;又比如,想同时访问多个第三方接口。
四、不知道学到什么程度,能找到工作?
1 基本语法
基本语法在面试里不是说会用 for 循环、if else 语句之类去写代码就行,而是利用基本语法去编写更合理、更规范、更可读的代码。
比如,是不是能让变量处于很合适的作用域?String、StringBuffer、StringBuilder 适合的应用场景是不是非常熟悉了?
如果对于 Java 的基础还很薄弱,推荐去看《 Effective Java
》,以便真的能够写出来好代码。
另外,为了能更加规范的写出高质量工程代码,推荐研究下阿里的《Java开发手册
》。
顺便在这里说一下,我目前是在职Java开发,如果在学习Java的过程当中有遇见任何关于学习方法,学习路线等方面的问题,你都可以
点击 Java技术讨论
,这里面聚集了很多正在学习Java技术的初学者,也有不少从事Java开发岗的大佬,与Java相关的问题都可以随时发出来讨论。
2 常用数据结构
如果要想通过面试找到工作,Java 中一些常用数据结构一定要好好掌握。最常用的就是以下几种:
- LinkedList
- ArrayList
- Stack
- ArrayBlockingQueue
- LinkedBlockingQueue
- HashMap
- LinkedHashMap
- TreeMap
五、学java,多看开源项目,多练手
看书和看视频,都是听和看,想学会编程,必须要多写代码。尤其是把基础学完之后,一定要自己动手写代码练习。不写代码,学完就忘了。