脫口秀段子完整臺(tái)詞 把Java編程語(yǔ)言精通到底有多難?
把Java編程語(yǔ)言精通到底有多難?作為一名程序員,我已經(jīng)出版了很多Java編程書(shū)籍,所以讓我來(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編程書(shū)籍,所以讓我來(lái)回答這個(gè)問(wèn)題。
隨著互聯(lián)網(wǎng)的發(fā)展,Java語(yǔ)言自身的生態(tài)系統(tǒng)不斷完善,應(yīng)用邊界不斷擴(kuò)大。目前廣泛應(yīng)用于web開(kāi)發(fā)、大數(shù)據(jù)開(kāi)發(fā)、移動(dòng)終端開(kāi)發(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ǔ)法要求編寫(xiě)的程序需要通過(guò)Java虛擬機(jī)進(jìn)行加載、驗(yàn)證、編譯和運(yùn)行,Java虛擬機(jī)的作用相當(dāng)于Java運(yùn)行環(huán)境(container)。它需要完成很多操作,包括代碼安全、垃圾處理、事件處理、資源管理等。因此,精通java開(kāi)發(fā)一方面需要清晰的java語(yǔ)法,另一方面需要了解java虛擬機(jī)的運(yùn)行機(jī)制。
對(duì)于初學(xué)者來(lái)說(shuō),學(xué)習(xí)java編程從學(xué)習(xí)java語(yǔ)法開(kāi)始,然后學(xué)習(xí)java web開(kāi)發(fā)、數(shù)據(jù)庫(kù)開(kāi)發(fā)、分布式開(kāi)發(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)開(kā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),通常需要閱讀大量的源代碼。
只精通一門(mén)C語(yǔ)言的人,算不算程序員?
只有精通C語(yǔ)言的程序員是遠(yuǎn)遠(yuǎn)不夠的,更不用說(shuō)C語(yǔ)言了,即使你只精通Java,精通C,都不是程序員,為什么?請(qǐng)繼續(xù)閱讀:
了解C語(yǔ)言意味著你可以根據(jù)C語(yǔ)言的語(yǔ)法編寫(xiě)一段代碼,但它只是一段簡(jiǎn)單的代碼。想讓代碼有靈魂,那就是能夠在實(shí)踐中解決問(wèn)題或滿足客戶的實(shí)際需求。試想一下,客戶讓你做一個(gè)網(wǎng)絡(luò)視頻傳輸模塊,你需要了解視頻從客戶端服務(wù)器到終端的交互過(guò)程,才能編寫(xiě)這個(gè)系統(tǒng),而你只能用scanf函數(shù)從鍵盤(pán)上讀取一個(gè)數(shù)據(jù),然后用printf函數(shù)輸出數(shù)據(jù),這只能說(shuō)明你的C語(yǔ)言語(yǔ)法不錯(cuò),但有什么用呢?您幫助客戶解決了哪些問(wèn)題?
算法是程序的靈魂,程序員在編寫(xiě)每一個(gè)C語(yǔ)言代碼時(shí)都會(huì)不知不覺(jué)地使用一些算法。其中最常見(jiàn)的是人體識(shí)別算法。
也許你可以用C語(yǔ)言的指針很流暢,用C語(yǔ)言的鏈表很方便,用C語(yǔ)言的二維數(shù)組就不用說(shuō)了,但只要寫(xiě)這些就可以認(rèn)出一張臉了?顯然不是。
算法就像一張印有規(guī)則的紙。你看看紙上的規(guī)則,然后用你學(xué)過(guò)的C語(yǔ)言語(yǔ)法,按照規(guī)則寫(xiě)代碼。算法的靈魂在于代碼。
要為客戶做生意,僅僅理解一種編程語(yǔ)言是不夠的。例如,如果你懂Java,Android的開(kāi)發(fā)是非常順利的。但是如果你想在Android手機(jī)上實(shí)現(xiàn)視頻采集,目前只懂java是不夠的。這種與視頻處理相關(guān)的底層功能需要借助原生方法,而原生方法通常是用C語(yǔ)言實(shí)現(xiàn)的。
大多數(shù)情況下,許多編程語(yǔ)言相互補(bǔ)充以實(shí)現(xiàn)一個(gè)目標(biāo)。
以上只是程序員學(xué)習(xí)的一小部分,程序員要學(xué)的東西太多了,技術(shù)日新月異,要保持一顆學(xué)習(xí)的心
java編程好學(xué)嗎?
對(duì)于任何語(yǔ)言都不能很好的使用與否,那就是所謂的專業(yè),不同的語(yǔ)言針對(duì)不同的方向。Java語(yǔ)言只能說(shuō)與其他語(yǔ)言相比,各方面都比較均衡,有些方面更好,利用率高,應(yīng)用范圍廣,所以Java似乎比其他語(yǔ)言更好。事實(shí)上,每種語(yǔ)言都有自己的優(yōu)點(diǎn)。Java不一定是最好的,但一定是應(yīng)用最廣泛的。
零基礎(chǔ)的人學(xué)java,看哪些書(shū)?求推薦幾本書(shū)籍?
編程很簡(jiǎn)單,最怕寫(xiě)
!讀完這本書(shū),Java已經(jīng)通過(guò)了。當(dāng)然,它只是基于Java的,需要進(jìn)一步的學(xué)習(xí)來(lái)獲取更多的知識(shí)。
不同的行業(yè)有不同的技術(shù)水平。