1. 程式人生 > >成長路上,刀劍如夢

成長路上,刀劍如夢

命名 之前 java 等級 原因 這就是 設計 pen 平衡

技術分享

在成長的路上,回首望去是否感覺是一個刀劍如夢的過程?

殺人術

你狠狠的敲下鍵盤的回車鍵,最終看見程序按預期輸出了正確結果。長長吐了一口氣。

點上一支煙,環顧四周,獨自一人。又是一個夜深人靜的晚上。

在一種搞定 bug 的滿足和空曠寂寥的憂傷中。你不禁迷惘。記不清這是你修復的第多少個 bug 了,甚至記不清這是你參與開發和維護的第幾個系統了。

就像一個劍客在這個江湖上行走多年。已記不清死在自己劍下人有多少,拔劍收劍,有人倒下。你繼續行走,現在「殺人術」已成。

對一個程序猿何謂「殺人術」?你選擇了一門語言開始學習編程,像一個剛入江湖的人選了學劍或刀。也可能是飛刀。

再弄了幾本江湖寶典,假想了一個項目開始練習,熟悉主要的使用套路。然後走入江湖,拜入門派,腥風血雨,數年後劍鳴空靈、刀嘯雲天,飛刀無影,「殺人術」終成。這就是一個程序猿的成長之路,你選了門武器,學了基本招式,然後進入江湖不停的在廝殺中成長。最終你能搞定各種各樣的系統問題,了解不同系統的設計模式。每過數月或一年半載,你總發現過去代碼寫的不好,再重構上一遍。改進你的招式。數年後。終成江湖高手,汝今劍術已成。然拔劍四顧,卻心下茫然。

一個程序猿修成「殺人術」大概須要多久?依照一萬小時理論,假設你在某一領域每天持續學習和實踐十小時,最快也要三年。

但三年是沒算各種可能的中斷的(生病、假期等等),所以但絕大部份人可能須要五年。五年成術已算理想,實際上我自身用了更長的時間,走了很多其它些彎路。

從 Basic 程序入門。後來 VB 再到 Delphi 然後 C 最後 Java,Java 也經歷了幾代變遷,但還算一脈相承。技術的發展,時代的變遷會讓「殺人術」也在不停的演化,剛覺劍術小成。卻發現已進入槍炮時代。不免茫然。

升維學習

在我修行成術的過程中出現了好多新技術,當時我總想忙完這陣就抽出時間去學習了解下。但一過幾年一直沒能抽出空去看,現在再去看時發現好些當年的新技術已不需再看了。五年成術是立足於一點,成立身之本,而下一階段不該是尋找很多其它的點。而是由點及線、由線成網、由網化形。

環繞一個點去劃線,由一組線結成網,最後由網化成形。化形表達一種更高級的知識和技能運用形態。比一堆離散的知識技能點有價值的多。非常多修真小說中一些生物和同境地的人相比要弱,直到這些生物完畢了化形為人的升級,就會變的比同境地的人更強。小說裏的化形有個隱含意思就是讓生物具備了人的智慧,能夠更智慧的運用它們的能力,它們的實力就變得比人更強大(原因是身體屬性更強)。

我這裏借用了這個相似的隱喻,表達更智慧的運用知識技能。

《三體》這本小說近些年大熱,所以大家可能聽說過這裏面發明的一個詞「降維攻擊」。在互聯網圈這個詞用的非常多。而關於學習的由點及線、由線成網、由網化形,事實上是一種「升維學習」之道。

這個過程差點兒沒有終點,是一個持續學習不斷完好的過程。最終結多大的網,成什麽樣的形。全看個人修為。一條線至少要兩個點才幹畫出,那麽第二個點的選擇就要看能不能和第一個點連的起來了,而這比在一個維度上去預測和亂踩點要有效的多。

除了在修真小說中有隱隱的比喻,事實上這套道理在金庸設計的武學體系中更覺明顯。

要不就以大家最熟悉的《射雕》三部曲為例,我們來看下。郭靖一開始師從江南七怪,後來又跟全真七子中的幾位學過功夫。這在功夫裏就是兩個點。但沒看出這兩個點有何聯系。最後郭靖江湖成名。終成一代高手靠的是什麽?降龍十八掌。為什麽有十八掌這麽多,從小說裏的描寫敘述表達了一個體系的意思。一個體系結網成形。最後的形態命名為降龍十八掌。事實上郭靖還學了一個還有一個更有體系,形態更牛x的武功《九陰真經》。

除了郭靖《九陰真經》非常多人看過學過,有高手如:黃藥師、王重陽等,也有一般人如:梅超風。

高手們本身有自身的武功體系和形態。所以看了《九陰真經》也不過從中領悟,融入自己的體系中甚至因此創造出新的武功形態。而梅超風之流則不過學點當中招式(九陰白骨爪),和之前自身所學事實上沒有太多關聯。武功境地終有限。

理論與實踐

關於升維學習結網化形之道。究竟是應該更寬泛的看書學習建立理論邊界。還是在實戰中領悟提升。

關於這點我一直以來思考的結論是建立兩者的平衡,走兩個極端都不合適。五年成術的過程很多其它偏實戰。

那麽後面的階段可能須要更偏理論,提升抽象高度,由於現實會制約你能參與實戰的經歷,導致有些東西不去抽象的思考是無法獲得的。

歷史上關於理論和實戰有非常多爭論。還留下了一些著名的成語。理論派的負面歷史代表人物:趙括。有一個關於他的成語。紙上談兵。他談起軍事理論一套一套的,一上戰場真打起來就葬送了數十萬將士的性命。所以大家都會以趙括為例來批評沒有實戰經驗支撐的理論靠不住。

但事實上還有還有一個更著名的歷史人物,也是理論派出身,在真正拜將之前也沒什麽實戰經驗。關於他的成語。如:背水一戰。這是他抽象的思考過非常久的戰法。但也是第一次上戰場使用,一戰而歷史留名。最終關於韓信。歷史上說他率軍出陳倉、定三秦、擒魏、破代、滅趙、降燕、伐齊,直至垓下全殲楚軍,無一敗績,天下莫敢與之相爭。

王侯將相韓信一人全任。一時國士無雙。屬於中國古代謀戰派代表人物。韓信的對手項羽在歷史上就是一個實戰派代表人物,個人「殺人術」比韓信高出怕不止一個等級。但事實上他和韓信根本不在一個維度上。韓信在最後面對項羽的前,已通過大量大小戰鬥去不斷實證和完好了他的謀戰理論。垓下之戰項羽中十面埋伏,導致其烏江自刎,更像是一場高維打低維的降維攻擊啊。所以關於理論和實戰的關系,從這個歷史故事能夠有所體會。結合自身情況來選擇合適的平衡。

回首自己的成長之路,通常每五年就會感覺碰到一個成長的瓶頸點。

在傳統 IT 行業的第一個五年後,感覺明顯進入技術成長的瓶頸期,之後也算運氣通過轉換到互聯網行業升級了到新的技術維度。

又過了五年,站在十年後的一端。回望過去,刀劍相接,如夢似幻,我知道明天又將是一個升維後的新戰場。

技術分享

成長路上,刀劍如夢