分類彙整:公眾議題

programming

寫程式不需要天份,也不需要熱情

從來沒有一個技能,曾經被神化到這個程度:

「你不但要有天份,還要有熱情,才適合寫程式。」

那些寫程式的人,好像「從小就立定志向,決定未來要寫程式了」。

缺乏其一的話,你要嘛是個假貨,要嘛走不遠,總之就是不適合。

這種深植人心的刻板印象不但大錯特錯,同時還是有害的。

隨便找幾個工程師都能證明這點。

Jacob Kaplan-Moss(Django創造者)

Jacob Kaplan-Moss的這份簡報提到:

一個平庸工程師的自白

這種關於「程式天才」的神話非常有害,一方面它把行業門檻設置得特別高,令很多人望而卻步,另一方面它也在折磨產業內的人,因為你如果不能 rocks ,就會變成 sucks ,所以不得不用一切時間來努力學習和工作,導致影響生活。…(略)…我們應該改變這種態度,寫程式只是一些技能,並不需要太多天分,它是可以學習的,而且做一個平庸的工程師不丟人,

他本人在Twitter的自介直接寫「不是真的程式設計師(not a real programmer)」,

透漏著他對這種迷思的不耐煩。

Jacob Thornton(Bootstrap作者)

在Github擁有八萬顆星的Bootstrap作者,

前Twitter、現任Medium工程師Jacob Thornton的一篇採訪也是這種迷思的反例:

Jacob Thornton痛恨電腦(Jacob Thornton Hates Computers)

當他說「我痛恨電腦」的時候,並不完全在開玩笑。…(略)…他說「我本來要去唸社會學的」

接著描述了他第一份工作的情況:

我拿到了一個遠超我能力的工作。每一天都可能被開除。所以我非常努力工作,想搞懂JavaScript,因為我不懂它到底在幹嘛。

我一生中最現實的一刻到了。整間公司的人圍在我身邊,要我做一個XHR request。我根本沒做過,我只稍微聽過而已。於是我開始打字、重新整理瀏覽器,然後什麼都沒出來。我反覆做了幾次,知道自己完蛋了,他們發現我是假貨了。接著我突然發現自己忘記加「.send()」。我加了之後再次重新整理瀏覽器,畫面成功顯示。整個團隊感覺像在說「喔,酷。」然後就各自回辦公桌了。

我在那裡坐了15分鐘。心想,就這樣。我搞定了。我不會被開除了。

這段描述一點也不像「程式天才」在職場的表現。

至於支持他一路走來的動機是什麼呢?他說:

我是一個高度在乎同儕的人,我做前端的朋友總是會告訴我哪個地方做很醜或是在哪個瀏覽器上壞掉。感覺真的很棒。我真的只想跟朋友一起寫程式,一起工作。

他本人的Twitter自介寫「computer loser」,

置頂推文是「公司裡第一爛的工程師,但是第三酷」。

這種態度跟刻板印象完全相反。

Rasmus Lerdorf(PHP之父)

Rasmus Lerdorf的言論常常引起廣泛爭議:

  • 我其實很討厭寫程式,不過我喜歡解決問題。
  • 有些人熱愛寫程式。我不懂他們為何會這樣。
  • 我不是一個真的工程師。我把東西弄一弄,弄到能跑之後就不管了。真的工程師會說「這段程式能跑,但記憶體沒管理好,我們來修好它」。我只會說,一直重新開機不就好了。

從他的言論,很難看出他對電腦本身有多少熱情。

他也跟Jacob Kaplan-Moss以及Jacob Thornton一樣,懶得對寫程式的迷思多做解釋,

乾脆直接說自己是loser、假工程師了。

David Heinemeier Hansson(Rails之父)

DHH在接受Big Think訪問時提到:

說來有點好笑。我以前寫PHP跟Java的時候,常常花時間去摸其他程式語言。到處摸看看其他程式語言…隨便什麼都好。寫PHP跟Java實在太悶了,我需要用這種方式讓自己暫時抽離。

我以前寫PHP跟Java的時候,完全不覺得自己之後會當程式設計師。

整段看起來都不像是一個「電腦天才」的自我介紹。

最後讓他愛上的不是電腦本身,而是Ruby程式語言的優雅性。

如果Ruby沒有被發明,DHH現在也許會做完全不同的事情。


這一類可以說明刻板印象大錯特錯的文章實在太多了,

看看工程師們最愛的幾個玩笑:關於工程師 59 條搞笑但卻真實無比的語錄

  • 一個人寫的爛軟體將會給另一個人帶來一份全職工作。
  • 傻瓜都能寫出電腦能理解的程式,優秀的工程師寫出的是人類能讀懂的程式。
  • 開發軟體和建造教堂非常相似——完工之後我們就開始祈禱。

如果工程師都很有天份跟熱情,這些笑話又怎會受歡迎呢。

再看看Medium上很受歡迎的學習系列文章:資深開發者給後輩的七個 Coding 學習心得

其中的幾個建議

  • 也許常常有人說你是錯的
  • 也許常常會有人跟你說「你並不是個 Coder」
  • 不要在意外表,能力才是一切

無非就是想打破這類寫程式的迷思、無意義的資格論神話。

