|
最近,一個關(guān)于程序員寫過的驚天bug盤點話題成為知乎熱議。歷史上,一個錯誤的代碼,或帶來30億巨額虧損,或?qū)е率中g(shù)臺上的6條人命無辜喪生,甚至差點毀滅世界。 這些程序員工作中出現(xiàn)的bug就仿佛滅霸的一個響指。 圖片來源:電影《復(fù)仇者聯(lián)盟3》截圖 到底是什么讓程序員成為如此具有殺傷力的武器?(劃掉) 換一種說法,由于我們的現(xiàn)實世界越來越被編程化為一個按0和1的代碼運行的信息系統(tǒng)。而這個線上世界的設(shè)計者——碼農(nóng),如果工作稍有不慎,便會讓整個虛擬大廈由于邏輯崩壞而轟然坍塌。 這對我們現(xiàn)實世界來說,影響也是巨大無比的: 7.20鄭州暴雨事件過去后,由于全城的電力、網(wǎng)絡(luò)系統(tǒng)遭洪災(zāi)而癱瘓,鄭州這座城市成了現(xiàn)代文明世界里的一個信息荒漠。共享單車開不了鎖、移動支付無法使用,斷開連接的整座城市連基本的交通、經(jīng)濟都幾乎難以為繼。 因此,在我們越發(fā)依賴互聯(lián)網(wǎng)技術(shù)的今天,我們很難再去想象一個沒有了程序員的世界。 也正因如此,有越來越多的年輕人扎堆學(xué)編程??墒?,當?shù)谝淮ヂ?lián)網(wǎng)人的財富神話已成為歷史,大廠程序員要面對的“35歲危機”才是現(xiàn)實。 在未來,程序員高薪的光環(huán)還會持續(xù)下去嗎?隨著程序員的工作劃分越來越細,從前端到后端,從算法到架構(gòu),甚至到一個小小的細格子,這是否意味著原有的程序員職業(yè)發(fā)展路徑正在越走越窄?現(xiàn)在連AI也能寫代碼了,程序員會被取代嗎?他們又將會以其他何種方式繼續(xù)存在呢? 今天,我們也關(guān)注到除了互聯(lián)網(wǎng)公司,還有許多第二產(chǎn)業(yè)的工廠需要借助互聯(lián)網(wǎng)科技的力量來改變鋼鐵廠、礦山原始的作業(yè)方式,而這也許才是程序員們的全新機遇。 《職業(yè)游民》的第二期播客,我們將透過有著二十多年從業(yè)經(jīng)驗的程序員Winter的視角,來對程序員的這份職業(yè)一窺究竟,探討程序員在未來將走向何處去,以及從事這份職業(yè)的人將如何才能走得更遠的問題。 掃描下方二維碼,即可收聽“職業(yè)游民FREETE”播客,我們每期播客將固定在網(wǎng)易云音樂平臺更新,歡迎大家收藏訂閱。 時間軸 06:00 我入行時,正好趕上了第一波互聯(lián)網(wǎng)熱潮 09:20 程序員的本質(zhì)是什么?對程序員行業(yè)的硬核科普 17:34 千萬別動程序員的代碼,否則…… 19:50 程序員的入行要求有哪些? 26:04 一個程序員能走得有多遠,對業(yè)務(wù)的理解是非常重要的一部分 28:00 同一瓶可樂的條碼,可能超過100個 29:44 世界是一個巨大的系統(tǒng),而你不能保證它沒有bug 35:12 產(chǎn)品經(jīng)理,像社會學(xué)家一樣思考? 39:16 為什么程序員能拿這么高的工資? 42:58 程序員在未來會被AI取代嗎? 48:29 題外話:為什么程序員會禿頭? 52:52 快問快答環(huán)節(jié):一份帶你快速了解程序員行業(yè)的普魯斯特問卷 力盈:歡迎來到職業(yè)游民第二期播客,我是力盈。 Leone:我是Leone。 力盈:這期我們要講一個這幾年非常熱門,薪酬也非常高,也是大家熱門選的一個職業(yè),就是程序員這個職業(yè)。 程序員這個職業(yè)到底干什么?他們?yōu)槭裁茨苣眠@么高的薪水?我想這是大家最關(guān)注的兩個話題。所以這次我們請到了一個非常特殊的老朋友,他是在這一行從事了接近20年的一個資深人士。 Leone:是一個老碼農(nóng)。 力盈:我們歡迎Winter。 Winter:大家好,我是Winter,我已經(jīng)碼了20年的農(nóng)了。 力盈:大家好我是Winter,我來自霓虹 Leone:Winter先簡單跟大家介紹一下自己吧。 Winter:嗯OK,那個我簡單介紹一下,我大概是從初中開始就接觸編程。 Leone:這么早? 力盈:你上初中時是幾幾年? Winter:我上初中時應(yīng)該是在1994、1995年。 Leone:那時候的電腦應(yīng)該都是986。 Winter:386,486。 Winter:今天在這里暴露年齡了。那時候的電腦運行得非常慢,所以那個時候的程序員對性能的要求是非常高的。一開始的時候就是,去學(xué)習(xí)那些算法等等,還有數(shù)據(jù)庫也是在那個時候?qū)W習(xí)的。 所以基本上到了大學(xué)畢業(yè),已經(jīng)把現(xiàn)在所有會的東西都學(xué)得差不多了。你可以認為這十幾年在工程方面可能會有比較大的變化,但是我覺得計算機的本質(zhì)是沒有發(fā)生任何天翻地覆的變化的。 Leone:但那個時候,其實我有一個蠻好奇的點。你要說現(xiàn)在的話,我們要接觸一些跟編程相關(guān)的東西,大家肯定也接到過很多,比如python訓(xùn)練營之類的這些。 但你在那個年代,你自己是怎么去學(xué)習(xí)跟程序員、編程這些東西相關(guān)的知識,怎么獲取到這些信息的? Winter:從這一點上來說,我非常羨慕現(xiàn)在的程序員,他想學(xué)什么就可以學(xué)什么。對于我們那個時代的程序員來說,他可能面對的就是非常少的書本上的知識。 當時我遇到了一位好的老師,那個老師做這一行還是比較專業(yè)的。他當時是復(fù)旦大學(xué)的本科畢業(yè)生,所以他過來教高中生和初中生的時候,已經(jīng)具備了一個比較堅實的基礎(chǔ)。 在那個時候,我們應(yīng)該說受到了比較良好的教育,這也算是一個機遇。 1.我入行時,正好趕上了第一波互聯(lián)網(wǎng)熱潮 Leone:后來你是怎么進入職業(yè)或者說選擇了這個專業(yè)? Winter:后來到了大學(xué)之后,實際上我并沒有考上計算機系,因為那個時候計算機系的分數(shù)太高了。但是我在大學(xué)期間…… Leone:能對比一下嗎?比如說它的分數(shù),比如說北清這一類的高校,把它的分數(shù)跟其他專業(yè)做一下對比。你現(xiàn)在還有印象嗎? Winter:大概可能要高20到30分左右。
Winter:對,在當時,做計算機的其實在整個行業(yè)里面,應(yīng)該說他的薪資水平是非常高的,所以報考計算機的人非常多,它的分數(shù)是很高的。相比而言,現(xiàn)在其實并沒有那么大的分數(shù)的差別。 當我讀完本科之后,實際上我在做一個選擇,我到底是沿著自己原來本科的專業(yè)繼續(xù)工作,還是說放棄原來的專業(yè)選擇計算機專業(yè)。最終我選擇了后者,我選擇了信息安全作為研究生階段的學(xué)習(xí)方向,我當時以為這是一個計算機專業(yè)。 當我很開心地去上課的時候發(fā)現(xiàn),這個專業(yè)和計算機的關(guān)聯(lián)度非常的低,它基本上是一個數(shù)學(xué)的專業(yè),好在自己對數(shù)學(xué)的興趣還是比較濃厚的。所以當我讀完研究生之后,后來直接選擇了計算機專業(yè),把程序員作為我的職業(yè),一直到現(xiàn)在已經(jīng)將近15年的時間了。 Leone:不用說那么明確的數(shù)字。 力盈:老是會暴露你的年齡。 Winter:沒事,暴露就暴露。 力盈:暴露出來就是一條你我之間的鴻溝。 Winter:對,可以這么講。 力盈:你為什么那么小就會對計算機感興趣?我很難想象,因為我小時候覺得,電腦就是用來玩兒的,長大了以后我也不知道編程是什么。 Winter:有可能在那個時候,我也覺得電腦很好玩,但是因為我打游戲打得太差了,老是打不贏人家,沒辦法,只能另辟蹊徑。 Leone:但其實我在想,會不會有這么一個原因,因為你那么早去接觸電腦的時候,因為當時都是dos系統(tǒng),dos系統(tǒng)不像后來的Windows(它整個系統(tǒng)是有界面的,你操作起來比較便捷),所以說你肯定要知道里面的代碼。 比如說我想要執(zhí)行一個什么命令,需要怎么樣去把這個東西打出來,而不是說像當后來我們開始學(xué)電腦的時候,全都是Windows,你去點就OK了,不用你去執(zhí)行去了解這些東西具體應(yīng)該怎么操作。 Winter:對,我覺得在那個時候可能有一個先發(fā)優(yōu)勢,畢竟很少的人學(xué)了計算機,然后當周圍的朋友碰到計算機方面的問題的時候,他可能都會來求助我。 我本來和他們的水平差不了多少,但是在反復(fù)被求助的過程當中,我反復(fù)折騰,反復(fù)研究,可能在這個過程當中,反而自己的水平得到了一定提升??梢赃@么講。 Leone:那其實從你入行的時候,可不可以說那時候正好是中國互聯(lián)網(wǎng)興起的階段。 Winter:在我入行時,實際上正處于第一波互聯(lián)網(wǎng)的熱潮,應(yīng)該說是在1999到2001之間有一波互聯(lián)網(wǎng)的熱潮。 那波熱潮之前,其實我已經(jīng)有了一些準備,但是那個時候,因為在大學(xué)也不能算是真的入行。在那段互聯(lián)網(wǎng)剛剛開始,在中國大多數(shù)人接觸互聯(lián)網(wǎng)的時候,那段時間,也是我技術(shù)上升得最快的時間,應(yīng)該是我和周圍的人明顯拉開差距的一段時間。因為有了互聯(lián)網(wǎng)之后,我的學(xué)習(xí)方式、得到信息的方式變得更加廣泛了。 原來我有一個問題積累在心里,可能要花上好幾個月或者是好幾年才能解決的問題,在互聯(lián)網(wǎng)到來之后,可能一夜之間就解決了。 在那段時間,現(xiàn)在我們看到的一些互聯(lián)網(wǎng)的元老級公司,也是在那個時候成立的,比如說像騰訊、搜狐、網(wǎng)易,它們一直生存到了今天,是第一波。 力盈:那時候的QQ好像還叫OICQ,頁面也非常古老,但直到今天,那個界面其實沒有發(fā)生特別多的變化。 我記得是這種,我不知道這是不是騰訊的,但是我記得好像也跟QQ有關(guān)系。 Winter:那個可能不是騰訊的。網(wǎng)上有很多這樣的聊天室,像各大網(wǎng)站都會有聊天室,你進去就可以隨便聊。QQ最早的時候是要注冊一個QQ號的。最早的時候它叫OICQ,后來因為國外有一家叫ICQ的公司一直在和它打?qū)@倪@些官司,后來它被迫改名改成了QQ。 Leone:我覺得可以給大家推薦一下,如果大家有興趣的話,可以去看看《騰訊傳》那本書。雖然在某種意義上來說,它是一家企業(yè)的PR行為,但我覺得它記錄了在3Q大戰(zhàn)之前,整個騰訊如何起家、如何發(fā)展的一段經(jīng)歷。我當時看的時候覺得蠻有意思的。 Winter:對,QQ在有段時間是非常艱難的,以至于在注冊QQ號的時候還得收錢,大概是在2004、2005年的時候(如果我沒記錯的話)。 在經(jīng)過了那段艱難的時間之后,QQ就開始突飛猛進。因為它找到了另外一條路,就是做游戲。慢慢地,QQ在游戲市場的占有率越來越高,在游戲上面它收了越來越多的錢。至今,QQ仍然是一家以游戲作為主營收入的公司。 2.程序員的本質(zhì)是什么?對程序員行業(yè)的硬核科普 力盈:就你的理解而言,程序員這個行業(yè)隨著整個互聯(lián)網(wǎng)大潮的起起落落,有什么變化嗎?或者說這個行業(yè)的本質(zhì)是什么?本質(zhì)上是在碼農(nóng)?Farming Coding? Winter:這個問題真的難倒我了,讓我思考一下這個問題。程序員的本質(zhì)是什么? Leone:我一聽本質(zhì)這兩個字,就覺得這個問題就不好回答?;蛘哌@么說,你覺得從你快要畢業(yè)的那個時候開始,第一波互聯(lián)網(wǎng)浪潮興起的時候,一直到現(xiàn)在這個階段,程序員有變化嗎?對程序員的要求,還有程序員本身的一些東西有變化嗎? Winter:從本質(zhì)的角度來說,對程序員的要求一直沒有太大的變化。當然,現(xiàn)在的程序員可能分成了很多個板塊,比如說,程序員有后端、前端、運維,還有開發(fā)小程序或者APP的、AI工程師、大數(shù)據(jù)工程師。那么在早期的時候,程序員其實沒有這么多的方向,每個程序員對項目當中的所有一切都要負責(zé),他們從前端做到后端,這是理所應(yīng)當?shù)摹?br style="box-sizing: border-box;"> 然而我認為,這樣的區(qū)分其實不得已而為之。我還是覺得前端和后端的程序員(我一直是這樣想的),不應(yīng)該有這么明顯的分界,包括現(xiàn)在的大數(shù)據(jù)程序員、AI程序員,實際上這是整個行業(yè)的人為區(qū)分。有很多程序員把自己劃了一個圈,畫地為牢,我是做前端的,后端的邏輯我不用管,或者說我是做后端的,我對頁面的展現(xiàn)毫無要求,毫不關(guān)心。 Winter:我講一下每一個方向上,它們有什么差別。比如說前端,一般來說指的是比如說一個網(wǎng)頁,或者一個APP,一個小程序,這個小程序它長什么樣子,它和用戶在交互的時候有些什么功能,這些都是由前端的工程師來完成的。你看到的漂亮的頁面、酷炫的動畫效果、漂亮的展現(xiàn)方式,都是由前端工程師來完成的。 那么后端的程序員主要是負責(zé)應(yīng)用當中邏輯的部分。比如說在頁面上有一個功能叫做上傳我的照片,那么上傳照片的按鈕,還有上傳照片之后,把這個照片顯示在前端頁面,這個是由前端工程師來完成的。后端工程師負責(zé)把照片數(shù)據(jù)存儲到磁盤上,或者是把它的信息存儲到數(shù)據(jù)庫里。前端負責(zé)頁面展現(xiàn),后端負責(zé)應(yīng)用的邏輯,這是前端和后端之間的分界線。 AI的工程師可能大家比較好理解,當我需要一個AI算法,比如說我需要提取每個人的人臉特征,那這是AI工程師應(yīng)該做的事情。 另外,大數(shù)據(jù)工程師,就是說,(需要處理的)數(shù)據(jù)量可能非常的大,像這些大廠,可能有萬億級的數(shù)據(jù)處理要求,那么他負責(zé)把這些數(shù)據(jù)放到大數(shù)據(jù)平臺上面,放到數(shù)據(jù)庫里面。那個數(shù)據(jù)庫和我們平時后端人員使用的數(shù)據(jù)庫是不同的,他們可能會用一些類似于像帕杜帕或者是Hbase這樣一些容量非常大的數(shù)據(jù)庫來存儲這些信息。 力盈:那架構(gòu)師是什么? Winter:架構(gòu)師其實是沒有特定要求的一個職位,但是通常來說,一個好的架構(gòu)師是從后端成長起來的,因為后端它了解整個系統(tǒng)的脈絡(luò)架構(gòu)。他知道當我的系統(tǒng)變得非常復(fù)雜的時候,應(yīng)該怎么樣去調(diào)整我的架構(gòu),讓整個系統(tǒng)運行得更好。而前端工程師往往缺乏這樣的能力,所以我看到的可能90%到95%的架構(gòu)師,都是后端工程師出身。 3. 千萬不要動程序員的代碼,否則…… Leone:其實分了這么多,坦率講,我還是不太明白他們到底是干嘛的,因為畢竟我們不會寫代碼,但還是有很多人愿意進入到這個行業(yè)。你覺得如果要進入到這個行業(yè),最基礎(chǔ)的要求是什么? Winter:我覺得第一個最基礎(chǔ)的要求,應(yīng)該是對這個事兒有興趣。你們倆有興趣嗎? Leone&力盈:沒興趣(異口同聲)。 Winter:我見到的所有做得非常優(yōu)秀的程序員,其實他最早的時候是對這個事兒有興趣,所以他才會去鉆研里面的技術(shù)。不管是做前端還是做后端,可能他在那個時候完全不知道自己應(yīng)該做什么。他只是在網(wǎng)上隨便搜了一下。這樣的人通常會有一個目標,比如說我要做個小程序。 小程序這東西,前面的一層皮其實是前端;小程序要給人用,有人用了之后,我要把這些用戶的信息記到數(shù)據(jù)庫里面,這其實是后端。做完一個這樣的小程序之后,實際上他對前端和后端就有了一個基本的了解,那么在這個基礎(chǔ)之上,他不斷地迭代,把這個東西越做越好,越做越大。 在這個過程當中,他對整個行業(yè)從頭到尾都有了一個比較完整的了解。所以我見到的相對來說成長比較快、比較優(yōu)秀的程序員,都是從這樣的模式開始的。 具體要說別的要求的話,可能對數(shù)學(xué)方面有一些要求。這個并不是說我的高等數(shù)學(xué),或者線性代數(shù)一定要學(xué)得多么好,而是他的思維當中邏輯性是比較強的。 因為計算機其實是很冷酷的,它不會因為你喜笑顏開,程序就跑得快一點;也不會因為你心情不好,程序就跑不出來。一旦你的思考邏輯當中出現(xiàn)了漏洞,它必然會崩潰。 面對機器其實是一件很無奈的事情。如果你沒有很好的耐心,沒有嚴密的邏輯思維,在面對機器的時候,你肯定會暴跳如雷,因為機器沒有按照我的想法去做。 力盈:然后你們不知道bug在哪里。 Leone:這是不是程序員不愿意讓別人動自己代碼的原因? Winter:程序員不愿意讓別人動自己的代碼…… Leone:有沒有這樣的? Winter:程序員當然不愿意讓別人動自己的代碼。程序員的代碼就像這個屋子里面放好的每一本書,他知道這本書放在這個地方,哪怕他放的位置不太對,但那是他自己放的,在下次要去找的時候,他可以找得到。就像你的屋子,可能不是百分百地整理得干干凈凈,非常完美,但是…… 力盈:你知道每個東西的位置。 Winter:對,那你就可以在家里面待得很舒服。一旦有一個人來幫你重新整理了一下,把你所有的東西都分門別類地放好了,重新布置了你的書桌和床,你回家一看,雖然干干凈凈,但是那種心情會是什么樣的。 老師告訴我這里有一套語言,我要按照語言的邏輯規(guī)則寫一個東西。寫出來之后,我要背誦其中一些關(guān)鍵的代碼。而且你必須要這樣背誦,必須要按這個邏輯來寫這樣一套東西。 我當時就非常地蒙圈,我可以去背這個東西,可是我寫它干嘛?我為什么要用這樣一套語言來創(chuàng)造這樣一套規(guī)則,最后要跑出這樣一個程序,這到底在干什么?這個是我花了很久才理解的一件事兒。 Leone:我再補充一個問題,你可以一起回答。程序員的英語是不是都很好? 力盈:對,當時我們很痛苦,為什么所有的代碼都是用英文寫的?那我如果英文不好,我就沒有辦法當程序員了嗎? Winter:程序員基本上只需要記憶不超過20個單詞,就能把程序?qū)懲辍?/strong> Leone:不是吧? 力盈:真的嗎? Leone:不超過20個? Winter:對,因為在程序里面,一般關(guān)鍵字不會超過20到30個,可能有50個、60個,但是常用的絕對不會超過20個。 力盈:所有的編程語言? Winter:所有的編程語言。 力盈:真的?刷新了世界觀。 4.程序員的入行要求有哪些? Leone:對于一個剛畢業(yè)的學(xué)生,如果他想進入一家公司當程序員的話,他需要具備什么樣的條件?他應(yīng)該有什么樣的基礎(chǔ),才能進入到這家公司?我直白一點問,如果你招一個入門級的程序員,會是什么要求? Winter:首先,他要有一些基礎(chǔ)的編程知識,這個語言可能是不限的,但是在算法方面他必須入門。他知道這個問題給他之后,他怎么去思考,這個是一個方面的考量。第二個方面,如果他的編程能力不是那么強的話,我會考量他一些和邏輯相關(guān)的問題,如果他邏輯也不行的話,那就考量他一些和業(yè)務(wù)有關(guān)的問題。 總之一個人要有自己的長處,要么你的編程能力比較好,要么你的基礎(chǔ)比較好,學(xué)習(xí)能力比較強,要么你在業(yè)務(wù)方面有一些亮點。 力盈:什么叫業(yè)務(wù)上的亮點? Winter:其實,有很多程序員是從其他專業(yè)轉(zhuǎn)行來的,這樣的程序員,可能在程序這方面并不是那么強,因為他可能才學(xué)了半年或者一年就跑來面試了。我遇到過這樣的人,在面試的過程中,如果給他一張卷子做筆試的話,他是比較吃虧的。但是,他可能在另外一些方面,比如說專業(yè)方面有一些獨到之處,這些獨到之處其實可以讓他在程序員這個行業(yè)里面,做得比那些從計算機系畢業(yè)的人好得多。 Leone:我覺得有點抽象,能舉一個稍微實際點的例子嗎? Winter:比如說我要做一套地理信息系統(tǒng),如果這個人之前接觸過地理信息的話,他在這方面的理解,就會比其他的程序員深刻得多。他可能知道中國的坐標系和全球的GPS坐標系是不一樣的,中國有一個火星坐標系。那他在做坐標的轉(zhuǎn)換的時候,他在做地球和平面的轉(zhuǎn)換的時候,普通的程序員可能已經(jīng)蒙圈了,對他來說就非常簡單。 Leone:那我再問一個更簡單直接的問題,剛剛你提到,他要有算法或者編程的基礎(chǔ),什么樣的才算有基礎(chǔ)?這個東西你講給外行人聽的話,大家不知道你在說什么。比如我解釋文字工作的要求,我說你要寫東西,你要有什么樣的基礎(chǔ),大家一聽全都能懂。但是如果不了解這個行業(yè)的人,他很難理解什么樣的算是有基礎(chǔ)的。 Leone:咳出一口老血。 比如說有的人工作兩到三年,那么我覺得他就應(yīng)該有工作兩到三年的人的平均水平。如果學(xué)了半年,但是他學(xué)會了一些東西,能夠超越同等水平的人,我覺得他就是一個不錯的人。所以這個基礎(chǔ)的要求是比較動態(tài)的。 但有一個最低最低的基礎(chǔ)。我舉個例子,假設(shè)我出一道題,有一大堆數(shù),我要求你找出兩個數(shù),這兩個數(shù)的和它等于另外一個數(shù)據(jù)。像給到這樣一道題的時候,他不一定要能夠做出來,但是他要有思路,他怎么去思考的,這個其實是像在編程當中最基礎(chǔ)的、類似于循環(huán)應(yīng)用的問題。像這樣的東西,我覺得是對于算法最基礎(chǔ)的要求。 還有一部分是對于計算機的內(nèi)部結(jié)構(gòu)有大致的了解。比如說我們敲了一個域名到瀏覽器里面,那么之后,每一步發(fā)生了什么? 我對于不同工作年限的人的要求是不一樣的。對于半年的人,他可能說瀏覽器解析成了一個地址。OK,學(xué)習(xí)了半年的人能夠達到這個水平,我覺得已經(jīng)可以了。 但是如果是工作了三年或者五年的,我可能會問更深的問題,直到把他們問趴下為止。最低的要求還是看他的工作經(jīng)歷,所以還是很抽象。 5. 一個程序員能走得有多遠,對業(yè)務(wù)的理解是非常重要的一部分 力盈:我剛剛想問的是另一個方向的問題。說到業(yè)務(wù)的時候,你舉了很多金融的例子,舉了很多跨專業(yè)的例子。其實我覺得coding和對計算機的理解是一個基礎(chǔ)的東西,但是你要去用程序處理實際的問題,你要跟實際的社會發(fā)生聯(lián)系,所以在業(yè)務(wù)上,你需要知道一些跨專業(yè)跨行業(yè)的知識,這會給你做這個東西的邏輯樹立一個很好的方向。 因為我想到你給我轉(zhuǎn)發(fā)的一個短視頻,就是說客戶根據(jù)自己的需求畫了一個東西,在接到客戶需求的A1,又根據(jù)客戶的需求畫了一個東西,最后程序員根據(jù)A1消化的東西之后,又畫出一個東西。 結(jié)果我們發(fā)現(xiàn),三個東西相差是非常遠的,這可能就是從需求到轉(zhuǎn)化、到程序員最后去coding的過程中,原來的東西變成了差得很遠的另一個東西。
通常來講,一個程序員不是只為一個客戶服務(wù)的,他會為很多個客戶服務(wù)。 我舉個例子,在快消品這樣的行業(yè),它面對的是中國所有的零售業(yè),像我們門口的7-11或者喜士多這樣的一些小店。那么他寫的程序其實是涵蓋了所有的可能性的,他對這個行業(yè)了解得越多,他寫出來的程序的適用性就更強。 Leone:應(yīng)該不存在吧。 Winter:實際上如果按照這個邏輯去設(shè)計系統(tǒng)的話,到了一定程度會大翻車,因為世界上存在相同的條碼,而且是合法的。 Leone:那怎么去確定這個東西? Winter:把這個問題交給程序員吧!你可以發(fā)現(xiàn),在超市里發(fā)現(xiàn)相同條碼的時候,這些系統(tǒng)會彈出多個商品,讓你來選擇到底是哪個。雖然這種事情出現(xiàn)的概率非常小,但是一旦你在程序當中做出了假設(shè),可能是災(zāi)難性的,改動量會非常的大。因為你之前假設(shè)世界上的每一樣商品都被編好碼了,而且這些編碼是不重復(fù)的。我再問一個問題,一個商品可以有多個條碼嗎? Leone:那應(yīng)該是可以的。 Winter:對,你知道一瓶可口可樂有多少個條碼嗎?可能超過100個。 Leone:為什么?因為在每個地區(qū),在廣州、上海或者是北京,它賣的可口可樂瓶子看上去一模一樣,但是它們的條碼是不一樣的。 Winter:因為廠商為了避免各個地區(qū)串貨,它可能會設(shè)計不同的條碼。 Leone:有一個大前提我沒弄清楚,比如說同樣是在樓下7-11買的可樂,它的那批貨里面所有的條碼都是一樣的嗎? Winter:不能保證。但我覺得一箱可樂里面的條碼應(yīng)該是一樣的。 Leone:我一直以為一聽可樂就是一個條碼。 力盈:獨特的條碼。 Leone:對,它就像身份證號碼一樣。我的理解是這樣的。 力盈:我覺得程序員好難啊,還要理解這個問題。 Winter:如果這樣去理解這個世界的話,你會發(fā)現(xiàn)這個程序員根本走不遠,很快就會被公司開除了。 力盈:好的,我們倆已經(jīng)被開除了程序員的資格。 Winter:那個條碼是這樣的。我再解釋一下,這個條碼的前兩位是分配給國家的,比如說69是分配給中國的,中間有幾位是分配給省的,后面幾位是分配給廠商的,還有后面幾位是分配給廠商自由編碼的。有一些廠商它編碼比較規(guī)范,不會重復(fù),但是有一些廠商的編碼用完了之后,它會循環(huán)使用,這是合法的。這并不是說我違反了國家的法律,這是允許的。 6. 世界是一個巨大的系統(tǒng),而你不能保證它沒有bug 力盈:我感覺這個世界其實就是它有很多東西雖然是按秩序在建造,但是建造著建造著就會出現(xiàn)很多bug。當它在被系統(tǒng)化、被線上化之后,程序員就是要把它再重新地邏輯化一遍。 Winter:對,實際上這樣的bug可能只有1%,但是程序員可能有99%的時間是在填坑,所謂填坑就是填這樣的坑。 力盈:填這樣一個在現(xiàn)實世界中的bug. Winter:就剛才條碼的話題,我還可以繼續(xù)說下去。比如說你看的條碼都是13位或者14位的條碼,你看到過長達20位的條碼嗎?沒有。剛才Leone說每一個商品都有一個不同的條碼,這種情況存在嗎? 力盈:存在嗎? Winter:存在。 力盈:真的嗎? Winter:可能你沒有意識到。你去商店里面買了一個胡蘿卜,買完胡蘿卜之后,你會去稱重機上稱一下,它會打一個條碼給你。那個條碼是獨一無二的,因為那個里面包含了商品的信息,還包含了你的價格信息和你的重要信息,所以那個條碼是唯一的條碼。 力盈:所以程序員也要把這種情況計算在內(nèi)。 力盈:我們這是個勸退節(jié)目,聽完以后大家不會投零售行業(yè)的程序員的。 Leone:我現(xiàn)在理解了你剛才為什么說程序員要有耐心。 Winter:對,因為很多人都會說程序員這事兒非常簡單,這么干就可以了。但是當程序員真的扎到現(xiàn)實生活中去的時候,就會發(fā)現(xiàn)這事兒比預(yù)想的復(fù)雜得多,而大多數(shù)人都是不知道的,你也懶得跟他們解釋。因為有時間解釋,你還不如把代碼給我寫好了。 我還可以舉很多例子,比如說我們的交通卡充值是一套非常復(fù)雜的系統(tǒng),大家難以想象。交通卡不就是一張IC卡或者NFC卡,它們應(yīng)該是通用的。大家每天都在使用,好像也沒什么問題。 但是如果我告訴你,每個城市的IC卡、NFC卡,它的制式都是不一樣的,全國可能有好幾百個城市。當我們打開支付寶或者微信的時候,你會發(fā)現(xiàn)好像每個城市都開通了,它不斷地在開通新的城市,有新的城市的公交卡可以使用。 對你來說,你覺得這是一件很自然的事情,但是在背后,程序員付出的努力是非常可怕的。因為他要和每個城市的IC卡系統(tǒng)進行對接。大家回想一下,你是在什么時候第一次使用公交卡的?是不是在90年代的時候就有了公交卡這個系統(tǒng)?這個系統(tǒng)在90年代就已經(jīng)寫了,寫這個東西的人可能已經(jīng)早已經(jīng)退休了。 在這個過程當中,每個城市都發(fā)行過各種各樣的公交卡,你可以看到有些卡是藍色的,有些卡是紅色的,有些卡是紫色的。這些卡和卡之間都是不一樣的,平均每個城市大概有20種不同的卡片,這20種卡片程序員都要做不同的兼容。 7. 產(chǎn)品經(jīng)理,像社會學(xué)家一樣思考? Leone:既然你提到了程序員應(yīng)該去了解業(yè)務(wù),包括他所服務(wù)的客戶到底是什么樣的,或者說大一點,市場大概是什么樣的,他要了解這些。 但是,現(xiàn)在據(jù)我們了解,很多這樣的事情,包括提什么樣的需求是產(chǎn)品經(jīng)理做的,以至于程序員和產(chǎn)品經(jīng)理有的時候就水火不容,撕逼是很正常的事兒。也有表情包,比如說燒死產(chǎn)品經(jīng)理。 我曾經(jīng)就問我朋友,他也承認程序員有這樣的需求,然后我說你們?yōu)槭裁床粫谡勑枨蟮臅r候帶著程序員一起去。他當時給我的回答很驚訝,他說我為什么要做這件事情,沒有必要,他只要去滿足我的需求,完成公司交給他的任務(wù)就可以了。 Winter:這個是因為產(chǎn)品經(jīng)理和程序員之間的角色的分裂,這個事兒大概也是在2008年之后才發(fā)生的。在這之前,其實沒有產(chǎn)品經(jīng)理這樣的一個職位。 力盈:我以前不知道產(chǎn)品經(jīng)理是干什么的。 Winter:所有的對需求的分析、架構(gòu)的設(shè)計、前后端的開發(fā),程序員從頭到尾都是自己完成的。
Leone:是不是也可以說有一個鄙視鏈,如果從技術(shù)的角度來講鄙視鏈的話,相對來講,后端的技術(shù)更好一些,前端對于技術(shù)要求沒有那么深,對于產(chǎn)品經(jīng)理的話,你可能了解一些東西就OK了。因為我朋友當時跟我說,產(chǎn)品經(jīng)理入門的門檻很低,各個專業(yè)都有。 Winter:產(chǎn)品經(jīng)理其實不需要懂太多的程序。雖然一開始的時候,很多產(chǎn)品經(jīng)理是后端程序員出身的,但是慢慢地,他們脫離了程序員。有很多人說這里面有鄙視鏈,但是我自己不這么認為。 因為有一段時間,我是帶產(chǎn)品團隊的,我仔細地想了一下這個問題。因為產(chǎn)品經(jīng)理每天都在和用戶打交道的,所以他的思維方式和程序員慢慢地會有一些差別。他更多地會從需求的角度出發(fā),判斷做這件事情是不是值得,或者說我的產(chǎn)品對不對。 在一定程度上,這種思考實際上不比程序員的邏輯思考或者是代碼的思考所要求的能力弱,甚至在有一些場景里面,產(chǎn)品經(jīng)理的好壞決定了這個產(chǎn)品到底是不是能夠成功,因為在程序員的水平差不多的情況下面,決定一個項目成敗的實際上是產(chǎn)品經(jīng)理。 如果說產(chǎn)品經(jīng)理對于需求的把控,對于行業(yè)的認知沒有到一定高度的話,那么程序員開發(fā)出來的產(chǎn)品就是一坨廢物。如果說一個產(chǎn)品經(jīng)理(像張小龍這樣),站在了所有人思維的高處,那么它開發(fā)出來的產(chǎn)品就會贏得大眾的喜愛。 力盈:你讓我覺得產(chǎn)品經(jīng)理是一個社會學(xué)家。 Winter:對,所以你說,產(chǎn)品經(jīng)理對技術(shù)有多高的要求?不見得。也許一個剛剛畢業(yè)的人,他有一些想法,他就可以去做產(chǎn)品經(jīng)理。其實對產(chǎn)品經(jīng)理的要求是非常高的,一方面他們要對社會和市場有充分的認識;第二個要把這些認識表達在自己的產(chǎn)品里。 力盈:我會很好奇,按照你的邏輯來理解,是不是工作早于2008年的程序員,他們對整個行業(yè)的理解會更深刻一些?因為他們其實是被迫要做全才,他們沒有進入到這個細分,他被迫要有從前端到后端、到產(chǎn)品、到對人性需求的理解,需要有這一條龍的東西。 但如果到今天,你進入程序員這個行業(yè),你還沒有來得及被踢進社會這潭水,去做一個全通的了解的時候,你就已經(jīng)被劃到了后端或者前端,或者你就只做產(chǎn)品的這個小小的細格子。對于程序員來說,這會不會讓他們的路越走越窄? Winter:這種情況還是比較普遍的,但是我也看到過很多特例。在程序員當中,有很多對產(chǎn)品非常了解的人,所以結(jié)論性的東西很難說。因為現(xiàn)在新一代的程序員或者產(chǎn)品經(jīng)理,他們看到的東西更多,他們的成長過程伴隨著這些互聯(lián)網(wǎng)產(chǎn)品的成熟,他們是這樣一路走過來的,所以他對產(chǎn)品的理解,特別是C端產(chǎn)品的理解通常還是比較深刻的。 當然,對于To B端的產(chǎn)品,我接觸過的很多產(chǎn)品經(jīng)理是完全不了解的。還有很多產(chǎn)品經(jīng)理,他們在整個行業(yè)里的用處或者價值不那么高,比如說To B的一些SaaS系統(tǒng),它的產(chǎn)品經(jīng)理,其實更多的時候我見到的,并不是初出茅廬的畢業(yè)生,而是行業(yè)專家。他可能在這個行業(yè)里面已經(jīng)經(jīng)營了大概五年或者十年,他對這個行業(yè)非常了解,這樣的人他更適合來擔任產(chǎn)品經(jīng)理。 8.為什么程序員能拿高薪? Leone:在外界看來,程序員其實是一個高薪的職業(yè),經(jīng)常能看到哪個大廠招程序員,薪資大概有多少。比如說前這段時間,我看到知乎上面一直在討論,就說美團今年(2020年)招新人程序員,應(yīng)屆畢業(yè)生能拿到35萬+年薪。然后很多老員工就抱怨不公平。 以前也有過一個段子,一個小伙子長得其貌不揚,問他是干嘛的,他說他是程序員,丈母娘立刻就答應(yīng)了,好吧,然后直接把女兒嫁給你,戶口本拿出來了。其實整個這個行業(yè)的收入大概在一個什么樣的水平? Winter:整個行業(yè)的收入可能沒有像知乎上面說的那么高,但是總的來說,和其他行業(yè)相比可能還是比較高的。剛剛畢業(yè)的學(xué)生普遍能夠拿到10K左右的,在大城市,這是不奇怪的。而且還有一點,在一年或者兩年之后,他就能拿到20K到30K。只要他能夠在某一個領(lǐng)域有所成就,拿到高薪其實是不難的。 剛才說到的薪資倒掛的問題在每個公司都會發(fā)生,包括我自己以前在的公司,這種現(xiàn)象非常嚴重。這是因為整個行業(yè)的薪資水準在不斷提高的過程當中,為了能夠招到更好的人,就必須提高薪水的標準。 但是對于老員工來說,這是不公平的。所以我過去做過一些事兒,比如說我每年都會對老員工進行一次普遍的調(diào)薪,以避免有一天他們相互之間,私下里對薪資這件事兒進行討論的時候,大家感到不公平。只要一個團隊里面的人感到不公平,這個團隊最終肯定是要崩盤的。 力盈:我想問一個很聽起來很蠢的問題,為什么程序員可以拿這么高工資? Leone:對,為什么可以拿這么高的工資,為什么我們就不可以?為什么我們同樣是碼農(nóng),你們是碼代碼,我們是碼字,為什么我們碼字的薪資就這么低? Winter:這個問題讓我很尷尬,可能有一個原因是因為你碼的字老板能看懂,而我碼的代碼老板看不明白。 力盈:你是在慫恿我們要寫老板看不明白的文字。 Leone:那你就被開除了。 力盈:哈哈對! Winter:所以非常不幸的是,你會發(fā)現(xiàn)有一些技術(shù)出身的老板,在那些公司里面,他們的技術(shù)也不差,但是在那些公司,碼農(nóng)的薪資水平相對來說要低一點。這是因為對于老板來說,他知道你是怎么回事,你的神秘感沒那么強。 而對于不懂技術(shù)的老板,特別是金融行業(yè)或者是快消品行業(yè)的老板,他覺得寫代碼是一件非常厲害的事情,程序員寫的代碼他什么都看不懂,自然薪水就高了。我覺得這個因素其實是存在的。 因為我之前接觸過一個老板,他自己就是碼農(nóng),他會寫代碼,而且代碼寫得很好。雖然他現(xiàn)在已經(jīng)不會寫了,但是基本的理解還在那兒,不要緊。所以他公司里的員工,薪資水平只有外面互聯(lián)網(wǎng)公司的2/3,但工作強度是一樣的。 力盈:我們在勸告大家,不要找一個老板是技術(shù)出身的公司去當程序員。 Leone:怪不得馬云經(jīng)常強調(diào)自己不懂技術(shù)。 9.程序員在未來會被AI取代嗎? 力盈:我想問一個殘酷的問題,你覺得在未來,程序員這個職業(yè)的市場需求會縮小,甚至是被取代嗎? Leone:這個問題其實我也想問。因為之前我在跟朋友交流的時候,他說自己很有危機感,說現(xiàn)在AI可以寫代碼,而且以后AI肯定是越來越智能的。他們有的時候會打一個不恰當?shù)谋确?,說現(xiàn)在的程序員就跟以前的那些工人是沒有任何區(qū)別的,到以后全都是可以被機器替代的。我遇到的朋友,他的這種危機感特別強。你覺得是這樣嗎? Winter :我覺得在一定程度上,現(xiàn)在程序員的數(shù)量確實是有一點多了,因為我看了一眼APP Store上面,這么多的應(yīng)用,實際上根本沒有人訪問。也就是說,很多程序員寫出來的程序沒有人在用,這對于社會來說是一個巨大的浪費。 這個浪費你平時是看不到的,就像企業(yè)生產(chǎn)出來的東西賣不掉,那是明明白白的浪費。但是程序員過剩這種浪費,實際上是比那種工業(yè)生產(chǎn)的浪費更加嚴重。我確實覺得,可能很多程序員在做的事情是沒有意義的。 力盈:為什么是更嚴重的浪費? Winter :因為他們比工業(yè)生產(chǎn)更貴,程序員的人力成本是非常貴的。這確實是個殘酷的現(xiàn)實。 但是我也不擔心程序員沒有出路,因為從歷史的角度來看,你是沒有辦法阻擋歷史進程的。當你發(fā)現(xiàn)這個行業(yè)過剩了,或者說有泡沫產(chǎn)生的時候,它一定會有另外一條出路,讓人去做更加有智慧的事情,而不是在簡單重復(fù)的工作當中浪費自己的生命。 其實現(xiàn)在我們程序員所用的這些開發(fā)工具,和多年前相比,已經(jīng)更加聰明,更加智能了,程序員要寫的東西也變少了。相同的功能,他們可能原來要寫兩天,現(xiàn)在可能一天就能完成了。生產(chǎn)效率的提高會讓程序員更加輕松,也就是說,其實不需要那么多程序員。但是你會發(fā)現(xiàn),好的程序員還是非常難求的。 所以我給大家的建議是,如果真的覺得自己非常有興趣,那就加入程序員的行業(yè)。說得俗一點,從賺錢的角度來說,這個行業(yè)的薪資水平是比較高的,而且相對來說,我不認為程序員是一個那么容易替代的行業(yè)。 剛才你說到AI可以寫程序,但是我覺得,按現(xiàn)在AI的水平,大多數(shù)的代碼它還是寫不來的。我上次看到了AI寫程序的一段視頻,它能夠完成前端頁面一些簡單程序的編寫,但是后端的程序它肯定是寫不了的??梢灶A(yù)見的未來,我們的AI,應(yīng)該還達不到能夠替代程序員的水平。可能在未來的20年到30年,還是需要程序員用現(xiàn)在的方式或者類似現(xiàn)在的方式,一行一行地把代碼給敲出來。 Leone:感覺程序員好枯燥。 力盈:但是我其實聽你說完,我會覺得未來對程序員的要求會不會更有創(chuàng)造力,因為現(xiàn)在你可能做得還是很枯燥的工作。但是越往后面,AI能做的越多,對你的創(chuàng)造力要求和創(chuàng)造性思考可能多。 Winter :不光是創(chuàng)造力的要求,可能是對程序員綜合能力的要求更高了。因為我們之所以有碼農(nóng)這個詞,是因為很多人在工作當中,他寫的代碼非常簡單,所以被叫做碼農(nóng)。因為業(yè)務(wù)邏輯一旦定下來之后,剩下的就是把它們實現(xiàn)。實現(xiàn)無非就是很多在程序員里面有一個叫做CRUD-BOY,是做增刪改查的。 除了這四件事情之外,程序員其他事兒什么都不用干,他只要負責(zé)把業(yè)務(wù)邏輯實現(xiàn)就可以了。所以很多人會認為程序員的工作簡單、枯燥、重復(fù),很容易被AI替代。 如果現(xiàn)在的程序員還是用這樣的方式去工作的話,確實未來有可能被替代。但是如果說程序員的思考更加深刻,他就不會用這樣的方式去做事,他還有更好的方式去做,這樣就不會被替代。 說的有點抽象,其實就是說我可能有一段業(yè)務(wù)邏輯,人家告訴你ABCD,你就按流水線上的工人那么寫的話,這樣的工作確實是比較容易被替代。但是換一種思維,用一些比如說像設(shè)計模式去重構(gòu)你的代碼的時候,你會發(fā)現(xiàn)你做的事情是有價值的。 10.題外話:為什么程序員會禿頭? Leone:說句題外話,禿頭的事兒其實是可以聊一聊的。因為說實話,以前好像沒有那么多人掉頭發(fā),那么禿頭的原因到底是什么? Winter :禿頭的原因應(yīng)該還是和內(nèi)分泌有關(guān),因為我們之前也是做醫(yī)美這個行業(yè)的。因為我們自己有一些同事看到了一些成功案例,在此之前,大家都不相信禿頭能治好,覺得禿頭去植發(fā)都是騙子,但是后來真的有人跑去植發(fā)了。 植發(fā)的結(jié)果我現(xiàn)在也不好說,因為需要長期的觀察,但至少在當時是成功了,他的頭發(fā)長出來了好多,整個的手術(shù)過程我就不細說了,他可能不痛苦,但是那個場面可能比較驚悚,不過確實有效。禿頭和長期的內(nèi)分泌失調(diào)可能有些關(guān)系,精神壓力大、熬夜再加上一些遺傳的因素,可能綜合在一起,導(dǎo)致了程序員群體脫發(fā)的比例要比其他行業(yè)的人明顯多一些。 Leone:看來你的夜熬的還是不夠多,你的頭發(fā)還這么多。 Winter :那是因為我寫的可能是因為我寫代碼還寫得不夠多,如果再多寫幾年代碼,或許我腦袋上的頭發(fā)只剩現(xiàn)在的一半。 力盈:可能是因為思考代碼的時候容易焦慮,分泌一種…… Winter :思考代碼的時候,你明顯可以感到自己在分泌一種物質(zhì),人(會)分泌一種讓自己冷靜不要暴躁的物質(zhì)。因為對面的玩意兒你再怎么罵它,它不會哭也不會生氣,它只會給你報個錯,所以你做的唯有冷靜。
當時碰到的情況是,全國所有的節(jié)點全部癱掉了,這個事情我在職業(yè)生涯中碰到過一次,那個事情是上了銀保監(jiān)會的新聞的,也遭到了批評。因為當時我是在一家保險公司,它意味著保險公司那一天所有的出險業(yè)務(wù)全部沒辦法開展。比如說人家的車子壞在了路上,打保險公司電話是打不通的。比如說人傷了,或者說出了一些意外,是沒有辦法聯(lián)系到保險公司的,所以這個事故是非常嚴重的。 那天,處理這個事情的程序員被所有的領(lǐng)導(dǎo)圍攻著,總公司最大的CEO就站在他那個房間里面,可想而知他的壓力有多大,但他最終還是成功地處理了這個災(zāi)難。 Leone:說明它容災(zāi)做得不好。 Winter :對。當時國家對這些金融機構(gòu)還沒有容災(zāi)這方面的要求。是在出了很多事兒之后才發(fā)現(xiàn),我們的信息系統(tǒng)如果沒有容災(zāi),是非??膳碌囊患虑椤?/strong>從那個時候開始,國家加強了IT基礎(chǔ)設(shè)施的建設(shè)。 11. 快問快答環(huán)節(jié):一份帶你快速了解程序員行業(yè)的普魯斯特問卷 力盈:我可以進入最后的問卷環(huán)節(jié)嗎?你還有什么問題要問嗎? Leone:最后一個問題,根據(jù)你多年的職業(yè)生涯來看,你覺得程序員好找另一半嗎? Winter :程序員還是比較容易找到另一半的。 力盈:你剛剛在說他們的脾氣有多好的時候,我覺得程序員還是挺適合當另一半的。 Winter :應(yīng)該說大多數(shù)的程序員脾氣還算可以,而且工作時間特別長,所以他不會去管另一半在干什么。另外,大多數(shù)程序員沒有什么不良的嗜好,因為工作完之后他已經(jīng)精疲力盡了,不太可能有不良的嗜好。 力盈:這是一則程序員征婚廣告。 Winter :然后賺錢賺的還多,可能死得還早。 力盈:我問你一個最大的問題,如果再讓你選一次行業(yè),你還會當程序員嗎? Winter :會。 力盈:為什么? Winter :因為我從小開始,就決定了我要做這個行業(yè),一直沒有改變過。 力盈:你是少有的那種非常小就堅定地選好了行業(yè)的人。 力盈:你認為干這一行最大的幸福是什么? Winter :最大的幸福是有成就感,就是說能夠看到自己的作品有很多人在使用。最多的時候,我寫的程序有大概有十幾萬個門店在使用,其實這種成就感還是很強的。 力盈:(這個職業(yè)榮譽感)還是要和社會發(fā)生聯(lián)系。那你干這行最大的恐懼是什么? Winter :斷電。斷電是我們最大的災(zāi)難,因為在我的記憶里面出的最大的事故就是斷電,當然現(xiàn)在,可能因為我們用了一些云服務(wù)的廠商,斷電這樣的事情不太可能發(fā)生了。但是在這之前,我們最大的恐懼就是對基礎(chǔ)設(shè)施的恐懼,比如說斷電了、漏水了、發(fā)生了基礎(chǔ)設(shè)施的故障,有人把線路剪斷了(發(fā)生過這樣的事兒)。這個是最大的恐懼,因為在這個時候,你是非常無助的。 再多說兩句,有一次,物業(yè)通知我們斷電要斷1個小時,1小時之后它就會恢復(fù),結(jié)果當時斷了將近8個小時。當時我們UPS的設(shè)計容量大概是8個小時,但非常不幸的是,因為UPS已經(jīng)好幾年了,所以它并沒有撐到8個小時,可能在6個多小時的時候就失去了電力。那一刻是讓人最崩潰的時刻,因為我已經(jīng)沒有辦法連接到我的服務(wù)器了,而我的服務(wù)器在2000公里以外。 力盈:在干這一行時,你最痛恨自己的哪一種特質(zhì)?強迫癥?沒有。 Winter :不痛恨。 力盈:那在這一行里,你最痛恨其他人的什么特質(zhì)? Winter :這個問題很簡單,“明天應(yīng)該就可以上線”。因為大多數(shù)人,就像我之前舉的那兩個例子一樣,他們會把問題考慮得過于簡單,他們用自己生活的經(jīng)驗去代替嚴密的邏輯,對專業(yè)人士進行挑戰(zhàn)。 很多時候,為什么會有產(chǎn)品經(jīng)理這么一個角色,其實他就是攔住用戶端那些不合理的需求,我覺得這是這個職位出現(xiàn)的最重要原因。就是很多需求被提出來之后,當事人一拍腦袋,第二天又變了。產(chǎn)品經(jīng)理的角色保證了這些需求都是經(jīng)過思考的(至少經(jīng)過了初步的過濾)。 Leone:因為用戶需求有的是,很多人提出來的都是偽需求,對嗎? Winter :90%的需求都是偽需求。比如說我們現(xiàn)在很多都是做SaaS行業(yè)的,可能會面對全國幾千、幾萬家的用戶,這些用戶每天都會提出無數(shù)的需求,他會在某個點上讓你加工。那么這個時候,產(chǎn)品經(jīng)理就要縱觀全局,看一看這個功能是不是大家的共性,還是說用戶有其他的痛點。用戶提出的是A,其實他要的并不是A,完全可以有一個更加好的解決方案。 力盈:干這行程度最淺的痛苦是什么?禿頭還是熬夜? Winter:熬夜,我覺得還是熬夜。因為有的時候,在你最不想讓它崩潰的時候,它崩潰了。 Leone:她說的是程度最淺的痛苦。 Winter:這就是比較淺的痛苦:熬夜。這是生理上的痛苦。 Leone:那最深的痛苦呢?停電? 力盈:不可控,完全不可控。 Winter:最深的痛苦其實是這樣的,其實程序員是一個比較悲劇的行業(yè),因為很多時候,程序員不想面對需要面對的東西,但是又沒有辦法。 作為一個打工人,這樣的困惑大家都存在,但是程序員存在的特別厲害,因為人家一個小小的決定,會改變他手頭所有的工作。對于其他的行業(yè)的人來說,可能還好,比如說有一個新的東西出來了,他可能不用花太大的代價就能把這個事兒給干了。雖然他干的事兒可能也是沒有意義,但是對他來說沒那么傷心,因為他付出的成本沒那么大。 但是對于程序員來說,可能一點點小的改變,就需要他完全鏟掉重來,或者說破壞了他原來腦子里面的完整世界。就像搭好的一座塔,有人抽掉了塔最下面的一個杯子,在他內(nèi)心的那幢大廈轟然倒塌,所以對他來說是非常痛苦的。 Winter:哪怕他是一個小小的需求的改變,都可能發(fā)生這個事兒。他也能意識到,這個事兒本來是可以避免的,但只是因為人家覺得這事很簡單,你不就是把杯子換一個嗎?那你去換吧。這個決策不在他手里。 力盈:我們本來是一個科普這個行業(yè)的節(jié)目,結(jié)果變成了一個勸退節(jié)目。 Winter:但是不要慌,我覺得現(xiàn)在程序員也不至于這么慘。 Leone:我覺得還是要有一個happy ending,你覺得做程序員最大的幸福來源于哪兒?除了你剛才說的很多人都在用,因為你也說了,其實有很多APP做完之后也沒有人用。你覺得于自己而言,最大的動力在哪兒? Winter:剛才說的已經(jīng)是最大的動力來源了。 Leone:就是別人用是嗎? Winter:對,但是做程序員還有一個好的地方,就是做程序員能夠看到這個世界上并不為人知的那一面。比如說在做不同行業(yè)的項目的時候,你會和不同的人去打交道,你會發(fā)現(xiàn)這個世界上,人和人之間的差異,大于物種和物種之間的差異。每一個行業(yè)都有自己行業(yè)的特點,都是非常有趣的,哪怕是表面上看起來最枯燥的一些行業(yè),也是非常有意思的。 所以很多程序員在不做程序員之后,他挑了某一個他曾經(jīng)自己待過的行業(yè),所以他的選擇是很多的。我看到過的程序員,有去做供應(yīng)鏈的、做電商的、做金融的、保險的、或者是成為了一個段子手的……甚至有人打算開一家店;還有人打算去說相聲。 我碰到過有位程序員,他打算改行去說相聲,那是非常有意思的一件事情。當然編輯也是一個和很多人接觸的行業(yè),但是更多的行業(yè),可能相對來說,它就比較垂直,沒有機會去接觸到那么多面和那么多的人。 力盈:聽你說完,我會覺得程序員跟我們第一期聊的媒體人真的很像,都是一種底層行業(yè),都要跟各個行業(yè)發(fā)生接觸,都是一種底層技能,可能在未來也會有被取代的風(fēng)險。 Winter:在未來,可能很多人掌握了編程的知識之后,自己也能寫一些簡單的程序。我想,隨著時代的發(fā)展,編程會慢慢地變成人的一項基本技能。就像現(xiàn)在從小學(xué)開始,已經(jīng)有編程的課程,不像我們以前,只有一小部分人才去參加這種課程。現(xiàn)在,編程課程屬于廣泛的教育,這些基礎(chǔ)教育會給未來的人打下很好的編程基礎(chǔ),所以它會變成每個人都掌握的一種技能。 Leone:最后一個問題,你以一個過來人的身份給大家一些建議和意見,對于想進入這個行業(yè),正在這個行業(yè)工作的人,有哪些事情是他們需要注意的?請給出三點建議。 Winter:第一,對于沒有進入這個行業(yè)、還在學(xué)校的人來說,要珍惜學(xué)校的這段時間。因為這段時間一去不復(fù)返,有一些學(xué)習(xí)門檻很高的東西可以在學(xué)校完成;但是你一旦工作了,就再也沒有機會了。 第二,對于已經(jīng)進入這個行業(yè)的人來說,要重視業(yè)務(wù)。因為在一段時間里面,比如說工作了一到三年的人,他更關(guān)心的可能是技術(shù),但是當技術(shù)達到一定程度之后,業(yè)務(wù)決定了你到底能走多遠飛多高。 所有能夠做到架構(gòu)師,CTO或者是更高層的人,他一定是對某一方面有著深刻的理解。比如說想自己創(chuàng)業(yè),但是對業(yè)務(wù)這一塊不了解,那也是走不遠的。 第三,對于想往純技術(shù)方向去發(fā)展的人,可能要注意的是要學(xué)好數(shù)學(xué)。因為你可能和算法,包括底層知識打交道。我指的是軟件方面的,硬件我可能不是非常懂。特別是在軟件這方面,如果在基礎(chǔ)的數(shù)學(xué)這一塊沒有扎實的功底,那些大廠的算法崗或者是AI崗是和他無緣的。 Leone:大家如果要是有更多的關(guān)于程序員的疑問,或者說是想要了解什么的話,也可以留言,這期的職業(yè)游民到這里就結(jié)束了。謝謝大家,拜拜。 力盈:下一期我們會討論更有趣的職業(yè)和話題,歡迎大家留言分享你們最想了解的職業(yè)是什么。好,就到這里結(jié)束了,拜拜。 頭圖來自:電影《銀翼殺手:2022黑暗浩劫》截圖 (本文未經(jīng)造就授權(quán),禁止轉(zhuǎn)載。) 編輯&版面 | 余冰妤 文字整理 | 魏婉瑩 余冰妤 音頻剪輯 | 唐盼盼 設(shè)計 | Billy |
|
|