-
1 # 夜宵不太行
-
2 # 師兄睿談
你好,我是大師兄,計算機專業的。做過兩年多的Java開發。我來給你回答吧。
對於新手來說,剛學習Java,是要多練習寫程式碼的。但是你要說刷題的話,一般是指的演算法類題目比較多。但是刷演算法類的題目並不有助於你學習Java,因為這類題目的重點在演算法上面。
新手小白想要學習Java,但一般不僅僅是涉及學習Java,還通常包括Web開發,一般這一類的學習通常有很多的框架需要去學,如果你想要透過它來找到一份好職業,就必須要經過一系列系統的學習,才能穩操勝券。
根據我個人的專業和學習經驗,給你幾點學習的建議。
以實踐為驅動學習Core Java想要快速上手,加深各方面的技巧,透過相關的培訓課程來學習之後,直接上手做小專案。
但是前期還是得先做些演算法小題來熟悉java語法基礎,比如你學完面向物件和Java基本型別之後,可以嘗試去做一做LeetCode、牛客網上的一些題,或者一些面試題。
學習了swing之後(其實強烈不建議學習java的介面程式設計Swing AWT),可以做一些小專案了,比如記賬本、學生成績選課管理系統、打字小遊戲、消消樂等等。在娛樂中程式設計,會體驗更多的樂趣。
學習JDBC之後,就可以把記賬本、學生選課系統對接上了,剛開始做的是基本版,然後就可以做成連線資料庫的版本。
後面學習集合、併發程式設計、IO、網路可以嘗試做一做書上的課後題,推薦李剛的瘋狂Java講義,後面有課後題。
之後在深入的學習反射、JVM、動態代理、設計模式。
以專案為導向學習框架工欲善其事,必先利其器。Java最強大的地方,在於它的工具種類繁多,框架層出不窮,當一個先進的思想出現時,往往Java就是最先成熟運用的那一個。學習利用優秀的框架(尤其是開源框架),對於開發非常有幫助,提升開發效率,避免重複造輪子。
Java相關的框架繁多,數不勝數,比較有名(基本是必學的框架)的有:Spring家族(Spring、SpringMVC、SpringData、SpringBoot、SpringCloud等等)、Hibernate、Mybatis。
建議這一塊的學習透過一個完整的專案來練習,比如開發一個線上購物商城系統。
加油吧!少年你的路還很遠,一入Java深似海,能不能走出來看造化了!哈哈。
-
3 # IT派小牧
本人計算機科學與技術專業,從事java有4年了。分享下自己的學習網站吧。
1.牛客網
主要服務於國內廣大程式設計師。產品規模很大,包括了it題庫、線上程式設計練習、線上課程、社群、筆試服務、還有競賽。使用者基本覆蓋全國高校百萬的程式設計師學習者。在國內網際網路公司有良好的口碑,為國內眾多的網際網路公司提供了校園招聘,競賽等服務。具備基本每個領域的筆試演算法題,值得收藏。
2.利扣 leetcode
這個網站有國際版和國內版,平常我們進國內版的就行了啊,當然英文好的也可以使用國際版,這裡非常建議大家使用國際版,交流的技術存在差異,但是題目基本一致,不需要擔心。
地址:leetcode-cn.com
利扣被國內外程式設計師稱為刷題神器。甚至有人說,你如果掌握了百分之80左右,各網際網路公司提供的演算法崗位你只要對比下誰的工資高就好了。
它基本覆蓋了全網際網路公司的演算法題目,還有資料庫等技術,並且提供了交流平臺,國內過各種大神將自己的解答想法分享出來,有些巧妙的解答確實會令人拍案叫絕。普遍都是國外人,但是國內人也特別多,當然是國際版才是這樣的。
如果單單是學習練習java程式設計的,這兩個網站可以滿足了,關鍵就是提升你的程式設計思維能力。
要學習java核心技術還是建議購買java相關書籍或者在網上課堂學習。
-
4 # 肯特崗
核心推薦:LintCode / LeetCode / 牛客網
不是什麼程式設計師,但是大一大二大三自己都是自學過來一直學到JavaEE的,還是有些經驗的。
JavaSE階段,找個牛逼點的基礎影片課聽過後,建議找一些小遊戲編著玩,貪吃蛇啊2048啊坦克大戰啊,學習一下怎麼一步步搭出一個小遊戲。可以找網上的影片課,網易雲課堂還有一些培訓機構都有做小遊戲的影片,聽老師一步步講思路後,自己嘗試一下他的思路是要怎麼做,敲完後再比對一下。
基本做了三個小遊戲下來,Java就不是很陌生的東西了,這時候建議上LintCode或者LeetCode刷題,每天兩到三小時在這上面。裡面的題都是最常規的API解決各種面試用演算法題。沒系統學過演算法?也不要緊,建議買本《演算法》橙皮書,然後先從LeetCode之類的簡單題做起,不懂就看discuss或者別人部落格是怎麼想的,看懂後自己不看別人程式碼實現一遍。
其中如果牽涉到某個演算法,比如動態規劃,你從未接觸過,不要怕,這道題放著,翻開橙皮書現學唄,看不懂慢慢看,看完後盲敲示例程式碼,這樣對基本程式碼素養有很大幫助。啃完這個知識點,再回去繼續刷題。
私以為,JavaSE階段最重要的不是IO操作啊什麼的,還是LeetCode裡面向招聘的演算法題。
如果你很想加強Java檔案流和網路,網上找影片做個JavaSE聊天專案或者檔案收發專案是最簡單的,跟學一次練一次就沒有大問題了。
執行緒很重要。多執行緒是很複雜的,其中牽涉到的知識還得專門看諸如《併發程式設計實戰》之類書來提升,建議前期瞭解基本的同步操作就夠了,等到學到JavaEE階段,會用SSMH這些框架後,再來開始邊做專案,邊研究執行緒同步這種問題。
回覆列表
leetcode,牛客網,計蒜客。
如果想要去參加演算法比賽的話,有
codeforces,topcoder,洛谷。