精通java需要多長時間 把Java編程語言精通到底有多難?
把Java編程語言精通到底有多難?作為一名程序員,我已經(jīng)出版了很多Java編程書籍,所以讓我來回答這個問題。隨著互聯(lián)網(wǎng)的發(fā)展,Java語言自身的生態(tài)系統(tǒng)不斷完善,應(yīng)用邊界不斷擴大。目前廣泛應(yīng)用于web
把Java編程語言精通到底有多難?
作為一名程序員,我已經(jīng)出版了很多Java編程書籍,所以讓我來回答這個問題。
隨著互聯(lián)網(wǎng)的發(fā)展,Java語言自身的生態(tài)系統(tǒng)不斷完善,應(yīng)用邊界不斷擴大。目前廣泛應(yīng)用于web開發(fā)、大數(shù)據(jù)開發(fā)、移動終端開發(fā)等領(lǐng)域??梢哉f,不同的應(yīng)用方向也需要有不同的知識結(jié)構(gòu),因此很難掌握Java。
Java語言本身的組成分為兩部分,一部分是Java虛擬機,另一部分是Java語言本身的語法。根據(jù)Java語法要求編寫的程序需要通過Java虛擬機進行加載、驗證、編譯和運行,Java虛擬機的作用相當(dāng)于Java運行環(huán)境(container)。它需要完成很多操作,包括代碼安全、垃圾處理、事件處理、資源管理等。因此,精通java開發(fā)一方面需要清晰的java語法,另一方面需要了解java虛擬機的運行機制。
對于初學(xué)者來說,學(xué)習(xí)java編程從學(xué)習(xí)java語法開始,然后學(xué)習(xí)java web開發(fā)、數(shù)據(jù)庫開發(fā)、分布式開發(fā)等。這個過程通常是大多數(shù)學(xué)習(xí)者的學(xué)習(xí)路線。難點在于對java面向?qū)ο蟾拍畹睦斫?,即對各種“抽象”的理解。這一部分雖然有一定的難度,但大多數(shù)學(xué)習(xí)者都是能夠?qū)W習(xí)的,差異往往在于學(xué)習(xí)時間上。
對于從事平臺開發(fā)的研發(fā)級程序員來說,還需要系統(tǒng)地學(xué)習(xí)Java虛擬機的內(nèi)部機制。通過深入了解Java虛擬機的組成,可以輔助平臺產(chǎn)品的研發(fā),注重性能的提高。通常,我們需要了解Java虛擬機的體系結(jié)構(gòu)和核心算法,這是比較困難的。當(dāng)然,如果您想了解Java虛擬機的整體結(jié)構(gòu),通常需要閱讀大量的源代碼。
python、C、Java都會,但都不精通,如何把一門語言學(xué)到精通?
這是一個非常好的問題。作為一名程序員和教育家,我將回答這個問題。
編程語言歸根結(jié)底只是一種工具,因此為了深入了解編程語言,它通常需要由開發(fā)任務(wù)驅(qū)動。根據(jù)歷史經(jīng)驗分析,研發(fā)級程序員對編程語言的理解往往比較深入,而應(yīng)用級程序員往往不需要太在意編程語言的底層實現(xiàn)機制,這是由工作性質(zhì)決定的。
要想全面掌握編程語言,一方面需要系統(tǒng)的學(xué)習(xí)計劃,另一方面也需要后期開發(fā)任務(wù)的驅(qū)動。事實上,很多程序員為了提高對編程語言的理解,都會提升自己的開發(fā)地位來達到這個目的。
以Java編程語言為例,如果從事web開發(fā),開發(fā)人員關(guān)注的是如何通過Java編程集成各種資源。隨著云計算平臺(主要是PAAS)的應(yīng)用,開發(fā)者有了更多的方式來整合資源,語言本身的重要性也被削弱了??傊?,在云計算時代,應(yīng)用級編程對編程語言能力的要求有了一定程度的下降。但是,如果你想從事云計算平臺的開發(fā),或者大數(shù)據(jù)平臺的開發(fā),那么對編程語言的要求是比較高的。因此,開發(fā)人員要想精通編程語言,首先應(yīng)從提升崗位水平入手。
除了崗位任務(wù)外,開發(fā)團隊的技術(shù)實力對開發(fā)人員的技術(shù)進步也有很大的影響。很多研究生畢業(yè)后,選擇一些小型創(chuàng)業(yè)團隊的一個重要原因是,考慮到研發(fā)團隊的技術(shù)能力,一些初創(chuàng)企業(yè)的團隊往往會有一些著名的行業(yè)技術(shù)專家,這就是為什么他們選擇一些小型創(chuàng)業(yè)團隊的原因產(chǎn)業(yè)團隊是吸引人才的重要途徑。
c 、java、go、python哪個語言更容易精通?哪個可以走的路更遠且不至于被輕易淘汰?
首先,Java、python、go、C等編程語言目前廣泛應(yīng)用于IT行業(yè)。除了go語言,其他語言中也有大量的成熟案例,因此這些編程語言是初學(xué)者的好選擇。
就語言本身的難度而言,python語言和go語言的語法結(jié)構(gòu)應(yīng)該更加簡潔,Java和C語言應(yīng)該稍微復(fù)雜一些。當(dāng)然,這也直接關(guān)系到編程語言的設(shè)計思想。對于計算機基礎(chǔ)薄弱的人來說,從Python開始是一個不錯的選擇。隨著大數(shù)據(jù)和人工智能的發(fā)展,Python在未來的應(yīng)用范圍將進一步擴大,特別是在工業(yè)互聯(lián)網(wǎng)階段。
其次,編程語言只是程序開發(fā)人員能否在程序開發(fā)的道路上走得更遠的因素之一。更重要的因素是自身的研發(fā)能力。實際上,編程語言只是一種工具。曾經(jīng)有一句流行的話:一流的程序員靠數(shù)學(xué);二流的程序員靠算法;三流的程序員靠邏輯;四流的程序員靠SDK,然后是各種搜索引擎和編程博客。從這個角度來看,編程語言對程序員能力的影響是有限的。最后,編程的過程歸根到底是數(shù)學(xué),所以R&D級程序員往往需要有堅實的數(shù)學(xué)基礎(chǔ),程序員成長的最終高度往往是由諸如數(shù)學(xué)之類的基礎(chǔ)學(xué)科決定的。如果僅僅從編程語言的角度來看,目前Python和go的發(fā)展趨勢更加明顯。
java大概多久可以精通?
Java很難精通。Java是一門相對較難的學(xué)科,還有很多知識需要學(xué)習(xí)。而且,互聯(lián)網(wǎng)技術(shù)的發(fā)展有多快,技術(shù)更新的速度也在日新月異。如果你不能說那一天,你會發(fā)現(xiàn)你以前學(xué)的Java技術(shù)已經(jīng)逐漸被淘汰了,你需要學(xué)習(xí)新的技術(shù),所以你想實現(xiàn)Java很難掌握。
如果您想開始并能夠工作,這是相對快速的。也許你可以在幾個月內(nèi)完成Java技術(shù)的學(xué)習(xí)和掌握。基本上,你可以開始工作了。雖然工作是可能的,但是學(xué)習(xí)Java僅僅是個開始。在今后的工作中,除了把以前學(xué)到的技術(shù)應(yīng)用到實際工作中,還要不斷適應(yīng)Java行業(yè)的發(fā)展,學(xué)習(xí)新的知識。
對于很多人來說,java培訓(xùn)或自學(xué)都是為了學(xué)習(xí)進入java行業(yè),java培訓(xùn)在很多情況下只是讓你快速進入java行業(yè)。其實,要想掌握Java,還需要不斷的練習(xí)和學(xué)習(xí)。
樓主是個大一學(xué)生,想在大學(xué)期間自學(xué)c語言和java.每天大概能學(xué)6個小時,請問一下大概要多久能精通?
我會跟你說的。同學(xué)們,這顆心值得鼓勵,不要聽別人的挖苦。
但是,如果你能每天學(xué)習(xí)6小時,不要太樂觀,因為即使你能學(xué)習(xí)6小時,仍然存在效率問題。不是快,而是長。一滴水磨蝕一塊石頭。
對于編程來說,除了學(xué)習(xí)的時間長短,還有一個緯度,即掌握計算機操作原理的程度。首先要努力學(xué)習(xí)基礎(chǔ)知識,包括數(shù)據(jù)結(jié)構(gòu)、計算機組成原理、操作系統(tǒng)、編譯原理等,然后再談?wù)Z言,這樣才能提高更快。所謂磨刀不誤砍柴刀。
基本技能打扎實,然后就是多寫代碼。年輕的時候,先寫10萬行代碼。做一個網(wǎng)站,玩信息管理系統(tǒng),寫一個聊天軟件,做一些應(yīng)用程序。慢慢地,一些問題就會暴露出來。內(nèi)存管理、并行設(shè)計、數(shù)據(jù)庫管理等都需要重新學(xué)習(xí)和實踐。
這只是開始。
經(jīng)過算法學(xué)習(xí)、內(nèi)存優(yōu)化、架構(gòu)設(shè)計,是進入真實項目的慢慢積累和訓(xùn)練。熟悉這一過程至少需要幾年時間。如果你走到這一步,應(yīng)該很容易找到一份開發(fā)工作。
如果你精通,恐怕你的功夫不會超過十年。給我印象最深的是龍勝胡偉武先生的一段話。他說,每年有上萬人可以開發(fā)java程序,但只有幾十人可以編寫java虛擬機。試想,如果你真的想說精通一門計算機編程語言是不容易的。
說了很多,我只想表達一下,做好工作不容易,不是一朝一夕的事。有時,我們必須作出巨大的努力來準備一場持久戰(zhàn)。
我希望我的回答能對你有所幫助。