駭客和畫家都是創作者

駭客和畫家都是創作者,因為他們都致力於創造美好的事物。 他們不被視為研究人員,但如果他們在創造事物的過程中發現了新的技術,那就更好了。 他們不被視為工程師,因為工程師關注的是「如何做」,而駭客和畫家則關注「做什麼」。 最好的駭客會創造規格,而不是僅僅實現規格。

  • 駭客和畫家都透過實作來學習。 大多數駭客不是透過大學課程來學習駭客技術的,而是透過自己寫程式來學習。 畫家會留下作品的軌跡,因此你可以透過觀察他們的作品按時間順序排列來觀察他們的學習過程。
  • 駭客和畫家都從範例中學習。 對於畫家來說,博物館就是一個技術參考圖書館。 駭客可以透過觀察好的程式來學習編程,不僅要看它們的功能,還要看它們的原始碼。 開源運動的好處之一是讓學習編程變得更容易。
  • 駭客和畫家都透過逐步完善來創作。 繪畫通常從草圖開始,然後逐漸填入細節。 有時最初的計劃會被證明是錯誤的,許多畫作在 X 光下會發現肢體被移動或面部特徵被重新調整。 駭客也應該以這種方式工作,因為程式規格不可能是完美的。
  • 駭客和畫家都需要對美有狂熱的追求。 如果你觀察好的軟體內部,你會發現即使是沒有人會看到的部分也很美觀。 好的軟體就像一幅精美的畫作,即使是細節也經過精心處理。
  • 駭客和畫家都需要同理心。 要做出真正偉大的作品,你必須能夠從使用者的角度看待事物。 大多數駭客為人類受眾製作軟體,為了吸引受眾,你必須了解他們的需求。 同理心可能是優秀駭客和偉大駭客之間最重要的區別。

雖然駭客和畫家有很多共同點,但他們也有一些不同之處。

  • 科學家透過實驗和習題來學習科學,而駭客則透過實作來學習駭客技術。 科學家從一開始就做完美的工作,因為他們只是在複製別人的工作,而駭客從一開始就做原創的工作,只是做得不好。
  • 大公司通常不鼓勵駭客做他們想做的事情。 大學和研究實驗室強迫駭客成為科學家,而公司則強迫他們成為工程師。 大公司希望減少設計成果的標準差,以避免災難,但這也意味著他們會失去最好的產品。
  • 軟體的報酬不如其他類型的創作。 寫小說的報酬不如為垃圾處理器寫廣告文案,駭客編程語言的報酬不如想辦法將公司的舊資料庫連接到他們的網路伺服器。

儘管存在這些挑戰,但駭客仍然可以透過從事日常工作並在工作之餘開發出色的軟體來創造美好的事物。 這就是開源駭客的意義所在。 開源可能是正確的模式,因為它已經被所有其他類型的創作者獨立證實。

駭客不應被視為科學家

將駭客歸類為科學家其實是個錯誤的標籤,因為他們的工作方式與目標都與科學家截然不同。 源碼中提到,將駭客的工作稱為科學會讓他們覺得自己應該以科學的方式行事,導致他們偏離創造美好軟體的初衷,而去追求適合寫研究論文的醜陋系統。

以下列出幾個支持駭客不應被視為科學家的論點:

  • 駭客是創作者,而不是科學家。 他們像畫家、作家和建築師一樣,專注於創造美好的事物。 他們的工作重點是設計和創造,而非科學研究和實驗。
  • 駭客透過實作學習,而不是透過科學方法。 他們從編寫程式、犯錯和除錯的過程中學習。 科學家則透過實驗和驗證假設來學習。
  • 駭客的成功標準與科學家不同。 科學家追求的是可驗證的真理和可重複的實驗結果。 駭客的成功則取決於他們創造的軟體是否美觀、實用和受歡迎。
  • 駭客需要同理心,而科學家則不一定。 為了創造出優秀的軟體,駭客需要了解使用者的需求和思維方式。 科學家則更注重客觀性和理性分析。

將駭客視為科學家會阻礙他們發揮創造力,並導致他們追求錯誤的目標。 駭客應該被視為創作者,並被賦予自由去探索、實驗和創造美好的軟體。

從畫家身上學習駭客之道

從畫家身上,駭客可以學習到許多寶貴的經驗和技巧,這些技巧可以幫助他們創造出更優秀的軟體。

  • 透過實作學習: 就像畫家透過不斷練習來提升技巧,駭客也應該透過實際編寫程式來學習。 不要害怕犯錯,從錯誤中學習,並不斷改進你的作品。 大學課程教導的編程方式與實際編程方式截然不同,駭客應該像作家、畫家和建築師一樣,在編寫程式的過程中逐步完善。
  • 從範例中學習: 就像畫家從大師作品中汲取靈感,駭客也應該研究優秀的程式碼,學習他們的設計理念和技巧。 開源運動為駭客提供了豐富的學習資源,讓他們可以輕鬆地查看和學習他人的程式碼。
  • 逐步完善: 畫家很少一次性完成作品,他們通常會從草圖開始,逐步添加細節和修改。 駭客也應該採用這種迭代的方式來開發軟體,因為一開始就追求完美的規格是不切實際的。 靈活的編程語言和抽象的設計可以幫助駭客更容易地修改程式碼。
  • 對美有狂熱的追求: 偉大的畫作不僅僅是技術的展現,更是美的追求。 同樣地,優秀的軟體也應該追求美感,即使在使用者看不到的細節上也應該精雕細琢。 程式碼的整潔度、變數命名和整體結構都體現了駭客對美的追求。
  • 同理心: 為了創作出能打動人心的作品,畫家需要了解觀眾的情感和喜好。 同樣地,駭客也需要站在使用者的角度思考問題,了解他們的需求和痛點。 具有同理心的駭客才能創造出真正優秀的軟體。

除了以上几点,畫家的工作方式也提供了一些值得駭客借鉴的经验:

  • 勇於創新: 文藝復興時期的畫家們突破了傳統的繪畫技法,創造了許多前所未有的藝術作品。 駭客也應該勇於創新,探索軟體開發的新方法和新技術。
  • 保持熱情: 畫家對藝術的熱情是他們創作的動力源泉。 駭客也應該對編程充滿熱情,並享受創造的過程。
  • 管理時間和精力: 畫家需要合理安排時間和精力,才能完成大型作品。 駭客也需要學會管理自己的時間和精力,才能持續高效地工作。

學習畫家的精神和技巧,駭客可以創造出更美觀、更實用、更能打動人心的軟體作品。

同理心是駭客成功的關鍵

在軟體開發領域,同理心指的是站在使用者的角度思考問題,了解他們的需求、痛點和期望。 根據原始資料,同理心對於駭客來說至關重要,因為它能幫助他們創造出真正優秀、以使用者為中心的軟體產品。

以下從幾個方面說明同理心對駭客的重要性:

  • 了解使用者需求: 優秀的軟體產品必須滿足使用者的需求。 具有同理心的駭客能夠設身處地為使用者著想,了解他們的目標、使用習慣和痛點,從而設計出更符合使用者需求的產品功能和介面。
  • 提升使用者體驗: 除了滿足基本需求,軟體產品還應該提供良好的使用者體驗。 同理心能幫助駭客預測使用者在使用軟體過程中可能遇到的問題和困惑,並提前採取措施,例如設計清晰易懂的操作流程、提供有用的提示和說明,以及避免使用專業術語等。
  • 建立使用者信任: 當使用者感受到軟體開發者真正關心他們的需求和體驗時,他們會更加信任和喜愛這個產品。 同理心能幫助駭客與使用者建立情感連結,讓使用者感受到產品背後的人性關懷,而不是冰冷的程式碼。
  • 促進團隊合作: 軟體開發通常是一個團隊合作的過程。 同理心不僅體現在對使用者的理解上,也體現在團隊成員之間的相互理解和尊重上。 具有同理心的駭客能夠更好地理解同事的想法和感受,促進團隊的溝通和協作,提高團隊的效率和創造力。

缺乏同理心的駭客往往會設計出難以使用、功能複雜、缺乏人性化的軟體產品。 他們可能過於注重技術細節而忽略了使用者的感受,或者無法理解使用者的需求和痛點。

如何培養同理心?

  • 多與使用者交流: 親自與使用者交流是了解他們需求和痛點的最佳途徑。 可以透過使用者訪談、問卷調查、線上論壇等方式收集使用者的意見和建議。
  • 觀察使用者行為: 觀察使用者如何使用你的產品,以及他們在使用過程中遇到了哪些問題,可以幫助你更深入地了解他們的需求和痛點。
  • 站在使用者的角度思考問題: 在設計產品功能和介面時,試著從使用者的角度出發,思考他們會如何使用這個功能,以及他們希望這個功能如何運作。
  • 不斷學習和改進: 同理心是一個需要不斷學習和提升的能力。 透過閱讀相關書籍、參加培訓課程、以及與其他開發者交流,可以不斷提升你的同理心水平。

總而言之,同理心是駭客創造出優秀軟體產品的關鍵因素之一。 具有同理心的駭客能夠更好地理解使用者需求,提升使用者體驗,建立使用者信任,並促進團隊合作。 透過不斷培養和提升同理心,駭客可以創造出更人性化、更受使用者喜愛的軟體產品。