左耳朵耗子:軟件開發這些年,我學會的道理和教訓

貓寧!!!

參考:https://mp.weixin.qq.com/s/-Gus3fGHXcRBvuKjrwQStA

 

1-那些年,我犯過的錯誤

從業 20 年,98 年到 18 年,一共 20 年,98 年畢業,我學這麼多東西整個過程也不是速成的,也是一點一點來的。今天我想先跟大家說一下,我之前犯過的一些錯誤,犯過最慘的一次錯誤。

今天我們也能聽到很多的這種什麼刪了庫,跑路的,或者說是不小心把生產系統給搞掛了,我以前也經常幹這樣的事,而且乾的還是銀行,把銀行的一些數據庫搞亂了。

我印象比較深的一次,是在銀行工作,銀行都是晚上上線,因爲白天要生產,所以要加班。以前用 C 語言寫程序,夠變態的。C 語言出 Bug 的概率高的多的多,所以就很容易出這種問題,出了問題以後,要去把 Bug 改了,改完以後,又得把數據給訂正回來,數據訂正回來的時候腦子一暈,y 條件寫錯了,就把數據庫給毀了,毀了怎麼辦呢?就只能把頭天的備庫拿出來,重新恢復一下,那今天的數據怎麼辦呢?那就讓儲蓄所關門,還好有紙質的,然後就把那個網點的數據重新補錄一遍,然後銀行方面就說,這分明就是搞破壞。

當然我犯過的錯誤還有好多,以前在國際化的公司工作,尤其是在路透,最痛苦的事情就是代碼沒寫好出問題。然後晚上被叫起來,是凌晨三點鐘或者凌晨四點鐘被叫起來,在迷迷糊糊中進入到一個電話會議室裏面,然後跟着世界各地的人在非常嘈雜的環境下說英語,解決故障。

在路透的時候,有一個 Bug 上線了,其實這個是在我們測試時已經測出來,但是上線的時候疏忽了,沒有把修復這個 Bug 的那個代碼給發佈出去,而是發佈了包含這個 Bug 的代碼,結果造成生產線上數據丟失。你想那是金融數據,這個事可大了,凌晨四點鐘被叫起來。想了想,腦補一下,好像是之前犯過的那個 Bug,就總覺得應該是發上線了,結果那個補丁沒跟着一起上線,這事把我急壞了。然後就聽見國外那些老闆們就在那邊那種罵,用的都是一些非常重的一些話來罵,後面故障處理還需要批鬥,要找人負責。

所以這是這種人在江湖漂,哪能不挨刀。你做得越多,出的故障越多。除非你啥也不做,但是出的故障越多,你的成長才會越大。所以我還是跟大家說,趁着年輕,多犯錯誤。因爲你現在犯的錯誤都還好,只有人犯過錯誤了,你纔會有那種深刻的理解,對這個東西,你會有更深的理解,不犯錯誤的人你是不會成長的。把人送到那個月球上那個阿波羅,那個死了多少人?出了多少事?才上了去,所以這個東西,很多東西都是這種經驗教訓就這麼來的,所以大家一定要珍惜犯過錯誤的這個事。

實現一個小的目標,犯一個大的錯誤。犯一個大的錯誤,一般來說你要麼就被打垮掉了,你就平庸下去了,要麼你就知恥而後勇,你就越來越牛了。所以爲什麼在拼命的學習?就是因爲以前犯過這些已經嚴重的錯誤,對我來說,說好聽點是一種憂患意識,說的不好聽點,是一種心理陰影,這種心理陰影導致了你必須得不斷的去學習,不斷的去總結,所以這導致了我今天會一點一滴的走到今天這個樣子,所以,把這些東西都當成自己的好事,如果你害怕失去你不敢去犯錯,你就不會去做更多的事情,當你畏手畏腳的時候,是你失去更多東西的時候

2-我自認爲做過最牛逼的事情和最傻逼的事情

