From: Donald Knuth - My advice to young people (93/97)

译者: 李秋豪

原文

Donald Knuth (b. 1938), American computing pioneer, is known for his greatly influential multi-volume work, 'The Art of Computer Programming', his novel 'Surreal Numbers', his invention of TeX and METAFONT electronic publishing tools and his quirky sense of humour. [Listener: Dikran Karagueuzian]

TRANSCRIPT: If somebody said what advice would I give to a... a young person - they always ask that funny kind of a question. And... and I think one of the things that... is... that I would... that would sort of come first to me is this idea of, don't just believe that because something is trendy, that it's good. I'd probably go the other extreme where if... if something... if I find too many people adopting a certain idea I'd probably think it's wrong or if, you know, if... if my work had become too popular I probably would think I had to change. This is, of course, ridiculous but... but I see the... I see the... the other side of it too... too often where people will... will do something against their own gut instincts because they think the community wants them to do it that way, so people will... will work on a certain... a certain subject even though they aren't terribly interested in it because they think that they'll get more prestige by working on it. I think you get more prestige by doing good science than by doing popular science because... because if... if you go with... with what you really think is... is important then it's a higher chance that it really is important in the long run and it's the long run which... which has the most benefit to the world. So... so usually when I'm... when I'm writing a book or... or publishing a book it's... it's different from books that have been done before because I feel there's a need for such a book, not because that... there was somebody saying please write such a book, you know, or... or that other people have... have already done that... that kind of thing. So follow your own instincts it seems to me is better than follow the... the herd. I... my friend Peter Wegner told me in the '60s that I should, for Art of Computer Programming, I shouldn't write the... I shouldn't write the whole series first, I should... I should first write a... a reader's digest of... of it and then expand on the parts afterwards. That would probably work for him better than... much better... but I... I work in a completely different way. I have to see... I have to see something to the point where I've surrounded it and... and, sort of, totally understood it before I'm comf... before I can write about it with any confidence and so that's the... that's the way I work, I don't... I don't want to write about a high level thing unless I've fully understood a low level thing. Other people have completely different strengths I... I know but... but for me, I... you know, I wrote a book about the... a few verses of the Bible, once I had... once I understood those verses and... and sort of everything I could find in the library about a small part of the Bible, all of a sudden I had firm pegs on which I could hang other knowledge about it. But if... but if I went through my whole life only under... without any... any in depth knowledge of any part then it all seems to be flimsy and... and to me doesn't... doesn't give me some satisfaction. Well the... the classic phrase is that liberal education is to learn something about everything and everything about something and... and I like this idea about learning everything about... about an area before you feel... if you don't know something real solid then... then you never have... have enough confidence. A lot of times I'll have to read through a lot of material just in order to write one sentence somehow because... because my sentence will then have... have... I'll choose words that... that make it more convincing than if I... than if I'm... than if I really don't have the knowledge it'll somehow come out implicitly in... in my writing. These are little sort-of-vague thoughts that I have when reflecting over... over some of the directions that distinguish what I've done from what... what I've seen other people doing.

译文

如果有人问到我会给年轻人什么建议——他们总是问这些好玩的问题,第一个浮现在我脑海中的想法就是不要认为主流的东西就好。我可能会有些极端,如果我发现很多人都接受一个观点,那我可能会认为它是错误的,比如我的某个成果变得很出名我就会想办法做一些改变。

当然,这听起来有些荒谬,但是我确实看到了很多例子——很多人会违背他们内心的直觉因为社区/大众希望他们那么做,所以他们都开始在一个他们并不感兴趣的领域下功夫以期得到更多的名誉。而我认为如果你研究“好的”科学而非“大众/受欢迎”的科学你才会得到更多的名誉。因为从长远来看,做你认为重要的事会更可能对这个世界产生最有益的影响。

通常当我出一本书的时候,这本书是不同于现存的书的——我出这本书是因为我认为有这个需要而非有人恭维我出这样的书或者因为别人已经写过此类的书。遵从你的内心而非主流大众。60年代我写《计算机程序设计艺术》的时候,我的朋友Peter Wegner告诉我应该先列出来读者的口味然后从这些点扩展而非直接写整个序章。这可能对他很有帮助,但是我完全不是这么想的——我必须对“圈出”的关键点完全理解才会有写下去的信心。

我不会写高层次的东西除非我完全理解了低层次的东西。我知道别人擅长的和我完全不同,我仅仅写出“圣经”的一小部分诗,当我完全理解这一小部分后,突然间我就能获得关于这一部分的其他知识。如果我的一生都没有得到深层次的知识,那对我来说是浅薄和不满足的。有句话说的很经典:素质教育是“通百艺,专一长”。我喜欢“专一长”这个说法。如果你不能对某个领域的知识掌握的非常牢固,你就不会有足够的信心。很多时候我查阅大量的资料仅仅是为了写出一句话,因为我希望我的语句足够有说服力而非我自己都不知道这句到底是怎么来的。

这大致就是我观察思考自己做过的和别人做过的事而产生的一些想法。