下次又有人學到一半,開始反省自己適不適合、夠不夠資格的時候,

我只想跟他說:你就多找幾種方式學學看吧,不要抱持那種奇怪的資格論。

很多時候其實只是搞錯方法搞錯心態而已。

真的完全學不懂再放棄吧。

寫程式不需要天份,也不需要熱情。


如果您喜歡我的文章,可以在這裡訂閱。我有新想法的時候,很樂意跟你分享。

(Photo via Sano Rin, CC licensed.)

labtop

程式設計第一課:對該死的蠢電腦保持耐心

最近想學寫程式的人很多,我身邊也常常有朋友問我怎麼開始。

許多文章在談選擇工具、程式語言的注意事項。

我認為最重要的注意事項是:電腦其實很笨,和它互動需要保持耐心。

不提醒這件事的話,初學者一碰上挫折會以為自己很笨,以為「自己不適合寫程式」。

一般人常覺得寫程式就是對著電腦打一堆神奇英文,像在施展魔法一樣,只有厲害的人能做。

其實完全不是這麼回事。程式設計比較像是一直看到空白畫面、錯誤訊息,出錯、設法解決、再出錯、再設法解決、結果又出錯。不斷來回循環,慢慢取得進展而已。這就是大家常聽到工程師在講的「trial and error」。

沒跟初學者提醒這件事情,會導致他看到空白畫面就覺得挫折,看到奇怪的英文錯誤訊息就想放棄。

有些人甚至已經寫出一點東西、根本已經順利上路了,卻因為太常看到錯誤訊息就覺得「自己不適合寫程式」。

這真是誤會大了。coding本來就是用這種鳥方式在跟電腦互動。

這樣說可能還是有點籠統。那跟大家分享四個入門小訣竅吧!

訣竅一:至少要看到錯誤訊息

不管你在寫人生第一個小程式、架伺服器、還是連接資料庫,失敗之後至少要看到錯誤訊息,才知道找答案的方向。

找找看去哪邊設定,讓錯誤訊息顯示在螢幕上或是紀錄在某個檔案裡吧!

訣竅二:大量Google就對了,再不行就發問

初學程式設計會遇上一堆問題,這個時候只要不斷Google就可以解決大部份的問題(通常拿錯誤訊息去Google就有答案了)。

不要因為自己「一直在Google找答案」就覺得「自己不適合寫程式」。就算是軟體工程師依然每天在Google上找來找去。

還是解決不了,就找批踢踢看板、臉書社團之類的地方發問吧!

訣竅三:遇到瓶頸,就降低目標,從簡單的開始

不用急著把書上的範例、網路上的範例一次做對。

想在介面上做出一個按鈕卻不斷失敗嗎?那就先在介面上顯示幾個文字試試看,也許會發現別的地方弄錯了。

想把一串資料在程式間傳來傳去卻不斷失敗嗎?那就先讓它們互傳幾個數字試試看,成功了再繼續往下走吧!

訣竅四:隨便瞎搞就可以了,有興趣的部份再鑽研

初學而已,你想做的事情有完成即可。

過程中許多部份會讓你覺得很「黑箱」,覺得自己沒有全都搞懂,好像在學假的?

大可不必這樣想。你不需要在一開始就弄懂每個細節。在瞎搞中獲得樂趣與成就感即可,一些技術原理和細節,有空再慢慢查吧!

總而言之,看到錯誤訊息不要緊張,因為那其實是電腦在找你聊天呢~(溫馨❤)

不要把錯誤訊息和空白畫面視為挫敗的一種。把它視為和電腦互動的方式才對。

不相信的話,去問問身邊當工程師的朋友,問他們一天在螢幕上看到錯誤訊息幾次。

(Photo via Sano Rin, CC licensed.)

sharing

不如分享!

學生時代一起研究技術的幾個朋友,最近開始籌組co-writing blog。

他們都是極度有才華的工程師,blog上線之後一定會造福很多人。

寫blog分享的人永遠不嫌多,越多軟體工程師寫blog越好。

我從學生時代就一直這麼認為:不如分享!

讓我從三個角度解釋為什麼:

  • 排名與競爭的錯覺
  • 軟體工程師的本錢
  • 不必畏懼發表洞見

希望你看完之後,也會興起念頭:不如分享!

排名與競爭的錯覺

在職場上競爭,長期累積的個人實力,遠比短期內爭到的排名重要。

學生時代的十多年競爭排名經驗,卻是恰恰與此相反。

大學某年夏天,我見到同學拿著一份共同筆記要去影印。

我:「好厲害,你們幾個人一起做的嗎?可以借我看嗎?」

他一臉錯愕地拒絕:「共同筆記沒有在借的吧,這有公平性的問題。」

同年冬天,一個作業交不出來的朋友,臉色尷尬地問我:「作業該往哪個方向研究?」

我心想:「這傢伙是想跟我借作業吧!這好像有公平性的問題,對我不公平。」

然而,我又想了想:從這間學校離開之後,要面對的是全世界年輕人的競爭。

我今天幫助你學習,根本不害怕你反過來幹掉我,不然今天也不會是你向我請教。

但是你真的幹掉我又如何?那你一定掌握某種學習的訣竅,我到時再請教你就好了,

因為我是你的恩人,屆時你一定會無私報答我。

前者我根本沒吃虧;後者導致我變更強。穩賺不賠。

再說了,今天我排名比你前面畢業又如何?

面對全世界競爭的時候,我是用在校排名跟人競爭,還是用真正的實力跟人競爭?

最終我決定:不如分享!

從此一見到同學面有難色,作業直接遞過去:「拿去參考,要抄就抄。」

(但若被助教抓到害我零分,你就不用再跟我借了。)

更理想的期待是:如果大家都這麼做,那就是整個朋友圈一起變強、

整屆畢業生一起變強、整個國家一起變強。

軟體工程師的本錢

觀察了web programming產業一陣子,我怎麼看都是以「分享」為競爭的主舞台。

  • 若你在Stack Overflow有一萬分,業界怎麼評價你?
  • 若你在Github有一千顆星星,業界怎麼評價你?
  • 若你把洞見放在blog任人檢驗,業界怎麼評價你?

上面三點,不正是全世界軟體工程師奮力較勁的事嗎?

你在2015年,你在美好的產業:你不需要擔心技能被人學走而導致失去競爭力。

因為這行學無止盡、學習曲線沒有邊際效應遞減。

這就是軟體工程師的本錢:你只要擔心自己「分享的不夠用力」就可以了。

想找個與全世界競爭的舞台?不如分享!

不必畏懼發表洞見

不是業界大神,似乎就不應該寫blog?真是這樣嗎?

新手、中手就不應該發表洞見、暢所欲言他們的主張嗎?

國外工程師不都是互相撰文批評,然後讓圍觀的所有人一起學習嗎?

我在看一篇極具爭議的技術文章時,看到網友Zack打了很長一篇他的感想。

在我表達感激之意後,他回答:

Thanks. Writing helps me clarify my understanding.

對他來說,發表洞見不過是整理想法的一種手段。

同篇文章還有其他評論。網友Yannick Majoros留言:

Martin Fowler跟原po都只是毫無根據就愛發出噪音的幾個開發人員而已。

我看了大吃一驚,連忙追問:你哪來的資格批評Martin Fowler?你是認真的?

他回我:

我覺得他毫無學術根據。譬如說他對anemic models的抱怨就是一例。他不過就是有點經驗罷了。然後他試圖把個人意見說得像是事實一樣。如果原po把他的部落格文章寫成一本書,那就很像Martin Fowler那樣。

我根本不知道Yannick Majoros是誰、不知道他的實力、更不知道他的業界地位。

但是他這段話,對我就是極具啟發性。

讓我看完之後,更加覺得:不如分享!

(Photo via clappstar, CC licensed )

stupid

大學教授憑什麼出考古題

還在大學唸書的時候,每逢期中期末考,我就對這個問題充滿疑惑。

一直沒想通,卻也沒去請教過老師。

「為什麼考試題目照抄往年考題?」

出考古題導致的後果很明顯。

資質平庸的學生,被迫面臨抉擇:

要拿剩下的時間去死背考古題,讓自己什麼都學不到嗎?但是不這麼做就會輸給別人。

拿考古題來考試,毫無公平可言。

從國高中的段考,到基測、學測、指考、國考,

所有重要考試都嚴禁考題抄襲,否則一經披露,都會引起軒然大波。

看看幾個登上媒體的例子:

中山國中英語段考 試題爆抄襲(聯合報,2011)

教部:段考試卷 不可委外命題(立報,2010)

扯!普考抄襲特考考古題 一字不漏(TVBS,2013)

原民特考 試題抄襲成大5年前講義(自由時報,2014)

歷史爆抄襲 大考中心震怒(自由時報,2007)

如果我們無法接受國小老師、國中老師、高中老師,在任何一場重要考試照抄往年考題,

為什麼大學老師就可以?

大學教授憑什麼出考古題?

(Photo via Michiel, CC licensed)

panic

別急著用那些新奇玩意兒

一個正要用PHP開始工作的朋友焦慮地問我:同事說我應該要用NetBeans。它是一種叫IDE的東西?我查了資料,發現它提供很多功能:字詞自動補完、全文搜索…等等。但我裝了之後覺得好難用,壓力好大!

我看了看他的電腦:他用Ubuntu當作業系統、Sublime當編輯器、git做版本管理、Apache當伺服器。這些工具夠他解決幾乎所有問題了。

我問他是否看得懂那些文章提到的「優點」在說什麼?「看不太懂。」
我問他同事有否解釋要拿NetBeans來做什麼?「好像可以設定連線、好像很方便、好像歐洲人都用NetBeans。」

這讓我回想起自己踏入這行後困惑很久的煩惱:為了一個別人大力提倡、但是自己看不出來有什麼用的東西而感到焦慮。

對於這種看到新工具、新觀念、新知識而產生的焦慮,我最後養成了一種態度:隨便看看、知道有這個東西存在就好了。之後遇到瓶頸、困難時再回頭,看看它們能否解決我的麻煩。

別浪費時間煩惱這個東西到底能解決哪個問題了;也別為了這種困擾感到挫折、覺得自己很笨。

課本上的一個名詞、一個Design Pattern、一個時髦的工具、一個軟體開發方法、一個軟體測試技巧、一個抽象化思考方法、一個程式語言的某個語法…。看不出來有什麼用,就別急著用。

時間一久,你還可能發現一件更難相信的事情:你從頭到尾都是對的。

那些新奇的狗屁也許根本就有某些缺點。你第一眼就看到了,但是所有人都不去提。

國王裸體在街上走!你的眼睛說不定從來沒看錯。

我不是在說學習沒有價值,我想說的是這兩件事:

* 碰到麻煩再去學習進階的,很多時候這樣才學得透徹。

* 所有東西都可能有缺點、或是只在某些情況適用,也許你只是很早就察覺缺點。

我再換句話說吧:

當你為了新奇玩意兒感到焦慮的時候,

或許,學習它的時候未到;

又或許,那東西真的沒什麼屁用。

(Photo via Alessandra, CC licensed.)

15610455225_f60e927f88_z

工程師的缺德行為:叫朋友去學C/C++

常常看到非資訊背景的朋友問工程師:我最近想學寫程式!該怎麼入門?

通常他們會得到很多糟糕的答案:「先了解演算法」、「先弄懂資料結構」、「先認識物件導向」。

這些答案都夠糟糕了,但最糟糕的答案莫過於「從C/C++開始入門」。

(我看過最扯的建議是「去找C++ Primer Plus來看」。這本磚頭書絕對不適合一般人自學)

照著以上建議去做的朋友,大概會在兩週之內就得到滿滿的挫折感,然後認為自己「果然不適合寫程式」,也不好意思再去跟工程師講自己的狀況,最終再也不想踏入programming領域。

這些建議真是害人不淺。

資訊相關科系,是因為要接續到之後的資料結構、作業系統,所以大一從C/C++開始入門會比較連貫、才能完整學一次電腦的基本知識。

而這些想學coding的朋友,大部分只是這兩種情況:

A. 最近覺得寫網站好酷,想試試看自己能否寫個blog、或是個人網頁
B. 對工作上某些人工流程不滿意,想試試看自己能否學寫程式、用電腦解決問題

他們的願望僅此而已,並沒有打算成為電腦專家、駭客,實在沒有必要從C/C++入門。

就像點火一樣,先從零星的火苗開始、小心保護不要讓它熄滅,接著慢慢加東西進去、讓火焰慢慢成為大火。學習,除了知識/技能之外,培養成就感與熱情也是很重要的。而從C/C++入門,會讓正要萌芽的小火苗直接消滅殆盡。

我對程式設計入門的建議很簡單。
如果你是狀況A,去學PHP&MySQL,先弄一個醜醜網頁出來就可以了。
如果你是狀況B,去學Python,先弄一個能執行、能顯示幾個文字的程式就可以了。

一般人想到程式通常只想到「圖形化介面」,如果能寫出一個有介面的小玩意會非常有成就感。
那樣的話,學PHP來寫個網站、直接就是介面,絕對有趣;學Python很快就能把玩內建的tkinter函式庫、做出按鈕做出選單,樂趣無窮。

話雖如此,你到市面上找PHP或是Python的書,大概還是會落得「滿滿的挫折感然後正式放棄」的下場。

別擔心,這不是你的錯,是那些書寫得不夠好。沒有一本是真正的程式設計入門書。
那些書只想著給你知識/技能,沒有想到要培養你的成就感、保護你的熱情。

要找書的話,我只建議兩本。

狀況A,去找歐萊禮的「深入淺出 PHP 與 MySQL」(Head First PHP & MySQL)。
狀況B,去找歐萊禮的「深入淺出程式設計」(Head First Programming)。

已經出社會了嗎?去台灣大學資訊系統訓練班逛逛吧,看看時間跟課程費用能否負擔(我有經濟系背景的朋友去上過幾堂課程,學得滿開心)。

政府也有推動青年就業讚的課程,滿足某些條件還能申請補助(不過,我有朋友上過其中一堂PHP課程,印象很糟糕、覺得是業者要賺政府補助款隨便開設的課程。但畢竟是單一經驗,我還是列出來給各位參考。)

國外的線上開放課程也可以考慮。

Coursera的

人人都懂的編程課(Python)

學習編程:基礎

麻省理工的

Introduction to Computer Science and Programming

A Gentle Introduction to Programming Using Python

全部都是用Python入門。

我對程式設計入門的建議就只有這樣。你不需要知道什麼演算法、資料結構、物件導向。
什麼狗屁名詞都不需要知道。那大多只是工程師下意識地想讓你覺得他們很厲害而已。

你只要想辦法寫出一個會動的程式就可以了。所有偉大的東西都是這樣開始的。


Q1: 但是狀況A還要面對HTML/CSS耶.. 好像很難?
每個技能深入下去沒有不難的。但是HTML/CSS要入門實在不怎麼難。
就從隨便寫幾個表單或按鈕、弄個醜醜的靜態網頁出來開始吧。

Q2: 我是工程師,我能怎麼幫助朋友?
幫他們搞定環境設定吧!幫他們把最基礎卻又最給新手挫折感的環境給設定好!讓他們能用記事本跟幾個小工具就開始寫code!給他們成就感!

Q3: 那寫手機app呢?你怎麼沒提到?
我覺得手機app還滿難入門的,實在給不出有建設性的建議。不知道。不過,上面的連結也許有一些手機相關課程,不妨試試?

