• 如何理解Linus Torvalds的“什么才是优秀程序员”的话
    时间:2012-10-09   作者:外刊IT评论网   出处:aqee.net

    Linux的创始人Torvalds在一次演讲中有一段涉及“什么才是优秀程序员”的话:“烂程序员关心的是代码。好程序员关心的是数据结构和它们之间的关系。”

    这句话听起来很直白,但未必所有人都能理解其内在的涵义。在国外知名的问答网站stackexchange上有人对这句话提出了自己的困惑:

    对这句话应该如何理解?
    如何学习和应用其中的道理?


    能问出这样的问题需要勇气,提问的人自己也自嘲的说:我不理解这句话也许不是一个好的征兆。但同一句经典言论,100个阅读会得到100种不同的领悟,正像stackexchange网站上各式各样不同的回答一样。下面我们来看看最被认可的一种理解吧。

    如果看一下Torvalds在此句话之前说的话,可能会对我们理解它有帮助:

    git的设计其实非常的简单,它的数据结构很稳定,并且有丰富的文档描述。事实上,我非常的赞同应该围绕我们的数据结构来设计代码,而不是依据其它的,我认为这也是git之所以成功的原因之一[...]依我的观点,好程序员和烂程序员之间的差别就在于他们认为是代码更重要还是数据结构更重要。


    他说的意思是,好的数据结构设计能使代码更容易设计和维护,而再好的代码也不能弥补糟糕的数据结构带来的危害。

    如果你不理解他举的git的例子,我再解释一下,很多的版本控制软件都会有规律的修改它们的数据格式来支持增加的新特征。当你升级软件来获得新功能时,你通常需要一些工具来转换到相应的数据库格式。

    举个例子,当分布式版本控制系统刚刚开始流行时,很多人不知道,为什么相对那些集中式的版本控制软件,分布式模式下的代码合并会如此的干净整洁。答案无它,分布式的数据结构更适合这样的任务。我相信集中式的合并算法也在快速的改进,但它需要很长的时间才能赶上,因为老的数据结构限制了他们使用的某些算法,而新的数据结构破坏了很多现有的代码。

    相比较而言,git里的新特征在不断涌现,但它底层的数据结构几乎没有什么变化。先考虑数据结构,你的代码会自然的整洁起来。

    网友留言/评论

    我要留言/评论

    相关文章

    用户为什么需要导购网站?:前些天跟天下网商聊“导购”,后来发了三篇文章来阐述我的一些观点(编辑注:1、白鸦谈导购(一):我们为什么需要导购 2、白鸦谈导购(二):导购现在活得还很好 3、白鸦谈导购(三):淘宝与导购是什么关系)。回来后我又对一些提到的观点和数据进行了印证,现整理出了一份完整详细版的内容在此。
    商家为什么需要导购网站:前些天跟天下网商聊“导购”,后来发了三篇文章来阐述我的一些观点(编辑注:1、白鸦谈导购(一):我们为什么需要导购 2、白鸦谈导购(二):导购现在活得还很好 3、白鸦谈导购(三):淘宝与导购是什么关系)。回来后我又对一些提到的观点和数据进行了印证,现整理出了一份完整详细版的内容在此。
    导购网站所服务的用户和提供的价值:前些天跟天下网商聊“导购”,后来发了三篇文章来阐述我的一些观点(编辑注:1、白鸦谈导购(一):我们为什么需要导购 2、白鸦谈导购(二):导购现在活得还很好 3、白鸦谈导购(三):淘宝与导购是什么关系)。回来后我又对一些提到的观点和数据进行了印证,现整理出了一份完整详细版的内容在此。
    社会化导购为什么让淘宝开心又忧心?:前些天跟天下网商聊“导购”,后来发了三篇文章来阐述我的一些观点(编辑注:1、白鸦谈导购(一):我们为什么需要导购 2、白鸦谈导购(二):导购现在活得还很好 3、白鸦谈导购(三):淘宝与导购是什么关系)。回来后我又对一些提到的观点和数据进行了印证,现整理出了一份完整详细版的内容在此。
    传统营销已死:《哈佛商业评论》曾经写了一篇文章,“传统营销已死”:包括广告宣传、公共关系、品牌管理以及企业传媒在内的传统营销手段都已经失效。很多还在这一行的人们似乎还没有意识到,他们所在的部门或者组织已经只剩下躯壳了。而建立于同伴影响力和社区导向的新型营销手段已经登上舞台,通过真正的顾客关系,它将为企业创造持续的增长。很显然,小米手机提供了一个很好的思路。
    小企业如何在网上找到免费帮助?:如果小企业的创始人没有经济学、金融学或者商业管理背景,很难想像公司的财务会是什么样子。
    创业成功几率究竟有多大?:我的一位VC 朋友曾经表达过这样的看法: 在所有创业企业 CEO 中,只有2种类型值得投资:1.之前创业成功过,知道下一步努力的方向和需要改进的地方,他的动力就是:努力做的更好。2.之前没有创业过,他渴望进行成功和死亡的尝试,不成功,则成仁。任何其它类型的CEO 都是在浪费Term Sheet。
    VC十大忽悠用语:创业者,我看好你!:编者注:这是一篇三年前的“旧文”。有趣的是,这些“忽悠术”即使今天看起来仍不过时,“我一会儿还有个会”、“很看好你,可惜内部讨论没通过”……这些话好像总在哪里听过。最近在微博上被翻出重提,看得人十分欢乐,仔细想想又全是经验之谈。重新发布,并欢迎补充。
    程序员最需要补充维他命D:我根据我自身的生活状态和我认识的其他程序员的状况来假设一下你的生活状况。 2、你喝很多含咖啡因的饮料。 1、你是个夜猫子。 这两项假设跟维他命D有什么关系? 关系很大。没有足够的维他命D,你的身体很可能发生机能失调,导致诸如骨质疏松症或免疫力下降等病症。
    程序猿 技术不是你的全部:在学校的时候,曾一度的迷恋技术,认为掌握了技术后就非常牛X,可以到外面做些项目,从中获取一些报酬,自己更是乐此不疲。并且认为看了很多的技术书籍,学了很多的语言,看了许多牛X技术的底层原理,就自认为自己在这方面是专家权威,高智商的人。当然,可能你希望大家叫你大神、大牛、精英、前辈,自己的虚荣心都得到了小小的满足。