讀《黑客與畫家》

程序寫出來是給人看的,順帶能在機器上運行

這本書是硅谷創業之父,Y Combinator創始人Paul Graham(保羅.格雷厄姆)的文集,由大牛阮一峰翻譯,Paul帶我們走進黑客的世界,討論黑客的成長、黑客對世界的貢獻、創造財富、計算機編程等,Paul自己也是一位Lsip程序員。這本書適用於所有程序員、互聯網創業者,以及所有對計算機行業感興趣的人。

總結了書中的一些觀點:

  1. 程序寫出來是給人看的,順帶能在機器上運行。
  2. 在創業公司,每天都像在戰鬥,在大公司,就像在窒息中掙扎。
  3. 金錢只是財富的一種表達方式,但財富不等於金錢,致富需要兩樣東西: 可測試性和可放大性。
  4. 致富的最好辦法是創造財富(我理解為創業),而不是掠奪。
  5. 表面上這是一個機器的時代,但是實際上是機器的設計者決定了我們的時代。
  6. 黑客的三個特點: 好玩、高智商、探索精神。
  7. 關於設計:好的設計一定是簡單的設計,是能解決問題的設計,也是模仿大自然的設計。
  8. 隨著工業化時代的來臨,手工藝人越來越少,目前還存在的最大的手工藝人群體就是程序員。
  9. 那些做出偉大作品的人,你會發現他們的共同點就是非常努力地工作。
  10. 格雷厄姆總結的創業公式:
  • 搭建原型
  • 上線運營(先跑起來,別管bug)
  • 收集反饋
  • 調整產品
  • 成長壯大

關於程序、機器:

認同好的設計一定是簡單的設計,好的設計一定是解決問題的設計這句話,編程和軟件構建是一門大學問,代碼、程序的設計也一樣,例如兩段代碼都得到同樣的結果,都能解決問題,應該尋求最優的解決方案,當然做選擇時還需考慮其它的很多因素,例如代碼的可讀性,一項研究發現,程序員在重構一段代碼時至少需要經過10個程序員的修改,重構前還需花去50%到60%的時間來搞懂他們要維護的代碼(parikh and Zvegintzov),我們是在為人寫代碼,其次才是機器,代碼最終會被機器執行,但機器才不關心你的代碼是否好讀,它更善於讀二進制指令,例如寫註釋這件事,有沒有註釋對機器來關係不大,但對下一個讀這行代碼的人影響很大,註釋跟文檔不同,寫註釋也是一件技術活,好的註釋能節省時間,差的註釋只會浪費時間,而無用的註釋只會增加後者在閱讀這段代碼時彪髒話的次數,但當人們從事創造性的工作時,好像容易忘記保存簡單的這個原則,我自己也經常會範這類錯誤,這也是為什麼很多工程師隔一段時間再回過頭去看自己以前寫的一些代碼時有那種反胃的感覺。

前段時間有人跟我開玩笑說他這幾年堅持最久的一件事就是每天都玩手機,一開始想笑,但一想還真是,手機已經像空氣、食物一樣變成了生活的一項必需品,我們對手機對WiFi對網絡的依賴已經超出了想象。在當前這個時代,每個人生活的很大一部分都離不開計算機,離不開網絡,人與機器的互動越來越多,甚至未來的人類生活更多地是人與機器的互動,人與網絡之間的互動,要想更好地跟這個世界交流,計算機是一個很好的媒介,想要了解計算機,最好的方式就是了解那些創造計算機及程序背後的人。你看到的觸控到的界面是UI、UX工程師幫你設計的,你執行的流程可能是PM幫你設定的,而你吐槽的一些bug極有可能是工程師未檢查某行代碼執行異常留下的後遺症,就像作者所說的表面上這是一個機器的時代,但是實際上是機器的設計者決定了我們的時代,創造這個產品或機器的人的品質決定了它好不好用,工程師的審美決定了這個東西能帶給用戶多大的視覺衝擊、美感。未來機器將從人類手頭奪走太部分重複性並且不需要創造性的工作,未來軟件工程師這一職業是否會消失不好說,但目前人類已經開始訓練機器從事這方面的嘗試,例如利用AI生成海報、訓練神經網絡自我解決bug...未來的機器應該會具備編程能力,自我訓練解決問題的能力。

讀《黑客與畫家》


分享到:


相關文章: