在中國,也能一輩子做程序員
點擊上方 "大數(shù)據(jù)肌肉猿"關(guān)注, 星標一起成長
后臺回復(fù)【加群】,進入高質(zhì)量學(xué)習(xí)交流群

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