前言
只有光頭才能變強。
文字已收錄至我的GitHub精選文章,歡迎Star:github.com/ZhongFuChen…
春節在家刷知乎,看到了一個知乎的問題:《學習Java可以幹什麼呢?》
我是一個Java的初學者,大概學了四天,對Java到底能做什麼還是一頭霧水,每天對著黑屏(DOS系統)除了編譯還是編譯,那麼Java對於一個初學者來說Java可以做些什麼呢?
問題的連結:
看到了這個問題,就想起了我在大學自學的時候有同樣的問題,現在工作了,來寫寫自己的看法,希望對廣大的初學者有所幫助。
注:本文非常適合零基礎初學者觀看
如果別人讓我介紹我是做什麼工作內容的,我可能會用以下的方式告訴他(不知道學Java可以幹些什麼,可能就不知道下面的流程是怎麼樣的):
“你可以掏出手機,開啟微信”
“我們都是玩微信的人,要進入微信先得有個賬戶,所以要先註冊“
“註冊實際上就是把你的賬號和密碼「儲存」起來”。
“如果你註冊成功了,那小本本「資料庫」就有你的賬號和密碼了。等你登入的時候,就去小本本「資料庫」查一下你輸入的賬號和密碼是否匹配”
“看到這裡,有沒有覺得「程式設計師」真是容易當,不就把輸入的資料記錄下小本本,等用到的時候再查一下而已嘛。其實不然,就好比微信的註冊頁面,拿IOS系統來說,從IOS 6
到現在的IOS 12
已經有6個版本了。Iphone手機螢幕的尺寸也一直在變,從3.5
英寸到現在的6.5
英寸。微信團隊需要對不同的「版本」,不同的「螢幕大小」進行相容,讓iPhone4s還是iPhoneXS Max都能用上微信。(起碼在不同的手機上,看到的註冊功能都是完整的,而不是東一塊西一塊不整齊的)”
“還比如說,小本本「資料庫」記下的密碼不能是你輸入的「原始密碼」。舉個例子:某一天,一個在微信團隊的小夥子拿到了存放賬號和密碼的小本本「資料庫」,把小本本「資料庫」的內容給公開了。(或者說一個黑客把微信給攻破了,然後公開小本本「資料庫」),那豈不是誰都可以上我的微訊號了?”
“程式設計師們當然可以考慮到這點,他們會這樣做,將你輸入的密碼進行「加密」存到小本本「資料庫」中。無論是誰,拿到加密後的密碼,都**不能「反推」**你原始輸入的密碼。”
“所以,每次比對的都是加密後的密碼”
一個功能遠遠沒有上面所講的那麼簡單,可能一個小小的功能背後是一個大大的團隊在支援...
收藏等於白嫖,點贊關注才是真情!
收藏等於白嫖,點贊關注才是真情!
收藏等於白嫖,點贊關注才是真情!
我學習Java能做什麼?
題主目前你學了四天有這種情況是非常常見的。我當時學了四天學了什麼?
- 安裝Java開發環境用了一天
- 學習基礎的語法:基本的物件導向概念、for迴圈、if、三目運算子,簡單的API(能輸出HelloWorld)
如果題主能繼續堅持學習Java基礎,發現可能將近一個月都是對著黑視窗在玩。
- 無論這個黑視窗是系統自帶的,還是題主已經在用IDE了
整合開發環境(IDE,Integrated Development Environment )是用於提供程式開發環境的應用程式,一般包括程式碼編輯器、編譯器、偵錯程式和圖形使用者介面工具
學習Java基礎的確不能做出些有趣的東西,學著學著會有枯燥的感覺。物件導向-封裝繼承多型、集合、多執行緒、反射、網路程式設計、內部類等等這些Java基礎都是在黑視窗上學習和實踐的。
這些玩意有意思嗎?是沒什麼意思,學完這些知識會讓自己產生疑問 “這些基礎能寫成一個應用嗎”(無論是現在用的知乎APP還是PC版的知乎)。
這是一個非常正常的疑問,我在初學的時候也經常問自己:”我學這些東西好像沒什麼卵用啊,為什麼網上(知乎、貼吧等論壇)的都在說 “初學要打好基礎,等你學好Java基礎,那工作就不愁了”
但是我當時一點都不知道這些基礎用在哪裡,迷茫。
我看視訊還是看書?
題主能夠在知乎上提問了,我也預設題主已經在知乎看到過不少類似的問題,可能還沒找到自己想要的答案。在搜尋的時候應該能看到類似的問題《自學Java看視訊還是看書》
這個問題在初學的時候我也經常糾結。糾結的原因很簡單:
- 會有一部分人說:看視訊沒用,視訊講得太簡單了,都是騙你去培訓班的。看視訊也太慢了,學習最快還是看書好
- 會有一部分人說:零基礎看書看不進去,學不會的,看視訊好,一個老師帶著你學習
這個問題我在工作了以後還跟同事討論過,我是支援零基礎學習看視訊,他是支援直接看書籍。
我倆誰也說服不了誰。那到底是初學看視訊比較好,還是看書籍比較好?
知識點好多,我記不住
隨便找一本評分比較高的Java基礎的書籍來看一下,都是非常厚的。以《Java瘋狂講義》為例,有889頁。拿著他比磚頭還要重。
今天跟著書籍/視訊學習了「內部類」,等學到多執行緒的時候再看一下這個「內部類」,發現已經看不懂他的語法了。昨天跟著書籍/視訊學習了「網路程式設計」,發現上週學完的集合API全忘掉了....
咋整?知識點這麼多,有這麼多的API,我不可能全部能記得住啊...學完很容易就忘記了。
哪些需要重點學習,工作中常用的知識點有哪些
在初學Java的時候然後去相關的IT論壇逛逛,發現全都看不懂。明明是在學程式設計,但IT論壇的問題一個都看不懂。看著一大堆的專業名詞,就猶如明明是中國人但看不懂奰媕鰥魍讖觳豳
這些字一樣。
初學者在論壇上看到面向切面程式設計、高併發、AOC、IOC、Mybatis、Linux
這些可能都不知道是幹嘛的,明明是Java
的標籤,但出來專業名詞的好像都看不懂。
Java要學的東西也太多了吧,基礎已經這麼多了,後面的怎麼學,我應該學習哪些重點啊?
我學到怎麼樣的程度可以找到一份工作
我耗時幾個月熬過頭了,已經學了Java基礎、JavaWeb、簡單的資料庫、SSM框架等等一些基本的使用了。現在想要找一份工作,但不知道企業招人的標準是什麼。
現在我學得這些,我覺得還有點虛,感覺跟實際工作的內容有較大的差距,學了這麼多還是沒有一點兒的底氣,怎麼辦?
會寫一點點的SSM和增刪改查,簡單的會寫,難的就不會了**。很急,線上等,怎麼辦**。
我的理解
學習Java能幹什麼?
現在Java按簡單來說有兩種方向:後端和客戶端
- 對造APP感興趣的可以學Android
- 對服務端感興趣的可以學Java後端
- (後端延伸出去也可以學大資料...
既然你會在知乎上提問了,你有沒有想過你輸入完內容,點選釋出問題
按鈕的時候程式設計師為你做了些什麼?
- 點選發布問題的時候,至少你提的這個問題是需要能被你再次開啟,看看有沒有相關回答者的吧?那是不是知乎要拿小本本把你這個問題給記錄下來,後續找到了這個問題然後給你下一次開啟。
- 那至少要做的就得把你釋出的問題記錄下來(記下),等你再次點開的時候再找到你的問題(查詢),如果你把問題給刪除了,那就得把記下的問題給刪掉(刪除),如果你把問題給修改了,那就得把你記下的問題給修改了。總之,你先要把問題給釋出(存到小本本里邊),你才能刪改查
- 上面這些工作誰來幹?程式設計師寫程式碼來做。可能用Java,可能用Python,可能用Go,可能用全世界最好的語言PHP...
扯了一大堆,那我為啥還天天對著黑視窗在學習?而不是直接學習《如何實現類似知乎的釋出問題功能》
顯然你讀懂一篇英文課文之前,你總得認識單詞。你連單詞都不認識,怎麼做閱讀理解呢?學習Java能做很多東西,你日常用到的APP/瀏覽的網頁背後很可能就是用Java寫的程式碼。
總之,學習Java了可以能讓你瞭解一個網站和APP的基本執行原理,點了一個按鈕會發生什麼,為什麼會這樣。
- 知道為什麼今年淘寶雙十一在新增購物車的時候,有時會出現失敗
- 知道為什麼我在查飛機票的時候,查不到資訊
- 知道為什麼.....
看書還是看視訊
我是建議零基礎看視訊入門的,原因有以下:
-
大部分零基礎學Java的同學都沒有比較好的理解能力,看視訊可以幫助你快速入門(視訊可以加速觀看)
-
避免踩坑。書上講的知識點的確是非常全,但有兩個問題:
- ①初學者抓不到重點,可能對著細小的知識點猛學一頓,發現這個知識並沒多大的卵用。
- ②初學者不知道學習路線。看書不是完完整整從頭看到尾的,很可能書上一段的知識點現在已經沒用了,但是你還是費勁去學(比如AWT SWING 現在就用得很少了,但書還是有大篇幅去講解,如果你順著學可能就浪費很多時間在裡邊)
看視訊能讓你抓住重點,快速瞭解知識點。但總的來說是因人而異,有的人理解能力就是好,看書就很快就學會了。
知識點太多,學完就忘,記不住
要明確的是,我們寫程式碼的不是背書,不是讓你將所有的API給記下來。現在開發工具,提示功能已經是比較好的了。在工作的時候忘了,也可以查百度/Google。
我們並不需要把所有的東西給記下來,重要的是:我們知道有這項技術,這項技術能幫我們解決掉什麼問題。
所以,在學習一項技術之前,必須要知道為什麼。為什麼需要學習這項技術,不學的話行不行。學了這項技術,我能解決什麼問題。
如果不理解為什麼要學習某項技術,就去學用法和API。我認為如果隔一陣子不用,的確是會忘記的。
比如說,如何你連“為什麼要用多執行緒”你都無法用通俗的話來解釋清楚。
即便你當時學習的時候知道多執行緒可以用xxx方式來建立,多執行緒的xxx的api。那再過兩個月,人家問你”Java多執行緒有什麼用啊?”。
你想想你還能答什麼,我認為你是記不住“多執行緒可以用xxx方式來建立、多執行緒的xxx的api”這些知識點了。
-
如果你不知道學習某項技術是幹嘛用的,那先不要學
-
如果你不知道學習某項技術是幹嘛用的,那先不要學
-
如果你不知道學習某項技術是幹嘛用的,那先不要學
重點的東西可以寫筆記記錄下來(這個也是因人而異,我身邊的大佬很多也不寫筆記。但是我是推崇寫筆記的)。
哪些需要重點學習,工作常用的知識點
我簡單整理了一下畫成了思維導圖:
總結一下我認為學習Java的路線:
- Java基礎-->流程控制-->物件導向(包括Java語法)-->Java集合-->Java IO流-->異常-->多執行緒-->網路程式設計-->反射
- JavaWeb基礎-->HTML/CSS/JavaScript/jQuery-->Tomcat-->XML/註解->Servlet-->HTTP-->Filter過濾器和監聽器-->JSP-->AJAX/JSON-->資料庫(MySQL)-->JDBC和DbUtils
- 專案管理和框架-->Maven-->SpringBoot
- Linux基本命令
最後我們的專案是這樣的:
- 以Maven來管理我們的專案
- 前端通過BootStrap來搭建頁面框架
- SpringBoot來搭建Java後端環境,SpringMVC處理前端請求(SpringBoot整合了)
- DAO層使用DbUtils元件來完成,MySQL作為資料庫
怎麼樣才能找到工作
只要你能從零把一個專案搭建起來,能執行在伺服器上。用上的技術還不爛,那我認為就可以找到Java的工作了。
其實學完上面的,認認真真花一個月從零自己寫一個達到找工作的門檻是不難的。但面試之前是一定需要刷面試題的。
如果還是學生的同學一定一定要參加校招,一定一定要刷演算法題,鞏固計算機網路、作業系統、資料庫的基礎。
如果還是學生的同學一定一定要參加校招,一定一定要刷演算法題,鞏固計算機網路、作業系統、資料庫的基礎。
如果還是學生的同學一定一定要參加校招,一定一定要刷演算法題,鞏固計算機網路、作業系統、資料庫的基礎。
堅持堅持堅持學習就肯定能找到工作!
最後
由於篇幅問題,很多細節就沒在文章中寫了。但是我已經把我自學到找到工作以及工作常用到的技能都寫成了部落格。現在已經更新了300+多的原創文章。
從Java基礎(集合、多執行緒、設計模式)到JavaWeb基礎(Servlet、JSP、過濾器)再到JavaEE常用框架(SpringMVC、Spring、Mybatis、SpringBoot)再到找工作的經歷(寫簡歷,刷面試題)再到工作後常用的技能(Linux命令,SQL編寫,經驗分享)都記錄了下來。文章質量都槓槓的,歡迎查閱!
如果大家想要實時關注我更新的文章以及分享的乾貨的話,可以關注我的公眾號「Java3y」。
- ?海量視訊資源
- ?Java精美腦圖
- ?Java學習路線
- ?開發常用工具
- ?精美整理好的PDF電子書
在公眾號下回復「888」即可獲取!!
本已收錄至我的GitHub精選文章,歡迎Star:github.com/ZhongFuChen…
求點贊 求關注️ 求分享? 求留言? 對我來說真的 非常有用!!!
收藏等於白嫖,點贊才是真情!
收藏等於白嫖,點贊才是真情!
收藏等於白嫖,點贊才是真情!