天天看點

硬核,學習 Java 的一點小建議(思維導圖,建議收藏1)!

CSDN 收到一條讀者的私信,情真意切,是以我承諾他今天一定寫篇文章好好回複他一下。先來看一下他的私信内容吧。

硬核,學習 Java 的一點小建議(思維導圖,建議收藏1)!

首先映入我的眼簾的是這個稱呼——“老前輩”,我一下子沒忍住,笑了!

說起來也奇怪,上學的時候,同學幾乎都比我大,玩得好的基本上都是哥哥或者姐姐。就連高三時追過的一個學妹,後來得知竟然比我大幾個月。

可這些年呢?不管是遇到的讀者,還是寫部落格的朋友,幾乎不約而同的比我小,有上國中的,有上高中的,有讀大學的,有在職的,幾乎都是 90 後或者 00 後。比我年長的,還真的是鳳毛麟角、屈指可數!

不得不感慨,自己真的是“老前輩”了!!!!!!!!!殘忍!!!!!!!!

至于說讀了我的文章後“深有感觸,百般感想”,我不得不承認,這話恭維出了一股濃烈的文學家的色彩!

一名普普通通的中職計算機學生,即将踏進大專的計算機應用領域,極度的誠懇,袒露心聲,但“堅信我的一生定與計算機相關”,铿锵有力,讓我這個“老前輩”都有點震撼到了!

其實很多人學程式設計都會遇到困難,一開始極度的迷茫,沒有方向。

我上大學之前,沒怎麼接觸過電腦。僅有的機會應該就是去網吧聊 QQ,打忍者神龜了吧!或者看某些動作電影。

那真的是一個蠻荒的年代。

上了大學後,雖然陰差陽錯的選了計算機專業,但同學們都心裡門清,這是學校最不重視的專業,老師們的水準也非常堪憂,上課的時候明顯感覺到力不從心。

整個大學看得最多的書,就是《21 天學會 XXX》系列了,害,學的那叫一個什麼玩意。

一度懷疑,大學畢業後人該何去何從?

但上帝眷顧了我,讓我有幸在實習的時候進入一家外企,并且順利通過了三次考試,沒有被辭退,後來經過自己的努力竟然是新人當中最快成為團隊 Leader 的那一個。冥冥之中,這就成為了我的人生轉折點。

往事不堪回首,有太多的心裡話想要說給大家聽,請牢記。

第一,不管學校的課程有多爛,一定不要挂科。

不知道是從哪裡傳來的一句鬼話,“不挂科的大學是不精彩的。”

我大學的時候還特别喜歡這句話,于是還真挂科了好幾門,最後補考應該是批卷老師手下留情,都是壓着及格線過的。

我有幾個同學,大學的時候特别喜歡打魔獸,幾乎整天的時光都泡了遊戲當中,有些還知道收獲愛情,有些可真慘,畢業的時候是一無所有,愛情沒有,畢業證都沒有,挂的科真的難補,老師再放水,也得自己過及格線啊。

學曆雖然說不能代表一切,但步入了社會,想要做一名合格的打勞工,這學曆是必不可少的,進工廠還必須得要求學曆呢。

985、211 的學曆是學曆,雙非的大學也是學曆,就連被看不起的大專好歹也是學曆啊!

第二,自己要知道學,下勁學。

成績好,可以去好的學校,選擇好的專業,成績不好,隻能将就,自然身邊遇到的同學,整體水準可能就要差一些。

如果你去的是一個不好的學校,身邊的同學都在無所事事,都在消磨時光,假如你覺得既然大家都這樣,那自己也這樣吧,等到畢業的時候,才發現人家是叛逆,家裡已經安排妥當,你就真後悔也買不到後悔藥了!

我大學的同學當中,有三個,是公認的喜歡程式設計的,願意把自己培養成一名技術極客的。

當我們都在實作簡單的一對一的 Socket 和 SocketServer 通信時,他們三個當中的一個,已經做出了多對多的聊天室模式,就像“飛秋”那樣,既能發文字,還能發圖檔、表情,甚至檔案都行!

還知道把 JDK 也打包到程式當中,直接輕按兩下人家打包好的程式就能跑起來,我們的還得先裝 JDK,再在指令行啟動 SocketServer,然後再啟動 Socket,才能聯得通。

