B 站真香!
處在互聯(lián)網(wǎng)時代,是一種幸福,因?yàn)楦魇礁鳂拥男畔⒎浅H菀子|達(dá),如果掌握了信息篩選的能力,就真的是“運(yùn)籌帷幄之中,決勝千里之外”。
當(dāng)然了,要掌握這種能力,并不是一件容易的事。因?yàn)楹A康男畔⒁馕吨须s、紛亂、煩惱,稍有不慎,就有可能被其吞噬,迷失了方向、浪費(fèi)了時間,不僅沒有學(xué)習(xí)到知識,甚至連娛樂也沒有娛樂到。
眾所周知,B 站是一個神奇的網(wǎng)站,上面有各種各樣的視頻資源,可以說是包羅萬象、應(yīng)有盡有。很多人在上面跟著 UP 主上自習(xí)、考研、學(xué)編程,還真的能學(xué)有所成。
這其中的關(guān)鍵,就是如何篩選出真正優(yōu)質(zhì)的視頻。這很難,不僅需要一雙發(fā)現(xiàn)美的眼睛,還需要花時間去檢驗(yàn)。發(fā)現(xiàn)美的眼睛大家都有,但時間就不一定了,尤其是被工作壓榨到極限的小伙伴們。
去年的這個時候,受慶哥的影響,我開始在 B 站上刷視頻,喜歡上了兩位 UP 主,一位是程序員領(lǐng)域的 CodeSheep(44 萬粉絲),一位是學(xué)習(xí)領(lǐng)域的兔叭咯(414 萬粉絲)。
從此我的生活可以說是發(fā)生了天翻地覆的變化,每天不上 B 站刷一會視頻就覺得少點(diǎn)啥。后來我又在 B 站上發(fā)現(xiàn)了一位漂亮的程序員小姐姐,她的視頻也非常有幫助。哇,第一眼看到的時候真的是驚艷到!該死,我這雙善于發(fā)現(xiàn)美的眼睛。

剛好周末的時候,有小伙伴問我有沒有關(guān)于 Java 的整套學(xué)習(xí)視頻,我就想著,不如把我這一年來看的 Java 視頻匯總一下,形成一條完整的學(xué)習(xí)路線分享給大家,空的時候也可以刷一刷,養(yǎng)養(yǎng)眼,學(xué)學(xué)習(xí),享受一下 B 站的快樂。

1)入門篇
我推薦尚硅谷的 Java 零基礎(chǔ)教程,雖然 UP 主是一家培訓(xùn)機(jī)構(gòu),但這套視頻的播放量還是挺大的,很受廣大群眾的喜愛。尤其是宋老師很可愛地說出自己是“英俊瀟灑”的時候,我就被這個胖嘟嘟的男人征服了。這讓我不由得想起脫口秀演員楊笠的一句話:“你那么普通,為什么就那么自信呢?”

好家伙,這視頻足足 715 個小節(jié),我滴媽呀,請至少 1.25 倍速食用!我是用 1.5 倍速過了一遍,感覺還是非常適合初學(xué)者的。
https://www.bilibili.com/video/BV1Kb411W75N
翁愷教授的 C 語言課程我在之前推薦過,后來又看了他的 Java 課程,感覺真的不愧是教授,講課就是舒服,不是那種高高在上的感覺,很接地氣。不過,這個視頻是搬運(yùn)過來的,彈幕沒那么多,對于 B 站的用戶來說,確實(shí)少了不少樂趣。

https://www.bilibili.com/video/BV1DJ411B7cG
2)工具篇
工欲善其事必先利其器,已經(jīng) 2021 年了,真沒必要在記事本上敲代碼了。反正我遇到過太多的課程,包括我上大學(xué)的時候,老師一而再再而三的強(qiáng)調(diào),一定要用記事本敲出來第一個程序,并且在命令行里成功運(yùn)行起來。
這么多年下來,我覺得這個建議真的是糟糕極了。記事本和命令行,怎么能讓初學(xué)者上手呢?最起碼也得是個老江湖才行啊!當(dāng)年我就差點(diǎn)被記事本和命令行勸退。
掌握了下面這些工具,學(xué)習(xí)起來也會更加順手,不用瞎折騰。Intellij IDEA,不用說,是編寫 Java 程序的最佳 IDE,必須得掌握。

