更新時(shí)間:2019-09-05 11:45:42 來源:動力節(jié)點(diǎn) 瀏覽1737次
作為一名程序員,大家都會為自己未來的職業(yè)發(fā)展焦慮。
一方面是因?yàn)镮T是知識密集型的行業(yè)。
知識體系復(fù)雜且知識更新速度非常快,“一日不學(xué)就會落后”。
另外一方面,IT又是勞動密集型的行業(yè)。
從業(yè)人員多,個(gè)人在平時(shí)的開發(fā)過程中有大量的重復(fù)勞動(如CRUD),能力沒有隨年齡的增加而增長。
這種情況下,就會應(yīng)驗(yàn)“35歲就失業(yè)”魔咒。
那作為一名Java開發(fā)者,如何規(guī)劃自己的職業(yè)生涯呢?
一般來說,程序員的技術(shù)生涯會分為技術(shù)新人,技術(shù)專家,架構(gòu)師3個(gè)階段,這也是我們的成長的路徑。
一,技術(shù)新人:夯實(shí)技術(shù)基礎(chǔ)
對于工作1?2年左右的技術(shù)新人來說,夯實(shí)基礎(chǔ)是立足之本。
具體來說,技術(shù)基礎(chǔ)的能力尤其反映在代碼品質(zhì)上。
比如“大段重復(fù)代碼”,“極端情況沒異常處理”,“面條型代碼沒有任何架構(gòu)”等,都是代碼品質(zhì)差的表現(xiàn)。
提高的方式比較通用:
看書是最系統(tǒng)的提升方式。比如“Java編程思想”,“EffectiveJava”等。
在看書的過程中一定要思考能否實(shí)踐,比如看到voliate,就要想想能否應(yīng)用到自己的項(xiàng)目中。
代碼評論是最有體感的提升方式。這個(gè)階段一定不要怕丟人。
讓自己組內(nèi)的大牛來看看自己的代碼,肯定會被批評,但這是成長最快速的方式。
二,技術(shù)專家:構(gòu)建技術(shù)深度
技術(shù)專家的要求是在技術(shù)深度上一定有積累。
但說到技術(shù)深度,第一感覺它很玄乎,多深才叫有深度,是不是掌握冷門的技巧就叫深度?
比如:你的同事花費(fèi)了一周來“重構(gòu)”代碼。
最后發(fā)現(xiàn),僅僅是換了個(gè)語法糖:
把for循環(huán)等換成了所謂的函數(shù)式編程lambda表達(dá)式,而且lambda表達(dá)式巨長到無法下咽;
還有同事在不休止的討論if-else的100種寫法,各種設(shè)計(jì)模式堆砌,到最后除了他沒有別人能看懂。
很顯然,我們最多會說他們有鉆研精神,語法糖使用的很厲害,但絕不會說他們有技術(shù)深度。
很多同學(xué)始終無法構(gòu)建自己的深度。
就在于他們會把編碼過程中的“奇淫技巧”看做是技術(shù)深度的體現(xiàn),把炫技放在首位。
而這種想法顯然是片面的,也是錯(cuò)誤的。
而真正的技術(shù)深度,一般要在學(xué)習(xí)的過程中思考如下問題:
1.技術(shù)誕生的背景是什么,這是理解技術(shù)理念的關(guān)鍵。
2.技術(shù)的優(yōu)勢和劣勢分別是什么,技術(shù)沒有銀彈,只有適應(yīng)場景,在某一方面有優(yōu)勢,那在其他方面就肯定有劣勢。
3.技術(shù)的底層原理和關(guān)鍵實(shí)現(xiàn)
4.和已有的其他技術(shù)相比有什么不同
提升的方式無非就是多看資料,尤其去看官方英文文檔。
遇到不懂的可以去社區(qū)提問,甚至還可以仿照某個(gè)技術(shù)重新造個(gè)輪子(僅供學(xué)習(xí)之用,不建議工作中重復(fù)造輪子)。
技術(shù)深度的構(gòu)建非一朝一夕,如果能按照上面的思路堅(jiān)持學(xué)習(xí)三五年,就一定會在某一領(lǐng)域成為專家。
三,架構(gòu)師:擴(kuò)大技術(shù)視野
在成為某一領(lǐng)域的專家之后,想要承擔(dān)更大的職責(zé),那么還需要擴(kuò)大自己的技術(shù)視野,通盤考慮整個(gè)業(yè)務(wù)和系統(tǒng)。
通俗來講,技術(shù)視野不僅包含了技術(shù)深度,也包含了技術(shù)廣度,就是“既見樹木,又見森林”。
尤其體現(xiàn)在技術(shù)選型與架構(gòu)設(shè)計(jì)這兩個(gè)階段。
這個(gè)能力也是決定自己以后是繼續(xù)當(dāng)“搬磚工”,還是升華為“建筑師”的關(guān)鍵。
要時(shí)刻保持跳出當(dāng)前層級和環(huán)境來思考的習(xí)慣。
每個(gè)人都有自己的局限性,每天接觸的技術(shù)和工作都是固定的,工作常用的技能隨著時(shí)間就熟練了。
比如,你只用了關(guān)系型數(shù)據(jù)庫,有沒有想過數(shù)據(jù)一直產(chǎn)生,到達(dá)TB級別的時(shí)候該如何快速檢索與保存呢?
充分利用思維導(dǎo)圖工具,不斷延展知識邊界。
架構(gòu)師的知識一定是系統(tǒng)化的,當(dāng)接觸到一個(gè)知識點(diǎn)后,要去追尋與現(xiàn)有技術(shù)的關(guān)系。
這樣就可以將所學(xué)知識串聯(lián),從而形成體系。
溝通與交流時(shí)提高視野的最快捷的方式。
相信每個(gè)人都有感觸,當(dāng)你偶然間獲得某個(gè)知識點(diǎn)后,會不由感嘆:原來如此啊,我還以為有多難呢。
其實(shí)知識不難,就在那里,只是你沒找到合適的途徑去觸達(dá)它。
對于Java的來說,Java架構(gòu)師的知識體系可以參考以下:
以上就是動力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“資深Java架構(gòu)師:菜鳥如何修煉成為Java架構(gòu)師”的內(nèi)容,希望對大家有幫助,更多精彩內(nèi)容請繼續(xù)關(guān)注動力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會有精彩內(nèi)容分享與你。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743