摘要:黑客與畫家的相似之處、創業與軟體設計的思考等。
第二章・黑客與畫家#
黑客與畫家都是創作者#
- 與作曲家、建築師、作家一樣,黑客和畫家都是試圖創作出優秀的作品。他們本質上都不是在做研究,雖然在創作過程中,他們可能會發現一些新技術。
"時間" 是唯一有效的外部考核#
- 經過歲月的洗禮,優美的東西生存發展的機會更大,醜陋的東西往往會被淘汰。不幸的是,這種考核需要的時間可能比一個人的生命還要長。
- 塞繆爾・約翰遜說過,人們對一個作家的評價,需要 100 年才能達成一致。你必須先等他的那些有影響力的朋友都死了,然後再等他的追隨者都死了,才能對他有一個公正的評價。
創業公司的戰場在新興領域#
- 你(創業者)很難攻入城堡與對手(大公司)面對面地徒手搏鬥,比如,就算寫一個比微軟的 Word 更好的文字處理軟體不是難事,但是微軟公司有自己的城堡,它的操作系統是壟斷的,你根本無法對它構成威脅,它甚至都不會注意到你的存在。
- 真正競爭軟體設計的戰場是新興領域的市場,這裡還沒有人建立過防禦工事。
價格由供給和需求共同決定#
- 所有創作者都面臨這個問題:好玩的軟體的需求量,比不上解決客戶煩惱問題的軟體的需求量。在小劇場裡演出的酬勞,比不上穿著卡通大猩猩服裝、在展覽會上為廠商站台的酬勞。寫小說的回報比不上寫廣告文案的回報。開發程式語言的收入,比不上把某些公司老掉牛的資料庫連上伺服器的收入。
找份 "白天工作" 解決生計問題#
- 幾乎所有的創作者在職業生涯的早期都有一份 "白天工作"。畫家和作家尤其顯著。如果幸運的話,你能找到一份與你的 "真正工作" 非常相關的 "白天工作"。音樂家似乎常常是在唱片行工作。同樣地,鑽研某種編程語言或操作系統的黑客,很可能會得到一份使用這些工具的 "白天工作",然後在其餘時間開發優美的軟體。
軟體的部分功能就是解釋自己#
- 為了寫出優秀軟體,你必須假設用戶對你的軟體基本上一無所知。你要明白,用戶第一次使用你的軟體的時候,不會預先做好功課,他們沒有任何準備就開始用了,所以軟體的使用方式最好能符合用戶的直覺,別指望用戶去讀使用手冊。
更多・精妙的表達#
-
黑客搞懂 "計算理論" 的必要性,與畫家搞懂顏料化學成分的必要性差不多大。
-
所有那些看不見的細節合併在一起,就使得這樣東西產生了驚人的效果,仿佛上千個細微的聲音都以同一個音調在歌唱。
-
如果黑客只是一個負責實現領導意志的技術工人,職責就是根據規格說明書寫出代碼,那麼他其實與一個挖水溝的工人是一樣的,從這頭挖到那頭,僅此而已。
-
一頁寫滿了數學公式的紙真是令人印象深刻啊。小窍門:用希臘字母表表示變量名會令人印象更深刻。