講師仍然是宋宏康,“廢話”講得很幽默,我記得他在視頻中把 IDEA 比喻成媳婦,比如成蘋果手機(jī),差點(diǎn)笑到岔氣。老師,求生欲真的太強(qiáng)了。
https://www.bilibili.com/video/BV1PW411X75p
接下來是 Maven,可以幫助我們解決 jar 包的煩惱。UP 主仍然是尚硅谷這家培訓(xùn)機(jī)構(gòu),麻蛋,一不小心幫他們宣傳了好多次,打錢打錢!但不得不承認(rèn)啊,這家培訓(xùn)機(jī)構(gòu)還挺有眼光的,很早把這種錄制的視頻免費(fèi)地放了出來,迅速地就占領(lǐng)了視頻領(lǐng)域的市場。

這樣做技能擴(kuò)大影響力,還能鑒定教學(xué)的水準(zhǔn),服!
https://www.bilibili.com/video/BV1TW411g7hP
然后是 Git,工作中也是必須掌握的。UP 主是遇見狂神說,我個人覺得非常好的一個 UP 主,有人說狂神開始收費(fèi)割韭菜了,“果然天下烏鴉一般黑”,但我想說的是,白嫖了那么久,該付費(fèi)付費(fèi)啊。人家又不是全部收費(fèi),還是有免費(fèi)視頻可以白嫖的呀,很香啦!

所有的視頻都收費(fèi)肯定不是好事,所有的視頻都免費(fèi)也不見得是好事,這個世界不能大同化,必須得有差異,對吧?像我,既喜歡白嫖,又喜歡在必要的時候付費(fèi)下,支持下作者,才能長久嘛。
https://www.bilibili.com/video/BV1FE411P7B3
3)數(shù)據(jù)庫篇
學(xué)習(xí)一門編程語言,如果不去操作下數(shù)據(jù),就感覺這門編程語言空有皮囊卻沒有靈魂,對吧?
要想學(xué)好數(shù)據(jù),首先要學(xué)習(xí)一下 SQL,我推薦一個老外的視頻課(中字版啦),內(nèi)容制作得非常棒,所以完全不用擔(dān)心聽不懂。

視頻是搬運(yùn)的,在這里對 UP 主要說一聲辛苦了!國外的視頻有一點(diǎn)我必須得強(qiáng)調(diào)一下,就是整個畫面制作得非常舒適,觀感非常好。
https://www.bilibili.com/video/BV1UE41147KC
然后再學(xué)習(xí)一下市場占有率非常高的 MySQL,視頻我推薦尚硅谷的,女老師講的。不得不承認(rèn),老師講得很精彩,嗯,彈幕里也很精彩。

這個視頻是從尚硅谷官網(wǎng)搬運(yùn)過來的,但彈幕非常多,很有意思。
https://www.bilibili.com/video/BV12b411K7Zu
當(dāng)然了,也可以看下面這個英文中字版的,3 個小時就能學(xué)完。

同樣是搬運(yùn)的,視頻本身的質(zhì)量很高,但有點(diǎn)瑕疵就是中文字幕出現(xiàn)的位置有點(diǎn)問題,導(dǎo)致看起來并不那么舒服。推薦給英文功底比較好,或者想提升一下英語功底的小伙伴看一下。
https://www.bilibili.com/video/BV1iJ411m7Fj
目前大多數(shù)公司的存儲都是 MySQL + Redis,MySQL 作為主要的存儲方式,Redis 作為緩存,用來加快熱點(diǎn)數(shù)據(jù)的讀寫速度,從而提高性能。所以學(xué)完 MySQL,可以趁熱打鐵學(xué)一下 Redis,也可以放到后面學(xué)。

視頻同樣是狂神說的,語速很快,感覺像是自動倍速到 1.5 倍一樣,太優(yōu)秀了。
https://www.bilibili.com/video/BV1S54y1R7SB
4)框架篇
首先是 SSM(Spring+SpringMVC+MyBatis,企業(yè)級應(yīng)用的必須品)的整合教程,哪怕是已經(jīng)有了 Spring Boot,SSM 仍然是必學(xué)的,因?yàn)槟転楹竺娴膶W(xué)習(xí)打下更堅實(shí)的基礎(chǔ)。

