【大学四年自学Java的学习路线】写了一个月,这是一份最适合普通大众、非科班的路线,祝你零基础快速找到一份满意的工作(1)

简介: 【大学四年自学Java的学习路线】写了一个月,这是一份最适合普通大众、非科班的路线,祝你零基础快速找到一份满意的工作

最近又有一个读者“在你的世界各地”向我提了上面这个问题。但说实话,这个问题并不太好问答。因为 Java 是一门“历史悠久”的编程语言,它的学习资料多到令人眼花缭乱。


但不能为自己找借口啊,毕竟读者就是上帝。于是我花了一个月的时间,精心为你准备了一份万字长文,史上最佳的 Java 自学指南,保证你能找到一份满意的工作。


先来梳理一下读者强调的关键词,有 3 个,分别是“零基础”、“自学”、“找到工作”。


1)“零基础”意味着我提供的学习路线不能太难,或者说应该是循序渐进的。


2)“自学”意味着我提供的学习素材不能太枯燥,或者说应该是幽默风趣的。


3)“找到工作”意味着学习周期要尽可能的短,但还要学有所成。


01、为什么要学 Java


因为 Java 是世界第一的编程语言啊!谁给的底气?大概是 TIOBE 这个编程语言排行榜吧。


TIOBE 是编程语言流行趋势的一个指标,每月更新,基于互联网上有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜索引擎(Google、Bing、Wikipedia)进行计算。


image.png

上面这幅图是几个热门编程语言(Java、C、Python、JavaScript 等等)近些年来的增长趋势。可以看得出,Java 霸占这份榜单很多年,并且还会持续更久。


1)简单易学,老少咸宜。Java 继承了 C++ 语言面向对象的核心技术,舍弃了容易引起错误的指针,移除了运算符重载和多重继承等难以理解的概念,增加了垃圾回收机制,这些大大简化了程序员的开发成本。


2)跨平台。任何平台只要安装了 JVM(Java 虚拟机),就能运行 Java 程序。真正实现了“Write once, run anywhere”。


3)丰富的类库。全球约有 900 万名 Java 开发人员,创造了一个充满活力和积极进取的 Java 社区,开源类库非常丰富。借助这些类库可以让开发者避免重复造轮子,不用去关注 Java 底层的开发,只关注业务的实现。


4)广泛使用。据估计,全球范围内有超过 30 亿部设备运行 Java,超过其他任何一种语言。Java 被用于众多全球知名的网站中,包括 eBay.com、Linkedin.com、Amazon.com 和 Facebook.com。这一点应该是 Java 屹立不倒的深层次原因吧,大家都在用,才是真的强啊。


5)薪资可观。很多企业都需要 Java 方面的人才,这是一个非常现实的原因,为了生计着想,学习 Java 这个方向不会有错!


02、哪些 Java 知识不需要再学了


张无忌在学太极拳的时候,他爹的师父张三丰告诫他一定要把之前所学习的武功全部忘掉,忘得越多就会学得越快。


同样的,自学 Java 的时候一定要先知道哪些 Java 知识不需要再学了,毕竟技术的更新迭代就好像火箭一样快,Java 的一些知识点早已经过时了。如果不懂得断舍离,那学起来就不免太痛苦了。


1)AWT 和 Swing


真不知道为什么,有些书籍还在介绍 AWT 和 Swing,这就好像不知道大清朝早已经亡了几百年一样。已经 9102 了,谁还会用 AWT 和 Swing 去开发桌面应用呢?


就我所知,C++ 程序员会用 MFC,C# 程序员会用 Winform 和 WPF。甚至还可以用一种更时髦的技术(比如 Electron)把 Web 网页裹一层华丽的外衣,变成可执行文件。


2)Applet


作为网页插件技术,Applet 压根就没流行起来,就连曾经的热门 Flash 也要淘汰了。


3)XML


XML 还没有被淘汰,应用的地方还有不少。但是作为一种数据传输格式,它正在被 JSON 替代。


4)JDBC


我个人不建议再学习偏底层的 JDBC 了,尤其是对于时间宝贵的自学程序员来说。与其花这点时间,不如把精力投入到 MyBatis 的学习上。


5)Struts


Struts 是早年一个优秀的 MVC 框架,单从技术的角度来看,还是蛮不错的。但是自从有了 SpringMVC 后,Struts 就被拍死在沙滩上了。


6)Hibernate


在我刚参加工作那会(2010 年的时候),持久层框架用的正是 Hibernate。但时过境迁,Hibernate 太重量级了,学习成本太高,取而代之的是轻量级的 MyBatis(支持定制化 SQL、存储过程以及高级映射)。


7)JSP


说起来惭愧,我现在维护的一个项目,视图层用的依然是 JSP。但如今流行的是“前后端分离”,JSP 就显得不合时宜了。


03、学习 Java 需要安装的软件


工欲善其事必先利其器,战斗之前我们要先配备好武器。


1)JDK


