Fengyun Liu

Papers

Blog

Quotes

General

No art, however minor, demands less than total dedication if you want to excel in it. — Leon Battista Alberti

It is the mark of an educated mind to be able to entertain a thought without accepting it. — Aristotle

I have no special talents. I am only passionately curious. — Albert Einstein

Was sich überhaupt sagen lässt, lässt sich klar sagen; und wovon man nicht reden kann, darüber muss man schweigen. — Wittgenstein in Tractatus Logico-Philosophicus

First do it, then do it right, then do it better. This is one fundamental I always keep in mind when developing anything. — Addy Osmani

Simplicity is the ultimate sophistication. — Leonardo da Vinci

Doubt is the origin of wisdom. — René Descartes

Divide each difficulty into as many parts as is feasible and necessary to resolve it. — René Descartes

Luck favors the prepared mind. — Louis Pasteur

The only way to be truly satisfied is to do what you believe is great work, and the only way to do great work is to love what you do. If you haven’t found it yet, keep looking, and don’t settle. As with all matters of the heart, you’ll know when you find it. And like any great relationship, it just gets better and better as the years roll on. So keep looking, don’t settle. — Steve Jobs

What we have to learn to do we learn by doing. — Aristotle, Nicomachean Ethics II

Some bookes are to bee tasted, others to bee swallowed, and some few to bee chewed and digested. — Francis Bacon, Essayes (1597)

Writing is nature’s way of letting you know how sloppy your thinking is. — Guindon

“Non sunt multiplicanda entia praeter necessitatem.” “Do not multiply entities beyond necessity.” — Ockham’s Razor, William of Ockham (1285–1349?)

Civilization advances by extending the number of important operations which we can perform without thinking about them. — Alfred North Whitehead, An Introduction to Mathematics, 1911

People have said you don’t understand something until you’ve taught it in a class. The truth is you don’t understand something until you’ve taught it to a computer, until you’ve been able to program it. — George Forsythe

You can’t make imperfections on a perfect thing - you have to have another perfect thing. — Feynman

A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away. — Antoine de Saint-Exupéry

Keep the company of those who seek the truth – run from those who have found it. — Vaclav Havel

Fall in love with some activity, and do it! Nobody ever figures out what life is all about, and it doesn’t matter. Explore the world. Nearly everything is really interesting if you go into it deeply enough. Work as hard and as much as you want to on the things you like to do the best. Don’t think about what you want to be, but what you want to do. Keep up some kind of a minimum with other things so that society doesn’t stop you from doing anything at all. — Richard P. Feynman

Life is too short to worry about stupid things. Have fun. Fall in love. Regret nothing and don’t let people bring you down. — Richard P. Feynman

The taste to work on the right problem at the right time and in the right way is the secret of doing significant things. — Richard W. Hamming, Methods of mathematics applied to calculus, probability, and statistics

Computer

Programs should be written for people to read, and only incidentally for machines to execute. — Structure and Interpretation of Computer Programs

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%. A good programmer will not be lulled into complacency by such reasoning, he will be wise to look carefully at the critical code; but only after that code has been identified. — Donald Knuth

An unreliable programming language generating unreliable programs constitutes a far greater risk to our environment and to our society than unsafe cars, toxic pesticides, or accidents at nuclear power stations. Be vigilant to reduce that risk, not to increase it. — Tony Hoare, The emperor’s old clothes

Inside every large program, there is a small program trying to get out. — Tony Hoare

Any fool can write code that a computer can understand. Good programmers write code that humans can understand. — Martin Fowler

It is relatively easy to add a new feature to meet a well-understood need in an existing simple language; it is almost impossible to remove an over-elaborate feature from a language which has already gone into use! — Tony Hoare, Everything You’ve Wanted to Know about Programming Languages but Have Been Afraid to Ask

The real merit in a programming language is its success in combining a useful (but not redundant) set of features into single programming tool, which can be widely used and efficiently implemented. It is the right balance between features, and the avoidance of interaction effects, that is most important. — Tony Hoare, Everything You’ve Wanted to Know about Programming Languages but Have Been Afraid to Ask