(Photo via Sano Rin, CC licensed.)

David-Heinemeier-Hansson

我對Rails之父的觀察

Rails之父,網路代號DHH,本名David Heinemeier Hansson。
我不認識他本人,但是從他自己的blog、他的合夥人Jason Fried的描述、媒體的採訪,我發現幾件事和想像中的不一樣。撰文和各位分享。


他本來是個有商業天賦的PHP工程師

DHH的合夥人Jason Fried在Hacker News親自寫道

我遇見DHH時他是個PHP工程師。我寫過一些PHP,能夠稍微評估他的能力。除此之外,我還喜歡他的商業素養以及平常做事的方法—都跟我很合。(*1)

他本來不覺得自己適合當程式設計師

他接受Big Think訪問時,其中這段提到:

說來有點好笑。我以前寫PHP跟Java的時候,常常花時間去摸其他程式語言。到處摸看看其他程式語言…隨便什麼都好。寫PHP跟Java實在太悶了,我需要用這種方式讓自己暫時抽離。(*2)

還有這段:

我以前寫PHP跟Java的時候,完全不覺得自己之後會當程式設計師。(*3)

閱讀程式設計的教材、範本給他很多苦悶,他無法那樣學習

他在網誌中透漏,自己沒有對電腦熱愛到能夠純粹為了學習而學習。
請參閱我之前的翻譯:Rails之父:我怎麼學會寫程式的?

他不是資工系畢業的

看他在signalvnoise部落格下方的評論,網友Ben提到:

@DHH
你沒有資訊工程學位。這說明了超多事情。

DHH在下面回應:

我其實有半個資工學位(我們系是一半商業管理、一半電腦科學)。但我沒在學校真的學到怎麼寫程式。(*4)

翻閱維基百科的介紹

從Copenhagen商學院拿到商管與電腦科學學位後,他從丹麥搬到美國。(*5)

他拿的學位等於台灣的「資訊管理學系」。

他一開始只是接案,不是決心創業

DHH以Basecamp(以前叫37signals)公司合夥人的身份跟Jason Fried合出過幾本書。
大家都知道Rails是開發Basecamp的過程中,從code中抽離出來而成的框架。
那麼一開始他是如何定位自己呢?
我寫信給Jason Fried本人,問他股權的事情。他的答覆如下:

Hi Tony-

我們最一開始沒有談股權的事。

我一開始是發案給他,之後僱用成員工。我們一起工作了好幾年才談到公司所有權的事。

-Jason(*6)


*1
I’ve done some PHP programming in the past, and I met DHH when he was a PHP programmer, so I was able to evaluate his talent at a very basic level. Beyond that, however, I liked his business mind and general approach to things – they were closely aligned with my own.

*2
It’s kind of funny; when I used to develop in PHP or the stuff I did in Java, I was always looking for something else. I was always looking for another programming language, another… just something else, in part just to distract me from being bored in the languages I was in.

*3
I was absolutely not convinced that I was going to be a programmer when I was working with PHP and Java.

*4
I actually got half a comp sci degree (my bachelor was in biz admin/comp sci), but that wasn’t where I truly learned to program.

*5
After graduating from the Copenhagen Business School and receiving his bachelor’s degree in Computer Science and Business Administration, he moved from Denmark to Chicago, Illinois, U.S. in November 2005.

*6
Hi Tony-

We didn’t talk about stock at the very beginning.

I hired David as a contractor first, then an employee. We worked
together for a few years before there was any talk about ownership.

-Jason

PeterThiel

CS183第一課:創業–關於未來的挑戰

Paypal共同創辦人、Facebook第一個外部投資者Peter Thiel,2012年在Stanford大學開課分享他創業的心得,課名為「CS183: Startup」。

美國作家Blake Masters將19堂上課內容摘錄成筆記並放在網路上:

http://blakemasters.com/peter-thiels-cs183-startup

這些筆記最後整理成書「Zero to One」,並在Amazon販售:

http://www.amazon.com/gp/product/0804139296

本文譯自於Blake Masters在部落格上的原始筆記。


CS183:創業–關於未來的挑戰

目的與前言

我們好像覺得這世界的零售業都抓狂了、批發業都發瘋了。理由很簡單:我們一直沒搞懂這個世界。最基本的挑戰就是–在商業世界或是人生都一樣–如何整合微觀與巨觀的事物去理解每件事。

人類學已經大致理解了這個世界。但是他們並不從研究中直接學到職涯發展的技巧。工程學則恰好相反,會學到許多技術細節。但是他們大概沒學到「為何」、「如何」、「在哪裡」應用他們的技術。最棒的學生、工作者、思想家會將這些問題整理成一個有力的論述。這門課就是要促進這個過程。

I.          科技的歷史

對於大部分的人類近代史來說–從17世紀晚期的蒸汽機發明一直到1960年代晚期左右–技術的變革非常巨大,幾乎可以用無情來形容。在更早之前的人類社會,人們幾乎都是以掠奪別人來賺取財富。工業革命導致的產業變化使得人們不再掠奪、而是透過貿易賺錢。

