Wednesday, December 16, 2009

What I mean is that if you really want to understand something

He who hasn't hacked assembly language as a youth has no heart. He who does so as an adult has no brain. ~John Moore


If debugging is the process of removing bugs, then programming must be the process of putting them in. ~Author Unknown


If you cannot grok the overall structure of a program while taking a shower, e.g., with no external memory aids, you are not ready to code it. ~Richard Pattis


It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter. ~Nathaniel S. Borenstein


It's easy to cry "bug" when the truth is that you've got a complex system and sometimes it takes a while to get all the components to co-exist peacefully. ~Doug Vargas


It's okay to figure out murder mysteries, but you shouldn't need to figure out code. You should be able to read it. ~Steve McConnell


It's the only job I can think of where I get to be both an engineer and an artist. There's an incredible, rigorous, technical element to it, which I like because you have to do very precise thinking. On the other hand, it has a wildly creative side where the boundaries of imagination are the only real limitation. ~Andy Hertzfeld, about programming


We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. ~C.A.R. Hoare, quoted by Donald Knuth


Programming is like sex. One mistake and you have to support it for the rest of your life. ~Michael Sinz


Programming is similar to a game of golf. The point is not getting the ball in the hole but how many strokes it takes. ~Harlan Mills


Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary. ~Author Unknown


Programming languages, like pizzas, come in only two sizes: too big and too small. ~Richard Pattis


Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~Author Unknown


Programs for sale: fast, reliable, cheap - choose two. ~Author Unknown


Ready, fire, aim: the fast approach to software development. Ready, aim, aim, aim, aim: the slow approach to software development. ~Author Unknown


Reusing pieces of code is like picking off sentences from other people's stories and trying to make a magazine article. ~Bob Frankston


Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. ~Stan Kelly-Bootle


The best performance improvement is the transition from the nonworking state to the working state. ~J. Osterhout


The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.... The computer resembles the magic of legend in this respect, too. If one character, one pause, of the incantation is not strictly in proper form, the magic doesn't work. Human beings are not accustomed to being perfect, and few areas of human activity demand it. Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program. ~Frederick Brooks


The only way for errors to occur in a program is by being put there by the author. No other mechanisms are known. Programs can't acquire bugs by sitting around with other buggy programs. ~Harlan Mills


There are two ways to write error-free programs; only the third one works. ~Alan J. Perlis


One man's constant is another man's variable. ~Alan J. Perlis


There does not now, nor will there ever exist, a programming language in which it is the least bit hard to write bad programs. ~Lawrence Flon


We don't manage our time as well as we manage our space. There's an overhead of starting and an overhead of stopping a project because you kind of lose your momentum. And you've got to bracket and put aside all the things you're already doing. So you need reasonably large blocks of uninterrupted time if you're going to be successful at doing some of these things. That's why hackers tend to stay up late. If you stay up late and you have another hour of work to do, you can just stay up another hour later without running into a wall and having to stop. Whereas it might take three or four hours if you start over, you might finish if you just work that extra hour. If you're a morning person, the day always intrudes a fixed amount of time in the future. So it's much less efficient. Which is why I think computer people tend to be night people - because a machine doesn't get sleepy. ~Bill Joy


When a programming language is created that allows programmers to program in simple English, it will be discovered that programmers cannot speak English. ~Author Unknown


When debugging, novices insert corrective code; experts remove defective code. ~Richard Pattis


When you catch bugs early, you also get fewer compound bugs. Compound bugs are two separate bugs that interact: you trip going downstairs, and when you reach for the handrail it comes off in your hand. ~Paul Graham, "The Other Road Ahead," 2001


You cannot teach beginners top-down programming, because they don't know which end is up. ~C.A.R. Hoare


In programming, as in everything else, to be in error is to be reborn. ~Alan J. Perlis


The New Testament offers the basis for modern computer coding theory, in the form of an affirmation of the binary number system. "But let your communication be Yea, yea; nay, nay: for whatsoever is more than these cometh of evil." Matthew 5:37 ~Author Unknown


What I mean is that if you really want to understand something, the best way is to try and explain it to someone else. That forces you to sort it out in your own mind. And the more slow and dim-witted your pupil, the more you have to break things down into more and more simple ideas. And that's really the essence of programming. By the time you've sorted out a complicated idea into little steps that even a stupid machine can deal with, you've certainly learned something about it yourself. ~Douglas Adams

No comments: