最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

陪學(xué)讀書會(huì):黑客與畫家

2022-06-08 14:07 作者:陪學(xué)產(chǎn)品經(jīng)理  | 我要投稿


黑客與畫家是硅谷創(chuàng)業(yè)之父Paul Graham 的文集,介紹優(yōu)秀程序員(黑客)的愛好與動(dòng)機(jī),書中的內(nèi)容有助于我們了解計(jì)算機(jī)編程的本質(zhì)、互聯(lián)網(wǎng)行業(yè)的規(guī)則,同時(shí)讓我們思考這個(gè)時(shí)代。


Paul Graham(保羅?格雷厄姆)介紹

1964年,保羅?格雷厄姆出生于匹茲堡郊區(qū)的一個(gè)中產(chǎn)階級(jí)家庭。父親是設(shè)計(jì)核反應(yīng)堆的物理學(xué)家,母親在家照看他和他的妹妹。

青少年時(shí)代,格雷厄姆開始編程。但他還喜歡許多與計(jì)算機(jī)無關(guān)的東西,這在編程高手之中很少見。

大學(xué)時(shí)代,保羅?格雷厄姆在康奈爾大學(xué)讀完本科后在哈佛大學(xué)獲得計(jì)算機(jī)科學(xué)博士學(xué)位。

1995年,他創(chuàng)辦了Viaweb,幫助個(gè)人用戶在網(wǎng)上開店,這是世界上第一個(gè)互聯(lián)網(wǎng)應(yīng)用程序。1998年夏天,Yahoo!公司收購了Viaweb,收購價(jià)約為5000萬美元。

之后他在個(gè)人網(wǎng)站paulgraham.com上寫了許多關(guān)于軟件和創(chuàng)業(yè)的文章,以深刻的見解和清晰的表達(dá)而著稱,迅速引起了轟動(dòng)。

2005年,他創(chuàng)建了風(fēng)險(xiǎn)投資公司Y Combinator,將自己的理論轉(zhuǎn)化為實(shí)踐,目前已經(jīng)資助了80多家創(chuàng)業(yè)公司。現(xiàn)在,他是公認(rèn)的互聯(lián)網(wǎng)創(chuàng)業(yè)權(quán)威。


黑客與畫家目錄

1.為什么書呆子不受歡迎——他們的心思在別的地方。

2.黑客與畫家——黑客也是創(chuàng)造者,與畫家、建筑師、作家一樣。

3.不能說的話——如果你的想法是社會(huì)無法容忍的,你怎么辦?

4.良好的壞習(xí)慣——與其他美國人一樣,黑客的成功秘訣就是打破常規(guī)。

5.另一條路——互聯(lián)網(wǎng)軟件是微機(jī)誕生后的最大機(jī)會(huì)。

6.如何創(chuàng)造財(cái)富——致富的最好方法就是為社會(huì)創(chuàng)造財(cái)富。創(chuàng)造財(cái)富的最好方法就是創(chuàng)業(yè)。

7.關(guān)注貧富分化——“收入分配不平等”的危害,會(huì)不會(huì)沒有我們想的那樣嚴(yán)重?

8.防止垃圾郵件的一種方法——不久前,許多專家還認(rèn)為無法有效地過濾垃圾郵件。本文改變了他們的想法。

9.設(shè)計(jì)者的品味——如何做出優(yōu)秀的東西?

10.編程語言解析——什么是編程語言?為什么它們現(xiàn)在很熱門?

11.一百年后的編程語言——一百年后,人類怎樣編程?為什么不從現(xiàn)在開始就這樣編程呢?

12.拒絕平庸——?jiǎng)e忘了你的對(duì)手與你一樣,能用任何想用的語言編寫互聯(lián)網(wǎng)軟件。

13.書呆子的復(fù)仇——在高科技行業(yè),只有失敗者采用“業(yè)界最佳實(shí)踐”。

14.夢寐以求的編程語言——一種好的編程語言,是讓黑客可以隨心所欲使用的語言。

15.設(shè)計(jì)與研究——研究必須是“新”的,而設(shè)計(jì)必須是“好”的。


黑客與畫家章節(jié)內(nèi)容節(jié)選

