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