`
mengzhiang
  • 浏览: 23827 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【译文】是什么成就一个伟大的程序员?

 
阅读更多

 

http://www.yeeyan.org/channel/tech 一个很好的网站

 

You are here【译文】是什么成就一个伟大的程序员?

【译文】是什么成就一个伟大的程序员?


By Eric Tou - Posted on 14 七月 2011

原文:What Makes A Great Programmer?

  按:有很多人不关心自己天天使用的工具,这是一个阶段。有一部分人开始关注工具,但却容易忘记使用工具本来的目的。有一段时间确实迷失在各种工具之中,所以文章的开头部分让我很有感触。希望大家能够警惕类似的思维陷阱,分享此文共勉。

  我记得仿佛是昨天。那是2000年,Pargas博士站在我们的数据结构课堂上谈论着一些Y数据结构的话题,同时一个SSH会话被投影到我们面前的墙上。有人问了个问题,而他说了些类似于“好吧,如果你成为一个真正的计算机科学家你需要开始使用vi编辑器”。我想当他说这话时他在微笑,而且事后看来他的说法完全不对,但像我当时那样年轻又易受影响,回到宿舍就立即着手训练自己如何使用vi。这大概持续了一阵子,但一旦我开始掌握窍门我发觉我在vi中工作真的很快。

  快进6年,我被TextMate迷住了。我当时在做一份Java开发的工作,但同时在空闲时间学习Rails和开发Rails项目。当时感觉似乎我读的每篇文章和我看的每个视频都在展示如何使用TextMate实现文本编辑之禅。事实上当时每天使用Eclipse让我充满了怒火。于是我买了台Mac,在打开它的十分钟内购买了TextMate。

  我能坦诚地说没有哪次文本编辑器的改变使我成为了更好的程序员。

  强大的工具只是不能使你变得“那么”好。你使用的工具确实重要,它们确实很棒。但老虎伍兹使用俱乐部里的垃圾装备仍然能击败我们所有人,梅西光着脚也会胜过我们,纳达尔也许能用一副60年代的经典木质球拍在网球场上击败我们全部,他也许用乒乓拍就能击败我。

  你积累的技巧、知识和经验才是方程式中最重要的部分。

  那么工具无法成就程序员,又是什么呢?我想成就一个伟大程序员的很多方面取决于你从事的工作以及和你共事的人,但我也看到了已经在软件开发领域获得大量成功的人们身上存在的、我认为值得分享的共通品质。我不确定这些是你能够掌握的技巧还是你与生俱来的东西。但我很强烈地感觉到如果我少花时间在换文本编辑器,多花精力在这些品质上,我会处于一个了不起的位置。

以人为本

  我认识的最好的程序员把人放在第一位。他们认识到他们编写的软件是面向人的,即使这只是某个复杂系统的后端或是除了开发者没人会使用的协议。他们编写文档因为文档是重要的。他们帮助人们使用他们的代码。他们愿意加班处理更复杂的问题,以给予使用他们软件的人正确的解决方案。

求知欲

  了不起的程序员对知识的饥渴令人惊讶。他们总是告诉你新的、有趣的东西。他们愿意大量阅读(无论线上线下)并且尝试事物获取经验。他们不担心尝试新的编程语言或新的平台。

技巧地问题模式匹配

  一旦你编写软件一段时间,你开始发现出现的问题非常相似于你曾经处理过的其它问题。能够识别这些问题,并转化过去的解决方案,使之有效于当前的局面是一种真正有价值的技能。能够每次改进解决方案则更好。

  注意,但这并不意味着你盲目地说因为一个过去的方案有效它就一定有效。这正是有技巧地应用问题模式匹配登场的地方。你必须能够分辨何时应当应用一个过去的方案,何时不行。

一点点疯狂

  我的兄弟在高三上过Python课程,当我问他是否喜欢时,他告诉我我成为程序员真是疯了,这是他做过的最无聊的事情之一。某种程度上,我认为他是对的。大部分日子我和计算机交谈多于和人交谈。我得一行行地把人们的叽里咕噜转化为可用的软件,这个事实让我大为震惊。不是这里的每个人都爱做这种事,但我遇到过的最好的程序员绝对热爱开发软件。

坚持

  软件开发总是比人们预期得更慢,这很花时间。有时你不得不足够耐心才能鼓捣出你需要写的代码。有时作为开发者我们能写出非常有意思的代码,但有时我们得写很多以前差不多已经写过一百遍代码的代码,得到的只有不爽。我认为最好的开发者能继续前进,因为他们能看到他们正在从事的事物的大局,而且他们热爱一点一点完成最终结果的过程。

  还有一些我认为能够成就一个真正的好程序员的品质,但这不是一个一网打尽的列表,我希望听到你的选择。你认为是什么成就一个伟大的程序员?

分享到:
评论

相关推荐

    历史上最伟大的12位程序员

    直到一个多世纪后的1953年,她的笔记被重新发现并出版,这对现代计算机与软件工程产生了深远的影响。 #### 2. Pascal之父:尼克劳斯·维尔特Niklaus Wirth 尼克劳斯·维尔特是一位瑞士计算机科学家,以其在编程...

    毕业论文 外文原文及译文

    标题中的“Microsoft Access 2000: Choosing between MSDE and Jet”指的是在使用Access 2000时,开发者面临的一个关键决策:选择使用改进版的Jet引擎还是微软数据引擎(MSDE)。这两个数据引擎都是用于存储和管理...

    [译文]程序员能力矩阵 Programmer Competency Matrix.htm

    [译文]程序员能力矩阵 Programmer Competency Matrix.htm

    智囊全集 原文和译文都完整!.rar

    总的来说,《智囊全集》是一部蕴含深厚历史文化价值和智慧启示的书籍,其原文与译文的结合,为现代读者提供了一条通向古代智慧宝库的道路。无论是对历史感兴趣的爱好者,还是寻求策略思维启发的现代人,都能从中...

    ApacheCN 大数据译文集.zip

    4. **Kafka**:Kafka是一个高吞吐量的分布式消息系统,常用于实时数据流处理。译文可能包括Kafka的基本概念、生产者和消费者模型、以及与Spark或Storm等系统的集成。 5. **Hive**:Hive是基于Hadoop的数据仓库工具...

    中庸全文及译文.pdf

    《中庸》全文及译文.pdf 《中庸》是一部中国古典哲学著作,作者是孔子弟子子思。该书主要探讨了中庸之道的内涵和实践方法。中庸之道被认为是儒家哲学的核心思想,强调人性和自然的和谐发展。 第一章 《中庸》第一...

    程序员英语学习方法

    时间也是重要因素,翻译一本书可能需要一年,而软件的更新周期通常是1到2年,这使得译文往往落后于最新技术。 因此,程序员需要具备一定的计算机英语能力,以便直接阅读原文资料,提高学习效率并减少误解。像《Java...

    《反经》伐交原文及译文.pdf

    "《反经》伐交原文及译文.pdf" 《反经》伐交原文及译文中,孙子曰:“善用兵者,使交不得合。...《反经》伐交原文及译文中所说的“伐交”,是一种非常重要的战略策略,能够帮助我们在战争和竞争中取得胜利。

    程序员谈如何掌握计算机专业英语.pdf

    用程序员的术语讲,“学什么”的问题本质上是一个“确定系统边界”的问题。应为学习计算机英语是一个很宽泛的概念,若不根据个人的具体情况进行定义,恐怕难以有一个可以管理学习目标。 无目标的或边界不清的项目...

    罗织经原文及译文.pdf

    罗织经的原文及译文对我们有什么样的启示呢? 首先,我们可以看到,罗织经的作者对人性的认识非常深刻。他们认为,人性的本性是自私的,多欲则贪,崇尚私利则枉法,罪孽由此而生。这也告诉我们,在与人相处时,不能...

    Python-有了这个列表程序员不愁没练手的小项目了

    有了这个列表,程序员不愁没练手的小项目了

    Trados 使用技巧- 译文批量导入记忆库

    其中,“Trados使用技巧-译文批量导入记忆库”这一主题,深入探讨了如何利用WinAlign工具将大量已翻译的文本批量导入到Trados的记忆库中,从而在未来的翻译项目中重复使用这些翻译,节省时间并保持术语的统一。...

    译文质量估计中基于Transformer的联合神经网络模型.pdf

    双向长短期记忆网络是本文模型的另一个重要组件,该网络可以学习到输入语句的长期依赖关系,从而提高模型的性能。 4. 模型优化 本文模型的参数使用译文质量估计语料进行联合优化和微调。该步骤可以使模型的性能...

    毕业论文外文参考资料及译文格式-论文.zip

    其核心内容为一个名为“毕业论文外文参考资料及译文格式-论文.doc”的文档,很可能是包含了一些外文文献的摘要、关键观点以及对应的中文翻译,同时可能提供了正确的参考文献引用格式。 首先,外文参考资料的选择应...

    这是一个用于管理多语言资源的译文管理系统.zip

    这是一个用于管理多语言资源的译文管理系统,由于用户分布于全球各地,公司的 App 需要显示多语言,Android 和 iOS 有大量的译文需要管理,手工维护极其麻烦,于是这个系统诞生了,方便 translator 在平台翻译,翻译...

    毕设译文模板

    【毕设译文模板】是针对本科生毕业设计过程中的一个重要环节——外文文献翻译而设计的模板。这个模板旨在提供一个规范化的格式,方便学生按照规定完成翻译任务,并确保其内容质量。以下是对模板各部分的详细说明: ...

Global site tag (gtag.js) - Google Analytics