该死!看完B 站上这些 Java 视频,我飘了

程序员书库 2021-03-15 20:58

处在互联网时代,是一种幸福,因为各式各样的信息非常容易触达,如果掌握了信息筛选的能力,就真的是“运筹帷幄之中,决胜千里之外”。

当然了,要掌握这种能力,并不是一件容易的事。因为海量的信息意味着嘈杂、纷乱、烦恼,稍有不慎,就有可能被其吞噬,迷失了方向、浪费了时间,不仅没有学习到知识,甚至连娱乐也没有娱乐到。

众所周知,B 站是一个神奇的网站,上面有各种各样的视频资源,可以说是包罗万象、应有尽有。很多人在上面跟着 UP 主上自习、考研、学编程,还真的能学有所成。

这其中的关键,就是如何筛选出真正优质的视频。这很难,不仅需要一双发现美的眼睛,还需要花时间去检验。发现美的眼睛大家都有,但时间就不一定了,尤其是被工作压榨到极限的小伙伴们。

去年的这个时候,受庆哥的影响,我开始在 B 站上刷视频,喜欢上了两位 UP 主,一位是程序员领域的 CodeSheep(44 万粉丝),一位是学习领域的兔叭咯(414 万粉丝)。

从此我的生活可以说是发生了天翻地覆的变化,每天不上 B 站刷一会视频就觉得少点啥。后来我又在 B 站上发现了一位漂亮的程序员小姐姐,她的视频也非常有帮助。哇,第一眼看到的时候真的是惊艳到!该死,我这双善于发现美的眼睛。

刚好周末的时候,有小伙伴问我有没有关于 Java 的整套学习视频,我就想着,不如把我这一年来看的 Java 视频汇总一下,形成一条完整的学习路线分享给大家,空的时候也可以刷一刷,养养眼,学学习,享受一下 B 站的快乐。

1)入门篇

我推荐尚硅谷的 Java 零基础教程,虽然 UP 主是一家培训机构,但这套视频的播放量还是挺大的,很受广大群众的喜爱。尤其是宋老师很可爱地说出自己是“英俊潇洒”的时候,我就被这个胖嘟嘟的男人征服了。这让我不由得想起脱口秀演员杨笠的一句话:“你那么普通,为什么就那么自信呢?”

好家伙,这视频足足 715 个小节,我滴妈呀,请至少 1.25 倍速食用!我是用 1.5 倍速过了一遍,感觉还是非常适合初学者的。

https://www.bilibili.com/video/BV1Kb411W75N

翁恺教授的 C 语言课程我在之前推荐过,后来又看了他的 Java 课程,感觉真的不愧是教授,讲课就是舒服,不是那种高高在上的感觉,很接地气。不过,这个视频是搬运过来的,弹幕没那么多,对于 B 站的用户来说,确实少了不少乐趣。

https://www.bilibili.com/video/BV1DJ411B7cG

2)工具篇

工欲善其事必先利其器,已经 2021 年了,真没必要在记事本上敲代码了。反正我遇到过太多的课程,包括我上大学的时候,老师一而再再而三的强调,一定要用记事本敲出来第一个程序,并且在命令行里成功运行起来。

这么多年下来,我觉得这个建议真的是糟糕极了。记事本和命令行,怎么能让初学者上手呢?最起码也得是个老江湖才行啊!当年我就差点被记事本和命令行劝退。

掌握了下面这些工具,学习起来也会更加顺手,不用瞎折腾。Intellij IDEA,不用说,是编写 Java 程序的最佳 IDE,必须得掌握。

讲师仍然是宋宏康,“废话”讲得很幽默,我记得他在视频中把 IDEA 比喻成媳妇,比如成苹果手机,差点笑到岔气。老师,求生欲真的太强了。

https://www.bilibili.com/video/BV1PW411X75p

