跨越断层,突破边界
????????之前我說(shuō)過(guò)程序員的職場(chǎng)階梯,而階梯不過(guò)就是很多人已經(jīng)走過(guò)的路,我們只需要沿著這條路去持續(xù)成長(zhǎng)就能爬上還算不低的樓層。只是到了一定樓層后我們會(huì)發(fā)現(xiàn)上面似乎還有幾層,但卻看不見(jiàn)下一層的樓梯了。因?yàn)樵偻献叩娜司筒欢嗔?#xff0c;也就沒(méi)能成了路,自然也就看不見(jiàn),這可能就是所謂成長(zhǎng)階梯的斷層。
????????在程序員的成長(zhǎng)階梯上,到了一定階段,我們可能會(huì)面臨方向的選擇,不同的方向選擇意味著不同的路徑,會(huì)碰到不同的斷層,而跨越斷層也需要不同的方法。
????????那我們會(huì)面臨怎樣的方向選擇呢?
方向
????????在我的技術(shù)成長(zhǎng)路上,我看到了三個(gè)方向,正好可以用三個(gè)字來(lái)表達(dá):
“高”
“精”
“尖”。
????????“高” 指的是 “高級(jí)(High-grade)”,“精” 代表 “精確(Precision)”,而 “尖” 則是 “尖端(Advanced)”。這是我所看到的技術(shù)人前進(jìn)的三個(gè)主要方向,而這三個(gè)方向的走向往往還是互斥的。
????????高級(jí),說(shuō)的不是更高級(jí)的技術(shù),因?yàn)榧夹g(shù)之間的橫向比較沒(méi)有高低級(jí)之分,比如操作系統(tǒng)、數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)編程、機(jī)器學(xué)習(xí)等技術(shù),沒(méi)法比出個(gè)高下。這里的“高級(jí)”,如其英文是更高等級(jí)的意思,是職位和人的級(jí)別。而往高等級(jí)走的技術(shù)人,離 “精” 自然只能越來(lái)越遠(yuǎn),畢竟站的高就只能看得廣,但很難看得精確了。
????????精確,就是把一門(mén)技術(shù)做到真正的精通。現(xiàn)在技術(shù)的分工越來(lái)越細(xì),通常能精通一兩個(gè)細(xì)分領(lǐng)域已實(shí)屬不易。而要做到精,其實(shí)越往后付出越多,但感覺(jué)提升卻變得越來(lái)越慢。都到 95 分了,再往后每提升 1 分都需要付出艱辛的努力。走到細(xì)微深處,也很難再看得遠(yuǎn)、看得廣了。
????????尖端,似乎聽(tīng)起來(lái)像 “精” 的極致,其實(shí)不然,這完全是另一條路。“高” 與 “精”,是工業(yè)界的實(shí)踐之路,而 “尖” 是理論界的突破之路。只有能推進(jìn)人類(lèi)科技進(jìn)步的技術(shù)才稱(chēng)得上尖端,就如 IT 界歷史上著名的貝爾實(shí)驗(yàn)室里的科學(xué)家們做的工作。
“????????高”“精”“尖”三個(gè)字,三個(gè)方向,三條路,各有各的機(jī)遇與風(fēng)險(xiǎn)。在三條路的岔路口,工作多年的你若止步不做選擇,也許就止于一名普通的程序員或資深的技術(shù)人。若繼續(xù)選擇一個(gè)方向走下去,越往高處走,高處不勝寒,一旦落下,你知道再也回不去了;而走向精深之處,沿著技術(shù)的河流,溯根回源,密林幽幽,林聲?shū)B(niǎo)不驚,一旦技術(shù)的潮流改了道,你知道你可能會(huì)迷失;而尖端之路,或者有朝一日一鳴驚人,青史留名,或者一生碌碌。人工智能的發(fā)展史上,曾有一段時(shí)間找錯(cuò)了路,讓學(xué)界止步不前,而這一段時(shí)間就是走尖端之路的學(xué)者們二十年的歲月。
????????“高” 是往宏觀走,“精” 是往微觀走,“尖” 是去突破邊界。這三條路,“高” 和 “精” 的方向在業(yè)界更常見(jiàn),而 “尖” 不是工業(yè)界常規(guī)的路,畢竟業(yè)界擁有類(lèi)似貝爾實(shí)驗(yàn)室這樣機(jī)構(gòu)的公司太罕見(jiàn),所以 “尖” 的路線(xiàn)更多在學(xué)術(shù)界。因而后面我們主要探討 “高” 和 “精” 兩個(gè)方向的路徑斷層與跨越方法。
高
????????高的兩條典型路線(xiàn)如下:
程序員—架構(gòu)師—技術(shù)領(lǐng)導(dǎo)者
程序員—技術(shù)主管—管理者
????????往高處走,每一次角色的轉(zhuǎn)變,都是斷層。有時(shí)候,公司里到了一定級(jí)別的程序員就會(huì)被冠以架構(gòu)師的稱(chēng)呼,但工作的實(shí)質(zhì)內(nèi)容依然是資深程序員平時(shí)做的事,如:一些關(guān)鍵系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),解決一些困難的技術(shù)問(wèn)題。
????????這些工作中的確有一部分也算是架構(gòu)師的內(nèi)容,但如果不能認(rèn)識(shí)到架構(gòu)師工作內(nèi)容的實(shí)質(zhì),再往高處走也就很難實(shí)現(xiàn)斷層的跨越了。而架構(gòu)工作的實(shí)質(zhì)是創(chuàng)造一個(gè)模型,來(lái)連接、匹配關(guān)于業(yè)務(wù)、技術(shù)和團(tuán)隊(duì)之間的關(guān)系。
????????其中的 “業(yè)務(wù)” 屬于架構(gòu)師工作內(nèi)容中的領(lǐng)域建模;“技術(shù)” 是匹配領(lǐng)域模型的技術(shù)實(shí)現(xiàn)模型;“團(tuán)隊(duì)” 是關(guān)于個(gè)體之間如何組合的結(jié)構(gòu),需要滿(mǎn)足個(gè)體技術(shù)能力與技術(shù)實(shí)現(xiàn)模型的匹配。由這三個(gè)元素連接和匹配構(gòu)成的模型中,“業(yè)務(wù)” 是變化最頻繁的,其次是 “團(tuán)隊(duì)”,而變化頻次最低的反倒是 “技術(shù)”。
????????每一項(xiàng)元素發(fā)生變化,都意味著架構(gòu)模型需要去適應(yīng)這種變化,適應(yīng)不了變化的模型就需要升級(jí)。而常見(jiàn)的組織架構(gòu)調(diào)整,也就意味著 “團(tuán)隊(duì)” 的溝通路徑變化了,因?yàn)榭低?#xff08;系統(tǒng)設(shè)計(jì)的通信結(jié)構(gòu)和設(shè)計(jì)系統(tǒng)的團(tuán)隊(duì)組織的溝通結(jié)構(gòu)是一致的)的緣故,必然帶來(lái)架構(gòu)模型的適應(yīng)性變化調(diào)整。
????????透過(guò)具體的實(shí)質(zhì)再往高處抽象到本質(zhì),你會(huì)發(fā)現(xiàn)架構(gòu)工作的本質(zhì)是在通過(guò)模型調(diào)優(yōu)生產(chǎn)關(guān)系,從而提高生產(chǎn)效率和生產(chǎn)力。這是一條杠桿之路,通過(guò)找到其中的關(guān)鍵支點(diǎn)去放大輸出,擴(kuò)大價(jià)值。
????????在架構(gòu)模型三元素中,技術(shù)本身就是一種杠桿,而團(tuán)隊(duì)和業(yè)務(wù)是價(jià)值支點(diǎn)。
曾經(jīng),技術(shù)的草莽時(shí)期,是一個(gè)英雄輩出的年代。兩個(gè)人可以創(chuàng)造 Unix、C 語(yǔ)言,一個(gè)人也可以發(fā)明 Linux,也可以寫(xiě)出 Foxmail。掌握了技術(shù),就可能創(chuàng)造歷史,那時(shí)技術(shù)的杠桿很高。
????????如今,是技術(shù)的成熟時(shí)期,個(gè)體英雄少了,更多是一種團(tuán)隊(duì)和集團(tuán)軍作戰(zhàn)的方式。如果你是技術(shù)的絕世高手(精的極致),那你也需要找到一支契合你技能的場(chǎng)景與隊(duì)伍,加入進(jìn)去。此時(shí)個(gè)人的技術(shù)杠桿也許不像曾經(jīng)那么高,但也許你們這個(gè)隊(duì)伍還是有機(jī)會(huì)能創(chuàng)造歷史的。
????????前幾年,Facebook 曾收購(gòu)了一家叫 WhatsApp 的公司,花了 190 億美元。這家公司當(dāng)時(shí)僅 50 人,而其中一半是技術(shù)人員,這應(yīng)該是近年用技術(shù)杠桿撬動(dòng)價(jià)值之最了吧。
????????在 WhatsApp 這個(gè)例子中的價(jià)值支點(diǎn)是什么?是產(chǎn)品(業(yè)務(wù)),連接用戶(hù)、形成網(wǎng)絡(luò)。技術(shù)本身的價(jià)值通過(guò)這個(gè)產(chǎn)品業(yè)務(wù)形態(tài)支點(diǎn),在每個(gè)活躍用戶(hù)身上得到了放大。
????????而另一個(gè)價(jià)值支點(diǎn),是借助團(tuán)隊(duì),但這只適合高級(jí)別的技術(shù)人員,比如:技術(shù)管理者或架構(gòu)師。但團(tuán)隊(duì)也需要能創(chuàng)造真正的價(jià)值,才能實(shí)現(xiàn)利用杠桿放大價(jià)值的效果。在商業(yè)環(huán)境下,任何一種產(chǎn)品業(yè)務(wù)形態(tài),其最終能實(shí)現(xiàn)價(jià)值,都會(huì)存在一個(gè)價(jià)值網(wǎng)絡(luò)。這個(gè)網(wǎng)絡(luò)中覆蓋了各種角色,技術(shù)只是其一,若要找到最好的價(jià)值支點(diǎn),那么通常會(huì)在離價(jià)值來(lái)源比較近的地方。
????????技術(shù)像是一根棍子,能發(fā)揮多大價(jià)值,取決于棍子本身的品質(zhì)和運(yùn)用的方式。而往高處走的技術(shù)人,要跨越這條路徑的斷層,就是要認(rèn)識(shí)清楚這個(gè)價(jià)值網(wǎng)絡(luò),并找到最適合技術(shù)發(fā)揮的價(jià)值點(diǎn)。
精
????????精的路線(xiàn)是一條 “專(zhuān)家” 之路。
????????曾經(jīng)定義過(guò) “專(zhuān)家”,我說(shuō):專(zhuān)家可能就是某個(gè)領(lǐng)域中你繞不過(guò)去的人吧。這個(gè)定義中包含兩個(gè)點(diǎn),一個(gè)是領(lǐng)域,另一個(gè)是繞不過(guò)去。第一點(diǎn)表達(dá)了某個(gè)范圍,第二個(gè)則模糊地表達(dá)了這個(gè)范圍的大小,繞不過(guò)去其實(shí)是一個(gè)很大的范圍了。
????????比如,若你處在物理學(xué)領(lǐng)域,牛頓就是你繞不過(guò)去的人,之后是愛(ài)因斯坦。而在計(jì)算機(jī)領(lǐng)域,圖靈定義了計(jì)算機(jī)的邊界,也是這個(gè)領(lǐng)域繞不過(guò)去的人。但這樣的天才人物,百年來(lái)才出一個(gè),如果都要達(dá)到這個(gè)水平才算是專(zhuān)家,可能就太難了,從而失去了指導(dǎo)意義。
????????如今反思,其實(shí)用這兩點(diǎn)來(lái)定義專(zhuān)家也是可以的,只是需要更清晰地明確領(lǐng)域和量化范圍。大至國(guó)家、社會(huì)、行業(yè),小到公司、團(tuán)隊(duì)、小組,都有自己關(guān)于專(zhuān)家的定義。
????????曾經(jīng),好些年前,我最早在公司的幾個(gè)同事組成的小組內(nèi)研究引入 Java NIO 的技術(shù)來(lái)編寫(xiě)網(wǎng)絡(luò)程序,讀了一些相關(guān)的書(shū)和開(kāi)源框架代碼(Mina、Netty),周?chē)膸讉€(gè)同事就戲稱(chēng)我為 Java NIO 的專(zhuān)家。這就是用領(lǐng)域(Java NIO 是一個(gè)很細(xì)分的技術(shù)領(lǐng)域)加范圍(局限于周?chē)M內(nèi)幾個(gè)同事,他們要解決 NIO 的網(wǎng)絡(luò)編程問(wèn)題都繞不過(guò)我)定義專(zhuān)家的方式。
????????因而,像前面說(shuō)的愛(ài)因斯坦、牛頓、圖靈,他們既是行業(yè)(學(xué)科維度)范圍內(nèi)的,也是世界(地理維度)范圍內(nèi)的專(zhuān)家。而公司內(nèi)的專(zhuān)家職級(jí)定義,其范圍無(wú)非就是與公司經(jīng)營(yíng)相關(guān)的某個(gè)領(lǐng)域,其大小無(wú)非就是公司組織架構(gòu)的某一層級(jí)之內(nèi)。
????????走向?qū)<抑?#xff0c;就是精確地找到、建立你的領(lǐng)域,并不斷推高壁壘和擴(kuò)大邊界的過(guò)程。
????????那么如何建立屬于自己的、更大范圍內(nèi)且具備足夠識(shí)別性的領(lǐng)域?這就是 “精” 的路徑中的非連續(xù)性斷層問(wèn)題。曾經(jīng)讀過(guò)一篇吳軍的文章,談到了工程師成長(zhǎng)中的類(lèi)似問(wèn)題,他用了一個(gè)公式來(lái)描述解法:
成就 = 成功率 x 事情的量級(jí) x 做事的速度
????????在連續(xù)的成長(zhǎng)階段,我們的成長(zhǎng)主要體現(xiàn)在不斷提升做事的熟練度,也就是上述公式中的速度和成功率,但這兩個(gè)指標(biāo)到了一定的熟練度階段后就會(huì)碰到物理極限。實(shí)際情況是,一個(gè)資深的工程師的速度甚至不會(huì)比一個(gè)初級(jí)工程師快兩倍,但可能成功率會(huì)高幾倍,甚至十倍,這就是傳說(shuō)中的一個(gè)頂十個(gè)的程序員,但離極限也就差不遠(yuǎn)了。
????????而要成為傳說(shuō)中以一敵百的程序員,只有一個(gè)可能,他們做的事情和其他人不在一個(gè)量級(jí)上。現(xiàn)實(shí)案例中,就有如 Linus 這樣的人。所以,一直做同樣的事,都是寫(xiě)代碼,也可以跨越斷層,但關(guān)鍵是,你寫(xiě)的代碼體現(xiàn)在什么量級(jí)的事情上。
????????問(wèn)題的量級(jí)變了,邏輯就不一樣了。作為程序員,我們會(huì)有直觀的感受,用戶(hù)量級(jí)越過(guò)了一定的門(mén)檻后,我們編寫(xiě)、維護(hù)和部署程序系統(tǒng)的方式都會(huì)發(fā)生本質(zhì)的變化。而提升量級(jí)最難的就在于我們要放下曾經(jīng)熟悉的方式和習(xí)慣,站在更高的維度去看更大量級(jí)的事情,并且找到適合這個(gè)量級(jí)事情的合適解決方案。
????????面臨成長(zhǎng)路上的非連續(xù)斷層,以及角色之間的無(wú)形壁障,該如何跨越斷層,突破邊界?我們著重從成長(zhǎng)路線(xiàn)的兩個(gè)方向:“高” 和 “精”, 提供了分析和解法。
????????高的路線(xiàn),需要借助技術(shù)的杠桿,認(rèn)清所處的價(jià)值網(wǎng)絡(luò),找到合適的價(jià)值點(diǎn),撬動(dòng)更大的價(jià)值;
????????精的路線(xiàn),在做事情的成功率和速度接近自己的極限后,只能去提升事情的量級(jí),才能發(fā)揮出專(zhuān)家的價(jià)值。
????????明晰了不同路線(xiàn)的價(jià)值方向,但每個(gè)人腳下的路都是具體的、不同的,我們跨越的方式也不會(huì)一樣。在成長(zhǎng)的路上,你碰到了斷層沒(méi),又是如何跨越斷層的?
總結(jié)
- 上一篇: win11右键菜单和win10右键菜单修
- 下一篇: 计算机控制器说法错误的是,江苏专转本计算