唐纳德 高德纳给年轻人的建议 Donald Knuth - My advice to young people的更多相关文章

  1. Donald Ervin Knuth:最年轻的图灵奖高德纳

    高德纳(Donald Ervin Knuth,1938年),美国著名计算机科学家,斯坦福大学电脑系荣誉教授.高德纳教授被誉为现代计算机科学的鼻祖,在计算机科学及数学领域发表了多部 具广泛影响的论文和著 ...

  2. [python,2018-06-25] 高德纳箭号表示法

    概念 高德纳箭号表示法是种用来表示很大的整数的方法,由高德纳于1976年设计.它的意念来自幂是重复的乘法,乘法是重复的加法. 定义 计算 一个箭头 2↑3=2×2×2=8 2↑4=2×2×2×2=16 ...

  3. Donald Knuth

    看了<李开复给计算机系大学生的建议>这篇文章,让我对Donald Knuth这个人产生了兴趣,他是何许人也?于是便有下文. 引用:(1)练内功.不要只花功夫学习各种流行的编程语言和工具,以 ...

  4. 计算机鼻祖-Donald Knuth(高纳德) 的传奇

    李开复说,练内功,不要仅仅花功夫学习各种流行的编程语言和工具,以及一些公司招聘广告上要求的科目.要把数据结构.算法.数据库.操作系统原理.计算机体系结构.计算机网络,离散数学等基础课程学好.最好还是试 ...

  5. 高德纳/Donald Ervin Knuth

    丸了丸了这位就是我人生的第一位爱豆了owo 感觉他的经历,气质都是我期望的类型呀. 即使没有人家的智商和绝顶天赋,也不断向彼努力吧. 从小喜欢音乐,会多种乐器(管风琴) 其实长得人高马大,高中校篮球队 ...

  6. 书写高质量sql的一些建议

    It's better to light a candle than to curse the darkness 老生常谈的不要使用select * 如果硬要使用select *,那么就请忍受一下以下 ...

  7. My advice to young people - Donald Knuth [video]

    http://www.youtube.com/watch?v=75Ju0eM5T2c I took a note of what knuth said in the video. 1. Don't d ...

  8. 编写高质量代码改善C#程序的157个建议[IEnumerable<T>和IQueryable<T>、LINQ避免迭代、LINQ替代迭代]

    前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html .本文主要学习记录以下内容: 建议29.区别LINQ查询中的IEnumerable<T ...

  9. Java编写高质量代码改善程序的151个建议

    第一章  Java开发中通用的方法和准则 建议1:不要在常量和变量中出现易混淆的字母: (i.l.1:o.0等). 建议2:莫让常量蜕变成变量: (代码运行工程中不要改变常量值). 建议3:三元操作符 ...

随机推荐

  1. C#提取字符串中的数字字符串

    1               }

  2. mysql数据库事务详细剖析

    在写之前交代一下背景吧! 做开发也好久了,没怎么整理过知识,现在剖析一下自己对数据库事务的认识,以前用sqlserver,现在转java后又用mysql.oracle.我这块就主要解释一下mysql数 ...

  3. 【功能代码】---2.patchca生成验证码

    Java使用patchca生成验证码        Patchca是Piotr Piastucki写的一个java验证码开源库,打包成jar文件发布,patchca使用简单但功能强大. 本例实现了自定 ...

  4. jquery.form.js+jquery.validation.js实现表单校验和提交

      一.jquery引用 主要用到3个js: jquery.js jquery.form.js jquery.validation.js 另外,为了校验结果提示本地化,还需要引入jquery.vali ...

  5. iBatis & myBatis & Hibernate 要点记录

    iBatis & myBatis & Hibernate 要点记录 这三个是当前常用三大持久层框架,对其各自要点简要记录,并对其异同点进行简单比较. 1. iBatis iBatis主 ...

  6. 关于String中的不变模式

    不变模式 不变模式就是为了尽可能的去除并行中的同步操作,提高并行程序的性能,可以使用一种不可改变的对象,依靠对象的不变性,可以确保其在没有同步操作的多线程环境中依然始终保持内部状态的一致性和正确性.并 ...

  7. 一些公司对quantitative的要求

    来自日月光华BBS: Company: UBS AG Job Title: Quantitative Developers / Analysts (Entry Level, Multiple Posi ...

  8. 快速增加controller节点

    # controller1节点部署成功后,再添加controller节点,复制配置文件并修改即可openstack pike 部署 目录汇总 http://www.cnblogs.com/elvi/p ...

  9. 工程启动加载.properties/.xml配置文件

    工程目录: demo.properties today=2017-06-10 PropertiesMap.java package com.dzpykj.common.utils; import ja ...

  10. mysql 系统性浅聊 myisam 存储引擎【原创】

    >>思维导图 >>介绍 mysql中的存储引擎都是以插件的形式存在,目前用的最多存储引擎就是innodb和myisam.MySQL5.5.5以后(包括5.5.5)默认使用Inn ...