你想成為一名優(yōu)秀的程序員嗎?你當(dāng)然想,對吧?但是你知道如何成為一名優(yōu)秀的程序員嗎?一個常見的誤解是,要成為一名優(yōu)秀的程序員,必須了解大量的編程語言和工具。這是絕對不真實的。繼續(xù)閱讀,我會告訴你原因。今天我想和大家分享一下優(yōu)秀程序員所掌握的知識要點:
1.學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)
首先,選擇一本好書來理解數(shù)據(jù)結(jié)構(gòu)是如何設(shè)計和執(zhí)行的。我推薦Narasimha Karumanchi所著的Data Structures and Algorithms Made Easy一書。它是Java/Java++版本,你可以在這里找到Java版本。
其次,嘗試從頭開始實現(xiàn)一些數(shù)據(jù)結(jié)構(gòu),例如列表、堆棧和隊列。您不僅會深入了解它們的工作原理,還會通過“重新發(fā)明”這些數(shù)據(jù)結(jié)構(gòu)來提高您的編碼技能。
第三,試驗?zāi)闹饕幊陶Z言(對于Java,它是Javaollections框架)提供的內(nèi)置數(shù)據(jù)結(jié)構(gòu),以了解哪個用于哪個目的。例如,使用列表通過索引快速訪問元素;使用集合來隨機(jī)排列元素;使用隊列進(jìn)行生產(chǎn)者-消費者處理等。
第四,在寫代碼之前,總是花時間思考和選擇最合適的數(shù)據(jù)結(jié)構(gòu),可以用來解決問題。請記住,不要重新發(fā)明輪子,始終利用您使用的編程語言提供的現(xiàn)有數(shù)據(jù)結(jié)構(gòu)。
話雖如此,我建議您首先盡可能多地花時間來掌握數(shù)據(jù)結(jié)構(gòu)。
2.學(xué)習(xí)算法
很明顯,優(yōu)秀的程序員總是擅長使用經(jīng)過驗證的算法和編寫新的算法。雖然數(shù)據(jù)結(jié)構(gòu)抽象了問題的輸入和輸出,但算法決定了如何解決問題。
也許算法是編程中最難學(xué)的話題,因為它們不僅需要良好的邏輯思維,還需要數(shù)學(xué)能力。所以如果你能管理好自己擅長算法,你就會從人群中脫穎而出。
好消息是,我們不必從頭開始發(fā)明算法,因為我們的祖先程序員已經(jīng)完成了艱苦的工作。所以我們只是學(xué)習(xí)使用經(jīng)過驗證的算法。我建議您至少了解基本算法:排序(快速排序、歸并排序等)、二分搜索、遞歸、圖探索、貪婪和密碼學(xué)基礎(chǔ)知識。此外,您需要了解算法復(fù)雜度——大O符號。
3.學(xué)習(xí)設(shè)計模式
編程就是尋找問題的解決方案。然而,這些解決方案也面臨著自身的問題,例如需要更好的性能、更靈活的設(shè)計、更可靠的架構(gòu)……以及更少的錯誤和更少的潛在錯誤。因此,設(shè)計模式是解決軟件設(shè)計中常見問題的經(jīng)過驗證的解決方案。
要成為一名優(yōu)秀的程序員,您應(yīng)該能夠?qū)⒃O(shè)計模式應(yīng)用到程序的技術(shù)設(shè)計中。事實上,使用設(shè)計模式可以幫助您編寫可靠、靈活、可維護(hù)且錯誤更少的軟件程序。
我建議您從著名的《設(shè)計模式:可重用面向?qū)ο筌浖脑兀↗ava/Java++實現(xiàn))》一書開始。對于Java友好的版本,我推薦Head First Design Patterns。您應(yīng)該管理自己以精通基礎(chǔ)設(shè)計模式,例如工廠、構(gòu)建器、策略、命令、模板、外觀、訪問者和單例。
按照上述書籍制定學(xué)習(xí)設(shè)計模式的計劃,并編寫大量代碼(大量代碼)來試驗和測試每個模式,直到您真正理解并自信地將設(shè)計模式應(yīng)用到程序設(shè)計中。
以上就是長沙一度軟件培訓(xùn)小編介紹的"Java程序入門學(xué)習(xí),一定要掌握必要的技術(shù)知識",希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為您服務(wù)。
Java學(xué)習(xí)