當前位置: 華文星空 > 知識

你的編程能力從什麽時候開始突飛猛進?

2019-11-17知識

在我的碼農生涯中,一共有2個節點,感到自己有一種技術上「突飛猛進」的感覺。

第一個節點,發生在我寫了一年程式碼的時候。觸發點是讀了兩本書。

那時候剛剛轉行一年,熟悉了同事,大致理解了公司產品的技術棧,知道整個流程是什麽樣的。按我現在的角度來看,當年的水平也就是個過得去的實習生(然而當時已經全職了……)。

我全心全意地想提高技術水平,然而總不得要領,也反思為什麽自己對於技術的理解深度和同事們有那麽大的差距。在熟悉了Python語法後,我所會的其實僅僅是將自然語言和邏輯轉譯成程式碼,然而並不能從電腦的角度去理解程式碼執行的原理,當然更無從理解效能最佳化之類更深奧的事情。

那時候帶我的數據工程師,手邊經常放著一本【編寫高質素程式碼:改善Python程式的91個建議】,我就有樣學樣買了一本,並且老老實實用上班的空隙時間+下班的休息時間,緩慢地啃完了整本書。再後來,覺得意猶未盡,又買了同系列的【Effective Python:編寫高質素python程式碼的59個有效方法】,用同樣的方法緩慢而持續的啃完。

這兩本書講了很多巧妙的方法, 讓我搞懂了同事程式碼中很多寫法的具體原因和目的,同時自己的程式碼也在加持下變得更加簡潔和規範起來。 從這時開始,我才開始學習程式碼之下潛藏的更多電腦原理,逐漸能夠從電腦而非人類的角度去理解程式碼。

打個比方。 演算法、數據結構這些硬功夫像【九陰真經】,學會以後妙處無窮,耗時很長。上面這兩本書比較像【九陰白骨爪】,可以速成,憾之深度有限。 但對於剛剛接觸軟件工程不久的人來說,通讀這兩本書,確實可以有功力大增的感覺。所以我強烈推薦,無論新老工程師,都要讀一讀這兩本,起碼要做一個 Pythonic 的程式設計師。

第二個節點,是我第一次獨力寫完並維護公司產品的核心服務。

有一天CTO突然把我和另一位前端負責人叫到一起開了個3人小會,講了一下要寫一個新的後端數據讀寫服務。這個服務非常核心,對效能和健壯性都有很高要求。

當時會議的情況我記憶至今:CTO和前端負責人你一言我一語地說著架構,我在旁邊聽天書,都是沒見過的詞。聊到最後,CTO問我一句,「你能聽懂麽?」

我像美劇【矽谷】裏面的Dinesh一樣……

我是右邊那個……

不過趕鴨子上架,用了大半年的時間寫完並打磨這個元件,最後好歹完成了一個靠譜的東西(在早期還有另一個大牛同事幫我搭了腳手架,非常感激)。這也是我碼農生涯中完成的最重要的東西。開發這個元件遇到無數知識盲點、踩了無數坑,數據庫、運維監控、通訊協定、效能調優、單元測試……這些全折騰了一遍,感覺像讀了個加速版CS本科。

做完這個專案,我的編程水平終於從一個實習生無限逼近於工業級了。回頭看看,像做夢一樣,居然這麽熬著熬著就成為同事口中的「谷老師」了。 有些事情,還真的要靠時間來打磨。

在畢業多年後開始學習寫程式碼,讓我理解了很多事情,不僅僅是電腦,也包括了「如何把事情做好」的方法。

「突飛猛進」往往是自然發生的。 你在某個夜晚苦熬一個知識點時,不會覺得自己「突飛猛進」;只有在多年後某日熟練的給別人講解這個知識點後,內心才會小小的波動一下,猛然憶起當年深夜中的青燈一盞。

總結一下:用力地啃好書。專心地做好專案。剩下的,時間會幫你搞定。