《黑客與畫家》讀書筆記

日期:2019年6月10日

書名:《黑客與畫家》

進度:15%

讀書筆記:

1. 保羅·格雷厄姆的創業公式是:#1. 搭建原型。#2. 上線運營(別管bug)。#3. 收集反饋。#4. 調整產品。#5. 成長壯大。

2. “你需要傾聽用戶的聲音,琢磨他們需要什么,然后就去做。” Make something people want.

3. “創造優美事物的方式往往不是從頭做起,而是在現有成果的基礎上做一些小小的調整,或者將已有的觀點用比較新的方式組合起來。這種類型的工作很難用研究性的論文表達。”


日期:2019年6月21日

書名:《黑客與畫家》

進度:35%?

讀書筆記:

幾個畫畫與編程想通的點:

1. 關于范例。怎么學畫畫呢?可以臨摹大師的作品。作家可以靠總結和模仿別人的文章學寫作。程序員也可以通過看優秀的程序學會編程。這么說來,開源的運動讓學編程的難度大大降低了。

2. 關于修改。一幅畫從構思、草圖到填入細節,中間可能會經歷多次修改。作者認為,編程也應如此。作者也因此反對過早優化和過早設計,認為動態類型語言更具靈活性。

3. 關于注重細節。達芬奇的《女性肖像》(Ginevra de' Benci)(現保存在美國國家美術館)的背景畫的非常細致。他仔細地畫出了樹枝上的每一片葉子。也許沒人會認真看。但達芬奇依然一絲不茍,絕不降低對自己的要求。同樣地,優秀的軟件也要求對美的狂熱追求。優秀軟件沒人看見的內部也是優美的。“堅持一絲不茍,就能取得優秀的成果。因為那些看不見的細節累加起來,就變得可見了。”

4. 關于創新。黑客和畫家一樣,是創新性的工作,工作起來是有心理周期的。而且,他認為,消滅bug是輕松的工作內容。就像解一道數學題,已知許許多多的約束條件,你只要根據條件對方程求解就可以了。你的程序應該能產生X結果,但是卻產生了Y結果。哪里出錯了?

5. 關于合作。許多教堂的壁畫都是多人一起合作畫完的,每個人負責畫其中的幾個人物。米開朗基羅堅持一個人畫完了羅馬的西斯廷大教堂(Sistine Chapel)天頂壁畫中的許多人物,還被認為特別死心眼兒。軟件開發也需要合作,不過要分工明確,每個模塊都要嚴格明確負責人(owner),若合作過頭,沒人真正負責,代碼就沒人管理,全是冗余代碼,就像公用儲物間一樣臟亂。

6. 關于考慮用戶的人性需要。大多數畫作是為人類用戶而創作。大多數軟件是為人類用戶準備的。為了吸引用戶,你必須理解用戶需要什么。比如,幾乎所有最偉大的繪畫作品都是畫人的,因為人類總是對自身感興趣。只有時刻考慮到用戶的人性需要,站在用戶的角度思考問題,換位思考,才能做出偉大的產品。“換位思考”并不意味著你要做自我犧牲。了解別人對于事情的看法,并不代表你為他的利益服務。某些情況下,比如打仗的時候,了解對手正是為了打擊對手。以自我為中心的人很難設計出優秀軟件。

7.《計算機程序的結構與解釋》一書的卷首語:程序是寫出來給人看的,附帶能在機器上運行。

"Programs must be written for people to read, and only incidentally for machines to execute."

- Abelson & Sussman,?SICP, preface to the first edition


日期:2019年6月25日

書名:《黑客與畫家》

進度: 46%?

讀書筆記:

1. 管理企業其實很簡單,只要記住兩點就可以了:做出用戶喜歡的產品,并保證開支小于收入。

2. 致富的最好方法就是為社會創造財富。創造財富的最好方法就是創業,通過創造有價值的東西在市場上得到回報,從而致富。

3. 財富才是你的目標,金錢不是。金錢是財富的一種簡便的表達方式。金錢是專業化的副產品。

4. 公司就是許多人聚在一起通過創造人們需要的東西來創造財富的地方。


日期:2019年6月26日

書名:《黑客與畫家》

進度:49%?

章節:工作是什么?

1. “在工業化國家,一個人至少在20歲前,總是從屬于這樣或那樣的某個組織。經過這么多年,你已經習慣了自己屬于這樣一群人,早上全部起床,都來到同樣幾幢建筑物,開始做正常情況下沒興趣做的事情。這樣的組織變成了你身份標志之一:姓名、年齡、頭銜、組織名稱。如果你要做自我介紹或者他人需要描述你,結果無非就是,張三,10歲,某某小學的學生,或者,張三,20歲,某某大學的學生。”

2. 雖然公司和學校都是類似的社會組織,但他們本質上有很大區別。

3. “公司的一切行為的目的都是盈利,從而生存下去。創造財富是大多數公司盈利的手段。”

4. 財富就意味著人們需要的東西。幾乎所有情況下,公司的存在目的就是滿足人們的某種需要。

5. 一個大學畢業生總是想“我需要一份工作”,別人也是這么對他說的,好像變成某個組織的成員是一件多么重要的事情。更直接的表達方式應該是“你需要去做一些人們需要的東西”。即使不加入公司,你也能做到。公司不過是一群人在一起工作,共同作出某種人們需要的東西。真正重要的是做出人們需要的東西,而不是加入某個公司。

6. “大公司會使得每個員工的貢獻平均化,這是一個問題。我覺得,大公司最大的困擾就是無法準確測量每個員工的貢獻。大多數時候它只是在瞎猜。在大公司中,你只要一般性地努力工作,就能得到意料之中的薪水。你不能明顯無能或懶惰,但是誰也沒覺得你會把全部精力投入工作。”

7. 這是因為大公司無法準確測量你的貢獻。銷售員是一個例外,他們產生的收入很容易測量。除了銷售員,大公司的高級管理職位的影響也是可測量的。但是公司不可能對每個人都像銷售員那樣付薪。在大公司,個人的表現無法單獨測量,公司里其他人會拖累你。

8. “要致富,你需要兩樣東西:可測量性和可放大性。你的職位產生的業績,應該是可測量的,否則你做的再多,也不會得到更多的報酬。此外,你必須有可放大性,也就是說你做出的決定能夠產生巨大的效應。”

9. 看是否存在可放大性,那就看失敗的可能性,因為可放大性伴隨著風險。

10. 小團體=可測量性? 高科技=可放大性?

11. “創業公司為每個人提供了一條途徑,可以同時獲得可測量性和可放大性。因為創業公司是小團隊,所以具備可測量性。因為創業公司通過發明新技術盈利,應用了杠桿效應,所以具備可放大性。”

12. “什么是技術?技術就是某種手段,就是我們做事的方式。如果你發現了一種做事的新方式,它的經濟價值就取決于有多少人使用這種新方式。技術就是釣魚的魚竿,而不是那條魚。這就是創業公司與餐館或理發店的區別。”

13. “選擇公司要解決什么問題應該以問題的難度作為指引,而且此后的各種決策都應該以此為原則。” Viaweb的一個經驗法則就是“更上一層樓”。“假定你是一個手腳敏捷的小男孩,身后有一條壯碩的大狗正在追你。你跑到樓梯口,這時應該上樓還是下樓?”如果下樓的話,大狗可能跑得跟你一樣快。上樓的話,大狗的龐大身軀就將成為劣勢。不錯,跑上樓你會比較吃力,但是大狗會感到更吃力。” 在實際操作中,這就意味著我們故意選擇那些很困難的技術問題。我們很樂于迫使那些又大又慢的競爭對手跟著我們一起走進沼澤地。創業公司就像游擊隊一樣,喜歡選擇不易生存的深山老林作為根據地,政府的正規軍無法追到那種地方。這不僅是創業公司運作的好方法,更是創業公司的本質。VC知道這個道理,稱之為進入壁壘(barriers to entry)。這關系到別人復制你的模式是否很困難,也就是說,你為競爭對手設置的壁壘有多高。如果你的模式很容易模仿,大公司看到了,會做出自己的版本,再加上它們的品牌、資本、經銷能力,一夜之間就把你的市場全部搶走。那時你就像來到開闊地帶的游擊隊,會被正規軍一舉殲滅。

14. 設置“進入壁壘”的方法之一就是申請專利。但是專利的保護程度可能不高。競爭對手也通常能找到繞過專利的方法。

15. 俗話說得好,最好的防御就是進攻。如果你開發出來的技術是競爭對手難于復制的,那就夠了,你不需要依靠其他防御手段了。

16. “選擇難的那個”也是很好的處事原則。如果你有一難一易兩個選擇,就選較難的那個。如,你要在“坐在家里看電視”和“外出跑步”之間選擇。

日期:2019年6月27日

書名:《黑客與畫家》

進度: 62%?

1. 創業潛規則之一:很多事情由不得你。如,你無法決定付出多少。你的競爭對手決定了你到底要有多辛苦,而他們做出的決定都是一樣的:你能吃多少苦,我們就能吃多少苦。

2. 創業潛規則之二:創業的付出與回報雖然總體上是成正比的,但是在個體上試不成正比的。(對于很多人來說,付出與回報之間存在一個很隨機的放大因子。你努力30倍,最后得到的回報在現實中并不是30倍,而是0到1000倍之間的一個隨機數。假定所有創業者都努力30倍,最后他們得到的總體平均回報是30倍,中位數確是0。)注:平均數是算術平均值,會受到個別極端值的影響;中位數是最中間的那個值,不受個別極端值的影響。

3. 創業潛規則之三:要么贏得一切,要么徹底消失,具有大起大落的特點。如果厭惡風險,保險的做法就是在早期賣掉自己的創業公司,放棄未來發展壯大的機會,只求數量較少但是更有把握的回報。

4. 創業潛規則之四:用戶數量。用戶數量是最重要的收購動機。用戶是你證明自己創造了財富的唯一證據。用戶數量也許不是最好的測量指標,但也相差不遠了。買家關心它,收入依賴它,競爭對手恐懼它,記者和潛在用戶則會被它打動。

5. 像優化軟件一樣優化公司,用戶數量就是判斷公司表現好壞的指標。做過軟件優化的人都知道,優化難點就是如何測出系統的表現。將公司管理視同軟件優化還能幫助你避免VC擔心的另一個陷阱——開發某種產品的時間過長。(盡快拿出1.0版,然后根據用戶的反映而不是自己的猜測進行軟件優化)

6. 創業潛規則之五:滿足用戶需求。你必須時刻牢記這條最基本的原則——創造人們需要的東西(也就是創造財富)。

7. 創造財富不是致富的唯一方法。在幾個世紀前,財富的主要來源還是礦石、奴隸、農奴、土地、牲畜,而快速獲得財富的方法只有繼承、婚姻、征服、沒收。所以,很自然地,財富的名聲不好。法律(自己的財產有了保證)和工業化這兩個因素提供了促使人們通過技術革新致富的條件。如今,通過創造財富而致富已經成為了普遍的模式。每一個這樣做的人差不多都應用了同樣的訣竅:可測量性和可放大性。前者來自小團隊的合作,后者來自開發新技術。

8. 與下棋、畫畫、寫小說一樣,賺錢也是一種專門的技能。但是,出于某種原因,我們以完全不同的態度對待這種技能。我認為原因有三點。第一,我們對財富的看法,從小就被誤導了;第二,歷史上積累財富的方式大多名聲不好;第三,擔心收入差距拉大將對社會產生不利影響。

9. 財富和金錢是兩個概念。金錢只是用來交易財務的一種手段,財富才是最有價值的東西。我們購買的商品和服務都屬于財富。

10.?財富從何而來?財富是創造出來的,而且創造得不太均等。(小偷和投機者除外)當然,做出人們需要的東西并不是賺錢的唯一方法。搶銀行、索賄、壟斷市場也能搞到錢,并且是某些富豪最大的財富來源。但這些手段不能代表財富的全部。

11. 我們把由父母供給收入的模式稱為“老爹模式”。這個模式與真實世界的最大區別之一就是對勤奮工作的評價不同。在老爹模式中,勤奮工作本身就是值得的,老爹會感到很高興。但是在現實中,財富是用工作成果衡量的,而不是用它花費的成本衡量的。“不公平”這三個字就是“老爹模式”的獨門標志。

12. 中產階級的出現使得財富總量不再是一個固定不變的值,財富的分配也不再是一種零和游戲。


日期:2019年7月8日

書名:《黑客與畫家》

進度:65%

讀書筆記:

看了“設計者的品位:如何做出優秀的東西?”這一章。作者認為,優秀設計的原則是許多學科的共同原則,并提煉出了幾條好設計的標準。

1. 好設計是簡單的設計。這是因為,簡單關乎本質和真正的問題。

2. 好設計是永不過時的設計。好作品長盛不衰,具有獨特的魅力,能避開時代風潮的影響。

3. 好設計是解決主要問題的設計。好設計的主要方向是解決問題。不好的設計,大多從一開始,方向就錯了。

4. 好設計是有啟發性的設計。

5. 好設計通常是有點兒趣味性的設計。

6. 好設計是艱苦的設計。困難的問題需要艱巨的付出才能解決。不過作者也提醒,并非所有的痛苦都是值得的。世界上有有益的痛苦,也有無益的痛苦。覺得這句話也很有意思:人們常常覺得野生動物非常優美,原因就是它們的生活非常艱苦,在外形上不可能有多余的部分了。

7. 好設計是看似容易的設計。如,作家的文章讀起來流暢自如,但是背后其實經過了反復修改。在大多數領域,看上去容易的事情背后都需要大量的練習,練習的作用,也許是訓練你把刻意為之的事情變成一種自覺的行為。有時,我們的訓練只是為了讓身體養成下意識的反應。

8. 好設計是對稱的設計。對稱有兩種,重復性對稱和遞歸性對稱,遞歸性對稱就是指子元素的重復,比如樹葉上葉脈的紋路。這條同樣適用于寫作,數學和工程學。巴黎的埃菲爾鐵塔的外形是遞歸的,大塔上面還有小塔。

9. 好設計是模仿大自然的設計。大自然在長期的演化中,已經解決解決了很多設計問題。所以如果你的設計與大自然很接近,那么,他基本上不會很差。模仿大自然也是工程學的有效方法。

10. 好設計是一種再設計。專家的做法是先完成一個早期原型,然后提出修改計劃,最后把早期原型扔掉。

11. 好設計是能夠復制的設計。剛入門的新手不知不覺地模仿他人,逐漸熟練之后才開始創作原創性作品,最后他會意識到,把事情做對比原創更重要。等你逐漸對一件事產生熱情的時候,就不會滿足于模仿了,你的品位就進入了第二階段,開始自覺的進行原創,我想,最偉大的大師最終會達到一種超脫自我的境界。

12. 好設計常常是奇特的設計。我覺得奇特這個特點是無法培育的。

13. 好設計是成批出現的。推動人才成批涌現的最大因素就是,讓有天賦的人聚在一起,共同解決某個難題。如果你遠離一些中心和趨勢,幾乎不可能單靠自己取得偉大成果。

14. 好設計常常是大膽的設計。在任何一段歷史中,人們都會把某些荒謬的東西當做正確的,并且深信不疑。單單是無法忍受丑陋的東西還不夠,只有對這個領域非常熟悉,你才可能發現哪些地方可以動手改進。優秀作品的秘訣就是,非常嚴格的品味,再加上實現這種品位的能力。


日期:2019年7月9日

書名:《黑客與畫家》

進度:67%

讀書筆記:

今天看了“編程語言:什么是編程語言?為什么它們現在很熱門?”這一章。

1. 所有機器都有一張操作命令清單,讓你可以控制它。機器語言是計算機的操作命令的總和。

2. 匯編語言比機器語言寫起來稍微方便一點。如,機器語言的加法命令是11001101,匯編語言的加法命令是add。機器語言和匯編語言的共同問題是,只能讓大多數計算機做一些很簡單的事。

3. 使用編譯器簡便書寫的程序語言叫做高級語言。編譯器就像一個助手,把你的程序命令轉變為硬件可以理解的匯編語言。高級語言讓你能夠使用更強大更方便的命令開發程序。高級語言的另一個優點是,它使得程序更具有可移植性,要在計算機語言不同的機型上運行,只需要重寫編譯器。

4. 高級語言的兩種實現方法:編譯器和解釋器。前者先將整個程序全部翻譯成機器語言,然后再運行。后者實時的將代碼一行一行地解釋為相應的機器語言再運行。

5. 編譯器處理的高級語言代碼又叫做源碼,經過翻譯以后產生的機器碼叫做目標碼。

6. 目標碼很難讀懂,所以相當于被加密了,可以保護公司的商業秘密。但是后來出現另一種潮流:開放源碼的軟件,你可以得到源碼,并且可以不受限制的修改它。理論上你也許可以破解目標碼,但是實際上這是非常難的,另一方面軟件的授權協議一般也不允許你這樣做。

7. 開放源碼的優勢在于,可以自己動手解決bug,而且所有人都可以參與進來。所以,開源軟件就像一篇經受同行評議的論文。


日期:2019年7月10日

書名:《黑客與畫家》

進度:69%

讀書筆記:

今天看了“語言的戰爭”

1. 開發某個計算機游戲時,需要在微觀水平控制硬件,使得游戲速度最大限度提高,就可能還會用到匯編語言。

2. C語言是一種低層次語言,很接近匯編語言。大多數操作系統都是用C語言寫的,主要是因為關乎運行速度。

3. 編程語言可以變得很抽象,完全脫離硬件,但也有可能朝著錯誤的方向發展了。

4. 靜態類型語言與動態類型語言之爭是目前最活躍的議題之一。在靜態類型語言中,寫代碼時必須知道每個變量的類型。而在動態類型語言中,隨便什么時候,你都可以把變量設為任意類型的值。靜態類型語言可以防止bug并迅速生成代碼,但同時也對程序構成了限制。

5. 作者認為,現在出現了編程語言的文藝復興,每隔一段時間就出站一種新的語言,其中有一些“頭重腳輕”的語言:內核設計的不好,函數庫卻超級強大。

6. 當前的現狀是“編程語言的文藝復興”同時也是“編程語言的戰爭”。這并不矛盾,文藝復興時期是存在很多戰爭的。


日期:2019年7月11日

書名:《黑客與畫家》

進度:69%

讀書筆記:

今天看了“一百年后的編程語言:一百年后,人類怎樣編程?為什么不從現在開始就這樣編程呢?”

1. 作者認為,編程語言就像生物物種一樣,存在一個進化的脈絡,許許多多的分支最終都會成為進化的死胡同。但是,編程語言的進化與生物學進化還是有區別的,因為不同分支的語言會發生聚合。不同生物物種發生聚合的可能性很低。編程語言之所以可能出現聚合,因為它的概率空間比較小,而且它的突變不是隨機的,語言的設計者們總是有意識地借鑒其他語言的設計思想。

2. 作者認為Java的進化之路已經走到了盡頭。

3. 作者認為選擇進化的主干可能是最佳方案,因此要選擇靠近主干的語言。

4. 作者的判斷是,那些內核最小最干凈的編程語言才會存在于進化的主干上。一種語言的內核設計的越小、越干凈,它的生命力就越頑強。因為冗余的代碼會導致更多冗余的代碼,最終就被摒棄了。

5. 作者認為,軟件發展的歷史已經走過了50年,在這50年中,編程語言的進化其實是非常緩慢的。這是因為編程語言并不是真正的技術。語言只是一種書寫法,而程序則是一種嚴格符合規則的描述,以書面形式記錄計算機應該如何解決你的問題。所以,編程語言的進化速度不像真正的技術(比如交通或通信技術)的進化速度。

6. 我們基本上可以判定100年后的計算機的運行速度一定會快很多。

日期:2019年7月13日

書名:《黑客與畫家》

進度:72%

讀書筆記:

今天繼續看“一百年后的編程語言:一百年后,人類怎樣編程?為什么不從現在開始就這樣編程呢?”

作者講了自己觀察到的一個有意思的趨勢:隨著技術的發展,每一代人都在做上一代人覺得浪費的事情。

例如,30年前的人要是看到我們今天如此隨意地使用長途電話,一定會感到震驚。100年前的人要是看到一個包裹竟然也能享受一天之內穿越幾個城市的待遇,恐怕就要更震驚了。

作者總結說,對速度的追求是人類內心深處根深蒂固的欲望。浪費可以分為好的浪費和壞的浪費,作者說自己感興趣的是好的浪費,比如用更多的錢得到更好的設計。


日期:2019年7月14日

書名:《黑客與畫家》

進度:78%

讀書筆記:

1. 大公司可以相互模仿,但是創業公司就不行。我覺得很多人沒意識到這一點,尤其是一些創業者。

2. 如果你掌管創業公司,把每件事做到平均水準,就能得到平均結果。創業公司的生存率遠低于50%,所以,一直做到小公司的平均結果就意味著關門倒閉。如果掌管創業公司,最好做一些獨特的事情,否則就會有麻煩。

3. 如果你為創業公司工作,那么這里有一個評估競爭對手的妙招——關注他們的招聘職位。他們的網站上的其他內容無非是一些陳腐的照片和夸夸其談的文字,但是招聘職位卻不得不寫得很明確,反映出他們到底想干什么,否則就會引來一大批不合適的求職者。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 需要pdf文件的話留郵箱呀~ 關于本書:本書是硅谷創業之父Paul Graham 的文集,主要介紹黑客即優秀程序員...
    若君閱讀 555評論 0 2
  • 《黑客與畫家》讀書筆記作者:【美】格雷厄姆 保羅·格雷厄姆其人其事 Y Combinator (Y運算子,簡稱YC...
    Cytosine閱讀 1,185評論 0 3
  • 這是作者的一部博客文集,我覺得其中很多觀點是我從沒切換角度去思考過的,這里只是把這些觀點散列在這,無論對錯。 自我...
    binyu1231閱讀 627評論 0 1
  • 讓我們先看這樣一個問題 醫生給了病人2種藥,每種2片一共4片,醫生叮囑早、晚2種藥各吃1片,千萬不能弄混了。如果吃...
    雪兆峰年閱讀 504評論 1 4
  • 任之行關雷日精進分享 敬畏-進入-體驗-吸收-轉身用 我行一切行,我行任之行 2017-11-9第290天日精進 ...
    945740104a85閱讀 197評論 0 0