JDK 是 Java Development ToolKit 的简称,也就是 Java 开发工具包。JDK 是整个 Java 的核心,包括 Java 运行环境(Java Runtime Envirnment,简称 JRE),Java 工具(比如 javac、java、javap 等等),以及 Java 基础类库(比如 rt.jar)。


2)IDE


集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。


在我初学 Java 的时候,老师竟然告诫我们不要使用 IDE(当时是 MyEclipse 风靡的年代),而要使用文本编辑工具,比如说 Editplus、Nodepad++。


老师说的有一定的道理,比如说,在没有代码提醒的帮助下,我们能够通过不停的手敲记住一些 Java 的常见名词。但在我看来也就仅此而已。


没有 IDE 的帮助,让初学者对编程望而生畏,因为那些名词实在是太多了。我们班当时很多同学就是因为觉得太痛苦了,就放弃编程了。


我到现在也不太会敲 extends、implements(在 Eclipse 中复制出来的),不会敲又怎样呢?有好的工具,我们就应该利用,不应该受苦。


下面是最为受欢迎的 IDE 的榜单。


image.png


对于我来说,一直喜欢的是 Eclipse,这可能是一种情怀吧。


据说,喜欢 IntelliJ IDEA 的 Java 程序员越来越多了。


3)JAD


将源代码转换成二进制执行代码的过程叫做“编译”,一般指的是将 Wanger.java 编译成 Wanger.class 字节码文件;而将字节码文件转换成源代码的过程叫做“反编译”,比如将 Wanger.class 转成 Wanger.java。


JAD 是一款老牌的、经典的 Java 反编译工具。更重要的是,JAD 能够让我们深入的了解 Java 代码的工作机制。


比如说有这样一段代码:


String chenmo = "沉默";

String wanger = "王二";


System.out.println(chenmo + wanger);


它的“庐山真面目”是下面这样子的。


String chenmo = "\u6C89\u9ED8"; // 沉默

String wanger = "\u738B\u4E8C"; // 王二

System.out.println((new StringBuilder(String.valueOf(chenmo))).append(wanger).toString());



4)Maven


Maven 是一个项目管理和自动化构建工具,基于项目对象模型(POM)的概念,可以管理项目的构建、报告以及文档。作为 Apache 组织中的一个颇为成功的开源项目,Maven 主要服务于基于 Java 的项目构建、依赖管理和项目信息管理。


相关文章
|
4月前
|
前端开发 JavaScript Java
Java学习路线
Java学习路线
65 1
|
3月前
|
Java 开发者
Java 学习路线 2024 最新版!
又对上次分享的 Java 学习路线进行了简单修改完善,并增加了免登录下载和黑夜模式,这里重发一下。 花了一个月零碎的时间,我根据当下 Java 后端求职和招聘的最新要求,对之前写的 Java 后端学习路线进行了全面的优化和改进。
|
26天前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
90 3
|
2月前
|
设计模式 Java 微服务
Java高薪学习路线:解锁Java开发的黄金钥匙
Java高薪学习路线:解锁Java开发的黄金钥匙
154 0
|
3月前
|
Java
java学习路线分享
java学习路线分享
|
4月前
|
算法 Java 数据库
Java开发学习路线
Java开发学习路线
33 0
|
4月前
|
运维 Java 开发工具
Java后端学习路线6大维度详细总结(编程基础+开发工具+应用框架+运维知识+成神之路+平稳降落)【可作为知识点梳理列表】【点击可查看高清原图】
Java后端学习路线6大维度详细总结(编程基础+开发工具+应用框架+运维知识+成神之路+平稳降落)【可作为知识点梳理列表】【点击可查看高清原图】
38 0
|
4月前
|
存储 Java
1466. 重新规划路线 --力扣 --JAVA
n 座城市,从 0 到 n-1 编号,其间共有 n-1 条路线。因此,要想在两座不同城市之间旅行只有唯一一条路线可供选择(路线网形成一颗树)。去年,交通运输部决定重新规划路线,以改变交通拥堵的状况。 路线用 connections 表示,其中 connections[i] = [a, b] 表示从城市 a 到 b 的一条有向路线。 今年,城市 0 将会举办一场大型比赛,很多游客都想前往城市 0 。 请你帮助重新规划路线方向,使每个城市都可以访问城市 0 。返回需要变更方向的最小路线数。 题目数据 保证 每个城市在重新规划路线方向后都能到达城市 0 。
48 1
|
5月前
|
消息中间件 架构师 Java
价值年薪70W的JAVA进阶学习路线!终于让我从阿里P8手里抠出来了
作为一个男人我感觉必须得做点什么来证明一下自己,现在我又回来了,准备把自己的节操准备补一下。另外给各位未来的Java程序员说一句,别的我不清楚,学习编程请从一而终
|
5月前
|
消息中间件 设计模式 分布式计算
大厂招聘重点全在这!GitHub置顶Java基础-高级面试库+自学路线
最近几年经常会听见这样一种声音:“程序员是吃青春饭的,年龄一大就不吃香了”,在当下这种互联网产业增速放缓,甚至隐约展现出疲态的时刻,此类言论就很有市场。