??在早期剛?cè)胄蠭T行業(yè)時,常常會遇到要接手別人項目,或者是要去查看底層源代碼的情況。當(dāng)時常常是 一不做,二不想,悶著頭皮就往下闖,結(jié)果往往是弄得自己頭昏眼花,源代碼還是沒看懂。
??后來因為對自己在這方面有所不滿,所以決定改變自己,反思自己的方法的問題出在哪里。實際上,仔細(xì)想來,每一位作者在寫代碼的時候,首先想到的就是業(yè)務(wù)流程應(yīng)該是怎么展開的,然后在業(yè)務(wù)流程的基礎(chǔ)上設(shè)計軟件的結(jié)構(gòu)圖,也就是各個組件之間的關(guān)系圖,然后深入下去,就是在各個組件中,設(shè)計對應(yīng)的類,對應(yīng)的接口,函數(shù)等待。
??結(jié)果當(dāng)時的自己,或許是完全沒有后來這樣的想法吧,竟然啥都不管就直接鉆進(jìn)去。倘若自己一開始通過其他渠道,查資料,或者請教 弄明白業(yè)務(wù)流程功能,然后能看到整個軟件的設(shè)計結(jié)構(gòu)圖,接下來找到對應(yīng)組建中的類關(guān)系圖,這樣看源代碼不就很happy了嗎。
??這種從整體到局部的方式不得不說,的確很高效,而且竟然和自己的學(xué)習(xí)方式竟然有異曲同工的效果。
??早期自己因為不是計算機專業(yè),自學(xué)的andorid應(yīng)用層開發(fā)時做的最多的就是從網(wǎng)上下載視頻教程看,當(dāng)時追求的僅僅只是把需要的功能實現(xiàn)就行了,也不管使用的方法是否是最合適的,也不管效率的高低。這種一開始就鉆到細(xì)節(jié)的學(xué)習(xí)方法,使得我在后來的很長一段時間內(nèi),知識體系總是一鱗半爪 ,參差不齊。自己對過去所取得的進(jìn)步越來越不滿,力圖尋求改變。
??后來同樣也是開始反思自己過去的學(xué)習(xí)方向是否存在問題,過去常常是,公司需要用到新的技術(shù),完成新的功能,自己才去學(xué)一下,這種學(xué)習(xí)不過是在擴展枝干上的一片樹葉罷了。
??隨即下定決心,辭職,這一次從整體往細(xì)節(jié)上進(jìn)行擴展,把大學(xué)時落下的補回來。以 計算機操作系統(tǒng),高等數(shù)學(xué),離散數(shù)學(xué),編譯原理,數(shù)據(jù)結(jié)構(gòu),關(guān)系型數(shù)據(jù)庫原理,計算機網(wǎng)絡(luò)原理等等為主干,以前端,后臺,移動端,算法,驅(qū)動開發(fā)等為枝干,以各種框架,基礎(chǔ)API調(diào)用為枝干上的樹葉,來構(gòu)建自己的整個計算機領(lǐng)域的知識體系。
??雖然完善這樣的一棵知識樹需要較長的時間,但我可以一邊完善主干,一邊利用工作的機會,盡可能的完善枝干。待主干長成后,自己倘若想換個枝干,有主干作為支撐,想換過去也不會很難。況且,僅僅是不斷的完善這棵知識樹,也可以指引著我往架構(gòu)師的方向前進(jìn)。
??最后說一句,希望有更多的人能看到這篇文章,讓后來者盡量避免掉入我曾經(jīng)趟過的坑。