最牛逼的事情是這樣的,我永遠記得我離開銀行的時候,那個時候是 2000 年 9 月份的時候,我遞交我的辭職報告,我上面寫了:本人對現有工作毫無興趣,申請辭職。就那麼一句話。但是我當時已經在銀行幹了兩年了,這個辭職單還放在雲南省工商銀行的那個檔案庫裏,那邊的人事中心還在整天叫我趕快把檔案調走,到今天還被以前的前同事拿出來說事,說你當年那麼年輕,寫了這麼一個辭職信,房子也不要了。

爲什麼我覺得這是最牛逼的事?因爲這個決定真的不好做。首先第一個事情是所有人都反對。因爲我父母都是下崗工人,父母兩人加起來一個月工資不到兩百塊錢作爲生活費。在 2000 年,老實說是不可能生活下去的。我大學的時候,因爲銀行需要做信息化改造,正好趕上了這個時代需要動手能力強的學生,而不是像以前一樣的靠關係纔去了工商銀行,所以當時我是由老師推薦過去的,說我動手能力比較強一點。這份工作對我來說是有點來之不易的,因爲還分房,所以整整做了兩年。

所以離開銀行的決定是很難的,做完了以後,你纔會覺得自己牛逼,如果簡單的東西就不會覺得自己牛逼了。那時候出去的時候,同學,同事,父母,家人,全部反對,差點還跟我父親斷絕父子關係。當時我的處長說:“你的辭職信可以這麼寫,但是請你在後面加一句話,經勸說無效申請辭職類,那分給你的房子也就收回了?” 我說行,那就收回。然後有人問我爲什麼?我說一套房子換不了我的人生,你永遠看不到第三次工業革命

我每天都在看微軟怎麼樣了,甲骨文又怎麼樣了,雅虎又怎麼樣了,IBM 又怎麼樣了,惠普又怎麼樣了,看到這些,我總覺得自己選對了一個專業,呆在一個正確的時間,但是卻呆在了一個錯誤的地方,所以就決定離開了。但是我跟大家說,我出去是爲了一個更好的經歷,因爲整個世界有這樣的變化,所以要出去

3-出去了以後,牛逼過去就是個傻逼,爲什麼?

因爲出去的時候馬上遇到的是互聯網泡沫。互聯網泡沫當時一下就倒閉了好多公司,所有公司全部凍結。本來還想信誓旦旦的出去就有不一樣的天地,結果一出去馬上就傻逼了。這個事情,有同學可能不知道互聯網泡沫,當年的 Dotcom,只要你申請一個 Dotcom 域名,放一個網站裏,你就可以融錢了。區塊鏈泡沫也是差不多。所以那時候也是說,用互聯網就可以顛覆世界。一會兒我再跟大家說顛覆世界的事,這是下半場的事。

出去後,我就找不到工作,找不到工作就只能去做外包,那時候銀行需要外包,外包公司又缺人,所以我就進入了一個系統集成商。系統集成商把我外包進了一個銀行,在銀行裏面做封閉開發,從早上九點到晚上十點,禮拜一到禮拜六,今天所謂的九九六。2001 年到 2002 年,就這麼幹了一年。

反正,自己覺得自己挺牛的,出去以後,就馬上傻逼掉了,發現這個差距還是挺大的。後來我從昆明到了上海,發現這個一線城市與昆明差距巨大無比,就是過高的預估了自己的能力。去面試的時候啥也不懂,面試問我 C 語言幾個問題:C 語言的宏定義是啥?C 語言的對內存和棧內存是什麼意思?這兩個問題我都答不出來。又問我第三個問題,你要是有不知道的,你怎麼辦?我也答不出來,因爲不知道的我也不知道怎麼辦。人家就說你不會問人啊?你不會看書啊?你不會上網查啊?我說謝謝指導,我當時就那麼傻逼,真的,面試的時候就是那麼傻,今天還敢在這做直播。那時候,連正眼都不敢看那個面試官。

後面還有更傻的事,我在上海呆了一段時間以後,我就記得有個人就跟我說,讓我一定要去外企。我本來也要去外國公司。那個時候國內還沒有像 BAT 這樣的公司,所以那時候還是想去國外的公司。然後面試的時候,一說英文就傻了,就說了兩分鐘,對面那個老外跟我說算了,我們還是找個會說普通話的來跟你說吧,然後就讓他同事和我聊,所以很尷尬。但是還是被招進去了,招進去就寫代碼,試用期寫了三個月的代碼。

