偷代码

学东西容易。化为己有难。

我发现自己在最近的几个项目中偷窃了其它项目的思想。当然,并不是真正的“偷”,而是浏览和学习你欣赏的项目和开发者,从中窃取思想。诸如设计模式,重构方法等。Chris是如何处理hub里的命令行参数的?shell脚本和rvm上的Ruby是如何进行韦恩转化的?
当你遇到问题,有点难度、需要你动一下脑子时,你要问“嗨,我怎么实现这个呢?”,这是个不错的问题入手点。

一旦你遇到这种问题,当然,你可以在Google上搜索出一篇文章,找到方案。但如果你从别人哪里“偷”来,你会收获两点:

  1. 你的理解和那个特别的项目之间建立了思想上的连接。
  2. 你“拥有”了那个思想。

“拥有”你偷来的东西是一种潜移默化的过程,但你可以想象出:你花大量的时间去理解这些思想,你把它应用到解决自己的问题里。这种思想上的过程是很有满足感的。突然灵光一闪,你开始明白为什么作者要重构这个方法,为什么他们需要一个辅助类了。

不要误解;能够自己创造东西当然是最好。这是学习知识达到了另外一种完全不同的级别,大多数情况下都需要我们这样。但有时,从他人哪里学习优秀的经验是一种最快的启蒙方式——不是为了要解决你手头上的问题,而是要本质上理解其中的精髓。

观察别人是如何解决你的问题的,要自己能够理解其中体现的思想,按照自己的观点重新塑造它,让这思想成为“你的”思想,你把它装在自己的脑袋里,以备下一个项目中使用。这也就是“学习”这个词的另一种说法,但就在我想到这种想象的、异样的说法时——哦,这正是几个月前在另外一个项目中从Homebrew哪里偷到的继承策略吗 —— 我接受知识的能力提高了。

一旦你对知识的吸收消化达到了这种水平,那这些外来的思想就成为了你脑海里捻之即来的自有思想了。

分享这篇文章:
[英文原文:Steal the Code ]

5 Responses to 偷代码

  1. J says:

    往往有时想偷的时候,却没有人让你偷,或者说,身边没有偷的资源
    现在互联网上的资源确实丰富,但是需求者要辨别哪些有用哪些没有,也是需要一定时间的,网络信息泛滥……千篇一律,也是一个现状

    这也是一个在网络学习中,会遇到困难的地方,别人的东西也会有错的,这就无形的影响了自己的判断

  2. l says:

    非常同意作者的观点,深有同感!经典的东西要反复阅读才能透彻理解,化为己有。

  3. lunlunl 对这篇文章的反应是赞一个
  4. wchinwei 对这篇文章的反应是赞一个
  5. 李艳丹 对这篇文章的反应是赞一个

发表评论

电子邮件地址不会被公开。 必填项已用*标注