1024程序員節:一切都有根本原因
今天是10月24日,程序員節。
為什么選10月24日作為程序員節?
因為 1024 = 2 的 10 次方。程序員使用“二(2)進制”編碼,1024日期的選定也代表了二進制計數的基本單位之一。
每一位程序員,都好像是一個小小的1024,沒日沒夜地敲著代碼。
尤其是今年2020年,程序員特別不容易。
大家突然發現,1024 + 996 = 2020。
而且更巧的是,404 + 404 + 404 + 404 + 404 = 2020,404在程序員的語言中代表網頁未找到的錯誤代碼。
2020等于5個404相加,是魔幻2020的節奏。
不過還好,2020年馬上就要過去了,剛想舒口氣,卻又發現:
- 1024 + 997 = 2021
天啊,明年這是要升級成每周工作7天的節奏啊......
玩笑歸玩笑,程序員其實是特別值得尊敬的一群人。
身處互聯網時代的我們,每天網上沖浪,每一次點擊、每一頁瀏覽,都離不開程序員的建設。
如果說上帝可能是“真實世界”的建造者,程序員就一定是“數字世界”的建造者。
甚至有人說:“上帝是個程序員。”
而且,程序員身上還有一個更令人尊敬的品質 —— 一定要找到根本原因。
是否能找到“根本原因”,是探尋萬物規律、解決現實問題的關鍵。
今天我通過兩個小故事,和你聊一聊“根本原因”。
— 1 —
美國通用汽車“香草冰淇淋”的故事可能很多人讀過:
有一天美國通用汽車公司的龐帝雅克(Pontiac)部門收到一封客戶抱怨信,上面是這樣寫的:
這是我為了同一件事第二次寫信給你,我不會怪你們為什么沒有回信給我,因為我也覺得這樣別人會認為我瘋了,但這的確是一個事實。
我們家有一個傳統的習慣,就是我們每天在吃完晚餐后,都會以冰淇淋來當我們的飯后甜點。
由于冰淇淋的口味很多,所以我們家每天在飯后才投票決定要吃哪一種口味,等大家決定后我就開車去買。
但自從最近我買了一部新的龐帝雅克后,在我去買冰淇淋的這段路程問題就發生了。
你知道嗎?每當我買的冰淇淋是香草口味時,我從店里出來車子就發不動。但如果我買的是其他的口味,車子發動就順得很。
我要讓你知道,我對這件事情是非常認真的,盡管這個問題聽起來很豬頭。
為什么這部龐帝雅克當我買了香草冰淇淋它就秀逗,而我不管什么時候買其它口味的冰淇淋,它就一尾活龍?為什么?為什么?
---
事實上龐帝雅克的總經理對這封信還真的心存懷疑,但他還是派了一位工程師去查看究竟。
當工程師去找這位仁兄時,很驚訝的發現這封信是出自于一位事業成功、樂觀、且受了高等教育人。
工程師安排與這位仁兄的見面時間剛好是在用完晚餐的時間,兩人于是一個箭步躍上車,往冰淇淋店開去。
那個晚上投票結果是香草口味,當買好香草冰淇淋回到車上后,車子又秀逗了。
這位工程師之后又依約來了三個晚上。
- 第一晚,巧克力冰淇淋,車子沒事。
- 第二晚,草莓冰淇淋,車子也沒事。
- 第三晚,香草冰淇淋,車子“秀逗”。
這位思考有邏輯的工程師,到目前還是死不相信這位仁兄的車子對香草過敏。因此,他仍然不放棄繼續安排相同的行程,希望能夠將這個問題解決。
工程師開始記下從頭到現在所發生的種種詳細資料,如時間、車子使用油的種類、車子開出及開回的時間……
根據資料顯示他有了一個結論,這位仁兄買香草冰淇淋所花的時間比其它口味的要少。
為什么呢?原因是出在這家冰淇淋店的內部設置的問題。
因為,香草冰淇淋是所有冰淇淋口味中最暢銷的口味。
店家為了讓顧客每次都能很快的取拿,將香草口味特別分開陳列在單獨的冰柜,并將冰柜放置在店的前端。至于其它口味則放置在距離收銀臺較遠的后端。
現在,工程師所要知道的疑問是,為什么這部車會因為從熄火到重新激活的時間較短時就會秀逗?
原因很清楚,絕對不是因為香草冰淇淋的關系,工程師很快地由心中浮現出,答案應該是“蒸氣鎖”。
因為當這位仁兄買其它口味時,由于時間較久,引擎有足夠的時間散熱,重新發動時就沒有太大的問題。
但是買香草口味時,由于花的時間較短,引擎太熱以至于還無法讓“ 蒸氣瑣 ”有足夠的散熱時間。
— 2 —
而今天我要講的,是另一個故事,是一個我剛剛加入微軟,一位前輩講給我聽的,而后來每年我都要講給新員工聽的故事。
這天,工程師接到了一個客戶的電話,說他的計算機系統每到夜里就會自動重新啟動,夜夜如此,非常奇怪。
工程師幫助客戶仔細檢查了各種系統報告,發現的確重啟過,但是原因不明。
排查了一段時間,但系統還是每天一到半夜就出問題,仿佛靈異事件一般。
客戶很著急,這位工程師建議客戶,找一個人夜里守在計算機旁邊,看看系統出故障當時到底是怎么回事。客戶想了想,也就答應了,也許別無他法。
于是,客戶安排了一名 IT 人員帶著報紙,拿著相機,當晚整夜地坐在計算機旁邊,等候問題發生。如果有任何問題,這名值班人員就會用相機把屏幕照下來。
奇怪的事情發生了!夜夜重啟的系統,當晚安然度過!
工程師、客戶都在問這名值班人員做了什么,可是他卻丈二和尚摸不著頭腦地說:“我就是看了看報紙,什么也沒做啊!”
也許系統自動好了?實在想不通,大家就讓這名值班人員回去休息了。
萬萬沒想到的是,第二天晚上,系統再次出了問題,癥狀與從前一模一樣!
于是,只要客戶安排人員在計算機旁邊守候,夜夜平安;只要一夜無人,必有故障。
— 3 —
前輩講到這里,用偵探般的口吻壓低了聲音問:“你們知道,這是怎么回事嗎?”我們幾個新員工張大了嘴說不知道。
他詭異地笑了笑,接著說:關鍵的確就在那個值班人員身上。
后來聰明的工程師仔細排查,分析到底那個值班人員有意、或無意做了什么,保護了系統。
終于發現,原來問題的根本原因是“空調”!!!
這個客戶的機房原來平常是不開空調的。但是每當值班人員守夜的時候,因為機房太熱,他就會打開空調看報紙,一直到第二天清晨。
如果沒有開空調,機器的 CPU 過熱就會出問題,這個問題自從入夏就反復發生;打開空調,系統就會安然無恙。
前輩用一句話對這個故事做了總結“:做技術的,不要搞封建迷信活動,凡事皆有原因,相信科學。
“不要搞封建迷信活動”,就成了我那段時間的座右銘。
最后的話
不論是通用汽車“香草冰淇淋”事件,還是微軟“計算機重啟”故事,工程師、程序員都在探尋事件的“根本原因”。
程序員搭建的是“數字世界”的運行規則,在這個世界中,從來不存在“差不多”、“還可以”、“就這樣吧”......
每一行代碼,都必須精準;每一次勘誤,都必須直達根本原因。即使 “996”,也從未放松標準。
正是因為程序員如此品質,才有了我們每天在互聯網世界暢游。
今天,借1024程序員節的機會,讓我們對所有程序員說聲:謝謝!
