接下来是 Maven,可以帮助我们解决 jar 包的烦恼。UP 主仍然是尚硅谷这家培训机构,麻蛋,一不小心帮他们宣传了好多次,打钱打钱!但不得不承认啊,这家培训机构还挺有眼光的,很早把这种录制的视频免费地放了出来,迅速地就占领了视频领域的市场。

这样做技能扩大影响力,还能鉴定教学的水准,服!

https://www.bilibili.com/video/BV1TW411g7hP

然后是 Git,工作中也是必须掌握的。UP 主是遇见狂神说,我个人觉得非常好的一个 UP 主,有人说狂神开始收费割韭菜了,“果然天下乌鸦一般黑”,但我想说的是,白嫖了那么久,该付费付费啊。人家又不是全部收费,还是有免费视频可以白嫖的呀,很香啦!

所有的视频都收费肯定不是好事,所有的视频都免费也不见得是好事,这个世界不能大同化,必须得有差异,对吧?像我,既喜欢白嫖,又喜欢在必要的时候付费下,支持下作者,才能长久嘛。

https://www.bilibili.com/video/BV1FE411P7B3

3)数据库篇

学习一门编程语言,如果不去操作下数据,就感觉这门编程语言空有皮囊却没有灵魂,对吧?

要想学好数据,首先要学习一下 SQL,我推荐一个老外的视频课(中字版啦),内容制作得非常棒,所以完全不用担心听不懂。

视频是搬运的,在这里对 UP 主要说一声辛苦了!国外的视频有一点我必须得强调一下,就是整个画面制作得非常舒适,观感非常好。

https://www.bilibili.com/video/BV1UE41147KC

然后再学习一下市场占有率非常高的 MySQL,视频我推荐尚硅谷的,女老师讲的。不得不承认,老师讲得很精彩,嗯,弹幕里也很精彩。

这个视频是从尚硅谷官网搬运过来的,但弹幕非常多,很有意思。

https://www.bilibili.com/video/BV12b411K7Zu

当然了,也可以看下面这个英文中字版的,3 个小时就能学完。

同样是搬运的,视频本身的质量很高,但有点瑕疵就是中文字幕出现的位置有点问题,导致看起来并不那么舒服。推荐给英文功底比较好,或者想提升一下英语功底的小伙伴看一下。

https://www.bilibili.com/video/BV1iJ411m7Fj

目前大多数公司的存储都是 MySQL + Redis,MySQL 作为主要的存储方式,Redis 作为缓存,用来加快热点数据的读写速度,从而提高性能。所以学完 MySQL,可以趁热打铁学一下 Redis,也可以放到后面学。

视频同样是狂神说的,语速很快,感觉像是自动倍速到 1.5 倍一样,太优秀了。

https://www.bilibili.com/video/BV1S54y1R7SB

4)框架篇

首先是 SSM(Spring+SpringMVC+MyBatis,企业级应用的必须品)的整合教程,哪怕是已经有了 Spring Boot,SSM 仍然是必学的,因为能为后面的学习打下更坚实的基础。

首先推荐狂神说的 Spring 教程,总共 28 个小节,全部看完也不需要太多时间。重点是 Spring 的 AOP(面向切面编程,Aspect-Oriented Programming)和 IOC(控制反转,Inversion of Control)。

https://www.bilibili.com/video/BV1WE411d7Dv

尚硅谷的 Spring 课程也可以看一看。我看弹幕里有说,之前花了 399 买了这个课程,不知道真假,反正现在可以白嫖就对了。

https://www.bilibili.com/video/BV1Vf4y127N5

然后是 Spring MVC,那必须得推荐自家兄弟的,江南一点雨,也就是松哥了,很有潜力的一个新 UP,推荐大家关注下,据他说,后面还会推出很多新的免费视频。

松哥一开始的视频使用了变声,就我个人而言,更喜欢原声。我们私底下见过一面,是个非常诚恳的好 boy。

