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