我讀完計(jì)算機(jī)本科以后,去藝術(shù)學(xué)校學(xué)習(xí)繪畫。許多人感到奇怪,喜歡計(jì)算機(jī)的人也會(huì)喜歡美術(shù)嗎?他們大概認(rèn)為編程序和畫畫是兩種完全不同的工作,編程需要冷靜,精密,和正確的方法,而畫畫是表達(dá)某種狂熱的情感。

這種印象是不對(duì)的,編程和畫畫有很多共同之處,實(shí)際上,在我認(rèn)識(shí)的不同類型的人中間,畫家和黑客是最相似的。

畫家和黑客的相似之處在于:他們都是創(chuàng)造者,就好像作曲家,建筑師,以及作家一樣。

他們的目的是創(chuàng)造某種美好的事物。盡管在創(chuàng)造的過程中,也許會(huì)發(fā)現(xiàn)新技術(shù),但他們的根本目的并不是研究技術(shù)。

我想黑客不得不接受名聲上的不確定性,這一點(diǎn)上, 他們和其他創(chuàng)造者沒什么不同。實(shí)際上比較起來還要幸運(yùn)一些。在編程領(lǐng)域,一時(shí)的流行風(fēng)氣雖然也有影響,但沒有繪畫領(lǐng)域那么大。