Listen carefully to what language users say they want, until you have an understanding of what they really want. — Tony Hoare, Hints on Programming Language Design

… it is absurd to make elaborate security checks on debugging runs, when no trust is put in the results, and then remove them in production runs, when an erroneous result could be expensive or disastrous. What would we think of a sailing enthusiast who wears his life-jacket when training on dry land but takes it off as soon as he goes to sea? — Tony Hoare, Hints on Programming Language Design

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies. — Tony Hoare

What were the lessons I learned from so many years of intensive work on the practical problem of setting type by computer? One of the most important lessons, perhaps, is the fact that SOFTWARE IS HARD. From now on I shall have significantly greater respect for every successful software tool that I encounter. During the past decade I was surprised to learn that the writing of programs for TeX and Metafont proved to be much more difficult than all the other things I had done (like proving theorems or writing books). The creation of good software demands a significantly higher standard of accuracy than those other things do, and it requires a longer attention span than other intellectual tasks. — Donald Knuth, Keynote address to 11th World Computer Congress (IFIP Congress 89).

Reliability can be purchased only at the price of simplicity. — Tony Hoare, An axiomatic basis for computer programming

The price of reliability is the pursuit of the utmost simplicity. — Tony Hoare, The Emperor’s Old Clothes

The art of programming is the art of organising complexity, of mastering multitude and avoiding its bastard chaos as effectively as possible. — Edsger W. Dijkstra, Notes on structured programming

Program testing can be used to show the presence of bugs, but never to show their absence! — Edsger W. Dijkstra, Notes on structured programming

Once a person has understood the way in which variables are used in programming, he has understoodthe quintessence of programming. — Edsger W. Dijkstra, Notes on structured programming

Programming (or problem solving in general?) as the judicious postponement of decisions and commitments! — Edsger W. Dijkstra, Notes on structured programming

Simple things should be simple, complex things should be possible. — Alan Kay

More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason—including blind stupidity. — Wulf, W. A Case Against the GOTO. 1972.

As programmers, we should be alert to opportunities to identify the underlying abstractions in our programs and to build upon them and generalize them to create more powerful abstractions. This is not to say that one should always write programs in the most abstract way possible; expert programmers know how to choose the level of abstraction appropriate to their task. But it is important to be able to think in terms of these abstractions, so that we can be ready to apply them in new contexts. The significance of higher-order procedures is that they enable us to represent these abstractions explicitly as elements in our programming language, so that they can be handled just like other computational elements. — Structure and Interpretation of Computer Programs

It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. — Edsger W.Dijkstra, EWD498

Writing

If you try to write for the novice, you will communicate with the experts — otherwise you communicate with nobody. — Donald Knuth

If you are thinking without writing, you only think you are thinking. — Leslie Lamport

Mathematics

In mathematics you don’t understand things, you just get used to them. — John von Neumann

Beauty is the first test: there is no permanent place in this world for ugly mathematics. — G. H. Hardy, A Mathematician’s Apology

Science

A new scientific truth does not triumph by convincing its opponents and making them see the light, but rather because its opponents eventually die and a new generation grows up that is familiar with it. . . . An important scientific innovation rarely makes its way by gradually winning over and converting its opponents: it rarely happens that Saul becomes Paul. What does happen is that its opponents gradually die out, and that the growing generation is familiarized with the ideas from the beginning: another instance of the fact that the future lies with the youth. — Max Planck, Scientific autobiography

In science if you know what you are doing you should not be doing it. In engineering if you do not know what you are doing you should not be doing it. Of course, you seldom, if ever, see either pure state. — Richard Hamming, The Art of Doing Science and Engineering: Learning to Learn

There is no royal road to logic, and really valuable ideas can only be had at the price of close attention. — C. S. Peirce, How to make our ideas clear

As far as the propositions of mathematics refer to reality, they are not certain; and as far as they are certain, they do not refer to reality. — Einstein

Doubt is not a pleasant condition, but certainty is absurd. — Voltaire

Education

Education is not the filling of a pail, but the lighting of a fire. — William Butler Yeats

Try to learn something about everything and everything about something. — Thomas Huxley