Joel Spolsky在耶魯的演講無責任導讀

2021-08-22 12:48:13 字數 3562 閱讀 1055

joel spolsky

by 劉未鵬(pongba)

c++的羅浮宮(

大嘴joel

最近在耶魯作了場演講,照例是詼諧尖銳,有趣有益,目前他的blog上放出了兩部分。

因g9老大

在toplanguage

第一部分(

1. 搞it的,一定要盡早知道自己到底適不適合搞理論(phd),這可以通過去上一些很phd的課來自我評估(當年joel是無意間撞上了,那個教授在第一堂課為了證明f=!f——f是bool變數——在執行偶數次之後的值還是原來的,整堂課(還加上拖課的時間)寫了一黑板,用上了歸謬法、歸納法、窮竭法,最後絕望地用上了「研究生法」——乙個研究生在她絕望地發現忘記了某步證明的時候站起來說,「啊,對對,就是那樣證明的」…)。

2. 搞it的,一定要盡早知道自己到底適不適合搞coding。這同樣可以通過上一些很coding的課來自我評估(再次,joel當年是被逼的。當年那個教授每星期布置40個小時才能完成的coding作業,omg… 給的學分是1.5,但由於0.5只有遇到另乙個0.5才算1,否則不算(暈,5舍6入啊),同時那個系卻另外有兩個多出0.5的,結果這門課的0.5等於白拿了。orz…)

3. 對於軟體質量這個說法,要以使用者意見為核心考量。根據經濟學中的邊際效應遞減(diminishing return),在bug方面花的精力越多,得到的收益也越小。因此,將"完全無bug"作為衡量質量標準也許在一些非常極端的環境下(軍事?金融?)是有用的,然而在大多數商用軟體方面都是沒那麼重要的。

4. windows把gui作為第一類平台導致了windows上的各種應用只提供gui操作邏輯,而不提供可程式設計的非gui介面;進而導致程式設計師,比如說,沒法呼叫photoshop來進行批處理。

5. 軟體的外觀很重要:p

6. 搞軟體正確性驗證的一幫geeks腦子全都灌水了,類似於搞物理的去搞永動機。(joel的邏輯是,要驗證正確性,首先要確定"什麼是正確的",而要確定什麼是正確的,就必須先寫出乙個關於某個軟體的正確行為的嚴格定義來,這個定義必須要嚴格到...極其嚴格...才行,要能夠涵蓋所有定義的行為和未定義的行為...嚴格到其"熵"跟**自身的熵都一樣了,可以互相轉換了。這麼一搞,等於把乙個爛攤子轉成了另乙個同樣爛的攤子...無語...

7. 高水平和低水平的程式設計師文化也反映在大學的課程上,從好的大學(linux&unix加理論課程),到差的大學(visual studio 2005入門精要,21天搞定sql server啥的…)。

關於第一部分的演講,再轉一段g9

發在toplanguage上的感想:

「joel的文章一向有趣。文章裡照例不少營養。比如說軟體質量不能被自動檢測出。穿西服的在某種意義上未必不懂得什麼是軟體質量。裡面被joel鄙視的cs理論教育簡直就是我當年上學的翻版。看得我狂笑。比如說用動態邏輯證明f := not f的某個性質非常困難。比如說要寫出機器能驗證的spec難度不比寫出程式小,無非是把寫程式換成寫spec罷了。比如說"at ivy league institutions, everything is unix, functional programming, and theoretical stuff about state machines. "。記得大四時看到一門課,叫program design,就想當然地修了。哪知這門課就和那門動態邏輯課一樣,證明比程式複雜,連寫出對問題的描述都比程式複雜。一怒之下放棄。幸好我的導師見機得快,不再追求自動驗證spec,而轉為追求檢驗程式的某些性質。雖說大眾了點,但比用範疇論驗證需求這種不靠譜的研究有意思多了。」

break

continue

以下是第二部分(

1. 別做in-house(內部用)軟體,千萬別做in-house軟體,做in-house軟體不如回家賣紅薯。為什麼?做in-house軟體,你永遠沒機會把事情做對,只有機會把事情做得差不多。比如,乙個做鋁罐的廠會叫,比如說,ibm,提供程式設計師給他們做軟體,而ibm獅子大開口——300刀每小時——提供乙個學了6星期"叨耐特"的畢業生,你說雇主還會讓你慢慢磨蹭把功能完善更完善?不不,只要主要功能實現,管什麼介面,管什麼魯棒性,趕緊拍屁股走人,或者拍屁股去修補別人去年留下的爛攤子。於是,你搞出來的東西就跟狗啃的一樣而且你還不能啥啥語言酷就用啥啥語言,ruby?ajax?不不,您老還是開啟visual studio拖幾個控制項,連個把資料庫,趕緊把功能給搞定了吧。300刀一小時,你拿不到,我還是要掏腰包的。所以,忘了"程式設計的藝術"這種crap吧,忘了作為程式設計師的榮耀和自豪吧... 那些都是虛名,就像浮雲一樣... 27年以後他們會發給你你乙個紀念金錶...噢不,現在已經不給金錶了,現在,27年以後你得到的是腕管綜合症(控制項拖多了吧小樣?)。所以說啊,叫你千萬別做in-house吧,做in-house軟體是不好滴,如果做in-house軟體好我不可能不讓你做in-house軟體啊,你想做in-house軟體嗎...?

2. 別做in-house軟體。幹嘛?因為做in-house軟體,你永遠不會像做facebook那樣實現的功能跟公司命運息息相關,後者你可以花上乙個星期去搗鼓介面上的乙個小特性,因為你的產品是要給大家用的。你有機會實現真正漂亮的東東。另外,你能得到上司的重視,你的職業生涯與你的技術掛鉤。而作in-house軟體你就只能跟另外兩個人猥瑣在乙個陰暗的辦公室角落,面朝沒有窗戶的牆壁,揮汗如雨地猛敲html**;而產品經理本人則坐在寬敞明亮的大辦公室裡面晃悠。

3. 石器時代的管理理念是管理者應該告訴下屬應該做什麼。然而真正懂技術的卻是...懂技術的一幫傢伙;所以,遇到這種管理方式,你得自認倒霉,趕緊另謀出路。joel原來在微軟的時候,老是有一幫傢伙跑到應用部門的頭頭那裡爭論技術問題,頭頭便跟他們打打屁,講兩個葷段子,然後叫他們自己的問題自己搞定。這才是管理一群有頭腦的geeks的最佳辦法。而回到joel原來待的乙個叫juno的地方,那兒的頭頭卻認為管理者應該負責決定,結果呢,由於要做的決定太多,於是搞了乙個啥子"微管理",最後搞到對話方塊上的日期輸入方式都要折騰一番,orz…

--1. 最近feedburner抓取feed似乎出問題了,然而還有近200位同學通過feedburner訂閱了c++的羅浮宮(本來用fb的時候沒預料到「牆」的問題,sigh~),所以,麻煩用fb訂閱的同學轉為用下面的feedsky訂閱:-)

又或者你也可以直接訂閱原始rss(因feedsky的服務似乎也似乎時有問題):

2. c++的羅浮宮已改為全文rss輸出。

3. as always,歡迎加入我們的討論組——toplanguage

(),自從8月份建立以來,我們已經吸引了三百位同學,二千五百多條討論,想知道我們討論些什麼,參見toplanguage討論精選[一]

,精選[二

],精選[三]

,加入前請看這裡

Oracle總裁埃里森在耶魯大學的演講

耶魯的畢業生們,我很抱歉 如果你們不喜歡這樣的開場。我想請你們為我做一件事。請你 好好看一看周圍,看一看站在你左邊的同學,看一看站在你右邊的同學。請你設 想這樣的情況 從現在起5年之後,10年之後,或30年之後,今天站在你左邊的這個人會是 乙個失敗者 右邊的這個人,同樣,也是個失敗者。而你,站在中間...

請接收,耶魯智慧型鎖打造的這份限定浪漫

百年製鎖名家耶魯在上海凌空soho為情侶們舉辦了一場 鎖住愛 的主題活動。活動現場滿目是浪漫的粉紅色,愛心形狀的大型表白牆和愛心鎖架程式設計客棧營造www.cppcns.com出的浪漫氛圍迅速吸引了路人們的關注。活動過程中,情侶們可以通過完成問卷的方式獲得一塊告白牌,在告白牌寫下另一半的名字,表達對...

耶魯營銷大師 大資料將破解消費者的終極秘密

隨時隨地可以購物的結果是,不僅使用者基數變大了,而且每個使用者使用的頻次也增加了,因此增加了整體需求。萊維 多爾博士是耶魯大學管理學院教授 耶魯消費者洞察中心主任,是品牌營銷策略領域的權威專家,也是將心理學及行為經濟學原理引入消費者決策研究的領導者。在本文中,他分享了自己對數字時代消費者行為的10個...