筆記1--《黑客與畫家》
阿新 • • 發佈:2018-12-28
- 很長一段時間內我都為此事沮喪,就像小學裡老師教我怎麼拿鉛筆,我卻總是學不會的那種感覺。如果我那時看到其他創作領域,比如繪畫或者建築,我就會想到,自己的方法其實有一個正式的名稱:打草稿。我現在認為,大學裡教給我的程式設計方法都是錯的。你把整個程式想清楚的時間點,應該是在編寫程式碼的同時,而不是在編寫程式碼之前,這與作家、畫家和建築師的做法完全一樣。
- 也許對於黑客來說,採取像畫家這樣的做法很有好處:應該定期地從頭開始,而不要長年累月地在一個專案上不斷工作,並且試圖把所有的最新想法都以修訂版的形式包括進去。
- 你不能盼望先有一個完美的規格設計,然後再動手程式設計,這樣想是不現實的。如果你預先承認規格設計是不完美的,在程式設計的時候,就可以根據需要當場修改規格,最終會有一個更好的結果。
- 對於程式設計,這實際上意味著你可以把bug留到以後解決。消滅bug對我來說術語輕鬆的工作,只有在這個時候,程式設計才變得直接和機械,接近社會大眾想象中的程式設計的樣子。消滅bug的過程就像解一道數學題,已知許許多多的約束條件,你只要根據條件對方程求解就可以了。你的程式應該能產生x結果,但是卻產生了y結果。哪裡出錯了?你知道到自己最後肯定能解決這個問題,所以做起來就很輕鬆,就好像刷牆一樣,接近於休閒了。
- 聲望這個東西,總是經過漫長的時滯以後才會確立,它就像遙遠星系發出的光,經過了許多光年才能被我們看到。那些如今聲名顯赫的繪畫作品,來自於五百年前的畫家的卓越工作。在那些畫家生前,沒人像我們今天那樣看重這些作品。