這個變化的重要性難以言喻。大概有1000億人曾經在地球上生存過。絕大多數都生活在一個停滯的社會中:成功不是藉著創造價值,而是索取而來。過去幾百年的科技進步真的是奇蹟。

對於未來最樂觀的預期發生在1960年代。人們相信著未來。他們思索著未來。許多人有極度的自信,認為之後的五十年將有史無前例的技術革新。

結果除了電腦產業之外,什麼都沒發生。人均收入持續在增加,但是成長速度大幅下滑。薪資的中位數從1973年就開始停滯。人們發現自己處在「愛麗絲夢遊仙境」式的困境中、必須更加費力的奔跑–也就是工作更長的時間–只求能待在同樣的地方。這個衰退的原因很複雜,光靠薪資數據無法解釋。但這些數據的確說明了過去200年的高速成長正在急劇減速。

II.         電腦科學發生的事情

電腦是近代科技發展減速的一個例外。Moore’s/Kryder’s/Wirth’s 定律始終靈驗,產業前景持續看漲。電腦科技隨著不斷改善的硬體以及敏捷的開發方式,成為了其他產業的某種標竿。它很明顯是矽谷生態圈的核心、驅動了現代科技的變革。也因此電腦科學成為了讓科技再次發展的起點。

III.       未來發展

A.        全球化與科技: 水平 vs. 垂直發展

發展有兩種:水平/廣泛,以及垂直/密集。水平或是廣泛發展,基本上就是複製行得通的那些東西。用一個單字來說,就是「全球化」。想想看中國50年後會是什麼樣子。保守猜測就是會很像美國現在的樣子。城市會被複製、車子會被複製、鐵路系統會被複製。某些步驟也許會省略。但總之就是在複製。

相反地,垂直或是密集發展,則代表做一些新的事情。用一個單字來說,就是「科技」。密集發展涉及了從0到1(而不像全球化是從1到n)。我們在加州之類的地方看到很多垂直發展,特別是矽谷。但我們要不斷質疑每件事。確實,很多人似乎完全只專注在全球化而非科技;譬如「已開發國家/開發中國家」這個名詞就很藐視科技,因為它暗示了現代是「已開發」、現代已到了極限。以一個社會來說,我們似乎總是會覺得科技在歷史上有某種極限存在。

值得一提的是,全球化與科技確實存在某些相互影響。不應該錯誤的用二分法區別他們。想想看從1到n得面對的資源限制問題。大概不能讓每個人都擁有汽車,那會導致生態浩劫。如果從1到n不可行,那就只有從0到1的解法了。正因如此,科技發展才極其重要,即使我們的重點是全球化。

B.         從0到1的問題

我們如此專注於從1到n大概是因為它比較容易。大家應該都承認,從0到1跟複製某個東西n次有本質上的不同,而且幾乎總是比較困難。就算嘗試走垂直路線,從0到1的過程還是得面對例外主義的挑戰;每個新東西的創辦人、投資者一定會擔心:我真的知道自己在做什麼嗎?我是不是瘋了?

舉一個政治上的例子。美國常常被認為是一個「例外」的國家。至少很多美國人堅信不疑。所以美國知道自己在做什麼嗎?還是它瘋了?每個美國人都擁有槍枝、沒人相信氣候變遷、大部分的人體重超過600磅。例外主義當然有別的一面。美國是一個充滿機會的大地。它是一個開拓新疆土的國家。它提供了新的出發點,保證有才華的人會獲得財富。每年有自認獨具天賦的大概20000人前往洛杉磯,想變成知名演員。其中當然只有很少一部分能真的如願。創業領域大概比較不像好萊塢那樣被例外主義帶來的挑戰所折磨。但它大概也無法完全避免。

C.        教育與敘事的挑戰

教垂直發展或是創新,就某方面來講本身幾乎就是個矛盾。教育本身基本上就是從1到n,我們觀察、模仿、然後重複。嬰兒並不會發明新的語言,他們學習現有的。從最一開始,我們就以複製行得通的東西來學習。

那樣沒辦法創業的。做別人在做的事大概能幫助你走30%的路。(譬如說,一定要把公司弄得很好看才行。然後才可以向創投竭力推銷。)但在某些時刻你必須從0到1–你要做些重要的事而且一定要做好–這可無從教起。想想托爾斯泰在《安娜·卡列尼娜》寫的前言,所有成功的公司都是與眾不同的;他們在不同方面理解了從0到1的問題。但是所有失敗的公司都一樣;他們搞砸了從0到1的問題。

所以研究成功企業的案例幫助很有限。PayPal跟Facebook是做起來了。但是很難得知過程中哪些不可或缺。下一個偉大企業大概不會是線上支付公司或社群網站。絕不能對同一個故事著墨太多。所以商學院的案例研究方法比較像個神話,幫助不大。

D.        決定論 vs. 非決定論

有關發展的一個困難問題就是如何評估一個冒險的成功機率。在從1到n的範疇下,那只是統計問題。可以分析然後預測它。但在從0到1的範疇下,那就不是統計問題了;樣本數為1的標準差是無限大。沒辦法做統計分析;統計上來說,我們一無所知。

我們很常用統計的方式去思考未來。統計學告訴我們那是隨機的。我們無法預測未來;我們只能用機率的角度去想。如果市場用一種隨機步伐在走,那就沒什麼道理去算出它。