差距直接就拉滿!

他們仨根本就不管老師的教學進度,完全是憑借自己的愛好去學習的,他們想通過程式設計來改變命運。十多年過去了,他們也都實作了自己的夢想。

我說的都是真人真事。其中有兩個,在我的青銅時代讀者群裡,有一個,在我的黑鐵時代讀者群裡,在群裡的讀者都可以找到他們的頭像。

第三,不知道怎麼學,不知道學什麼,我來告訴你。

之前的叫道,這個叫術,一條龍服務。

首先,我強烈推薦大家先學一下 C 語言,先不說為什麼,先推薦學習工具和學習資源。

代碼編輯器用 VS Code。

書的話推薦《C 程式設計語言》,我大概花了一周的時間過了一遍,很有收獲。如果指針看不懂,沒關系,可以先跳過,但像變量、算術運算符、關系運算符、邏輯運算符、指派運算符、條件表達式、控制流、方法、傳參等等,這些其他程式設計語言裡都有,學一遍就不用學第二遍了。

視訊的話推薦,推薦浙江大學翁恺教授的《程式設計入門——C語言》。

https://www.icourse163.org/course/ZJU-199001?from=searchPage#/info

可以到慕課上或者 B 站上看,慕課上有證書認證。

記住,課程裡面的練習題一定要做,那可是浙江大學的練習題,不管你上什麼大學,都可以直接白嫖。浙大應該能在全國排前五吧(可能不準确),總之就是可以白嫖,想想能和浙大的同學共用一個老師,共用一套學習資源,美滋滋。

然後,我再來說為什麼要學習 C 語言。下圖是我在讀《深入了解計算機系統》的時候拍的一張圖,C 語言雖然是“古怪的、有缺陷的”,但同時也是一個巨大的成功。

C語言具備現代程式設計的基礎要求,它的文法是很多程式設計語言的基礎,比如說 Java。C 語言和 Java 常年霸占程式設計語言的前兩名,都非常強。C 語言學得好,對後續作業系統、編譯原理,以及 Java 的學習都是很好的基石。

如果你還處在學生階段,一定要花時間把這門課過一下,至于指針,就像我前面說的,可以稍微了解一下,如果真的一時半會學不會,就先跳過去。

說完 C 語言,我再來推薦兩門公開課,一門是哈佛大學的 CS50,一門是計算機科學速成課。這兩門課我之前都有推薦過,這裡再次強調,有時間一定要刷。嗯,應該說即使沒有時間,也要擠出時間來刷,以後你會來感謝我的。

網易公開課(CS50):

https://open.163.com/newview/movie/free?pid=M6U6LS8CV&mid=M6U6MHDUR

計算機科學速成課:

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

如果你下定決心,就像我這名讀者一樣,這一生都要從事于計算機專業,那就一定要看完這兩門課。

接下來,就是我的拿手活了!說說大學該怎麼學習 Java,從大一開始,就為校招做好準備。

國内大型的網際網路公司中,阿裡應該是最倚重 Java 的,是以先來看看阿裡校招對 Java 研發崗的要求。

硬核,學習 Java 的一點小建議(思維導圖,建議收藏1)!

看完之後,你可能會覺得,“咦,也沒說具體的要求呢?”是的,大廠在校招的時候對程式設計語言是沒有限制的。Java 的關鍵字就出現了一次,還是“或許,你并不熟悉 Java 程式設計語言,更精通 C,C++, PHP,.NET 等程式設計語言中的一種或幾種”,這什麼鬼?

嗯,再來看百度的。

硬核,學習 Java 的一點小建議(思維導圖,建議收藏1)!

啊,你心中萬分歡喜,終于他喵的出現了“熟悉 Java 程式設計語言”的要求。

校招不同社招,更看重的是你的計算機基礎功底和你的學習能力,并不看重程式設計語言本身。要知道,我們學的是計算機科學(CS),而不是程式設計語言,程式設計語言隻是工具而已。

可能很多同學會說,你隻說了阿裡和百度,它們是國内網際網路的杠把子,比較難,但其實如果你去查了其他公司 Java 研發崗的要求,你會發現,基本上和這兩家要求的差不多,隻不過深度和廣度不大一樣。

按照這兩家的招聘要求,我來說說具體該學哪些知識。