4-從上海到北京

再後來,我就從上海來北京了,是 2002 年的冬天,我還記得是 12 月 2 號我到北京,試用期三個月,三個月差點就被辭退了,因爲代碼寫的巨亂無比。寫 C 語言,不是寫業務代碼,是寫那種分佈式計算的代碼。然後公司說你這個不行啊。這個寫代碼不行怎麼辦呢?要不你去做測試去吧?我就去做測試去了。測試的時候,有 KPI,每天至少要找到三個 Bug。

我懂代碼,我會寫代碼,我看得懂代碼。一般做測試的都是做黑盒測試,我可以做白盒測試。到最後,我就開始看着那個代碼來做測試。比如說,它這個數組是 15 位的,它分配了 15 位,我就給它弄個 16 位的,讓它溢出,就這麼來搞,一下子找好多,找完以後,我還解 bug,給一些建議,然後一下子那些開發人員,就是國外那些開發人員發現,這人找的 Bug 跟一般測試人員找的 Bug 完全不一樣,這人完全是做開發的料,怎麼來做測試了?然後,搞的中國區經理裏外不是人,到底你們想要怎麼辦?這人寫代碼不行,做測試你們也覺得他又像做開發的。

就這樣,如果你做過一些測試,玩兒這些事情,你大概會了解,你從一個不同的角度看不同的軟件的質量,會讓你有更多的感觸,大概是三個月的樣子,我又被調回來,調回來就不做開發了,做什麼呢?讓我做維護。維護什麼?Bug Fix。我要修復線上的那些問題,大概是這個樣子。

後來讓我做三線開發。一線是接電話的,二線是做調查的,三線是解決技術問題。解決技術問題過程當中用戶會抱怨,用戶就說你們這個一線的太慢了,我一個問題報告給你們公司,一直要等一到兩個月我才能拿到這個問題的一個解。這個事公司一調查,發現是一線技術支持不好,那時候公司就說誰願意去一線做技術支持?我說我去,因爲想學英語,我就去做一線接電話。我一開始接不了電話,一開始就是處理郵件。我在亞洲這地方,主要一個跟日本,一個就是跟亞洲區,還有歐洲那邊有一個上班的,跟歐洲那邊德國、巴黎。那個時候學英語這個比較好一點,我覺得我英語夠爛了,日本人比我更爛,德國人,巴黎都不咋的,跟着一堆母語都不是英語的人說英語,覺得這個自信心還是很強的,我也不發怵。尤其是跟那個德國人,德國人說英文是一個單詞一個單詞的說,這事讓我覺得很慢,但是他力圖把這個單詞說清楚,我覺得他說這麼慢,我也跟他說的慢,他慢我也慢,本來正常話速聊個五分鐘就能聊完,我們可能要聊 15 分鐘。但是沒事,這是一個讓我覺得練英語口語就是一定要說慢,不要圖快,一定要慢,把每個英語單詞音發準。

我那個時候對我幫助最大的不單單是英文,幫助最大的就是跟用戶打交道,瞭解到用戶的一些訴求,用戶來問你一個問題,你不能直接告訴他這個問題的原因是什麼,這沒用。你要告訴他怎麼解,你要告訴他一個解決方案,一個 Solution,在技術支持我學到了一些。因爲我在一線解決技術問題動作很快,用戶好評不斷,後來不做了,用戶還找我。

這是我人生當中覺得,做開發從來沒有得到這種榮譽,這麼高讚揚的榮譽。爲什麼?因爲你總是出 Bug 的,一出 Bug,你就一定會被人批的。好像是做開發總是被人罵,做技術支持不一樣,當你爲用戶解決完問題,用戶會表揚你的,用戶表揚你,有時候用戶一高興,他還會到 CEO 面前表揚你,老露臉了,這是做一線支持事。我做過開發,做過測試,做過一線的技術支持,經歷還是比較豐富的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章