java精通时间_你真的精通 Java 吗?
簡(jiǎn)歷和自我介紹上經(jīng)常能夠讀到“ 精通 Java” 這樣的話,有人和我說(shuō),精通 Java 的人太多了,精通 Java 已經(jīng)不能算亮點(diǎn)、不能給自己加分了。可是事實(shí)真是這樣嗎?
對(duì)于語(yǔ)言的學(xué)習(xí),我有一種觀點(diǎn),一是縱向,即要選擇一門(mén)自己認(rèn)為合適的語(yǔ)言學(xué)到有相當(dāng)?shù)纳疃取6谟跈M向,即要學(xué)習(xí)不同類(lèi)型、不同歷史和不同門(mén)派的語(yǔ)言:
既有底層的語(yǔ)言,也有高級(jí)語(yǔ)言;
接觸一些動(dòng)態(tài)語(yǔ)言、函數(shù)式語(yǔ)言;
了解一些不同語(yǔ)言的編程范型和編程方式,比如基于原型編程、面向切面編程、命令式編程等等;
最好能關(guān)注一門(mén)年紀(jì)尚淺,甚至小眾的語(yǔ)言,了解一門(mén)語(yǔ)言的發(fā)展。
橫向類(lèi)比能夠帶來(lái)對(duì)一門(mén)語(yǔ)言的不同認(rèn)識(shí),但是,有廣度而沒(méi)有深度的專(zhuān)家是可笑的,深入地學(xué)習(xí)一門(mén)語(yǔ)言是不可缺少的。就以 Java 為例,依我看來(lái),至少有這樣幾個(gè)遞進(jìn)的過(guò)程:
語(yǔ)法語(yǔ)義。
這是最基礎(chǔ)的部分,都說(shuō) Java 簡(jiǎn)單,語(yǔ)法容易學(xué)習(xí),但是,真要細(xì)說(shuō)起一些細(xì)節(jié)來(lái),也真夠我啰嗦了。我見(jiàn)過(guò)一些所謂的“ 精通 Java” 的人,他們卻不知道 strictfp 關(guān)鍵字,說(shuō)不清 volatile 和 transient 的作用,不知道怎么去定義一個(gè)注解(@interface)。你覺(jué)得這些要求苛刻嗎?對(duì)這些以“ 精通” 要求自己的人。
熟悉語(yǔ)言的應(yīng)用范圍。
不同的語(yǔ)言有不同的擅長(zhǎng)應(yīng)用領(lǐng)域。就像想用 Java 去寫(xiě)操作系統(tǒng)或底層代碼是多么不靠譜一樣,在這個(gè)過(guò)程中應(yīng)當(dāng)熟悉語(yǔ)言的優(yōu)勢(shì)劣勢(shì),這里你自己會(huì)提出自己的見(jiàn)解。譬如 Java 最 NB 的地方在哪里?
跨平臺(tái)?可是很多語(yǔ)言都可以跨平臺(tái);
開(kāi)源?那開(kāi)源的語(yǔ)言多了去了;
高性能的虛擬機(jī)?包括先進(jìn)的編譯解釋優(yōu)化技術(shù);
還是那么多用 Java 實(shí)現(xiàn)的類(lèi)庫(kù)、框架呢?
把那些用 Java 實(shí)現(xiàn)的類(lèi)庫(kù)和框架脫離出 Java 語(yǔ)言本身來(lái)歸類(lèi),未必是恰當(dāng)?shù)摹J煜?Java 就必須閱讀許多類(lèi)庫(kù)和框架的源碼。
學(xué)習(xí)語(yǔ)言的實(shí)現(xiàn)機(jī)制。
就像精通 Java 的程序員需要了解 Java 虛擬機(jī)一樣,也許不需要對(duì)虛擬機(jī)規(guī)范一清二楚,但是起碼要知道 CAFE BABE 吧?起碼要了解 JIT 的機(jī)制吧?起碼要明白垃圾回收策略中的 CMS 吧?起碼要能?chē)L試自己編譯一把 JDK 吧?起碼要能去定位那些無(wú)響應(yīng)的 Java 程序問(wèn)題吧?在這個(gè)過(guò)程中,從了解一門(mén)語(yǔ)言,將逐漸進(jìn)化到去了解一門(mén)語(yǔ)言所處的平臺(tái)。
整理語(yǔ)言發(fā)展的歷史。
為什么學(xué)習(xí)編程語(yǔ)言也要關(guān)注它的歷史?因?yàn)槿チ私庖婚T(mén)語(yǔ)言的發(fā)展歷史(比如這篇關(guān)于 Java 多線程編程的歷史),可以明白在這過(guò)程中碰了什么壁、犯過(guò)什么錯(cuò)、有哪些大的變更,學(xué)過(guò)別人家什么東西…… 這對(duì)于分析現(xiàn)今這門(mén)語(yǔ)言與其他語(yǔ)言的碰撞、展望一門(mén)語(yǔ)言的未來(lái)大有益處。在這個(gè)過(guò)程中,會(huì)不由自主地將其和不同時(shí)期的其他語(yǔ)言比較。如果給你一次重新設(shè)計(jì)這門(mén)語(yǔ)言的機(jī)會(huì),你一定能夠提出不少改善的意見(jiàn)來(lái)。
我從來(lái)不相信精通 Java 是一件容易實(shí)現(xiàn)的事情。有一股風(fēng)潮,說(shuō)搞底層研究的人看不起搞上層業(yè)務(wù)的人,寫(xiě) C 的人認(rèn)為寫(xiě) Java 的人沒(méi)水平,做后臺(tái)的人覺(jué)得做前臺(tái)的沒(méi)技術(shù)含量…… 我說(shuō),何必呢?
技術(shù)無(wú)貴賤,只是專(zhuān)注的領(lǐng)域不同而已。
文章未經(jīng)特殊標(biāo)明皆為本人原創(chuàng),未經(jīng)許可不得用于任何商業(yè)用途,轉(zhuǎn)載請(qǐng)保持完整性并注明來(lái)源鏈接 《四火的嘮叨》
×Scan to share with WeChat
總結(jié)
以上是生活随笔為你收集整理的java精通时间_你真的精通 Java 吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: FreeRTOS | STM32H7串口
- 下一篇: java美元兑换,(Java实现) 美元