https://www.bilibili.com/video/BV1qp4y1n7D1

狂神录的 Spring MVC 播放量更大一点,同样推荐。我看有弹幕说已经第五次刷了,这说明狂神的风评是真的好。

Spring MVC 是 Spring 框架内置的一个 MVC(Model-View-Controller,也就是模型-视图-控制器)实现,用于解决 Web 开发中常见的问题,比如说参数接收、文件上传、表单验证、国际化等等。

在 Spring MVC 出现之前,我们用 Servlet 来做 Web 开发,但Servlet 在接收请求参数、数据共享、页面跳转等操作时相对比较复杂,SpringMVC 就是对 Servlet 进行更深层次的封装。

Spring 提供的是一个 IOC 容器,所有的 Bean,包括 Controller,都是在 Spring IOC 容器中初始化的,而 Servlet 容器通常由 JavaEE 服务器提供(比如 Tomcat),它们之间就是通过 Spring MVC 联系起来的。

使用 Spring MVC 时,整个 Web 应用程序的启动顺序如下:

  • 启动 Tomcat 服务器;
  • Tomcat 读取 web.xml 并初始化 DispatcherServlet;
  • DispatcherServlet 创建 IOC 容器并自动注册到 ServletContext 中。

如果有小伙伴是初次接触 Web 开发,可能会对上面提到的概念比较陌生,可以根据视频快速搭建一个小实例体验一下。

https://www.bilibili.com/video/BV1aE41167Tu

接下来是 SSM 中的 M,也就是 MyBatis。老规矩,先上松哥的。

播放量虽然比较小,但是内容还是很详实的,值得白嫖。

https://www.bilibili.com/video/BV1c54y1a7GE

不能少,狂神说的 MyBatis,播放量还是挺大的,一共 32 小节。

MyBatis 是一款优秀的持久层框架,支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。

借助 MyBatis,我们可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

https://www.bilibili.com/video/BV1NE411Q7Nx

学完 SSM,自然就少不了要学 SpringBoot,现在已经是 2021 年的 3 月份,所有的 Java 程序员都必须得掌握 Spring Boot 已经变成了一条定律,就像勾股定律一样。

SpringBoot 的话,松哥也录了,只不过没有放出来,单独作为课程卖了,他讲得其实非常好。既然自家兄弟的没法白嫖,那就推荐狂神说的 Spring Boot 吧,我也很喜欢,播放量也挺大。

Spring Boot 是由 Pivotal 团队提供的一个全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。说句人话就是,Spring Boot 不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。

https://www.bilibili.com/video/BV1PE411i7CV

有了 Spring Boot 之后呢,仅仅只需要非常少的几个配置就可以快速地搭建一套 Web 项目!使用 Spring Boot 有多爽,可以用下面这幅图来表述下——参考自我大哥纯洁的微笑的一篇 1429658 浏览量的文章。

最后是 SpringCloud,狂神说这也有。

Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。

Spring 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

https://www.bilibili.com/video/BV1jJ411S7xr

5)JVM 篇

JVM 是相对难吃透的一个环节,但却十分的重要,我把它放到框架篇后面,就是希望大家能在储备了大量的实战经验后再来深入的理解 Java 虚拟机。

尚硅谷的这套视频课程分为《内存与垃圾回收篇》《字节码与类的加载篇》《性能监控与调优篇》三个篇章,如果你能顺利学完的话,可以说 Java 虚拟机方面已经是有点小心得了。

JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需要生成在 Java 虚拟机上能运行的目标代码,也就是字节码,就可以实现跨平台的诉求了。JVM 学得通透的话,可以说是非常牛逼的程序员了。

https://www.bilibili.com/video/av83622425

6)源码篇

面试的时候,面试官都特别喜欢问一些源码方面的知识,比如说 HashMap 的一些经典问题,加载因子为什么是 0.75?哈希冲突的时候,HashMap 是如何查找并确认元素的等等,这些问题只有通过源码才能得出比较准确的回答,对吧?

