前言
只有光頭才能變強。
文本已收錄至我的GitHub精選文章,歡迎Star:https://github.com/ZhongFuCheng3y/3y
春節在家刷知乎,看到了一個知乎的問題:《學習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:https://github.com/ZhongFuCheng3y/3y
求點贊 求關注️ 求分享👥 求留言💬 對我來說真的 非常有用!!!
收藏等於白嫖,點贊才是真情!
收藏等於白嫖,點贊才是真情!
收藏等於白嫖,點贊才是真情!