但是有另一種數學式象徵可以用:微積分。微積分式象徵想知道能否、如何去搞懂接下來會發生什麼。舉NASA跟Apollo任務為例。必須非常確定月球到底會在哪。必須替火箭規劃出足夠的燃料。諸如此類。重點就是沒人會想搭乘一個在統計上只根據機率去飛的太空船。

創業在這個程度上就像是太空計畫。從0到1必須讓決定論壓過非決定論。但有一個很實際的問題。有個詞用來描述那些宣稱能看到未來的人:先知。在我們的社會裡面,沒有真的先知。Steve Jobs很巧妙的處理了決定論與非決定論之間的分界;人們都認為他有遠見,但他沒有太貪心去猜更遠。他應該是抓了個不會太遠的距離(也因此成功了)。

運氣跟實力的問題也很重要。要區分兩者非常困難,幾乎不可能。試著這麼做很可能產生錯誤的推論。我們現在最該做的也許是點出這個問題,然後建議企業家、可能的企業家,應該要注意這個事情。

E.         密集成長的未來

關於密集成長的未來有四種理論。第一種是收斂理論;從產業革新開始,會先有一個高速成長過程,但科技會減速、成長速度會趨緩。

第二種稱之為循環理論。科技發展呈現循環;有進展,然後接著緊縮。週而復始。在過去的人類歷史這大概一直成立。但之後會不會繼續成立就很難說了;很難想像我們會以某種方式失去所有累積下來的資訊跟知識、然後必須重新探索一次。

第三種是崩壞/毀滅理論。某些科技發明將導致我們如此。

第四種是特異點理論。某些科技發展將產生人工智慧或是到達新的知識水平。

人們很容易高估收斂理論以及循環理論的可能性以及解釋能力。相對地,他們可能會低估崩壞/毀滅理論以及特異點理論。

IV.         為甚麼是公司?

如果我們希望科技發展,為什麼是公司去做這件事?畢竟,也許有可能讓整個社會的人都替政府部門工作。或是相反,所有人都是獨立承包商。為甚麼是這種介於中間的版本、包含至少兩個人、而不是地球上所有人都做一樣的事?

答案可以用Coase定理說明。公司之所以存在是因為他們最佳化了內部以及外部的協調成本。大致來說,隨著組織單位成長,它的內部協調成本也會成長。但它的外部協調成本會下降。極權政府很明顯的太大了;外部協調很容易,根本沒有成本。但是內部成本則如同Hayek以及Austrians所說的,困難又代價高昂;中央統一分配行不通。

另一方面,獨立承包商則是毫無內部協調成本,但是外部協調成本代價高昂(需要跟所有需要打交道的對象獨立簽約),幾乎累到癱瘓了。理想狀態–公司大小–就是如何找到適當比例。

V.        為甚麼是新創公司?

A.        成本的影響

大小與內部/外部協調的成本影響很大。設想遠方有個100人的公司,員工彼此都不認識。公司政策會變得很重要、員工動機全都變質。讓工作看起來做完變得比實際上有沒有做還要重要、這些成本幾乎一直被低估。如果公司有一個以上的辦公室,專業投資人要不要投資就該再想想了。嚴重的協調問題常常是從擁有多層樓辦公室這樣乍看之下微小、無害的事情開始的。聘請顧問並且試著將關鍵專案外包也是一個嚴重警訊,理由類似。儘管過去40年的確減少了協調成本–這也說明了為什麼企業似乎比以前更小了–整體來說依然太過低估了。這些成本始終很高,值得我們努力去思考。

Path限制使用者只能擁有最多150個「朋友」就闡述了這種觀點。古代部落總有很明顯的大小上限,幾乎不太會超過。新創公司重要之處就在於他們很小;如果一間企業的大小與複雜度就像企業內人數的平方值,那新創公司就處於一個獨特的位置,可以減少人際、內部成本並因此能把東西做完。

大家熟知的Austrian批評也與此吻合。就算一台電腦能夠很嚴密的把一間公司面對的所有經濟問題都考慮進去(說明白點,根本沒辦法),那還是不夠。想考慮所有成本,還必須把人類的不理性、情緒、感受、以及互動算進去。電腦幫得上忙,但資訊還是不夠。如果我們真有全部資訊,也不知道怎麼利用這些資訊。所以在實務上,公司終究是有個固定大小。

B.         為什麼要創業?

這個問題最簡單的答案有點負面:因為你無法在現存的組織裡面發展新科技。在大公司、政府、或是非營利組織裡會遇到一些問題。他們可能無法理解財務需求:被官僚體系癱瘓的政府會付某些人太多的薪水、同時又付給某些人太少的薪水。不然就是這些組織無法處理個人的需求:你在大官僚體系很難得到尊重、名譽、鑑別度。有使命感的人容易想從0到1。你只有在被一群想從0到1的人環繞時,才有可能真的從0到1。這只會發生在新創公司,大公司或是政府都辦不到。

為了金錢而去創業不是一個好主意。研究顯示更多錢會讓人們更快樂,但在每年$70000到達極限。超過之後,更高收入帶來的邊際效應或多或少會被其他因素抵銷(壓力,高工時,等等。就算不考慮這些,金錢的邊際效應也很自然會遞減。)

