Java學到什麼程度才能叫精通?

如果要談精通Java ,有一個特別直接的方法,那就是考察工程師是否具有:

快速構建開發框架的能力”。

例如下面這個系統:


這是一個典型的web應用(基於Java)。雖然就整個系統搭建來說,是架構師的責任。但其中的深色部分,是一個典型Java應用框架。以此爲標準,框架的搭建能力,可以用來考察軟件工程師是否真的精通Java。

在一些新項目中,項目經理和架構師會根據業務需求從頂層設計架構。待架構穩定後,會進入實際的編碼階段。但在更大規模的業務編碼前,首先要搭建好系統的基本框架,而這個框架一般會交給團隊中最資深的工程師(當然精通Java)去做。

具體框架的搭建時間一定不能太長,因爲整個開發團隊都在等待。

同時,因爲這個框架是長期開發的基礎,所以質量一定要有保障。

搭建框架的技術指標,一句話:又快又好

搭建這樣的框架,以我的經驗,團隊能接受的時間一般是2周,最多不能超過3周。

這個框架如果由一個初級工程師來搭建,因爲缺少長期的積累,必然需要大量的時間。但除了時間,更糟糕的是質量。

因爲一個好的框架絕不是靠腦子憑空想出來的,更應該實踐磨練出來的。而初級工程師因爲缺少實踐錘鍊,踩過的坑不多,吃過的虧少。縱然理論再豐富,天資再聰穎,也無法在沙地上憑空打出紮實的地基。

而且,實踐中,即使有很多工程師有豐富的實踐經驗,但也不意味隨着時間推進,老工程師就天然具備搭建高質量框架的能力。因爲實踐背後,更需要深刻的洞察力,和筆耕不輟的總結。

現實中,一個大型的項目,代碼量必然是巨大的。即使是當初設計再精細,但隨着開發的不斷推進,腐敗的引入是無法避免的,其中一個顯著特徵就是模塊之間的耦合不斷增加。

用一個比喻來形容,隨着時間發展,整個軟件系統就像人體一樣,血肉筋骨都粘合在了一塊。對軟件工程師來說,要從這樣的系統中提取出凝練的框架,就像對一個高水平的外科醫生要求的那樣。在理論上要保持絕對的精通,就像醫生對解刨學的掌握。同時還有有極強的編碼能力,就像醫生握手術刀的靈巧雙手一樣。用一句話來形容一流的Java工程師(醫生也是這樣),那就是:

鷹眼、獅心,女人手”。

但是,軟件工程師和醫生還有一點不同,那就是對速度的追求。因爲搭建框架的工作是整個團隊開發工作的前置階段。

而要提高框架搭建的速度,除了日常多思考,多總結,更要做到“未雨綢繆”,提前佈局。

以我爲例,日常的開發中,對每個經手的大型項目。除了通過不斷的重構,來保持整個框架的清晰外,我還會嘗試把每個系統中的框架單獨剝離出來。這樣的做法,除了避免框架被污染的同時,也不斷豐富了屬於我個人的“架構模式”庫。

這樣的做法,一則在面臨新項目時,極大的提高了項目的推進速度。另一方面,也極大的提高了個人的技術自信度,以及職業安全感。

與此同時,現實中,我也看到有很多老師,在面對新人如何精通Java的疑惑時。總是二話不說就拋出冗長的“Java技術路線圖”。對這種做法,我個人是持懷疑態度的。

新人如果按照這種觀點,按圖索驥的去逐項攻克。且不說這些知識點有多少是過時的,沒用的。就算這些知識點都在線,在有限的時間裏,新人面臨入行壓力。這樣學習方法,可不是“30天Java從入門到精通”,更是“30天Java從入門到放棄”。

而更加現實的態度是讓新人明白,這些知識點當然有用,但要做到精通,單純通過學習是遠遠不夠的。正確的方法是快速瞭解,重點突出,把寶貴的精力投入到重點和難點上(例如Spring核心原理)。

然後迅速進入實踐(包括工作和自我練習)階段。在實踐中,通過有效的反饋、深入的思考、不斷的總結,最終才能從一名初級Java程序員邁入精通行列。

請務必明白:

學再多的修辭手法,不練習,也寫不出好文章。

看再多的視頻,不下水,也學不會游泳。

我做開發十多年的時間,如果大家對於學習java的學習方法,學習路線以及你不知道自己應該是自學還是培訓的疑問,都可以隨時來問我,大家可以加我的java交流學習qun:  615-741-636。qun內有學習教程以及開發工具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章