如何成為一個(gè)程序員 把Java編程語(yǔ)言精通到底有多難?
把Java編程語(yǔ)言精通到底有多難?作為一名程序員,我已經(jīng)出版了很多Java編程書籍,所以讓我來(lái)回答這個(gè)問(wèn)題。隨著互聯(lián)網(wǎng)的發(fā)展,Java語(yǔ)言自身的生態(tài)系統(tǒng)不斷完善,應(yīng)用邊界不斷擴(kuò)大。目前廣泛應(yīng)用于web
把Java編程語(yǔ)言精通到底有多難?
作為一名程序員,我已經(jīng)出版了很多Java編程書籍,所以讓我來(lái)回答這個(gè)問(wèn)題。
隨著互聯(lián)網(wǎng)的發(fā)展,Java語(yǔ)言自身的生態(tài)系統(tǒng)不斷完善,應(yīng)用邊界不斷擴(kuò)大。目前廣泛應(yīng)用于web開發(fā)、大數(shù)據(jù)開發(fā)、移動(dòng)終端開發(fā)等領(lǐng)域??梢哉f(shuō),不同的應(yīng)用方向也需要有不同的知識(shí)結(jié)構(gòu),因此很難掌握J(rèn)ava。
Java語(yǔ)言本身的組成分為兩部分,一部分是Java虛擬機(jī),另一部分是Java語(yǔ)言本身的語(yǔ)法。根據(jù)Java語(yǔ)法要求編寫的程序需要通過(guò)Java虛擬機(jī)進(jìn)行加載、驗(yàn)證、編譯和運(yùn)行,Java虛擬機(jī)的作用相當(dāng)于Java運(yùn)行環(huán)境(container)。它需要完成很多操作,包括代碼安全、垃圾處理、事件處理、資源管理等。因此,精通java開發(fā)一方面需要清晰的java語(yǔ)法,另一方面需要了解java虛擬機(jī)的運(yùn)行機(jī)制。
對(duì)于初學(xué)者來(lái)說(shuō),學(xué)習(xí)java編程從學(xué)習(xí)java語(yǔ)法開始,然后學(xué)習(xí)java web開發(fā)、數(shù)據(jù)庫(kù)開發(fā)、分布式開發(fā)等。這個(gè)過(guò)程通常是大多數(shù)學(xué)習(xí)者的學(xué)習(xí)路線。難點(diǎn)在于對(duì)java面向?qū)ο蟾拍畹睦斫?,即?duì)各種“抽象”的理解。這一部分雖然有一定的難度,但大多數(shù)學(xué)習(xí)者都是能夠?qū)W習(xí)的,差異往往在于學(xué)習(xí)時(shí)間上。
對(duì)于從事平臺(tái)開發(fā)的研發(fā)級(jí)程序員來(lái)說(shuō),還需要系統(tǒng)地學(xué)習(xí)Java虛擬機(jī)的內(nèi)部機(jī)制。通過(guò)深入了解Java虛擬機(jī)的組成,可以輔助平臺(tái)產(chǎn)品的研發(fā),注重性能的提高。通常,我們需要了解Java虛擬機(jī)的體系結(jié)構(gòu)和核心算法,這是比較困難的。當(dāng)然,如果您想了解Java虛擬機(jī)的整體結(jié)構(gòu),通常需要閱讀大量的源代碼。
如果把java程序員終極書單都看完,你認(rèn)為能力能達(dá)到什么水平?
評(píng)價(jià)程序員水平的標(biāo)準(zhǔn)不是他讀了多少書,而是他解決問(wèn)題的能力。解決不同層次的問(wèn)題決定了程序員的水平。例如,研發(fā)級(jí)程序員的水平不是由java語(yǔ)言本身決定的,而是需要一個(gè)綜合的能力評(píng)估,比如數(shù)據(jù)結(jié)構(gòu)的選擇、算法的設(shè)計(jì)與實(shí)現(xiàn)、具體場(chǎng)景的分析等。
通過(guò)閱讀,我們可以拓展視野,拓寬解決問(wèn)題的思路,但我們需要通過(guò)實(shí)踐來(lái)檢驗(yàn)技術(shù)水平。總之,只有經(jīng)過(guò)驗(yàn)證和使用,我們才能真正掌握書中的知識(shí)。因此,我一般不建議脫離實(shí)際項(xiàng)目學(xué)習(xí),而是建議邊用邊學(xué),這樣才能更系統(tǒng)地掌握新技術(shù)。
編程技術(shù)通常具有很強(qiáng)的及時(shí)性。一般來(lái)說(shuō),一本書出版后,基本上都會(huì)有新的版本更新,所以通常程序員往往直接閱讀官方的編程文檔而不是選擇編程書籍,因?yàn)闀?huì)有滯后性。而且,大部分應(yīng)用級(jí)書籍都是以公文為基礎(chǔ)的,所以內(nèi)容基本相同,所以看公文是一個(gè)比較高效的學(xué)習(xí)程序。
一般來(lái)說(shuō),選書要多關(guān)注核心問(wèn)題,減少技巧內(nèi)容。因?yàn)楹诵募夹g(shù)的更新周期往往較長(zhǎng),技能的內(nèi)容更新也比較頻繁。例如,Java書籍中的Java核心技術(shù)系列就是一個(gè)不錯(cuò)的選擇。此外,建議仔細(xì)閱讀Java數(shù)據(jù)結(jié)構(gòu)的內(nèi)容。