也許想被紀念、出名會是比較好的動機。也許不呢。成名與否是不是真的如同人們以為的那樣重要,十分有待商榷。想要改變世界應該是比較好的動機。1776-79的美國就是某種形式的新創。開創者的動機是什麼?動機很大一部份也被文化影響。在日本,創業被視為輕率的冒險。在某處當終身員工則會倍受尊敬。這種觀點背後的字面解釋就是「所有財富背後都隱藏著嚴重犯罪」。Founding Fathers是犯罪集團嗎?所有開創者都是某種形式的罪犯嗎?

C.        失敗的代價
新創公司付的薪水比大公司少。所以創辦或是加入一間新創公司代表了某種程度的財務損失。這些損失常被覺得很多。其實,並沒有那麼多。

非財務的成本其實更高。如果你參與了一間失敗的新創公司,你可能沒學到任何有用的東西。你可能只學到了怎麼再失敗一次。你可能會變得更討厭冒險。你不是在買彩券,所以你不應該認為失敗只是n次裡面1次的機率問題。股份代表的不只那樣。

從0到1的創業不只財務成本低,連非財務成本都低。你至少會學到很多,而且你大概會因為你的努力而變得更好。從1到n的創業代表了很低的財務成本,但是滿高的非財務成本。如果你試著在馬達加斯加創辦Groupon然後失敗,沒人確定會怎樣。但是那樣不好。

VI.       從何開始?

我們可以在從0到1的這個過程上問三個問題。第一,什麼東西有價值?第二,我能做什麼?第三,什麼東西還沒人做?

問題本身很直觀。第一個問題闡述了業界與學界的區別;在學界,抄襲是萬惡之首,微不足道則不是。所以很多發明晦澀難懂,而且完全沒用。沒人會在乎一間奇怪又做不出好產品的公司。第二個問題在確保你能著手解決問題;不然,也就只是嘴上說說。最後一點,也是最常被忽略的,就是原創到底重不重要。忘了它吧,我們只是在複製而已。

用一個比較智慧的說法來闡述這幾個問題:你深信什麼沒人相信的真理?

比較商業的版本則是:哪種有價值的公司還沒被人建立出來?

這些是很棘手的問題。不過你可以驗證你的答案;就像許多人正在做的,如果有人聲稱像是「我們的教育系統崩壞了,現在就得設法修復」這樣的事,你知道那不是真的(那也許是真的,但很多人並不認為)。這多少解釋了為什麼現在有這麼多非營利教育機構、教育相關的創業公司。不過,要對他們是處在科技模式還是全球化模式保持懷疑。當你的答案符合下列形式,你就做對了:

「大部分的人都相信X。然而X不是真的。」

別誤會了;這非常困難的。很少人真的弄懂從0到1的艱難之處,所以它非常罕見、獨特、微妙。但這個過程中,就算沒有成果,也能帶給你豐厚的回報。

surprised

驚人的網路行銷祕密!看到最後,我震懾了!

震撼XX全國的XX事件/小女孩/某某人!你一定要看!

34個你不可不知的OO!非常驚人!尤其是第16個!

XX國的XX事件之後,OO霸氣回應!

感動六千七百五十萬網友的XX影片!看到最後,真的驚人!

一定要知道的24個關於OO的知識,為了家人/朋友/你媽,一定要看!

 

這年頭網路行銷越來越誇張了,標題都這樣下的。

不覺得很不老實嗎。都是似是而非的標題。

點進去之後想罵人,又覺得,好像也不能罵他騙人。

(Photo via 姓名標示 Greencolander, CC licensed.)

Yingjeou_Ma

問題不是服貿好不好,是根本不相信政府說的話。

馬英九總統在今天早上發表了最新的聲明,再次強調服貿的好處、重要性與迫切性。

然後學生團體完全不接受。不管服貿聽起來多有道理、多有好處、多重要又多迫切,大家都聽不進去,因為現在根本沒人相信政府說的話。

這有點像是組織(政府)想推銷一個它認為很棒的產品(服貿),卻怎樣都沒人買帳。

這讓我想到Seth Golding(前Yahoo行銷副總裁)的一篇文章:

當公司產品賣不出去時,最重要的問題何在?

最重要的問題其實不是產品價格是否夠低、不是它是否耐用、不是它的功能是否豐富、不是打廣告的管道是否正確、不是官方網站是否夠酷,也不是公司的產品承諾是否完整。

這些都不是最重要的問題。

把產品賣給從沒買過它的人之前,最重要的問題是:他們是否相信你。

如果他們不相信你,那做再多承諾都沒用。

如果你很清楚自己的產品在幹嘛,但人們之前都沒買過你產品的話,他們很可能根本不相信你說的一切。

如果公司跨足新的領域、做一門新的生意,也會遇到同樣問題。

如果你非常確定你的產品很有價值,但卻怎樣都賣不掉,請先想想「信任」的問題。

取得信任、取得信任、取得信任。然後再去想剩下的事。

現在不管政府講什麼經濟分析、舉什麼競爭力的說明都沒有意義。大家根本不相信政府說的話。

原文出處:
http://sethgodin.typepad.com/seths_blog/2014/02/the-most-important-question.html

(Photo via Wikipedia)