偷代碼

學東西容易。化爲己有難。

我發現自己在最近的幾個項目中偷竊了其它項目的思想。當然,並不是真正的“偷”,而是瀏覽和學習你欣賞的項目和開發者,從中竊取思想。諸如設計模式,重構方法等。Chris是如何處理hub裏的命令行參數的?shell腳本和rvm上的Ruby是如何進行韋恩轉化的?
當你遇到問題,有點難度、需要你動一下腦子時,你要問“嗨,我怎麼實現這個呢?”,這是個不錯的問題入手點。

一旦你遇到這種問題,當然,你可以在Google上搜索出一篇文章,找到方案。但如果你從別人哪裏“偷”來,你會收穫兩點:

  1. 你的理解和那個特別的項目之間建立了思想上的連接。
  2. 你“擁有”了那個思想。

“擁有”你偷來的東西是一種潛移默化的過程,但你可以想象出:你花大量的時間去理解這些思想,你把它應用到解決自己的問題裏。這種思想上的過程是很有滿足感的。突然靈光一閃,你開始明白爲什麼作者要重構這個方法,爲什麼他們需要一個輔助類了。

不要誤解;能夠自己創造東西當然是最好。這是學習知識達到了另外一種完全不同的級別,大多數情況下都需要我們這樣。但有時,從他人哪裏學習優秀的經驗是一種最快的啓蒙方式——不是爲了要解決你手頭上的問題,而是要本質上理解其中的精髓。

觀察別人是如何解決你的問題的,要自己能夠理解其中體現的思想,按照自己的觀點重新塑造它,讓這思想成爲“你的”思想,你把它裝在自己的腦袋裏,以備下一個項目中使用。這也就是“學習”這個詞的另一種說法,但就在我想到這種想象的、異樣的說法時——哦,這正是幾個月前在另外一個項目中從Homebrew哪裏偷到的繼承策略嗎 —— 我接受知識的能力提高了。

一旦你對知識的吸收消化達到了這種水平,那這些外來的思想就成爲了你腦海裏捻之即來的自有思想了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章