還有比別人的誤解更糟的事情。更糟的危險(xiǎn)是你可能自己誤解自己。你通常在相關(guān)領(lǐng)域?qū)ふ异`感。如果你在計(jì)算機(jī)系,很自然地會(huì)以為,編程的本質(zhì)就是實(shí)現(xiàn)計(jì)算機(jī)理論。

我讀本科的時(shí)候有一種令我很不舒服的感覺,我覺得自己應(yīng)當(dāng)多學(xué)一點(diǎn)計(jì)算機(jī)理論,可是期末考試完了不到三個(gè)禮拜,我就把那些東西全忘光了。這讓我覺得自己不夠盡責(zé)。

現(xiàn)在我認(rèn)識(shí)到我那時(shí)的想法都是錯(cuò)誤的。黑客對(duì)計(jì)算機(jī)理論的了解程度,只要達(dá)到畫家對(duì)顏料化學(xué)所了解的程度就夠了。

你應(yīng)當(dāng)知道怎樣計(jì)算時(shí)間和空間復(fù)雜度,知道圖靈機(jī)模型。也許應(yīng)當(dāng)知道狀態(tài)機(jī),至少知道這個(gè)概念,如果要寫語法解析或者正則表達(dá)式庫的時(shí)候會(huì)用得到。畫家對(duì)顏料的學(xué)問上,要記的東西比這還要多一些。

對(duì)我來說,靈感的源泉不是來自于那些掛著計(jì)算機(jī)招牌的地方,而是那些聚集著創(chuàng)造者的地方。

我從繪畫方面得到的靈感比我從計(jì)算機(jī)理論上得到的,要多得多。

打個(gè)比方。我上學(xué)的時(shí)候,學(xué)生在上機(jī)之前,要把整個(gè)程序先用紙筆寫出來??墒俏矣X得這不是我寫程序的方式。我喜歡坐在計(jì)算機(jī)前面寫程序,根本不用紙筆,好長一段時(shí)間我都感到很沮喪。

我不喜歡在紙上先寫出程序并檢驗(yàn)正確性,而是喜歡先敲一段代碼,然后慢慢敲打成型。我受到的教育告訴我,調(diào)試應(yīng)當(dāng)是檢查輸入錯(cuò)誤的最后一關(guān),而按照我的方式,程序基本上就是調(diào)試出來的。

如果那會(huì)我知道別的創(chuàng)造者-比如畫家和建筑師-的做法的話,我就早該知道這種方法的名字是:打草稿。

我可以告訴你,他們?cè)诖髮W(xué)時(shí)教我的方法是錯(cuò)的。你應(yīng)當(dāng)是一邊寫程序一邊來確定程序的走向, 這和畫家, 作家以及建筑師的做法完全一樣。

這里蘊(yùn)涵著軟件設(shè)計(jì)的真義, 認(rèn)識(shí)到這一點(diǎn), 就意味著程序語言應(yīng)當(dāng)首先要具有延展性。語言要有助于在編程中思考, 而不是僅僅表達(dá)思考的結(jié)果。

程序語言應(yīng)該象鉛筆, 而不是象鋼筆。

我們需要這樣一種語言, 我們用它來隨意涂抹。而使用靜態(tài)類型語言編程序的感覺, 就好象手放在膝蓋上, 小心翼翼握著茶杯, 正襟危坐著和一個(gè)嚴(yán)肅的老太太談話。

談?wù)搫?chuàng)造者這種話題, 我們除去了另外一個(gè)困擾的科學(xué)的問題: 數(shù)學(xué)嫉妒??茖W(xué)界的每個(gè)人暗地里都認(rèn)為數(shù)學(xué)家比自己聰明。我想數(shù)學(xué)家們自己大概也這么認(rèn)為。

反正科學(xué)家們總是把自己的作品弄得象數(shù)學(xué)論文一樣。這對(duì)物理學(xué)倒還沒什么大害, 但是你要是在自然科學(xué)上走得越遠(yuǎn), 就越發(fā)現(xiàn)這個(gè)問題的嚴(yán)重性。

如果黑客認(rèn)同創(chuàng)作者的身份, 像是畫家和作家一樣, 他們就不會(huì)受此誘惑。作家和畫家才不理會(huì)數(shù)學(xué)呢, 根本就是不相干的事情。我認(rèn)為, 黑客也應(yīng)當(dāng)這樣看。

如果大學(xué)和研究所不讓黑客做自己想做的事情, 他們還可以去公司, 可惜, 公司和大學(xué)的做法是一丘之貉。

大學(xué)和研究所要求黑客當(dāng)科學(xué)家, 而公司要求黑客當(dāng)工程師。

我也是最近才發(fā)現(xiàn)這問題的。Yahoo買了Viaweb之后, 他們問我的意向, 我一向就不喜歡商業(yè)公司, 我就說我還是想編程序。進(jìn)了Yahoo以后, 我發(fā)現(xiàn)在他們那里, 編程序的意思就是代碼實(shí)現(xiàn), 和設(shè)計(jì)沒關(guān)系。程序員就是代碼工人, 他們把產(chǎn)品經(jīng)理的愿望, 以代碼形式記錄下來。

看起來這是大公司的一貫的做法。這樣做的目的是減低工作的偏差。只有少數(shù)程序員真正懂得設(shè)計(jì)軟件, 而且這些有才能的人很不容易一下子識(shí)別出來。

所以與其把軟件的未來寄托在少數(shù)聰明人身上, 不如把軟件設(shè)計(jì)讓一個(gè)委員會(huì)來做, 程序員只管編碼實(shí)現(xiàn)。

如果你想賺錢, 那么記住我的話, 因?yàn)槲抑v的正是小公司取勝的機(jī)會(huì)。

大公司采取保險(xiǎn)的做法, 意圖規(guī)避風(fēng)險(xiǎn)。但是試圖限制這種工作效果上的震蕩的時(shí)候, 固然避免了最壞的可能但也失去了最好的。這對(duì)大公司當(dāng)然不是問題, 大公司取勝的原因不是因?yàn)榘l(fā)明了偉大的產(chǎn)品, 而是因?yàn)榉傅腻e(cuò)誤比其他大公司少而已。

如果你有辦法和一個(gè)大公司競爭某種產(chǎn)品, 這個(gè)公司的產(chǎn)品是產(chǎn)品經(jīng)理們?cè)O(shè)計(jì)的, 那么, 他們永遠(yuǎn)趕不上你。不過這樣的機(jī)會(huì)很不容易找到。你很難和大公司卷入軟件競爭, 就好比你很難和對(duì)手在城堡里徒手搏斗一樣。

寫一個(gè)比微軟的word還要好的字處理器是可能的, 但是在操作系統(tǒng)這個(gè)微軟獨(dú)占的堡壘里, 他們對(duì)你根本就不屑一顧。

軟件競爭只能在全新的市場中展開, 因?yàn)樵谀抢镞€沒有誰建立起防御工事。你有可能采取大膽的策略, 集合那些既做設(shè)計(jì)又做編碼的人, 來贏得競爭。

微軟最初就是這樣做的, 蘋果,HP也莫不如此。我想任何成功的創(chuàng)業(yè)公司都是走的這條路。

所以, 創(chuàng)造偉大軟件的一個(gè)辦法就是創(chuàng)業(yè)開公司。不過這里面還有兩個(gè)問題。

第一, 開公司以后, 除了編程序, 你需要做好多其他事情。在Viaweb的時(shí)候, 我真的希望自己能擠出四分之一的時(shí)間編程就好了。

實(shí)際上我四分之三的時(shí)間都是在做很討厭甚至很麻煩的事情。對(duì)此我深有體會(huì), 有一次當(dāng)我開完董事會(huì)去補(bǔ)牙, 坐在診所的椅子上, 我覺得簡直在度假。

還有另一個(gè)問題。寫有趣的軟件和寫賺錢的軟件, 沒多少共同之處。

設(shè)計(jì)語言是很有趣的工作, 微軟的第一個(gè)產(chǎn)品就是。但是沒人會(huì)花錢買語言。要想賺錢就得寫那種很麻煩的, 沒人會(huì)免費(fèi)干的軟件。

所有的創(chuàng)造者都會(huì)面臨這個(gè)問題。價(jià)格是供求關(guān)系決定的, 對(duì)有趣軟件的需求總是比較少,而解決一般用戶的平凡問題的需求, 總是多一些。

在高速公路邊上演出, 觀眾一定少, 在廟會(huì)搭個(gè)臺(tái)子演出, 觀眾一定多。

寫長篇小說的收入, 比不上寫廣告詞的收入, 雖然那些廣告最后的歸宿是垃圾箱。

設(shè)計(jì)一種語言的回報(bào)一定不多, 而搞定某些公司的老掉牙的數(shù)據(jù)庫和Web服務(wù)的連接問題, 回報(bào)會(huì)豐厚得多。

我認(rèn)為這個(gè)難題的答案, 是創(chuàng)造者們應(yīng)當(dāng)找一個(gè)養(yǎng)家糊口的"日常工作"。

這個(gè)名詞最初是慣于晚上演出的音樂家們使用的。它的意思是: 你做一個(gè)工作是為了賺錢, 另一個(gè)工作是因?yàn)槟阆矚g。

幾乎所有的創(chuàng)造者在他們職業(yè)生涯的早期, 都有日常工作。其中最為人所知的就是畫家和作家。

如果能賺錢的日常工作剛好是你所喜愛的工作, 那你就太幸運(yùn)了。音樂家就經(jīng)常在唱片店工作。正在用某種語言或者操作系統(tǒng)的黑客, 也應(yīng)當(dāng)找個(gè)相近的系統(tǒng)管理或維護(hù)的工作。

黑客是創(chuàng)造者, 不太像是科學(xué)家。黑客尋找靈感的地方, 不應(yīng)當(dāng)是科學(xué)領(lǐng)域, 而是其他創(chuàng)造者工作的領(lǐng)域。那么, 我們從繪畫上, 能夠得到什么啟示呢?

第一件可以從繪畫領(lǐng)域?qū)W習(xí)的,或者說可以驗(yàn)證的, 就是怎樣學(xué)習(xí)編程。繪畫都是在實(shí)踐中學(xué)會(huì)的, 編程亦然。

大部分黑客都不是因?yàn)槟畲髮W(xué)計(jì)算機(jī)課才走上編程之路的。他們13歲年紀(jì)就開始學(xué)著寫程序。即使是上了大學(xué)計(jì)算機(jī)課, 你真正學(xué)會(huì)編程, 大多也是通過自己實(shí)際寫程序。

畫家通常會(huì)留下一系列作品, 你可以從中觀察到他們?cè)趯?shí)踐中學(xué)習(xí)的過程。如果你按年代順序觀察一個(gè)畫家的作品, 你會(huì)發(fā)現(xiàn)后一個(gè)作品在前一個(gè)作品基礎(chǔ)上的提高。如果一幅畫中的某樣?xùn)|西特別出色, 你多半會(huì)在更早的作品中發(fā)現(xiàn)其發(fā)展成熟的軌跡。

我認(rèn)為大多數(shù)創(chuàng)造者都是這樣工作的。作家和建筑設(shè)計(jì)師也不例外。對(duì)于黑客而言, 我覺得這樣的做法大概比較好:

從一個(gè)大概的草稿開始起步, 不斷嘗試采納新的想法, 做修訂版,而不是連續(xù)幾年埋頭做一個(gè)題目。

創(chuàng)造者學(xué)習(xí)的另一種方法是觀摩杰作。對(duì)畫家來說, 美術(shù)館是技巧的寶庫。幾百年來, 美術(shù)館都是畫家學(xué)習(xí)和借鑒大師作品的地方, 它成為傳統(tǒng)教育方式的一個(gè)部分。觀摩杰作強(qiáng)迫畫家仔細(xì)觀察那幅畫是如何畫成的。作家也是如此。

同樣, 黑客也是通過看優(yōu)秀的程序來學(xué)習(xí)編程--不僅看它的外在表現(xiàn), 而且要看源碼。開源軟件有一個(gè)少人提及的優(yōu)點(diǎn)就是: 你很容易從中學(xué)習(xí)編程。

繪畫的過程就是不斷改進(jìn)的過程, 這是值得我們學(xué)習(xí)的另一個(gè)地方。繪畫通常從草圖開始,逐漸地添上細(xì)節(jié), 但又不僅僅是添上細(xì)節(jié)那么簡單。有時(shí)候會(huì)發(fā)現(xiàn)最初的想法是錯(cuò)的。無數(shù)的人像作品, 在x光照射之下, 會(huì)發(fā)現(xiàn)面部輪廓修改過, 嘴的位置也移動(dòng)過, 諸如此類。

這就是我們應(yīng)當(dāng)學(xué)習(xí)的榜樣, 編程也應(yīng)當(dāng)遵循同樣的做法。想要假設(shè)軟件的規(guī)格設(shè)計(jì)完美無缺, 這顯然是不切實(shí)際的。

預(yù)先接受這種現(xiàn)實(shí)對(duì)你有好處, 寫程序的時(shí)候就會(huì)有所準(zhǔn)備,隨時(shí)應(yīng)對(duì)可能發(fā)生的設(shè)計(jì)規(guī)格上的改變。

偉大的軟件對(duì)于美的追求, 也需要超人的投入。當(dāng)你仔細(xì)查看好軟件的時(shí)候, 會(huì)發(fā)現(xiàn)那些不為人注意的部分同樣優(yōu)美。

我不是說我自己寫的軟件是偉大的, 但我知道, 寫代碼的時(shí)候,要盡量寫得清晰易讀。有的程序變量名取得丑陋極了, 有的程序行縮進(jìn)亂七八糟, 讀這樣的代碼真能讓我發(fā)瘋。

如果把黑客僅僅當(dāng)作代碼工人的話, 那他會(huì)像工人挖水溝一樣從一頭干到另一頭。但是如果把黑客當(dāng)作創(chuàng)造者的話, 我們就必須考慮靈感的因素。

軟件和繪畫一樣, 都是為人而做的。黑客也應(yīng)當(dāng)像畫家一樣, 努力創(chuàng)作出偉大的作品。你必須為用戶的立場著想。

我小時(shí)候, 就聽人講要學(xué)會(huì)從別人的立場來設(shè)想。意思就是做別人想要你做的事情, 而不是做你自己想做的事情。這當(dāng)然給"換位思考"這個(gè)詞帶來了壞名聲。因此我一直不愿意這樣做。

可是, 我錯(cuò)了。換位思考確實(shí)是成功的秘密, 這并不意味著放棄自我。理解別人的觀點(diǎn), 并不是說你要按別人的興趣辦事。

在某種情況下剛好相反, 舉個(gè)例子, 打仗的時(shí)候, 理解敵人觀點(diǎn), 其目的恰好是要反其道而行之。

大多數(shù)創(chuàng)作是為人的, 你得理解人的需要。差不多所有偉大的作品主題都是人, 因?yàn)槿俗罡信d趣的, 就是人類自身。

好程序員和偉大的程序員之間的唯一的差別, 就是體察別人的能力。有些程序員很聰明, 但說到"換位思考", 則是完全的自我主義者。這樣的人不可能設(shè)計(jì)出偉大的軟件, 他們從來不懂得理解別人的觀點(diǎn)。

判斷一個(gè)人換位思考的能力如何, 最好的辦法是看他怎樣向那些不懂技術(shù)的人講解技術(shù)問題。

我們大概都見過那樣一些人, 不管多么聰明, 這件事情上卻是糟得很。如果有人問, 什么是編程語言, 他們會(huì)說, 呃, 就是一種高級(jí)語言, 能經(jīng)過編譯器處理產(chǎn)生目標(biāo)碼。高級(jí)語言?編譯器? 目標(biāo)碼? 不知道編程語言的人, 難道會(huì)知道這些東西?

軟件的目標(biāo)之一, 就是解釋自己。

你要寫出好程序, 就應(yīng)當(dāng)知道用戶對(duì)軟件了解甚少。他們用軟件時(shí), 全無思想準(zhǔn)備。如果軟件的行為剛好合乎他們的設(shè)想, 那就最好了。

別指望用戶會(huì)去讀操作手冊(cè)。這方面, 我見過的最好系統(tǒng)是早期的蘋果, 那時(shí)候還是1985年。蘋果干了所有軟件都做不了的事情, 那就是能正常運(yùn)行。

源碼同樣也應(yīng)當(dāng)解釋自己。如果讓人回憶關(guān)于編程的名言, 經(jīng)常提到的是結(jié)構(gòu)化和解釋語言初期的一句話:


程序?qū)懗鰜硎墙o人看的, 碰巧機(jī)器也能運(yùn)行。

你不但要為用戶設(shè)身處地著想, 對(duì)讀者也是一樣, 因?yàn)樽x者可能就是你自己。好多程序員寫了程序, 過半年再看, 簡直看不懂究竟是怎么回事。我就見過有幾個(gè)人因?yàn)檫@原因放棄了。

缺乏換位思考的能力仿佛是高智商的特征, 尤其在某些地方, 這都成了一種風(fēng)尚。但我不覺得真的有什么關(guān)聯(lián)。

數(shù)學(xué)和自然科學(xué)和人類感情無關(guān), 這些領(lǐng)域的人顯然都很聰明, 于是乎高智商就和"不通世故人情"掛起構(gòu)來。

事實(shí)上好多平常智商的人在這方面也不行。看看脫口秀節(jié)目里那些站起來發(fā)問的人, 那些問題問的, 真叫拐彎抹角, 主持人得重新梳理一遍, 才能搞得清是啥意思。

我們可以自信地說, 現(xiàn)在正是黑客事業(yè)的光輝年代, 在大部分領(lǐng)域, 偉大的作品誕生很早。1430-1500年代的繪畫現(xiàn)在仍難以超越, 莎士比亞彷佛生來就是戲劇家, 把這門藝術(shù)推進(jìn)到如此之高的程度, 以致于后來的劇作家都生活在他的陰影里。奧斯汀的小說, 也是如此。

一次又一次, 我們看到同樣的模式。

新的媒體誕生了, 人們熱情高漲, 短短幾代人就把它的能量發(fā)揮到極至。黑客事業(yè)似乎也正處于這樣的時(shí)期。

達(dá)芬奇時(shí)代的繪畫行業(yè)并不酷, 是他的杰作造就了繪畫行業(yè)的酷。黑客事業(yè)之未來, 全依賴我們今日之創(chuàng)造。


陪學(xué)讀書會(huì):黑客與畫家的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
建平县| 河源市| 柳江县| 鹿邑县| 湘潭县| 岑溪市| 崇州市| 兴义市| 孟津县| 彰武县| 黄山市| 三河市| 深水埗区| 柘城县| 莲花县| 临沧市| 西林县| 无棣县| 本溪市| 台南市| 荣昌县| 灵宝市| 奉新县| 夏津县| 台东县| 崇州市| 威宁| 墨竹工卡县| 牙克石市| 水富县| 柘荣县| 增城市| 永清县| 壶关县| 江永县| 平山县| 平顶山市| 苗栗市| 松阳县| 彰化市| 商南县|