微信号:programmer_club

介绍:程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!

如何正确地“偷”代码?

2015-12-24 21:59 程序员之家

原文:http://zachholman.com/2010/10/steal-the-code/

译文:http://wkee.net/post/steal-the-code.html

来源:程序姬


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


我发现自己在最近的几个项目中偷窃了其它项目的思想。当然,并不是真正的“偷”,而是浏览和学习你欣赏的项目和开发者,从中窃取思想。诸如设计模式,重构方法等。Chris是如何处理hub里的命令行参数的?shell脚本和rvm上的Ruby是如何进行韦恩转化的?


当你遇到问题,有点难度、需要你动一下脑子时,你要问“嗨,我怎么实现这个呢?”,这是个不错的问题入手点。


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


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

2. 你“拥有”了那个思想。


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


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


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


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

 
程序员之家 更多文章 我们这一代人的困惑 神剪辑,揭秘程序员加班内幕,不能看,看完想笑又想哭! 美国12位创新型程序员:让科技永远改变 说说怎么写clean code 500,000+年薪程序猿出身哪里 猎聘网揭秘前十大学校
猜您喜欢 pt-osc改表导致数据不一致案例分析 二叉树迭代器算法 盛夏之约 | 八月手机淘宝技术分享预告 Neutron新进展|DragonFlow在Mitaka版本中的Roadmap IBM与Linux基金会联手推动区块链技术发展