平時(shí)經(jīng)常能聽(tīng)到一些同學(xué)困惑,“面試造火箭,天天擰螺絲”,每天進(jìn)行重復(fù)的業(yè)務(wù)開(kāi)發(fā),似乎自己的能力被日常工作限制,無(wú)法突破提高自己的能力水平。我想說(shuō),難道懂得如何造火箭,還能沒(méi)有實(shí)際價(jià)值嗎?它的價(jià)值在于,當(dāng)真的出現(xiàn)不可預(yù)測(cè)的、具有挑戰(zhàn)性的任務(wù)時(shí),你能不能
Hold 住。那么關(guān)于Java工程師的成長(zhǎng)路線是什么呢?又給如何找到自己所處的能力水平,通過(guò)學(xué)習(xí)和實(shí)踐實(shí)現(xiàn)進(jìn)階呢?
一、新手
如果你是新手階段,全面、扎實(shí)地掌握語(yǔ)言的基本要素是當(dāng)務(wù)之急。在這個(gè)階段我認(rèn)為是有無(wú)限可能的,因此我并不建議完全用《Java 核心技術(shù)面試精講》專欄作為
Java 語(yǔ)言入門的課程,而是更應(yīng)該找到更基礎(chǔ)的、系統(tǒng)的 Java 書(shū)籍或者課程。
你可以在正規(guī)的指導(dǎo)(比如進(jìn)行培訓(xùn))飛速進(jìn)步,并培養(yǎng)出良好的編碼習(xí)慣。然后可以再結(jié)合專欄,看看 Java
技術(shù)領(lǐng)域典型的、長(zhǎng)期的熱點(diǎn)話題,了解業(yè)界通常從哪些角度判斷你的能力和水平。你還可以從專欄的基礎(chǔ)模塊,看到 Java 領(lǐng)域長(zhǎng)期的熱點(diǎn)話題,增長(zhǎng)自我見(jiàn)識(shí)。
二、高級(jí)新手
工作了幾年,整天忙于業(yè)務(wù)代碼,很容易困惑下一步的方向在哪里,相當(dāng)多的程序員長(zhǎng)期停留在高級(jí)新手的階段。一個(gè)常見(jiàn)的表現(xiàn)就是發(fā)展成為了“面向搜索引擎”編程工程師,擅長(zhǎng)快速利用開(kāi)源項(xiàng)目或者以往成果,完成一些“OK”的工程任務(wù)。這本無(wú)可厚非,職業(yè)路線很多,未必每個(gè)人都想成為底層專家。
但是,如果想在技術(shù)領(lǐng)域更進(jìn)一步,一定要避免下面兩個(gè)問(wèn)題。面對(duì)沒(méi)見(jiàn)過(guò)的、一定規(guī)模的或者較高標(biāo)準(zhǔn)的問(wèn)題時(shí)無(wú)所適從,具體表現(xiàn)為“領(lǐng)導(dǎo),你看這樣行嗎?”。沒(méi)做過(guò)互聯(lián)網(wǎng)高并發(fā)應(yīng)用,難道就不能對(duì)并發(fā)編程有相對(duì)深入的思考嗎?比如,習(xí)慣了使用
Executors,你有沒(méi)有思考過(guò)不同的線程池到底適合什么場(chǎng)景?當(dāng)前的實(shí)現(xiàn)在未來(lái)業(yè)務(wù)量增長(zhǎng)下可能出現(xiàn)什么問(wèn)題?
無(wú)法獨(dú)立提供有說(shuō)服力的、有深度的分析、設(shè)計(jì)和實(shí)現(xiàn),比如業(yè)務(wù)系統(tǒng)運(yùn)行一段時(shí)間就變慢,調(diào)整 Heap 大小,似乎仍然
OOM。目前團(tuán)隊(duì)處理的方式就是重啟服務(wù)器,有沒(méi)有想過(guò)去發(fā)掘真正的原因,真正去解決它?
三、勝任者
那如何才能算是擺脫了高級(jí)新手的階段呢?或者換句話說(shuō),如何成長(zhǎng)為團(tuán)隊(duì)的核心成員?這取決于你能背多大的鍋、填多大的坑,比如你已經(jīng)可以:
獨(dú)立負(fù)責(zé)做 GC 調(diào)優(yōu),即使沒(méi)有歷史經(jīng)驗(yàn),也能給出有說(shuō)服力的方案。在 JVM
領(lǐng)域有充足的技術(shù)經(jīng)驗(yàn)和知識(shí)儲(chǔ)備,全面評(píng)估評(píng)估后臺(tái)變慢等問(wèn)題的復(fù)雜度、風(fēng)險(xiǎn)點(diǎn)、解決的可能性。對(duì)于所謂本質(zhì)的思考和理解,能聽(tīng)懂深入的抽象觀點(diǎn)。并且,除了
Java/JVM,還要掌握更完整的技能樹(shù),例如分布式系統(tǒng)設(shè)計(jì)、數(shù)據(jù)庫(kù)隔離級(jí)別選型等。
掌握將“OK”的事情做到“excellent”程度的能力,不斷地進(jìn)行高效實(shí)踐、領(lǐng)域的擴(kuò)展和精深,我們就可以達(dá)到并超過(guò)勝任者,逐步成為精通者和專家。