-
1 # 四月的姑娘
-
2 # IT人劉俊明
Java程式設計師有不少都在從事應用級開發崗位,與C語言程式設計師相比,Java程式設計師往往在演算法設計方面的能力稍差一些,與R語言程式設計師相比就更是如此了。
Java程式設計師大部分都是在從事Web開發、Android開發以及一些App的後端服務開發等任務,這些開發的特點往往都是以實現具體業務邏輯模組為主,由於Java的封裝能力比較強,所以這些程式設計師平時設計算法的機會並不多,這是導致Java程式設計師演算法能力差的根本原因。當然,大部分應用級程式設計師基本上都是如此,包括PHP、C#、JavaScript、OC等語言的程式設計師。
如果要想解決演算法問題要從以下幾個方面入手:
第一:系統的學習一下演算法基礎知識。演算法基礎知識是提升演算法能力的關鍵,演算法問題無非就是排序、統計、查詢、規劃等問題,但是這些問題的背後卻有大量的具體內容需要掌握,演算法問題是解決邏輯問題的根本,從這個角度來說,演算法是每個程式設計師都應該系統學習的內容。
第二:系統的學習一下資料結構。資料結構和演算法是不分家的,如果說演算法是解決問題的思路,那麼資料結構則是具體的實現方法,所以程式設計通常被認為是演算法設計加資料結構。Java實現資料結構的過程是提高演算法能力的一個重要基礎,所以這部分實驗是非常關鍵的。
第三:與實際問題相結合。判斷一個程式設計師的演算法設計能力,往往是透過具體的問題來體現的,作為一個程式設計師來說,如何把演算法與實際問題相結合是一個難點,也是學習過程中的重點。Java語言自身是一個可以做落地應用的程式語言,所以不少研發人員都會選擇Java做實際專案的實現語言,我在早期做機器學習專案的時候就是採用Java語言實現的(後來改用Python了)。
作者簡介:中國科學院大學計算機專業研究生導師,從事IT行業多年,研究方向包括動態軟體體系結構、大資料、人工智慧相關領域,有多年的一線研發經驗。
-
3 # 黃小斜
首先,提高Java能力和提高演算法能力是兩碼事。
怎麼提高Java能力:
1、打好Java基礎
2、瞭解JavaWeb,做幾個web專案練手,提高實踐能力
3、掌握Java核心技術,熟悉JVM、併發原理以及網路程式設計知識
4、學會讀原始碼,比如集合類、併發包的原始碼,以及Spring的原始碼。
5、學習Java後端進階技術,比如訊息佇列、快取等分散式技術。
怎麼提高演算法能力:
從面試的角度來講,一般有這幾步。
1、打好資料結構和演算法基礎
2、刷2-3遍劍指offer
3、刷150題左右的LeetCode演算法題
4、刷一遍歷年筆試真題
-
4 # 程式設計師小五六
1.個人覺得多做題目,在題目的應用中得到鍛鍊,光看理論,程式碼什麼的很抽象,題目來的實在。
2.買本寶典回來,閉關修煉,最經典的就是演算法導論,能練到幾層就看你自己的的造化了。
3.學會幾個基本的排序演算法,然後其餘的到網上找演算法題做
-
5 # 一個存在感小透明
首先,JAVA與演算法不是繫結關係,即Java不僅可以實現演算法,而演算法也不一定非要用java來寫。所以題主的問題,我認為其重點在於演算法。
提高演算法能力方法一:書籍在計算機本科學習課程中,會有專門的課介紹演算法,我們當時用的是中文版的《演算法導論》,這本書現在某電商網站上打出的旗號是“程式設計師必讀經典”,這可是連《thinking in java》都不敢說的,為什麼?
因為程式設計師可以不會JAVA,但是不可以不會演算法。程式語言只是工具,演算法才是驅動工具的靈魂。
提高演算法能力方法二:影片上面的大部頭演算法書籍,對於大多數人來說都是一個難啃的骨頭,裡面有些數學推導過程很容易把人繞懵。因此我推薦大家去網易雲課堂看MIT的《演算法導論》影片課,裡面那個高個子會把一些數學推導,從很基礎的部分開始推,對於初學者來說也是非常友好的體驗。
提高演算法能力方法三:LeetCode當你擁有了演算法的基礎知識後,就可以到LeetCode上刷一些演算法題了。這個網站是國外程式設計人員找工作必備,有些大公司比如谷歌微軟甚至會主動聯絡上面表現優異的使用者,邀請其參與公司面試。LeetCode上面的演算法題分類十分全面,既可以根據難度分類,也可以根據演算法型別分類。這意味著你既可以從簡單的題開始擴充自己的知識廣度,也可以針對某一型別的演算法進行深度嘗試。
此外,LeetCode還支援多種語言,包括Java,Python,JS,C等等,題主可以嘗試在上面用JAVA去解題,剛好完美鍛鍊到你認為不足的“JAVA演算法能力”。
當你把LeetCode上的題刷到三分之一的時候,我想你一定就能感受到自己的進步了。
回覆列表
Java中的演算法大多還是和思維邏輯關係挺大的,給你一個需求,首先建立的還是思想,有了思想然後和演算法結合就能夠實現了,你可以百度找找別人的程式碼邏輯思維和演算法來學習,Java只要經歷專案多了,見到的多了,用到的多了,自然就會有了自己的程式碼邏輯和演算法,所需可以找找大神的優質程式碼進行借鑑和學習。