美文网首页禅与计算机程序设计艺术
比尔盖茨/UNIX之父/Donald Knuth/Dijkstr

比尔盖茨/UNIX之父/Donald Knuth/Dijkstr

作者: 光剑书架上的书 | 来源:发表于2020-05-02 22:35 被阅读0次

    这不是一个bug,这只是一个未列出来的特性。——匿名

    ​​

    Dennis Ritchie

    image

    UNIX很简单。但需要有一定天赋的人才能理解这种简单。

    ——Dennis Ritchie

    软件在能够复用前必须先能用。

    ——Ralph Johnson

    优秀的判断力来自经验,但经验来自于错误的判断。

    ——Fred Brooks

    ‘理论’是你知道是这样,但它却不好用。

    ‘实践’是它很好用,但你不知道是为什么。

    程序员将理论和实践结合到一起:既不好用,也不知道是为什么。

    ——佚名

    当你想在你的代码中找到一个错误时,这很难;

    当你认为你的代码是不会有错误时,这就更难了。

    ——Steve McConnell 《代码大全》

    如果建筑工人盖房子的方式跟程序员写程序一样,那第一只飞来的啄木鸟就将毁掉人类文明。

    ——Gerald Weinberg

    项目开发的六个阶段:

    充满热情

    醒悟

    痛苦

    找出罪魁祸首

    惩罚无辜

    褒奖闲人

    ——佚名

    优秀的代码是它自己最好的文档。当你考虑要添加一个注释时,问问自己,“如何能改进这段代码,以让它不需要注释?

    ”——Steve McConnell 《代码大全》

    我们这个世界的一个问题是,蠢人信誓旦旦,智人满腹狐疑。

    ——Bertrand Russell

    无论在排练中演示是如何的顺利(高效),当面对真正的现场观众时,出现错误的可能性跟在场观看的人数成正比。

    ——佚名

    罗马帝国崩溃的一个主要原因是,没有0,他们没有有效的方法表示他们的C程序成功的终止。

    ——Robert Firth

    C程序员永远不会灭亡。他们只是cast成了void。

    ——佚名

    如果debugging是一种消灭bug的过程,那编程就一定是把bug放进去的过程。

    ——Edsger Dijkstra

    你要么要软件质量,要么要指针算法;两者不可兼得。

    ——Bertrand Meyer

    有两种方法能写出没有错误的程序;但只有第三种好用。

    ——Alan J. Perlis

    用代码行数来测评软件开发进度,就相对于用重量来计算飞机建造进度。

    ——比尔·盖茨

    最初的90%的代码用去了最初90%的开发时间。余下的10%的代码用掉另外90%的开发时间。

    ——Tom Cargill

    程序员和上帝打赌要开发出更大更好——傻瓜都会用的软件。而上帝却总能创造出更大更傻的傻瓜。所以,上帝总能赢。

    ——Anon

    生命太短暂,不要去做一些根本没有人想要的东西。

    ——Ash Maurya,Running Lean 作者

    如果你交给某人一个程序,你将折磨他一整天;如果你教某人如何编写程序,你将折磨他一辈子。——David Leinweber

    软件设计有两种方式:一种方式是,使软件过于简单,明显没有缺陷;另一种方式是,使软件过于复杂,没有明显的缺陷。——C.A.R. Hoare

    其实,我尝试着使Ruby更自然,而不是简单。Ruby看起来很简单,但内部是非常复杂的,就像我们的身体一样。——松本行弘,Ruby之父

    大部分情况下,构建程序的过程本质上是对规范调试的过程。——Fred Brooks,《人月神话》作者

    软件开发往往是这样:最开始的90%代码占用了开始的90%的开发时间;剩下10%代码同样需要90%的开发时间。——Tom Cargill

    当你试图解决一个你不理解的问题时,复杂化就产成了。——Andy Boothe

    用几个小时来制定计划,可以节省几周的编程时间。—— 匿名

    控制复杂性是计算机编程的本质。—— Brian Kernighan

    计算机科学领域的所有问题都可以通过其他方式间接解决。——David Wheeler

    编程是两队人马在竞争:软件工程师努力设计出最大最好的连白痴都会使用的程序;而宇宙在拼命制造最大最好的白痴。到目前为止,宇宙是胜利者。—— Rick Cook

    调试一个初次见到的代码比重写代码要困难两倍。因此,按照定义,如果你写代码非常巧妙,那么没有人足够聪明来调试它。—— Brian W. Kernighan

    我不是一个伟大的程序员,我只是一个具有良好习惯的优秀程序员。― Kent Beck

    你们中大多数人都熟悉程序员的美德,有三种:那就是懒惰、急躁和傲慢。– Larry Wall,Perl語言发明人

    任何一个傻瓜都会写能够让机器理解的代码,只有好的程序员才能写出人类可以理解的代码。——Martin Fowler

    靠代码行数来衡量开发进度,就像是凭重量来衡量飞机制造的进度。——比尔•盖茨

    这不是一个bug,这只是一个未列出来的特性。——匿名

    作为一个程序员,郁闷的事情是,面对一个代码块,却不敢去修改。更糟糕的是,这个代码块还是自己写的。—— Peyton Jones

    它在我的机器上可以很好运行!——大部分程序员

    能说算不上什么,有本事就把你的代码给我看看。——Linus Torvalds,Linux之父

    我认为对象就像是生物学里的细胞,或者网络中的一台计算机,只能够通过消息来通信——Alan Kay,Smalltalk的发明人,面向对象之父

    当你选择了一种语言,意味着你还选择了一组技术、一个社区。——Joshua Bloch

    质量、速度、廉价,选择其中两个。——匿名

    过早的优化是罪恶之源。——Donald Knuth

    没有什么代码的执行速度比空代码更快。——Merb核心原则

    如果你是房间里最聪明的人,那么你走错房间了。——匿名

    如果只需更改一个单一的代码行,你的部门需要花费多长时间?——Mary Poppendieck

    九个人不能让一个孩子在一个月内出生。——Fred Brooks,《人月神话》作者

    好代码本身就是最好的文档。当你需要添加一个注释时,你应该考虑如何修改代码才能不需要注释。——Steve McConnell,Code Complete 作者

    一个人在教会电脑之前,别说他真正理解这个东西了。——Donald Knuth

    一个好的程序员应该是那种过单行线都要往两边看的人。

    — Doug Linder, 系统管理员

    任何一个工具,它的一个最重要的、同时也是最难以做到的方面就是对那些学习使用这个工具的人在使用习惯上的影响。如果这个工具是一种编程语言,那么,这种影响——不管我们是否喜欢——将是一种思考习惯上的影响。

    — Edsger Dijkstra, 计算机科学家

    抽象化是一种非常的不同于模糊化的东西 … 抽象的目的并不是为了模糊,而是为了创造出一种能让我们做到百分百精确的新语义。

    — Edsger Dijkstra

    除数学外,对本土语言的异常的精通会是一个计算机程序员的最宝贵的财富。

    — Edsger Dijkstra

    C语言很容易让你犯错误;C++看起来好一些,但当你用它时,你会发现会死的更惨。

    — Bjarne Stroustrup,C++语言的创始人

    评论:解决问题大多数都很容易;找到问题出在哪里却很难。

    — 无名

    看看目前我们的计算机编程上的这种糟糕的状态,软件开发很显然仍然处于一种黑色艺术状态,仍然毫无工程规范可言。

    — 比尔克林顿,美国前总统

    长久以来一个问题一直困扰着我,为什么有些东西如此昂贵,如此的高科技,却毫无用处,就像我知道的,计算机虽然是台笨机器,却有能力做出难以置信的智能事情,而程序员虽然是一些聪明的人,但却老是做难以置信的傻事情。他们呀,简言之,是对绝配。

    — Bill Bryson, 作家, 出自《Notes from a Big Country》

    给与足够的眼球,所有的Bugs都很容易发现(例如,大量的beta测试,结对开发,所有的问题都能很快的发现和修复)

    — Eric S. Raymond, 程序员,开源软件的倡导者, 出自《The Cathedral and the Bazaar》

    高质量的代码就是对程序自己最好的注释。当你打算要添加注释时,问问自己,“我如何能改进编码以至于根本不需要添加注释?”改进你的代码,然后才是用注释使它更清楚。

    — Steve McConnell, 软件工程师,作家, 出自 《Code Complete》

    嘿,编译通过了!装包吧!

    — 无名

    任何优秀的大软件里面都是一个优秀的小程序。

    — Charles Antony Richard Hoare, 计算机科学家

    我们应该注意到,没有一个受过伦理教育的软件工程师会同意开发出“摧毁巴格达”的程序。然而基本的职业道德却可以要求他们开发出“摧毁城市”的程序,巴格达只是这个程序的一个参数。

    — Nathaniel S.Borenstein, 计算机科学家

    管理程序员就像是在放养一群猫。

    — 无名

    在一种编程语言中,即使有再多的好程序被诋毁指责,也要比被说成完美无缺好 — 好的多。

    — Bjarne Stroustrup, 出自 《The Design and Evolution of C++》

    程序应该是写给其他人读的,让机器来运行它只是一个附带功能。

    — Harold Abelson and Gerald Jay Sussman,计算机科学家和作者,出自《The Structure and Interpretation of Computer Programs》

    真正的程序员从来不注释他们的代码。如果你做不到这样,也就说明你不能使你的程序易于理解。

    — 无名

    简单是稳定的前提。

    — Edsger Dijkstra

    C语言 — 这是一种既有汇编语言强大的功能,又有汇编语言的灵活性的编程语言。

    — 无名

    最初90%的开发工作将会用去你最初90%的开发时间。剩下的10%的开发量将会用去你另外一个90%的开发时间。

    — Tom Cargill, 贝尔实验室的面向对象编程专家

    对于增加一个功能点所付出的代价,你要明白的很重要的一点就是,它不仅仅指开发这个功能所消耗的时间。它同时还包括带来的额外的给以后扩展造成的困难。不错,任何的功能特性都是能实现的——只要有足够的时间。除了这些将来会出现的问题外,你最终还会使你的程序变得脆弱,最终连一个绝对简单的功能都越来越难以和现有的混乱的web结合起来。应对此问题的办法是你应只接受那些不会导致冲突的功能。

    — John Carmack, 计算机游戏开发

    性能的关键是精简,而不是一堆的优化用例。除非有真正显著的效果,否则一定要忍住你那些蠢蠢欲动的小微调的企图。

    — Jon Bently 和 M. Douglas McIlroy, 同为贝尔实验室的科学家

    用C写的最后的一个好东西就是舒伯特的第九交响乐。

    — Erwin Dieterich, 程序员

    使用C++的问题就在于 … 这种语言有一种很大的脾气,在你想做任何事情之前你必须把所有的知识都掌握才行。

    — Larry Wall, Perl语言的开发者

    开发的越早,程序花费你的时间越长。

    — Roy Carlson, 威斯康星州大学

    原型的价值就在于它对你的教育,而不是代码本身。

    — Alan Cooper, 软件作者, 出自《The Inmates are Running the Asylum》

    世上只有两种编程语言:一种是总是被人骂的,一种是从来没人用的。

    — Bjarne Stroustrup

    世上有两种设计软件的方法。一种是尽量的简化,以至于明显没有任何缺陷。而另一种是尽量复杂化,以至于找不到明显的缺陷。

    — Charles Antony Richard Hoare

    丑陋的程序和丑陋的吊桥一样:他们都容易坍塌,因为人类(尤其是工程师们)的审美定义跟人们对复杂事物的处理和理解密切相关。一种编程语言如果不能使你写出优美的代码,那它也就不能使你写出好的程序。

    — Eric S.Raymond

    数周的编程能省掉你几个小时的计划时间。

    — 无名

    当一种能够让程序员通过简单的英语来编程的编程语言诞生后,你会发现程序员们都不会说英语。

    — 无名

    我相信这些话并不是你能通过对一遍就能深刻理会里面深刻的思想的。不妨没事时多度几遍,相信不会耽误你太多时间,而会让你收获颇丰。


    Kotlin开发者社区

    专注分享 Java、 Kotlin、Spring/Spring Boot、MySQL、redis、neo4j、NoSQL、Android、JavaScript、React、Node、函数式编程、编程思想、"高可用,高性能,高实时"大型分布式系统架构设计主题。

    High availability, high performance, high real-time large-scale distributed system architecture design

    分布式框架:Zookeeper、分布式中间件框架等
    分布式存储:GridFS、FastDFS、TFS、MemCache、redis等
    分布式数据库:Cobar、tddl、Amoeba、Mycat
    云计算、大数据、AI算法
    虚拟化、云原生技术
    分布式计算框架:MapReduce、Hadoop、Storm、Flink等
    分布式通信机制:Dubbo、RPC调用、共享远程数据、消息队列等
    消息队列MQ:Kafka、MetaQ,RocketMQ
    怎样打造高可用系统:基于硬件、软件中间件、系统架构等一些典型方案的实现:HAProxy、基于Corosync+Pacemaker的高可用集群套件中间件系统
    Mycat架构分布式演进
    大数据Join背后的难题:数据、网络、内存和计算能力的矛盾和调和
    Java分布式系统中的高性能难题:AIO,NIO,Netty还是自己开发框架?
    高性能事件派发机制:线程池模型、Disruptor模型等等。。。

    合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。不积跬步,无以至千里;不积小流,无以成江河。

    相关文章

      网友评论

        本文标题:比尔盖茨/UNIX之父/Donald Knuth/Dijkstr

        本文链接:https://www.haomeiwen.com/subject/ofalghtx.html