我有个同学说过一句话,给我的印象特别深刻,就是“有啥解决不了的?只要你肯阅读源码。”说起来源码,我是不太建议新手去阅读,容易劝退。不信,你让一个小学生去读一下《百年孤独》,我保证他会从此对阅读失去兴趣。等有了一些编程经验后,再去阅读源码,就会有很大的收获。

羊哥出过一个视频,详细地介绍了如何阅读 JDK 源码,推荐给大家。

https://www.bilibili.com/video/BV1V7411U78L


算法与数据结构、操作系统、计算机组成原理、计算机网络的内容我之前在另外一篇文章里详细地整理过,这里为了内容的完整性,就重新搬运过来凑一下。不只是 Java 程序员要学习这些,其他编程语言的程序员都学,学完后,整个人就升仙了,真的可以这么说。


7) 算法与数据结构

无论什么时候,程序=数据结构+算法这种说法都是成立的。浙江大学的一个的课还是挺不错的(我推荐过很多次了),很系统很经典,适合小白入门。143 小节,每节课五六分钟,男女老师混合讲,不同的台风,学习起来也会轻松一些。

视频地址如下所示:

https://www.bilibili.com/video/BV1JW411i731

8)操作系统

为什么要学习操作系统呢?第一,面试要考;第二,无论学习哪门子编程语言,比如说 Java、C/C++,都需要和操作系统打交道,像 Java 中的多线程技术,其实是由操作系统来负责进程和线程管理的;第三,学习操作系统,还能学到内存分配方面的知识。

我推荐清华大学的《操作系统》课,虽然清华大学的校门进不去,清华大学的视频课还是可以白嫖的嘛。一共 98 小节,每节课差不多 15 分钟左右。

视频地址如下所示:

https://www.bilibili.com/video/BV1js411b7vg

9)计算机组成原理

众所周知,计算机是由 CPU、内存、显示器这些设备组成的硬件,但我们大学毕业后,往往从事的是软件方面的开发工作。那怎样才能在硬件和软件之间自由穿梭呢?答案就是学好计算机组成原理。

弄明白了计算机的组成原理,也就对整个软件开发有了一个系统的认知,不论是计算机的硬件原理,还是软件架构,都能很好的驾驭,随之而来的,我们的职业发展机会也就更多了。

如果想深入学习计算机组成原理的话,我推荐哈工大的这门视频课,整体评价非常高。一共 128 节,每节课差不多 10 分钟左右,建议 1.5 倍速食用。

视频地址如下所示:

https://www.bilibili.com/video/BV1WW411Q7PF

10)计算机网络

当今这个时代,没有网络简直无法生存,哪怕是在电梯里的一分钟,我都受不了那种手机没有网络的状态。我们所学的编程知识,如果脱离了网络,将变得毫无意义,因为没有哪个编程语言是要在单机环境下运行的。

计算机网络方面的视频我推荐湖科大教书匠的《计算机网络微课堂》,制作得非常用心,是一部不可多得的佳作。目前更新了 73 小节,每节 20 分钟左右,很适合在假期刷。

视频地址如下所示:

https://www.bilibili.com/video/BV1c4411d7jb

10)设计模式

我认为设计模式是初中级程序员迈向高级程序员的必经之路。有不少程序员,前期冲劲十足,但后继乏力,都是吃了设计模式的亏。在工作的前几年,大部分程序员都处于熟悉编程语言的阶段,也就是处于“技”的阶段,随后就要进入“术”的阶段了。在编程领域,“术”的典型代表就是“设计模式”。

视频推荐韩顺平老师的,面向 Java 程序员的。

这么说吧,设计模式玩得炉火纯青,写出的代码就更优雅,阅读起来也会更加舒服,可维护性、可扩展性就更强。

https://www.bilibili.com/video/av57936239