如何理解Linus Torvalds的“什么才是优秀程序员”的话
2012-10-09 16:33
1001 查看
转51cto
Linux的创始人Torvalds在一次演讲中有一段涉及“什么才是优秀程序员”的话:“烂程序员关心的是代码。好程序员关心的是数据结构和它们之间的关系。” ……
Linux的创始人Torvalds在一次演讲中有一段涉及“什么才是优秀程序员”的话:
这句话听起来很直白,但未必所有人都能理解其内在的涵义。在国外知名的问答网站stackexchange上有人对这句话提出了自己的困惑:
能问出这样的问题需要勇气,提问的人自己也自嘲的说:我不理解这句话也许不是一个好的征兆。但同一句经典言论,100个阅读会得到100种不同的领悟,正像stackexchange网站上各式各样不同的回答一样。下面我们来看看最被认可的一种理解吧。
如果看一下Torvalds在此句话之前说的话,可能会对我们理解它有帮助:
他说的意思是,好的数据结构设计能使代码更容易设计和维护,而再好的代码也不能弥补糟糕的数据结构带来的危害。
如果你不理解他举的git的例子,我再解释一下,很多的版本控制软件都会有规律的修改它们的数据格式来支持增加的新特征。当你升级软件来获得新功能时,你通常需要一些工具来转换到相应的数据库格式。
举个例子,当分布式版本控制系统刚刚开始流行时,很多人不知道,为什么相对那些集中式的版本控制软件,分布式模式下的代码合并会如此的干净整洁。答案无它,分布式的数据结构更适合这样的任务。我相信集中式的合并算法也在快速的改进,但它需要很长的时间才能赶上,因为老的数据结构限制了他们使用的某些算法,而新的数据结构破坏了很多现有的代码。
相比较而言,git里的新特征在不断涌现,但它底层的数据结构几乎没有什么变化。先考虑数据结构,你的代码会自然的整洁起来。
原文链接:http://www.aqee.net/torvalds-quote-about-good-programmer/
Linux的创始人Torvalds在一次演讲中有一段涉及“什么才是优秀程序员”的话:“烂程序员关心的是代码。好程序员关心的是数据结构和它们之间的关系。” ……
Linux的创始人Torvalds在一次演讲中有一段涉及“什么才是优秀程序员”的话:
“烂程序员关心的是代码。好程序员关心的是数据结构和它们之间的关系。” |
■ 对这句话应该如何理解? ■ 如何学习和应用其中的道理? |
如果看一下Torvalds在此句话之前说的话,可能会对我们理解它有帮助:
git的设计其实非常的简单,它的数据结构很稳定,并且有丰富的文档描述。事实上,我非常的赞同应该围绕我们的数据结构来设计代码,而不是依据其它的,我认为这也是git之所以成功的原因之一[...]依我的观点,好程序员和烂程序员之间的差别就在于他们认为是代码更重要还是数据结构更重要。 |
如果你不理解他举的git的例子,我再解释一下,很多的版本控制软件都会有规律的修改它们的数据格式来支持增加的新特征。当你升级软件来获得新功能时,你通常需要一些工具来转换到相应的数据库格式。
举个例子,当分布式版本控制系统刚刚开始流行时,很多人不知道,为什么相对那些集中式的版本控制软件,分布式模式下的代码合并会如此的干净整洁。答案无它,分布式的数据结构更适合这样的任务。我相信集中式的合并算法也在快速的改进,但它需要很长的时间才能赶上,因为老的数据结构限制了他们使用的某些算法,而新的数据结构破坏了很多现有的代码。
相比较而言,git里的新特征在不断涌现,但它底层的数据结构几乎没有什么变化。先考虑数据结构,你的代码会自然的整洁起来。
原文链接:http://www.aqee.net/torvalds-quote-about-good-programmer/
相关文章推荐
- [置顶] 如何理解Linus Torvalds的“什么才是优秀程序员”的话
- 如何理解Linus Torvalds的“什么才是优秀程序员”的话
- 如何理解Linus Torvalds的“什么才是优秀程序员”的话
- 如何理解Linus Torvalds的“什么才是优秀程序员”的话
- 学习如何理解代码以成为更优秀的程序员
- 学习如何理解代码以成为更优秀的程序员
- 从”如何设计一个通用数据类型的数组“谈什么才是程序员真正应该干的事
- chonggou----Martin Flower在《重构》中有一句经典的话:"任何一个傻瓜都能写出计算机 可以理解的程序,只有写出人类 容易理解的程序才是优秀的程序员。"
- 什么是程序员的优秀品质?
- [转贴]如何成为一个优秀的jsp程序员
- 如何从优秀的程序员成为伟大的程序员
- 什么才是优秀的用户界面设计
- 互联网时代:如何成为优秀的程序员?
- 小笨狗的编程感悟:如何成为一个优秀的程序员
- 如何从优秀的程序员成为伟大的程序员(2)
- 什么是嵌入式 如何理解嵌入式系统开发
- 信息时代如何成为一名优秀的程序员
- 如何做一名优秀的程序员?——职业生涯规划
- hibernate中的SessionFactory,Session分别表示什么啊?如何理解?
- 什么是程序员的优秀品质?【转】