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