首先推薦狂神說的 Spring 教程,總共 28 個小節(jié),全部看完也不需要太多時間。重點(diǎn)是 Spring 的 AOP(面向切面編程,Aspect-Oriented Programming)和 IOC(控制反轉(zhuǎn),Inversion of Control)。
https://www.bilibili.com/video/BV1WE411d7Dv
尚硅谷的 Spring 課程也可以看一看。我看彈幕里有說,之前花了 399 買了這個課程,不知道真假,反正現(xiàn)在可以白嫖就對了。

https://www.bilibili.com/video/BV1Vf4y127N5
然后是 Spring MVC,那必須得推薦自家兄弟的,江南一點(diǎn)雨,也就是松哥了,很有潛力的一個新 UP,推薦大家關(guān)注下,據(jù)他說,后面還會推出很多新的免費(fèi)視頻。

松哥一開始的視頻使用了變聲,就我個人而言,更喜歡原聲。我們私底下見過一面,是個非常誠懇的好 boy。
https://www.bilibili.com/video/BV1qp4y1n7D1
狂神錄的 Spring MVC 播放量更大一點(diǎn),同樣推薦。我看有彈幕說已經(jīng)第五次刷了,這說明狂神的風(fēng)評是真的好。

Spring MVC 是 Spring 框架內(nèi)置的一個 MVC(Model-View-Controller,也就是模型-視圖-控制器)實(shí)現(xiàn),用于解決 Web 開發(fā)中常見的問題,比如說參數(shù)接收、文件上傳、表單驗(yàn)證、國際化等等。
在 Spring MVC 出現(xiàn)之前,我們用 Servlet 來做 Web 開發(fā),但Servlet 在接收請求參數(shù)、數(shù)據(jù)共享、頁面跳轉(zhuǎn)等操作時相對比較復(fù)雜,SpringMVC 就是對 Servlet 進(jìn)行更深層次的封裝。
Spring 提供的是一個 IOC 容器,所有的 Bean,包括 Controller,都是在 Spring IOC 容器中初始化的,而 Servlet 容器通常由 JavaEE 服務(wù)器提供(比如 Tomcat),它們之間就是通過 Spring MVC 聯(lián)系起來的。
使用 Spring MVC 時,整個 Web 應(yīng)用程序的啟動順序如下:
啟動 Tomcat 服務(wù)器; Tomcat 讀取 web.xml 并初始化 DispatcherServlet; DispatcherServlet 創(chuàng)建 IOC 容器并自動注冊到 ServletContext 中。
如果有小伙伴是初次接觸 Web 開發(fā),可能會對上面提到的概念比較陌生,可以根據(jù)視頻快速搭建一個小實(shí)例體驗(yàn)一下。
https://www.bilibili.com/video/BV1aE41167Tu
接下來是 SSM 中的 M,也就是 MyBatis。老規(guī)矩,先上松哥的。

播放量雖然比較小,但是內(nèi)容還是很詳實(shí)的,值得白嫖。
https://www.bilibili.com/video/BV1c54y1a7GE
不能少,狂神說的 MyBatis,播放量還是挺大的,一共 32 小節(jié)。

MyBatis 是一款優(yōu)秀的持久層框架,支持自定義 SQL、存儲過程以及高級映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。
借助 MyBatis,我們可以通過簡單的 XML 或注解來配置和映射原始類型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 對象)為數(shù)據(jù)庫中的記錄。
https://www.bilibili.com/video/BV1NE411Q7Nx
學(xué)完 SSM,自然就少不了要學(xué) SpringBoot,現(xiàn)在已經(jīng)是 2021 年的 3 月份,所有的 Java 程序員都必須得掌握 Spring Boot 已經(jīng)變成了一條定律,就像勾股定律一樣。
SpringBoot 的話,松哥也錄了,只不過沒有放出來,單獨(dú)作為課程賣了,他講得其實(shí)非常好。既然自家兄弟的沒法白嫖,那就推薦狂神說的 Spring Boot 吧,我也很喜歡,播放量也挺大。

Spring Boot 是由 Pivotal 團(tuán)隊提供的一個全新框架,其設(shè)計目的是用來簡化 Spring 應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。說句人話就是,Spring Boot 不是什么新的框架,它默認(rèn)配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。
https://www.bilibili.com/video/BV1PE411i7CV
有了 Spring Boot 之后呢,僅僅只需要非常少的幾個配置就可以快速地搭建一套 Web 項目!使用 Spring Boot 有多爽,可以用下面這幅圖來表述下——參考自我大哥純潔的微笑的一篇 1429658 瀏覽量的文章。

最后是 SpringCloud,狂神說這也有。

Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),如服務(wù)發(fā)現(xiàn)注冊、配置中心、消息總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用 Spring Boot 的開發(fā)風(fēng)格做到一鍵啟動和部署。
Spring 并沒有重復(fù)制造輪子,它只是將目前各家公司開發(fā)的比較成熟、經(jīng)得起實(shí)際考驗(yàn)的服務(wù)框架組合起來,通過 Spring Boot 風(fēng)格進(jìn)行再封裝屏蔽掉了復(fù)雜的配置和實(shí)現(xiàn)原理,最終給開發(fā)者留出了一套簡單易懂、易部署和易維護(hù)的分布式系統(tǒng)開發(fā)工具包。
https://www.bilibili.com/video/BV1jJ411S7xr
5)JVM 篇
JVM 是相對難吃透的一個環(huán)節(jié),但卻十分的重要,我把它放到框架篇后面,就是希望大家能在儲備了大量的實(shí)戰(zhàn)經(jīng)驗(yàn)后再來深入的理解 Java 虛擬機(jī)。
尚硅谷的這套視頻課程分為《內(nèi)存與垃圾回收篇》《字節(jié)碼與類的加載篇》《性能監(jiān)控與調(diào)優(yōu)篇》三個篇章,如果你能順利學(xué)完的話,可以說 Java 虛擬機(jī)方面已經(jīng)是有點(diǎn)小心得了。

JVM 屏蔽了與具體操作系統(tǒng)平臺相關(guān)的信息,使得 Java 程序只需要生成在 Java 虛擬機(jī)上能運(yùn)行的目標(biāo)代碼,也就是字節(jié)碼,就可以實(shí)現(xiàn)跨平臺的訴求了。JVM 學(xué)得通透的話,可以說是非常牛逼的程序員了。
https://www.bilibili.com/video/av83622425
6)源碼篇
面試的時候,面試官都特別喜歡問一些源碼方面的知識,比如說 HashMap 的一些經(jīng)典問題,加載因子為什么是 0.75?哈希沖突的時候,HashMap 是如何查找并確認(rèn)元素的等等,這些問題只有通過源碼才能得出比較準(zhǔn)確的回答,對吧?
我有個同學(xué)說過一句話,給我的印象特別深刻,就是“有啥解決不了的?只要你肯閱讀源碼。”說起來源碼,我是不太建議新手去閱讀,容易勸退。不信,你讓一個小學(xué)生去讀一下《百年孤獨(dú)》,我保證他會從此對閱讀失去興趣。等有了一些編程經(jīng)驗(yàn)后,再去閱讀源碼,就會有很大的收獲。

羊哥出過一個視頻,詳細(xì)地介紹了如何閱讀 JDK 源碼,推薦給大家。
https://www.bilibili.com/video/BV1V7411U78L
算法與數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、計算機(jī)組成原理、計算機(jī)網(wǎng)絡(luò)的內(nèi)容我之前在另外一篇文章里詳細(xì)地整理過,這里為了內(nèi)容的完整性,就重新搬運(yùn)過來湊一下。不只是 Java 程序員要學(xué)習(xí)這些,其他編程語言的程序員都學(xué),學(xué)完后,整個人就升仙了,真的可以這么說。
7) 算法與數(shù)據(jù)結(jié)構(gòu)
無論什么時候,程序=數(shù)據(jù)結(jié)構(gòu)+算法這種說法都是成立的。浙江大學(xué)的一個的課還是挺不錯的(我推薦過很多次了),很系統(tǒng)很經(jīng)典,適合小白入門。143 小節(jié),每節(jié)課五六分鐘,男女老師混合講,不同的臺風(fēng),學(xué)習(xí)起來也會輕松一些。

