-
1 # Java鬥帝之路
-
2 # 大剛子原創
不知道你學到了什麼程度,學習是一個循序漸進的過程,俗話說一口吃不了一個大胖子,如果不論你是你是向安卓開發領悟還是向web開發,伺服器開發都是需要一步步來的。作為一個過來人建議你先從一個點進行深入,比如你學會了安卓開發轉向web也是很容易的,因為萬變不離其宗,程式執行的原理都是相通的,有什麼具體問題可以向我提問。
-
3 # 瀟瀟灑灑程式設計師
個人認為,如果感覺到了瓶頸,證明學習得不夠深入。 可能你是被框架的知識,或者說java的知識困擾了。程式設計說白了還是對現實進行虛擬化,現實是無窮無盡在變化的。我們應該深入去了解總結程式設計的思想,如何更好更高效的解決現實問題。就例如從基礎到現在我們都在做的登入功能,從最基礎的賬號密碼,到騰訊阿里授權,Oauth2.0。。。這裡的知識就夠豐富了,我們應該去想想Oauth2.0的設計理念,這種理念解決了哪些問題,其實跟語言沒太大關係
-
4 # 愛要越做越勇
沒做東西之前學習基礎理論感覺好沒用,因為學了也無法領悟,也不會用。用框架開發多了又感覺空空的,迷茫,應該回來再把基礎理論學一遍,不僅能加深理解,在寫的時候也能用上。
-
5 # 駭客之家
你需要有一個新的學習方向,找到自己的學習方向!瓶頸期說明你學習一些基礎知識和框架之後不知道自己該往哪個方向走。首先應該明確Java一門有著20多年曆史的程式語言,而且Java是一門企業級的程式語言,很多大公司都在使用Java。應該說Java語言中有你學不完的知識,就算是有五六年Java開發經驗的也不可能完全精通Java。
你要明確自己所處的階段,現在是已經看過Java大部分常用類的原始碼還是會呼叫一些API,會使用一些框架。如果支援會呼叫Java API和使用一些框架那麼你還處在初級階段,要學的東西還有很多。你接下來應該看Java API的原始碼,看懂和理解Java API為什麼要這麼實現。如常見的String、HashMap、ArrayList、LinkedList類的原始碼,這些都是最常用,最基本的類,應該懂得它們的實現原理,看原始碼不用每一行都看,但是要知道基本的原理。Java中的資料結構有哪些?基本的資料結構的原始碼都看過嗎?
資料結構是通用的,理解Java中資料結構,對學習其他程式語言也有幫助。
下面說一下Java學習中幾個大的方向,Java網路程式設計、Java多執行緒程式設計、Spring Boot、Spring Cloud、Mybatis。
Java網路程式設計涉及到socket程式設計,socket程式設計分為TCP socket和UDP socket。這就需要你理解TCP協議、UDP協議。如用TCP socket實現一個聊天功能怎麼實現,支援使用者登入,新增好友等。你可以自己實現,也可以使用Netty框架。Netty框架的原始碼是否有了解過,任何框架不要只停留在用的基礎上,除非自己不想深入學習。
Java多執行緒程式設計涉及到執行緒池、常用的鎖、執行緒安全等。多執行緒程式設計所涉及到Java API中的類有哪些,看過哪些原始碼。
Spring Boot、Spring Cloud框架是Java開發最常用的微服務框架,是否理解spring mvc、理解http協議、微服務中的註冊中心、閘道器等。
上面幾個方向,每一個方向要學習的知識都能有一本書那麼多,或者還講不完。
-
6 # 小馬過河Vizit
這是一個很好的問題,你能有這個感覺,說明你就要更上一層樓了。
剛開始學習程式設計,以實踐為主,有了一定的感覺之後就會遇到瓶頸。作為一個開發了十幾年的程式設計師,我來分享一下我的經驗。
下面是我的影片裡大概要介紹的內容:
如何看待框架知其然,知其所以然。不僅要學會使用框架,還需要學會框架的原理。最好的方法是自己動手模仿著做一下。一動手你就開始從框架設計者的角度考慮問題了。你思考問題的角度和高度就和以前不一樣了。
如何突破瓶頸,更上一層樓學習演算法和設計模式。思考框架要解決的本質問題。評價這種方法的優缺點。如果是你,你有什麼改進意見。可以參考我的動畫影片,講解了很多分散式系統的設計原理。
推薦幾本好書,值得精讀很多遍的書大多數人的悟性是差不多的。多讀好書,可以從前輩大牛,甚至是世界級頂級專家那裡得到指導和啟發。
下面這本書是MIT的本科教材,網上有作者的公開課。可以找了看看。
下面這本書是關於分散式系統應用設計中遇到的問題和通常的解決思路。比如hadoop,kafka,flink,zookeeper,raft 他們都是用來解決什麼問題的。
回覆列表
自學肯定是會遇見各種各樣的問題,沒有方向無頭蒼蠅一樣,如果有條件還是建議去找個老師系統的從淺至深學習下,不要深一腳淺一腳的,並且可以關注下我發的文章哦。
下面說下學習的誤區,幫你排排雷
誤區1:忽略基礎,盲目莽進
基礎知識和基礎路線真的非常重要,就以Java領域舉例,現在的應用框架實在是太多了,五花八門,層出不窮,迭代的速度太快了。但是假如Java SE的基礎不牢、網路協議和作業系統不熟,基本的設計模式不瞭解,那一味地追求學習新框架反而會讓自己陷入迷茫與困頓。
基礎牢固,應用框架的學習自然就不用懼怕了,很快就能切入核心,掌握原理。而且越時髦的東西淘汰也越快,畢竟迭代太快了。
對於程式設計開發來說,這裡一直在強調的基礎主要就包括:程式語言本身、資料結構和演算法、計算機網路協議、作業系統知識、資料庫、常見的設計模式等等,無非也就這些了!
誤區2:學到懷疑自己能力,程式設計真得靠天分?
有時候學習受挫,難免會懷疑自己的能力、懷疑自己的人生與理想,偶爾的心情低落屬實太常見了。
在我個人看來,這東西主要跟你的經歷、眼界,以及知識的豐富度有關。因為初學者很難看到問題背後的一些東西,眼界也沒有那麼開闊。從我個人感受來說,我以前練書時所心心念唸的一些困擾和迷茫,隨著知識學習的增加,所見所聞的豐富,也自然解惑了。
所以某個程度上來說,這東西也急不得,我們只能靠努力、積累、時間去完成,學到一定時候你就會不自覺地發現,原來之前的一些疑惑與困頓都豁然開朗了。
我還是堅信一句話:程式設計開發目前絕對還沒有到拼天分的地步,不要日常懷疑自己,不要妄自菲薄。
誤區3:孤軍奮戰,封閉學習
脫離交流,往往會讓學習問題越積越多,最終導致失去興趣,從而被勸退,所以我覺得還是應該 “走出去” 學習。
關於這件事,我覺得我們能做的其實有很多,最最簡單的方式那就是敢於總結、敢於分享,敢於把所學所做的東西亮出去和大家一起交流,即使收到的是批評,換一個角度來想,反映的就是自己的缺陷與不足,改進後就是成長。
誤區4:必須學習最好的語言
或者說,擔心學習到的不是最好的語言。
這也是一年多來和小夥伴們交流的過程中,幾乎提及最多的一個問題。語言其實不分好壞,而只有適合的應用場景。想學什麼也結合自己的興趣領域和目標崗位來定。我覺得後者才是應該首先花時間探尋和澄清的東西。
誤區5:程式碼總記不住咋整?
程式碼真的不是靠記憶的,而是不停的寫、不停的思考,在反覆的練習中熟練掌握的。即使要記,最終熟記的也應該是設計和編碼上的一些模式和套路,而不是具體的程式碼。
千萬不要嘗試用記憶力去替代自己的理解力!
誤區6:到處蒐集資料卻從來不看
好像大家都有一個毛病,那就是到處蒐集資源,網盤裡很多東西,但是基本從來不看,也不好檢索。
我覺得收集資料沒有問題,但是牆裂建議在入庫的那一刻做好歸類與標記,方便後續檢索與學習。另外也建議儘快規劃好學習路線和時間節點,把所獲資料和學習路線關聯起來,紮實執行,把資料利用起來才是關鍵!
誤區7:學了就忘,是不是不適合學程式設計?
學了就忘,是絕大多數人都有的通病。忘得快主要的原因還是因為沒有用上,缺少實踐和練習。
所以為了克服這個問題,我們能做的最起碼有:一是多記錄、多總結、多回顧。對於一個知識或者技能,可以畫成腦圖、或寫成技術部落格,這些都是不錯的形式,後續複習也方便了;另外一點則是需求驅動,嘗試尋思用所學的技能去做點小東西,練手非常重要,即使目前沒有好的創意,那也可以多學習研究一些優秀的開源專案,從中找尋想法和靈感。
誤區8:非科班以後工作可以做程式設計嗎?
一年多來,遇到的另外一個很常見的問題就是:我讀XXX專業,有意願以後從事程式設計開發,請問可以轉過去,或者找相關的工作嗎?
從個人的經歷和所見來看,不管是自己同學,校招認識的小夥伴,還是工作後遇到的同事,專業背景真的是五花八門,暫且不說像通訊、電子、自動化這些專業背景出身的人來搞程式設計,甚至連學地理科學、機密器械專業的我也見過,所以從某一程度上來說,這也不算什麼。
讀大學的一個重要作用還是培養獨立學習、獨立解決問題的能力,所以程式設計開發這一塊,自學出來的有很多。