在中國,也能一輩子做程序員
點(diǎn)擊上方 "大數(shù)據(jù)肌肉猿"關(guān)注, 星標(biāo)一起成長
后臺回復(fù)【加群】,進(jìn)入高質(zhì)量學(xué)習(xí)交流群
2021年大數(shù)據(jù)肌肉猿公眾號獎(jiǎng)勵(lì)制度

在金山辦公副總裁以及 AI 中臺負(fù)責(zé)人姚冬看來,關(guān)于能不能一輩子做程序員的問題,要討論的其實(shí)是“你有多大概率把它當(dāng)成一個(gè)終身職業(yè),可能性有多大”,目前看起來,程序員這行“只要你想,只要你愿意,然后選對方向,有合適的環(huán)境”,基本上就可以一直做下去。據(jù)姚冬透露,目前金山辦公在職的、年紀(jì)最大的技術(shù)人于 1990 年入職,并且 30 年來都在一線寫程序。
“程序員可以不做管理職位,但是不能沒有管理能力?!?/strong>9 月 29 日,姚冬現(xiàn)身 InfoQ“大咖說”,妙語連珠,觀點(diǎn)犀利,他既與我們分享了他豐富多彩的職業(yè)生涯,也結(jié)合自身經(jīng)驗(yàn)講述了自己選擇職業(yè)方向和技術(shù)方向的方法論,并進(jìn)一步給出了關(guān)于 技術(shù)轉(zhuǎn)型、如何判斷技術(shù)是否容易過時(shí)以及管理能力 等方面的思考和建議。
以下內(nèi)容節(jié)選自當(dāng)天的分享,InfoQ 做了不改變原意的編輯:
姚冬: 我目前在金山辦公任副總裁,主管 AI 方向的研發(fā),做程序員有 20 多年,從 97 年就開始在軟件公司,98 年進(jìn)入金山,如果小伙伴們不怕暴露年齡的話,可能也知道金山詞霸、金山游俠。后來去過一些其他公司,比如說我在諾基亞做塞班系統(tǒng),后來又去了 YY 語音,打游戲的小伙伴們應(yīng)該用過 YY 語音,團(tuán)隊(duì)指揮、開黑那也是我主導(dǎo)的,17 年的時(shí)候又重新回到金山辦公,轉(zhuǎn)型做 AI 方向的算法和工程產(chǎn)品。
姚冬: 人都有這個(gè)“問題”,就是在一個(gè)組織里的時(shí)候,更容易發(fā)現(xiàn)這個(gè)組織有問題。因?yàn)檫@時(shí)候你是一個(gè)近距離的觀察者,看了很多細(xì)節(jié),會總覺得這兒也不好,那兒不好,這個(gè)不對,那也不對。但如果跳出這個(gè)領(lǐng)域成為一個(gè)旁觀者,距離產(chǎn)生美,當(dāng)你看不到一些瑣碎的細(xì)節(jié)的時(shí)候,你更容易從一個(gè)全局的宏觀視角去看待問題,這時(shí)候你會發(fā)現(xiàn),原來的組織或許也沒那么糟糕,甚至有些原來的一些亮點(diǎn)、一些優(yōu)秀的地方是你以前是看不到的。
我在 2004 年的時(shí)候離開金山,當(dāng)時(shí)覺得金山當(dāng)時(shí)還是一家小的軟件公司,但是你出來再看的時(shí)候,你會發(fā)現(xiàn)這家公司,尤其很多以前沒有注意到的優(yōu)點(diǎn),比如這家公司充滿了技術(shù)夢想,至今也是,仍然是一家技術(shù)驅(qū)動的、技術(shù)立業(yè)的公司。上次雷總在我們的年會上甚至還說著,在我們這里“程序員是老大”。
另外這家公司仍然堅(jiān)持著它的夢想,30 年就堅(jiān)持做一件事情。從創(chuàng)辦的時(shí)候就做辦公軟件 WPS,現(xiàn)在還是,它可以把一件事情堅(jiān)持到底。從商業(yè)的角度看,你會發(fā)現(xiàn)這并不是一件很賺錢的好生意,它更多的是承載了一代代程序員的情懷和夢想。
另外你會發(fā)現(xiàn)這家公司也很正派,從不搞什么歪門邪道、坑蒙拐騙的事情,一直都很奉公守法,本分經(jīng)營。你可以說它有一點(diǎn)保守、不夠激進(jìn),但是它是能守住一些底線,經(jīng)營上屬于比較本分正直,老老實(shí)實(shí)做自己專注的、喜歡的事情,特別是技術(shù)上的事情。這家公司的確有它的這些優(yōu)點(diǎn),所以從金山離開了一段時(shí)間又重新回來的人非常多。
姚冬: 是的,因?yàn)槲以诟咧械臅r(shí)候就屬于被老師叫到講臺上說個(gè)話腿都哆嗦的那種,這個(gè)(演講能力)是在職業(yè)生涯里慢慢練出來的,尤其是在金山的時(shí)間。這里很注重內(nèi)部員工的能力培養(yǎng),除了專業(yè)能力以外,也會注重培養(yǎng)其他能力,比如說演講。我記得當(dāng)時(shí)在北京的時(shí)候,我就是一普通程序員,但我是有機(jī)會代表部門去做季度總結(jié)的,那時(shí)一個(gè)部門二三十人,就讓一個(gè)普通工程師代表部門去做季度總結(jié)會發(fā)言。金山就是會干這樣的事情,給你機(jī)會讓你在很多人面前去表達(dá)去演講,當(dāng)然緊張是緊張,站在臺上底下坐著五六十人,大部分人職位比我高,肯定是緊張,但是這種事干多了慢慢就練出來了。
姚冬: 如果把時(shí)間線拉回到過去,要說在那個(gè)時(shí)間點(diǎn)上我是怎么選擇的,有一部分其實(shí)是運(yùn)氣,或者說命運(yùn)的推動。碰巧在某個(gè)時(shí)間,來了個(gè)機(jī)會,有朋友找你,或者說是有些什么變化導(dǎo)致了現(xiàn)在這個(gè)結(jié)果。如果說有什么深思熟慮倒也稱不上,但是過后我有總結(jié),發(fā)現(xiàn)成功的和不成功的轉(zhuǎn)型到底是為什么?人總是這樣子,也許當(dāng)時(shí)沒想那么多,但是過后還是要做總結(jié),作為未來的一些經(jīng)驗(yàn)教訓(xùn)。
后來我自己總結(jié)了下,現(xiàn)在大概是這樣思考的,職業(yè)生涯大概由四個(gè)基本要素組成,第一種是 理論基礎(chǔ)知識,比如說你懂?dāng)?shù)學(xué)、懂物理、懂化學(xué)、懂生物或歷史文學(xué),這些叫基礎(chǔ)理論知識。第二種是 工程能力,對程序員來說就是語言、框架、操作系統(tǒng)、工具等等。第三 是面對的產(chǎn)品和客戶,就是你做什么樣的產(chǎn)品,面向什么樣的客戶群。比如你說做社交、做電商、做游戲,包括 WPS 做辦公,始終是什么樣的產(chǎn)品就面對什么樣的用戶群。第四個(gè)要素是團(tuán)隊(duì)和所在的企業(yè),除非是純單干,否則我們都一定有團(tuán)隊(duì),有合作伙伴,有企業(yè)。
這四個(gè)要素在轉(zhuǎn)型的時(shí)候不要同時(shí)換,我很慶幸自己過去從來不同時(shí)換,最多換兩個(gè),就要么換基礎(chǔ)知識,要么換工具,要不換工程能力,要不換產(chǎn)品、用戶方向,要不換團(tuán)隊(duì)、換公司,反正這四個(gè)因素不能同時(shí)換,同時(shí)換風(fēng)險(xiǎn)太大,我總結(jié)我過去的有些成功的一些轉(zhuǎn)型都是換其中一到兩個(gè)。
姚冬: 太冒險(xiǎn),比如我從 YY 語音出來回到金山辦公,對我來說團(tuán)隊(duì)等于沒換,因?yàn)檫@是我熟悉的地方、熟悉的人和團(tuán)隊(duì)。我的基礎(chǔ)理論知識也沒有換,不管做 AI 還是做音視頻處理,它的基礎(chǔ)還是數(shù)學(xué)、算法、計(jì)算機(jī)組成原理、線性代數(shù)這些東西,基礎(chǔ)理論還是計(jì)算機(jī)和數(shù)學(xué)那套。工程能力換了一部分,比如框架可能從音視頻處理框架換成了深度學(xué)習(xí)、機(jī)器學(xué)習(xí),Python 用得比較多,但 C++ 還有。
產(chǎn)品和用戶群也的確是換了,原來是做娛樂軟件和語音通訊的工具,現(xiàn)在變成做辦公軟件,做 AI 類的產(chǎn)品,產(chǎn)品方向換了。這種轉(zhuǎn)型風(fēng)險(xiǎn)相對可控,所以我過去總結(jié)要是想換得比較順暢,或者說成功概率高,四個(gè)要素不要同時(shí)變,只變其中一到兩個(gè)。
用成熟的工程技術(shù)和基礎(chǔ)知識跟熟悉的團(tuán)隊(duì)做個(gè)新產(chǎn)品,這個(gè)是風(fēng)險(xiǎn)比較小的;或者把現(xiàn)有的產(chǎn)品用新技術(shù)重新改進(jìn),這個(gè)也是風(fēng)險(xiǎn)比較小的;或者做原來的產(chǎn)品,原來的技術(shù),但是換家公司,換個(gè)團(tuán)隊(duì),這個(gè)風(fēng)險(xiǎn)也是比較小的,總之這些東西不要同時(shí)更換。
姚冬: 我原來做 YY 語音,在 YY 做了 7 年,剛開始負(fù)責(zé)它的客戶端,后來負(fù)責(zé)音視頻算法部分,感覺 7 年也差不多可以告一段落,而且 YY 已經(jīng)是一個(gè)比較成熟的業(yè)務(wù)。所以也要給自己找一些新的方向,去找一些新的挑戰(zhàn),這時(shí)候正好機(jī)緣巧合,金山辦公這邊也想投入 AI。因?yàn)?2016、2017 年那會正是 AI 最熱的時(shí)候,對各個(gè)企業(yè)來說,都會在這個(gè)領(lǐng)域去投入,看看用 AI 的技術(shù)有沒有可能改善他們自身的業(yè)務(wù),正好也有這么一個(gè)崗位,簡單聊了一下就一拍即合。
姚冬:我在 金山辦公主要是在組建 AI 的研發(fā)團(tuán)隊(duì),包括算法、工程、產(chǎn)品,現(xiàn)在團(tuán)隊(duì)算是有一定的規(guī)模,而且有些產(chǎn)品和工程已經(jīng)落地了。我現(xiàn)在做幾件事情,一是推動算法改進(jìn),就是已經(jīng)落地的一些產(chǎn)品,包括一些新的算法的改進(jìn)。第二推動工程落地,就是算法、工程、技術(shù)這些,它是一定要落地到一個(gè)具體的產(chǎn)品和業(yè)務(wù)里的,要服務(wù)真正的客戶,所以說要推動算法工程的落地。第三件事情就是關(guān)于發(fā)掘未來的兩樣?xùn)|西,一個(gè)是優(yōu)秀的人才,培養(yǎng)未來的有潛質(zhì)的人才,人才梯隊(duì)建設(shè),還有一個(gè)就是挖掘未來的產(chǎn)品、技術(shù)和業(yè)務(wù)的新方向。
姚冬: 這個(gè)我當(dāng)時(shí)也大概花了幾個(gè)月去摸索技術(shù)領(lǐng)域的一些東西,包括現(xiàn)有的一些算法、理論、工程,然后我當(dāng)時(shí)給自己定了一個(gè)原則和方向,今天還是這個(gè)原則:既然我們做辦公軟件,那么我們處理最多的數(shù)據(jù)就是文本數(shù)據(jù),就是文字,WPS 這三個(gè)字的縮寫,當(dāng)年就叫“Word Processing System”,翻譯過來就是字處理系統(tǒng),我們 30 年來主要是跟文字打交道。當(dāng)然現(xiàn)在 WPS 的組建很豐富了,包括演示、表格、圖片、視頻、海報(bào)、思維導(dǎo)圖等等,但至今文字還是非常重要的部分,所以我給自己定了一個(gè)方向就是 處理文字。
那么人類處理文字主要是幾個(gè)事情,是“聽、說、讀、寫”。對于機(jī)器來說,它處理文字大概也是這四件事情:“聽”就是語音識別,說就是語音合成,叫 TTS(Text To Speech);“讀”就是自然語言理解,如果這個(gè)字是印在一張紙上,你要先做 OCR、做掃描識別,如果這個(gè)字是英文或者其他語言,你聽不懂,那么就先做機(jī)器翻譯;還有自然語言生成,自然語言生成就是輔助寫作,問答都屬于自然語言生成。
人類做對于文字主要是做四件事——聽說讀寫,我做 AI 也是瞄著這四個(gè)方向,怎么處理文字的聽說讀寫,并且把這四個(gè)能力應(yīng)用到辦公場景去,跟我們的主產(chǎn)品 WPS 去結(jié)合。
比如說我們做了字符識別。那怎么樣識別?掃描件或照片里的文字,我們可以把它讀出來,提取出來。比如說我們做機(jī)器翻譯,各國文字都可以把它翻譯成中文,或者把中文翻譯成外文。除此以外,我們也做各種自動美化、排版、檢測識別功能,還做輔助寫作,也做搜索,知識圖譜...... 總之都是圍繞著文字去做的事情。我不做人臉識別,是因?yàn)槲覀儾皇亲鋈四樧R別的公司,也不做自動駕駛,那些跟字沒什么關(guān)系。
姚冬:金山辦公還是一個(gè)比較務(wù)實(shí)的公司,它是做什么技術(shù)都會考慮工程化、怎么落地,這是幾十年來一貫的風(fēng)格。公司從創(chuàng)始人開始就是做工程的,就是要做實(shí)實(shí)在在的產(chǎn)品,求總(求伯君)、雷總(雷軍)也好,他們都不是學(xué)術(shù)圈出來的,他們是工程背景,都很在乎工程要落地,要服務(wù)客戶,要變成產(chǎn)品。所以我們一向都是工程主導(dǎo),無論做什么事情,都想著怎么把它落地,怎么變成一個(gè)功能、變成一個(gè)業(yè)務(wù)、變成一個(gè)產(chǎn)品,變成用戶能用到的東西。
姚冬:WPS 這個(gè)產(chǎn)品由于它的特性,是和很多產(chǎn)品不一樣,可能中國跨平臺跨的最多的產(chǎn)品就是 WPS,PC、IOS 和安卓都有,在瀏覽器里它有 Web Office,PC 上它支持 Mac、Linux、Windows,它可以在 X86 芯片上跑,它也可以在 ARM 芯片上跑,它甚至支持龍芯,它幾乎支持所有的終端設(shè)備。
如此一來就給它帶來一個(gè)問題:它如何做 AI 推理和算法的框架?
那這框架必須也支持所有的設(shè)備,所有的操作系統(tǒng),所有的指令集的排列組合,這就是 WPS 一個(gè)非常特別的地方。你看別的產(chǎn)品,哪怕是一些大的企業(yè),它的產(chǎn)品也不是跨所有平臺,但是 WPS 就是這樣的,你可以在所有你能想到的終端上看到 WPS。所以它的 AI 推理框架也必須支持所有的操作系統(tǒng)和所有的平臺指令,那這件事只能說由我們自己來做。當(dāng)然,我們不是從頭做的,我們也是拿業(yè)界的開源框架,在上面去做移植、做優(yōu)化。因?yàn)椴煌闹噶罴偸且鲞m配,不同操作系統(tǒng)要做一些針對性的優(yōu)化,所以我們希望把這些成果開放出來,如果有其他的公司的企業(yè)產(chǎn)品業(yè)務(wù)也遇到這樣的問題,可以考慮使用我們這套解決方案。
目前我們把 OCR 能力、文本校對的能力移植過來了,爭取把機(jī)器翻譯也移植上去,這樣它就可以讓這些 AI 深度學(xué)習(xí)算法在所有的終端上都能跑起來。
順便說一下,我們?yōu)槭裁匆屵@些算法在終端上跑起來?這些算法在服務(wù)端的 GPU 上跑是沒有問題的,為什么要在終端跑?是因?yàn)槲覀冇脩羧后w很大,有各種復(fù)雜的場景。比如說:有的場景可能網(wǎng)速很慢,甚至有很多辦公場景是不聯(lián)網(wǎng)的,或者政府和一些保密機(jī)構(gòu)、大企業(yè)的核心部門是不聯(lián)外網(wǎng)的,它希望能做本地處理,但是它需要這種能力怎么辦?我們就能提供相應(yīng)的解決方案。
姚冬: 哈哈,下邊就開始知乎式的“一本正經(jīng)胡說八道”時(shí)間,首先在中國不能一輩子做程序員,這句話是符合科學(xué)的,因?yàn)樗锌勺C的一些情況。但要是說能,那么只要我找出一個(gè)人能做一輩子不就可以了嗎?肯定有人做了一輩子程序員一直做到退休,比如說我們公司就有程序員退休,他就一直做到退休。
不是說非得等到 60 歲退休,可能覺得差不多了,錢也夠了,就可以了。所以說肯定有人可以做,把它當(dāng)成一個(gè)終身職業(yè)。但是我們真正要討論的問題是你有多大概率把它當(dāng)成一個(gè)終身職業(yè),可能性是多少?它既不是絕對能,也不是絕對不能,它只是一種可能性。目前看起來程序員和其他職業(yè)沒什么特別的區(qū)別,也不是所有職業(yè)都能做一輩子,任何職業(yè)也不能給打包票說,這個(gè)職業(yè)可以是做到退休,這可能性也不大,它總有一些競爭淘汰或者主動退出的情況,總有些變故。
目前看起來,程序員這行只要你想,只要你愿意,然后選對了一些方向,有合適的環(huán)境,基本上可以做下去,沒什么問題。金山辦公這邊有很多程序員已經(jīng)做了很多年,比如說目前在職的,據(jù)我所知,年紀(jì)最大的人應(yīng)該是 90 年入職,30 年了,今年 50 多歲,他還是在最一線的地方做程序員,默默寫程序。
姚冬: 首先得熱愛這事,因?yàn)槟悴幌矚g就肯定不愿意干,誰愿意一輩子干自己不喜歡的事情。第二,你選擇的這個(gè)領(lǐng)域必須相當(dāng)長壽,就不能做那種一兩年就掛掉的項(xiàng)目。如果想做一輩子程序員真的可以考慮一下金山辦公,我們家項(xiàng)目壽命特別長,可能你退休了它還在呢,像我們今天的 WPS 產(chǎn)品已經(jīng)是被翻新了四代,最新的這代,所謂最新其實(shí)也已經(jīng) 18 年了,并且目前看起來勢頭依然很好,短期內(nèi)可能十年二十年也不會死,因?yàn)檗k公軟件這種產(chǎn)品,它的產(chǎn)品特性就決定了是長期的項(xiàng)目,微軟 Office 做了快 40 年,它是 80 年代末開始做的。
姚冬: 歲數(shù)大了的確是對這個(gè)方向是有要求的,你不能做那些特別短平快的東西。要有一些沉淀,有積累,有傳承,能長期發(fā)展的一些事情。
姚冬: 我有一種思考的方式,它是這樣的:我們通過學(xué)習(xí)掌握了一些知識,掌握了一些技能,隨著時(shí)間的推移,你不停地學(xué)習(xí),你的知識和技能也會隨著時(shí)間增長。但是,當(dāng)你掌握了大量知識和技能的同時(shí),你的知識和技能也在被遺忘,被“過期”。它總歸在某個(gè)時(shí)間點(diǎn)上達(dá)到一個(gè)動態(tài)平衡,你學(xué)了多少東西,也忘掉了相應(yīng)的東西,你的知識的技能的總量基本恒定,是不是可以這么說?總會有這么一個(gè)平衡點(diǎn)。
而對絕大多數(shù)人來說,這個(gè)平衡點(diǎn)大概就在 35 歲左右。你會發(fā)現(xiàn)所有做技術(shù)的人,他可能都在 35 歲左右迎來一個(gè)知識和技能的平臺期,就知識和技能感覺沒有太大的變化,或者增長放緩。不像年輕的時(shí)候,每年都學(xué)會很多新東西,也都掌握了很多新能力。只是這個(gè)時(shí)間有人來的早,有人來的晚而已,這是 35 歲焦慮的一個(gè)根源。對于很多人來說,他在 35 歲左右的時(shí)候,他的知識技能總量不再快速增長,因?yàn)樗磕陮W(xué)了一些新東西,由于他腦子里裝了大量的知識和技能,他會忘掉一些東西,有的是你主動自己忘掉的,還有一些是因?yàn)榧夹g(shù)進(jìn)步,總有一些東西會過期。比如說我是個(gè)很好的 Pascal 程序員,我 Pascal 寫得很好,但是 Pascal 已經(jīng)沒有了。我還是個(gè)很好的塞班程序員,但諾基亞手機(jī)沒有了,今天塞班也式微了,這些技能我沒有忘,但是它自己消失了,它過期了。這個(gè)行業(yè)都會有些技術(shù)慢慢地消退,你在這上面的所有的知識和經(jīng)驗(yàn)的積累也就都失效了。技術(shù)都有自己的半衰期,有的半衰期會很長,有的很短。
我有一點(diǎn)建議,我們能不能去學(xué)一些半衰期比較長的技術(shù)和能力?什么是半衰期比較長?線性代數(shù)、數(shù)學(xué),數(shù)學(xué)半衰期特別長,可能幾萬年都不會過期,甚至有些數(shù)學(xué)是基本的定律類的東西,它可能永遠(yuǎn)不會過期,它的持續(xù)時(shí)間就會非常長。比如我最擅長的語言 C 和 C++,這個(gè)語言的半衰期就非常長,到現(xiàn)在也沒有過期,它可能長達(dá) 50 年 60 年。所以說把自己更多的精力,時(shí)間去用來學(xué)習(xí)和掌握那些半衰期相對比較長的技術(shù),可能就可以延長自己的職業(yè)生命。
姚冬: 前端就屬于那種變得比較快的,但是你沒必要非把自己限制在前端,我以前是做客戶端的,客戶端也可以認(rèn)為就是當(dāng)年的前端,而我可以選擇不做客戶端,我可以做點(diǎn)別的,我可以去做其他的行業(yè),因?yàn)榉凑A(chǔ)知識是一回事,工程技術(shù)是另一回事?;A(chǔ)知識是計(jì)算機(jī)科學(xué)、數(shù)學(xué)、算法、數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)組成原理、編譯原理、操作系統(tǒng)原理等等,這些東西都是基礎(chǔ)知識基礎(chǔ)理論,而前端、UI 框架這些是工程技術(shù),選擇哪個(gè)平臺也只不過是工程技術(shù),還是屬于工具。工程技術(shù)是可以換的,基礎(chǔ)技術(shù)又不會過期,無論你選什么語言,還不是算法、數(shù)據(jù)、結(jié)構(gòu)那套。
姚冬: 基礎(chǔ)理論的半衰期非常長。我以前有一個(gè)不是非常嚴(yán)謹(jǐn)、簡單的算法,度量一下你離最終用戶有多遠(yuǎn)。什么叫離最終用戶有多遠(yuǎn)?就是你今天寫一段代碼,實(shí)現(xiàn)了一段程序,做了一個(gè)東西,你就算一下最終用戶用到你的程序的時(shí)候要等多長時(shí)間。這時(shí)間越長,這個(gè)技術(shù)的半衰期就越長。那些做操作系統(tǒng)的人,他可能要做個(gè)一兩年之后你才能拿到它的操作系統(tǒng)內(nèi)核的新版本,比如做 Linux Kernel 的人,Windows Kernel 的人,他的代碼可能要幾年以后才會交付到用戶手里,那些做基礎(chǔ)理論的人就更厲害了,做科研的,做基礎(chǔ)理論,他的東西可能幾十年之后才會真的用上。
姚冬: 我覺得是這樣子,大家不要把職業(yè)的選擇路徑變得那么窄,好像這世上只有程序員和管理兩個(gè)職位一樣,還有產(chǎn)品、運(yùn)營、銷售、人事、行政,比如說人事,我們有程序員轉(zhuǎn)型做 HRBP 的,去做人事的事情,做行政、市場、銷售都有。職場選擇是很寬泛的,不只有管理這條路。
我對管理的態(tài)度是這樣的:可以不做管理職位,但是不能沒有管理能力。 管理能力和管理崗位是兩回事。有些人可以不做管理崗位,不做部門經(jīng)理,不做總監(jiān),但是我建議程序員們還是要鍛煉自己的管理能力。剛開始的時(shí)候你做工程師,你的問題可以通過技術(shù)手段去解決,但是隨著年齡增長,你的項(xiàng)目變得復(fù)雜,你的業(yè)務(wù)變得復(fù)雜之后,你以后想解決一些技術(shù)問題就必須用管理手段,動用一些管理手段去解決技術(shù)問題。
舉個(gè)例子,假設(shè)有個(gè)技術(shù)問題,它的工作量很大,但這世上不是什么問題都可以用一個(gè)巧妙算法來解決,有的事情就需要很多人,然后分工協(xié)作把這件事解決掉,技術(shù)圈里有很多需要消耗大量工作量的事情,這時(shí)候就需要?jiǎng)佑霉芾砟芰?,有的時(shí)候有十人二十人,你能不能讓他們分工協(xié)作,彼此配合好來解決這個(gè)技術(shù)問題。所以即使是解決一個(gè)技術(shù)問題,也是需要管理能力,尤其一些需要很多人配合的技術(shù)問題。
接下來我們說,你應(yīng)該至少精通某一個(gè)領(lǐng)域,在配合的時(shí)候,你就會是一個(gè)非常容易和別的團(tuán)隊(duì)進(jìn)行合作的人,你的機(jī)會自然就會很多,因?yàn)槟阌幸豁?xiàng)特別強(qiáng)的能力,還有很多項(xiàng)雖然沒那么強(qiáng)、但也基本懂的能力,當(dāng)一個(gè)團(tuán)隊(duì)需要什么的時(shí)候,你有更大的概率可以去跟這個(gè)團(tuán)隊(duì)去協(xié)作。這樣其實(shí)拓寬了自己職業(yè)上的很多選擇,而且你參與的項(xiàng)目也比較容易成功,因?yàn)檫@個(gè)團(tuán)隊(duì)不會有短板。所以說對于程序員來說是一專多能,或 N 專多能是最好的,就是有那么一兩項(xiàng)非常深入,同時(shí)又是涉獵很廣,各種東西都會一點(diǎn),這其實(shí)是最好的狀態(tài)。
姚冬: 這個(gè)也是我的痛苦,招合適的人的確變得越來越難。原因很簡單,優(yōu)秀的工程師一定是越來越多,因?yàn)槲覀兘逃皆谏仙?。大學(xué)每年在擴(kuò)招,學(xué)校教知識也肯定是越教越好,互聯(lián)網(wǎng)上的各種信息資訊也很發(fā)達(dá),這自學(xué)也變得容易,理論上講優(yōu)秀的人才應(yīng)該是越來越多的,人才也不會因?yàn)橘Y源的限制而導(dǎo)致無法學(xué)習(xí)編程。但是,同樣地,從業(yè)人員也變多了,我以前的看法就是優(yōu)秀的人才從數(shù)目看絕對是變多了,但是在人群中的比例下降了。所以說找人才難在優(yōu)秀人才在群體中的比例下降了,招聘優(yōu)秀人才的難度的確是比以前高了。
別的公司我不太清楚,我們公司的解決方法一方面是跟優(yōu)秀的高校去合作。另外我們公司也辦各種各樣的編程培訓(xùn)班,技術(shù)培訓(xùn)班,我們的工程師會去培訓(xùn)一些技術(shù)能力,從中去選拔一些優(yōu)秀的人。優(yōu)秀的人有兩種,一種是挑選出來的,還有一種是培養(yǎng)出來的。金山辦公的理念一向更傾向于自己去培養(yǎng)人。
業(yè)界普遍的方式還有簡歷海選,朋友推薦,以及打造個(gè)人的影響力。比如說做個(gè)開源的項(xiàng)目,在 GitHub 上有很多星,這時(shí)候簡歷啥都不用寫,你把 GitHub 鏈接放上去就行。真的是這樣子,我看有些同學(xué)的簡歷雜七雜八寫那么多東西,自己精通這個(gè)、精通那個(gè),做過各種項(xiàng)目,還不如把 GitHub 鏈接和截圖放上去更好使。
我也面試過這樣的人,他附了一個(gè) GitHub 上的鏈接,我真的會去看他的代碼,看他的提交記錄,看他的注釋,代碼風(fēng)格,甚至如果能編譯的話,我會拿一些來編譯,運(yùn)行一下看看。這個(gè)就很好使,當(dāng)然這時(shí)候,我根本不看你哪個(gè)學(xué)校,哪個(gè)專業(yè),什么學(xué)歷,就用程序員的代碼說話。還有一種途徑就是做出個(gè)人作品,可能不是開源代碼,但是你有一個(gè)程序,有一個(gè)作品,有一個(gè)小工具軟件,這個(gè)也可以。反正別人能通過一些其他方法對你的技術(shù)能力有一個(gè)評估,這就可以。
姚冬: 我的思路是這樣子,架構(gòu)好這件事它是有時(shí)間線的,不可能一個(gè)架構(gòu)可以永遠(yuǎn)持續(xù),它終究有不好的那天,要推翻重寫的那天,總會有。因?yàn)榧軜?gòu)會隨著時(shí)間的推移,隨著需求和環(huán)境的變化而變,一個(gè)非常好的架構(gòu)可能過一段時(shí)間看起來就是個(gè)非常糟糕的架構(gòu),這個(gè)是常有的事,在技術(shù)圈這是非常常見的事情。
比如說以前很典型的,為一些嵌入式的小設(shè)備設(shè)計(jì)了一些很緊湊的軟件,到后來隨著算力,隨著資源的增長,它反而顯得不合適了,這是常有的事情。
另外很多系統(tǒng)難度還受規(guī)模因素的影響。隨著系統(tǒng)的規(guī)模變大之后,難度也會上升,比如說 WPS,有五千萬行代碼,一行行看都不知道看到什么時(shí)候去,所以它的難度是越來越高的。
所以說不存在“一個(gè)企業(yè)良好的架構(gòu)會永永遠(yuǎn)遠(yuǎn)都只用程序員干很簡單的事情,就可以持續(xù)地維護(hù)下去”這種說法。
--end--
掃描下方二維碼 添加好友,備注【交流】 可私聊交流,也可進(jìn)資源豐富學(xué)習(xí)群
更文不易,點(diǎn)個(gè)“在看”支持一下??