視頻地址如下所示:
https://www.bilibili.com/video/BV1JW411i731
8)操作系統(tǒng)
為什么要學(xué)習(xí)操作系統(tǒng)呢?第一,面試要考;第二,無論學(xué)習(xí)哪門子編程語言,比如說 Java、C/C++,都需要和操作系統(tǒng)打交道,像 Java 中的多線程技術(shù),其實(shí)是由操作系統(tǒng)來負(fù)責(zé)進(jìn)程和線程管理的;第三,學(xué)習(xí)操作系統(tǒng),還能學(xué)到內(nèi)存分配方面的知識。
我推薦清華大學(xué)的《操作系統(tǒng)》課,雖然清華大學(xué)的校門進(jìn)不去,清華大學(xué)的視頻課還是可以白嫖的嘛。一共 98 小節(jié),每節(jié)課差不多 15 分鐘左右。

視頻地址如下所示:
https://www.bilibili.com/video/BV1js411b7vg
9)計算機(jī)組成原理
眾所周知,計算機(jī)是由 CPU、內(nèi)存、顯示器這些設(shè)備組成的硬件,但我們大學(xué)畢業(yè)后,往往從事的是軟件方面的開發(fā)工作。那怎樣才能在硬件和軟件之間自由穿梭呢?答案就是學(xué)好計算機(jī)組成原理。
弄明白了計算機(jī)的組成原理,也就對整個軟件開發(fā)有了一個系統(tǒng)的認(rèn)知,不論是計算機(jī)的硬件原理,還是軟件架構(gòu),都能很好的駕馭,隨之而來的,我們的職業(yè)發(fā)展機(jī)會也就更多了。
如果想深入學(xué)習(xí)計算機(jī)組成原理的話,我推薦哈工大的這門視頻課,整體評價非常高。一共 128 節(jié),每節(jié)課差不多 10 分鐘左右,建議 1.5 倍速食用。

視頻地址如下所示:
https://www.bilibili.com/video/BV1WW411Q7PF
10)計算機(jī)網(wǎng)絡(luò)
當(dāng)今這個時代,沒有網(wǎng)絡(luò)簡直無法生存,哪怕是在電梯里的一分鐘,我都受不了那種手機(jī)沒有網(wǎng)絡(luò)的狀態(tài)。我們所學(xué)的編程知識,如果脫離了網(wǎng)絡(luò),將變得毫無意義,因?yàn)闆]有哪個編程語言是要在單機(jī)環(huán)境下運(yùn)行的。
計算機(jī)網(wǎng)絡(luò)方面的視頻我推薦湖科大教書匠的《計算機(jī)網(wǎng)絡(luò)微課堂》,制作得非常用心,是一部不可多得的佳作。目前更新了 73 小節(jié),每節(jié) 20 分鐘左右,很適合在假期刷。

視頻地址如下所示:
https://www.bilibili.com/video/BV1c4411d7jb
10)設(shè)計模式
我認(rèn)為設(shè)計模式是初中級程序員邁向高級程序員的必經(jīng)之路。有不少程序員,前期沖勁十足,但后繼乏力,都是吃了設(shè)計模式的虧。在工作的前幾年,大部分程序員都處于熟悉編程語言的階段,也就是處于“技”的階段,隨后就要進(jìn)入“術(shù)”的階段了。在編程領(lǐng)域,“術(shù)”的典型代表就是“設(shè)計模式”。
視頻推薦韓順平老師的,面向 Java 程序員的。

這么說吧,設(shè)計模式玩得爐火純青,寫出的代碼就更優(yōu)雅,閱讀起來也會更加舒服,可維護(hù)性、可擴(kuò)展性就更強(qiáng)。
https://www.bilibili.com/video/av57936239
如果想要離線版的設(shè)計模式學(xué)習(xí)資料,可以通過下面這個鏈接下載(無套路,不需要解壓密碼):
這一套 Java 視頻整下來,可以說不禿也變強(qiáng)了!
視頻相對于書籍來說,比較直觀,因?yàn)橐曨l不僅有文字,還有聲音,還有畫面,給我們的觀感是全方位的,眼睛和耳朵同時在接收信息,仿佛身臨其境一般。視頻的表達(dá)力顯然也比書籍更勝一籌,畢竟視頻是新時代的產(chǎn)物,雖然歸根結(jié)底,視頻不過是文字的另一種表達(dá)形式,但它比書籍更符合現(xiàn)代社會的訴求。
只要學(xué)習(xí)路線對了,加上合理的學(xué)習(xí)方法,通過看視頻同樣能取得較好的學(xué)習(xí)成果。
好了,祝大家順利!記得給我點(diǎn)贊啦~
