第26章 別具一格的王霸之氣
第二十六章 別具一格的王霸之氣
不愛創新的人,或者沒有接觸過原創工作的人,往往會有一種錯覺:發明創造也好,經典神曲和傳世詩篇也好,那都是天才靈光一閃的產物。
莫紮特的傳記作者奧托楊就揭露過一個謊言:早在19世紀初,就有許多“雞湯文”渲染莫紮特的創作流程:說他畢生最牛逼的作品,都是在夜深人靜、環境優美、天人合一的狀態下,由於靈感爆發、思如泉湧而創作出來的。
但是實際上,這種“雞湯文”論調純屬扯幾吧淡,是徹頭徹尾的謊言。奧托楊早已證明,莫紮特根本不是這麽一個人。
哪怕強如莫紮特,作曲也是要慢慢研究樂理、反複修改調音試聽的。
哪怕強如李白,除了號稱一蹴而就的三首《清平調》,他其餘的大部分詩作也是要查韻部、摳字眼、和賈島那句“僧推月下門”那樣,為了一個個用字反複“推敲”的。
過度強調創造所需的“靈感”,而選擇性的無視創造所需投入的“努力勤奮”,無非是雞湯文和段子手們為了自己的文章銷路,媚俗無恥地迎合大眾,滿足大眾的自我心理保護。
因為庸碌的大眾需要為他們的創新無能尋找一個開脫的借口。他們甘願相信:看,創造這種東西,是天才才能做的事情。我們沒做到,隻是因為我們沒有這種天分,而不是我們不夠努力。
而在現代前沿企業裏麵——隻要不是那種隻會山寨別人產品的企業,隻要有幾分實打實的自主優化和創新的——在它們的研發部、軟件部,有得是依靠拚搏和努力來實現創造的工程師、程序員。他們並沒有外行大眾想象的那種天才,他們有的,隻是勤奮的努力,和一個正確的方向。
朱海波也好,杜俊強也好,都是新世紀華夏百萬原創碼農中一朵微不足道的浪花而已,他們一樣沒有天才,但是他們一樣知道努力。
至於有沒有把握到正確的努力方向,在此之前他們不敢說。剛剛工作了兩年的碼農們,心中有迷惘是很正常的。
但是遇到了顧莫傑之後,他們敢說了。因為他們知道,他們要找的東西,在顧總那裏就有。
……
顧莫傑電話打完不到半小時,外賣就送來了,他禮賢下士地招呼大家過來一起吃,自己也先挑了一份蓋澆飯,直接開吃,一點看不出老板的架子。
各懷疑問的程序員圍坐一圈,悶頭吃了幾口,誰也不好意思先開口問。直到顧莫傑咽下一口青椒肉絲,揮著筷子反問:“我說午飯的時候趁機例會,你們就沒什麽想問的?今天的會我隻負責答疑,沒有硬性議題。”
聽顧莫傑這麽一說,朱海波第一個忍不住了,開口問道:“顧總,我想知道,我們公司的測試團隊究竟有多少人?都是什麽資曆的?說實話,我在搜狐兩年,也沒見過這麽強大的測試能力,居然可以針對一份基本功能都還沒跑通的代碼,就測出這麽多問題。”
各位看官或許會好奇,為什麽朱海波會對公司的測試實力如此關心。這個問題其實可以通過打個比方來說明。
程序就像是一個等待醫治的病人,程序員就是負責開處方配藥的醫生,而測試員則是觀察病人症狀、反饋病人症狀以及程序員用藥後“病人藥物反應”的人。
最差的測試員,隻能告訴“程序員醫生”,這個程序“哪兒疼”。好一點的測試員,能告訴“程序員醫生”,這個程序“得了什麽病”。所以任何軟件公司,都需要軟件部和測試部兩個對抗性的部門合作,才能產出一款合格的軟件,就像法庭上需要控辯雙方唇槍舌劍,真理才能越辯越明。
一個公司的測試員是否牛逼,對於程序員能力的成長,會有很大的影響。
比如一個手機方案,麵臨一種症狀為“翻蓋後手機屏幕不亮”的故障,最次的測試員隻會安安分分地按照上述文字提交一個bug,然後程序員需要費老鼻子的勁兒去查問題究竟出在哪兒。精力花了不少,進展卻沒多少。
而有經驗有眼光的測試員,遇到同樣的bug,就會不滿足於上述簡單結論。他會用更多的對照組實驗細查問題根源,最後很可能總結出“翻蓋上的霍爾器件傳感器通信代碼異常”這個深度的問題所在。與給力的測試員合作,程序員就能省掉很多排查的彎路,讓自己的經驗和寫碼技能快速成長。
公司測試資源的強弱,與自己的切身利益息息相關,與將來工作能力的進步速度相關,朱海波、陸俊強等人怎能不好奇?
顧莫傑聽了這個問題,淡然一笑,把早就準備好的答案拋了出去:“公司肯定是有強大的測試團隊的,這點你們放心。不過目前有一些人員還屬於外包,沒法介紹給你們認識。”
朱海波聽了這個過於官方的回答,更是心癢難耐,進一步追問:“顧總,我絕對相信您說的話,也沒有對公司的測試團隊實力有任何懷疑。可是在國內我實在沒見過這麽強的測試,您能說一些技術上的細節麽?
比如針對我昨天寫的這部分代碼,我看到測試的同事提出了一個‘詞頻反饋數據抓取環節存在內存泄漏’的bug,還精確到了某一段代碼上,這簡直是神乎其技了。基本功能都沒跑通,測試是怎麽測到這一步的?”
一個軟件,寫得越完整,越容易精確測出bug來,而軟件越是原始、越是基本功能都沒有跑通,要精確測出問題就越困難。這個道理是舉世皆然的。
就好比一台手機,如果連基本開機都做不到,那永遠隻能測出一個bug:開不了機。縱然從代碼層麵看,這台手機的攝像頭數據傳輸有問題、觸屏算法有問題……也都輪不到被測出來了。
可是這種常人看來不可能的事情,顧莫傑偏偏就做到了。
朱海波昨天寫的那部分代碼,就相當於是一台開不了機的手機。而顧莫傑就相當於偏偏在沒開機的情況下,就說出了“如果這台手機開機了,還會出現哪些bug”。
如果說普通互聯網公司的測試員們屬於“看到病人就說出病人哪兒疼”;而國內頂尖的測試大牛可以做到“看到病人就精確說出病因”;那麽顧莫傑手下的測試團隊,昨天的表現,就可以比作“哪怕看到的是一具屍體,都不用驗屍,就能直接說出屍體的死因”。
法醫的鑒定能力比給活人看病的醫生強。連驗屍都不用驗就說出死因的人,自然比法醫更強。這種測試能力,已經可以說是突破天際。不再僅僅是程序員的附庸,而是程序員的良師益友了。
眾人好奇之中,顧莫傑放下蓋澆飯,拈著一根筷子,作指點江山狀:“那是我自己針對公司要研發的幾款軟件,寫了一些代碼層麵的自動測試插件。所以凡是有結構體不完整、指針調用未定義、內存泄漏無法自洽……等等低級錯誤,都可以測出來。哪怕代碼還不完整,都能發現問題。”
顧莫傑一說測試軟件或者測試插件,朱海波、杜俊強等人就有幾分聽懂了,隨之而來的,是一股肅然起敬。
測試插件,是一種降低測試員重複勞動、把一些簡單重複的測試工作通過類似於“外掛”的功能自動跑完的軟件。
比如用按鍵精靈寫一個腳本,把一個軟件上的每種按鍵組合都按一遍,看看功能有沒有問題,就是一種最最簡單的測試插件。
如果在目標軟件裏麵有些低級錯誤的話,用測試插件的自動測試就能發現。但是測試插件能夠實現的功能一般比較單一,隻能做流水性的測試或者壓力測試。要想用測試插件來發現複雜問題的話,那難度就不一般了,除非寫插件的人本身也是程序高手。
2003年的國內,從來就沒聽說過有哪家公司的測試插件可以做得這麽牛逼的,可是顧莫傑寫的那個測試插件偏偏就做到了。
……
顧莫傑又回答了朱海波和杜俊強幾個粗淺的問題,漸漸地就把程序員們徹底鎮住了。
隻有顧莫傑自己心中雪亮:他哪裏是真有這麽牛逼的本事、能夠比鑽研了數年搜索引擎代碼的程序員都懂行?他之所以可以給出這麽多指導性意見,完全是靠初音娘給他的那個vs2050牛逼。
眾所周知,一款軟件越是先進,那麽對使用者的軟件操作水平要求就會降低。
這個道理很好理解,就像autocad每更新一個版本,據統計就能降低繪圖的工程師們在繪圖環節5%的時間花費;ps每更新一個版本,也能讓p圖的美工人員手腳快一些(在腦中構思構圖的時間不算,這裏僅指畫圖軟件的操作時間)
vs作為程序員們寫碼的工具,2002版和2050版之間的效率也是天差地別的。後世由於有大數據,vs可以把全世界所有程序員們犯過的錯誤bug統計起來,歸納出一些程序員容易犯的常見病,然後把這些常見bug集成到vs2050的自動測試插件中去。
所以2050年的程序員們不僅寫的代碼比2002年可讀化程度高得多,連除了邏輯錯誤以外的低級錯誤都幾乎不會犯。時代每進步十幾年,程序員的單位時間平均寫碼效率翻一番,這個定律從古到今都沒有變過。
現在顧莫傑開公司了,vs2050的客戶端部分自然是不能直接拿給公司的程序員們使用的。但是服務器端因為加密的原因,隻有顧莫傑一個人可以接觸到,所以哪怕他在服務器端動再大的手腳,都不會有人發現他的金大腿。
如此一來,這個外掛也就開得順理成章,合乎邏輯了。程序員寫代碼的時候,很多錯誤並沒法直接自動糾錯出來,但是隻要上傳到了公司的代碼服務器上,服務器運行自動測試功能,就可以把很多問題找出來,再批一層皮,假托一個子虛烏有的“公司測試團隊”的名義,把bug反饋出來。
當然,初音娘在穿越回本時空的時候,因為雲端bug數據庫是存在2050年的,所以初音娘沒法調用後世的數據庫,隻能是回到本時空之後從頭開始,在網上各種渠道搜集充實自己。
也虧得如此,顧莫傑借用vs2050來完成自動測試時才沒有表現得太過逆天、沒有超過同時代人類的想象力極限。否則的話,他需要雇傭的程序員人數起碼可以再省掉一大半。
……
眾人被顧莫傑鎮住之後,隨著解釋的深入淺出,他們心中越來越雪亮,對於是否要在顧莫傑手下長久幹下去,也是下了決心。
在互聯網公司,拿著同樣薪水的程序員們,往往有些可以按時下班,而有些卻天天加班。外人或許會覺得:難道是老板不公,給某些程序員加碼的任務很多,而另一些不加班的則是關係戶?
實際這種都是大謬不然的誤解,在所有創新行業中,互聯網公司是最容易按任務量分配活兒、童叟無欺的了。
之所以有些程序員加班多,完全是因為他們寫出來的最初代碼bug太多,所以後續的反複修正工作量太大,修修補補中就導致了天天加班。
而如果真有本事和那些程序大牛一樣,一遍寫過,隻有區區幾個小bug,不用大規模推倒重來。那完全是可以做到不加班,甚至提早下班的。
你加班,隻有兩種可能:
第一,你的原始代碼寫得太爛,後續修改工程量浩大。
第二,和你合作的測試員太爛,不會幫你精確定位問題,所以你的每一個bug都需要你去反複排查核心症結所在,導致你需要加班。
外行人不懂這個道理,做程序員的人怎麽可能不懂這個道理?
顧莫傑手下那個至今沒有露麵的測試團隊,以及顧莫傑親手編寫的那幾款神乎其技的測試插件,居然可以測出主功能都跑不通的代碼裏的bug,這是何等逆天的能耐?
而且還有一個問題是:如果國內真有測試員做到這個水平了,誰還會甘心隻作一個測試員呢?須知國內軟件企業並不重視測試,測試員的工資隻有程序員的幾分之一,人家有這個能耐,這個診斷眼光,不如自己學一學寫代碼的基礎,轉行去當程序員賺高薪了。
所以,就算他們去百度、去阿狸、去藤迅打工,他們能夠像在顧莫傑這裏打工這般,讓自己快速成長麽?讓自己的寫代碼能力天天獲益匪淺麽?
顯然不能。
顧莫傑借用初音娘的vs2050,換取的就是這麽一個效果:如果你為了一時的高薪,想去別人那裏打工,或許我留不住你。但你若是一個有追求的程序員,不滿足於僅僅賺錢,還想醉心於寫代碼,有幾分改良這個世界的野望,希望快速提高自己的寫碼技能。那麽他們就會被顧莫傑吸引住,如同指南針遇到磁石一樣,被顧莫傑征服。
“顧總!我要向您道歉。”朱海波兩腿一軟,癱坐在沙發上,渾身冷汗淋漓,似乎大病一場那般,“昨天我還懷疑你,還想著你這兒不靠譜,學不到真本事。現在我才知道,我真是有眼無珠!隻要你將來不炒我,我這輩子就跟你混,絕對不想跳槽的事情了!”
顧莫傑微微一笑,環視全場,其他幾個程序員也都是這番被他的表現徹底征服了,一副恨不得要斬雞頭燒黃紙表忠心的姿態。
有的還紛紛表示他們認識幾個原本去了百度和阿狸的同事,如今也不順心想謀求跳槽,他們一定賣力幫顧莫傑挖人過來,如果挖不過來就把顧莫傑的牛逼之處向那些前同事們宣揚宣揚,讓他們親眼來看看……
聽了最後那番表忠和幫忙挖角的表態,顧莫傑總算是籲了一口氣。
21世紀什麽最重要?人才!
這股王霸之氣,還真是漏得不容易。
……
(ps:隻能向媚俗低頭了,寫了兩天偏向程序員閱讀喜好的章節,掉了我50多個收藏。看來程序員這個社會階層實在是沒什麽消費潛力。
我也不作死了,明天開始進入大學校園章節。這一章將近5000字,算是做個了斷吧。本周沒有推薦果奔,尚且更新這麽多,過年了還是減少一些字數吧,反正也沒人追。)