優(yōu)秀的黑客養(yǎng)成了一種質疑一切的習慣。
第一章 為什么書呆子不受歡迎
任何一種藝術,不管是否重要,如果你想要在該領域出類拔萃,就必須全身心投入。
真正的世界之所以能友好的對待書呆子,并非在于它是由成年人組成的,而在于它的龐大規(guī)模使得你做的每件事都能產生真正意義上的效果。
幾乎任何團體都存在等級關系。成年人形成的團體一般是因為存在某個共同目標;學生內部形成的團體雖然沒有共同目標,但是等級是憑空創(chuàng)造出來的。
第二章 黑客與畫家
“做什么”和“怎么做”不應該分的太開。黑客的最高境界是創(chuàng)造規(guī)格。
創(chuàng)造優(yōu)美事物的方式往往不是從頭做起,而是在現(xiàn)有成功的基礎上做一些小小的調整,或者將已有的觀點用比較新的方式組合起來。
名望有很大的隨機性。
書上說,調試(debugging)是最后的步驟,用來糾正打字的錯誤和疏忽。可是我的工作方法看上去卻像編程就是在調試。其實這個方法有一個正式的名字:打草稿,你把整個程序想清楚的時間點應該是在編寫代碼的同時。
編程語言首要的特性應該是允許動態(tài)擴展。編程語言是用來幫助思考程序的,而不是用來表達你已經想好的程序。
大學和實驗室強迫黑客成為科學家,企業(yè)強迫黑客成為工程師。大公司為了避免設計上的災難,選擇了減少設計結果的標準差。
真正競爭軟件設計的戰(zhàn)場是新興領域的市場,這里還沒有人建立過防御工事。只要你能做出大膽的設計,由一個人或一批人同時負責設計和實現(xiàn)產品,你就能在這哭戰(zhàn)勝大公司。
如果你不愛一件事,你不可能把它做的真正優(yōu)秀,要是你很熱愛編程,你就不可避免的會開發(fā)你自己的項目。
大多黑客從實踐中學習編程。應該定期地從頭開始,而不要長年累月地在一個項目上不斷工作,并且試圖把所有的最新想法都以修訂版的形式包括進去。
黑客的出發(fā)點是原創(chuàng),最終得到一個優(yōu)美的結果;而科學家的出發(fā)點是別人優(yōu)美的結果,最終得到原創(chuàng)性。
黑客可以通過觀看優(yōu)秀的程序學會編程,不是看它們的執(zhí)行結果,而是看它們的源代碼。應該預先承認規(guī)格設計是不完美的,在編程的時候,就可以根據需要當場修改規(guī)格,最終會有一個好的結果。
過早優(yōu)化是一件危險的事情。堅持一絲不茍,就能取得優(yōu)秀的成果。因為那些看不見的細節(jié)累加起來,就變得可見了。
消滅bug的過程就像解一道數學題,已知許許多多的約束條件,你只要根據條件對方程求解就可以了。
共同開發(fā)軟件的共同做法是,將項目分割成嚴格定義的模塊,每一個模塊由一個人明確負責,模塊與模塊直接的接口經過精心設計。
程序寫出來是給人看的,附帶能在機器上運行?!獙W會“換位思考”
第三章 不能說的話
想要做出優(yōu)秀的作品,你需要一個什么問題都能思考的大腦,尤其是那些似乎不應該思考的問題,你的大腦也要養(yǎng)成思考它們的習慣。
智力越高的人,越愿意去思考那些驚世駭俗的思想觀點。
自由思考比暢所欲言更重要。
第五章 另一條路
如果互聯(lián)網軟件能夠擊敗桌面軟件,一定是應在更方便這方面的優(yōu)勢。
互聯(lián)網軟件的發(fā)布規(guī)則是:它運行不了,你就無法發(fā)布;一旦它能運行了,你就可以立即發(fā)布。
發(fā)布軟件第一年后就不必每分鐘都盯著服務器了,但是對新變動的部分一定要密切關注。不要在半夜里發(fā)布代碼然后回家睡覺。
管理企業(yè)只需要記住兩點:做出用戶喜歡的產品,保證開支小于收入。
如何制作出用戶喜歡的產品?從制造簡潔的產品著手,首先要保證你自己愿意使用,然后迅速做出1.0版本,并不斷加以改進,整個過程中密切地傾聽用戶的反饋。低端的用戶要求簡化操作和清晰易懂,高端的用戶要求你增加新功能。
不要被大公司嚇到,你能做到它做不到的事情,正如它能做到你做不到的事情已有。開發(fā)互聯(lián)網軟件不需要得到任何人的許可,沒有人能夠阻止你。
第六章 如何創(chuàng)造財富
通過創(chuàng)造有價值的東西在市場上得到回報,從而致富。我們選擇創(chuàng)業(yè),不僅在于合法,還在于簡單:你只要做出別人需要的東西就可以了。
在大公司中,你只要一般性的努力工作,就能得到意料之中的心水。但是,現(xiàn)實是你在工作上投入的精力越多,就越能產生規(guī)模效應。
創(chuàng)業(yè)公司的真正意義是:你與其他愿意更努力工作的人一起組成一個團隊,共同謀取更高的回報。
收購最難的地方就是讓買家真正拿出錢。大多數時候,促成買方掏錢的最好方法不是讓買家看到有獲利的可能性,而是讓他們感到失去機會的恐懼。
創(chuàng)造人們需要的東西,也就是創(chuàng)造財富,所以要關注用戶數量
第七章 關注貧富分化
財富與金錢是兩個概念。金錢只是用來交易財富的一種手段,財富才是有價值的東西,我們購買的商品和服務都屬于財富。
第九章 設計者的品味
美感是第一道關卡。丑陋的數學在世界上無法生存。
好設計是簡單的設計,是永不過時的設計,是解決主要問題的設計,是啟發(fā)性的設計,有點趣味性的設計,是艱苦的設計,是看似容易的設計,是對稱的設計,是模仿大自然的設計,是一種再設計,是能夠復制的設計,常常是奇特的設計,是成批出現(xiàn)的,常常是大膽的設計。
第十章 編程語言解析
一個操作所需的代碼越多,就越難避免bug,也越難發(fā)現(xiàn)它們。
第十二章 拒絕平庸
選擇使用哪一種技術的時候,你不能考慮別人的做法,只能考慮什么樣的技術能最好的完成工作。
第十五章 設計與研究
設計與研究的區(qū)別看來就在于,前者追求“好”,后者追求“新”。優(yōu)秀的設計不一定很“新”,但必須是“好”的;優(yōu)秀的研究不一定很“好”,但必須是“新”的。
讓用戶滿意并不等于迎合用戶一切要求。用戶不了解所有可能的選擇,也經常弄錯自己真正想要的東西。做一個好的設計師,應該關注用戶,以用戶為中心,找出用戶真正的需求。