From a programmer's point of view, the user is a peripheral that types when you issue a read request.
If you have any trouble sounding condescending, find a Unix user to show you how it's done.
Never trust a computer you can't throw out a window.
Considering the current sad state of our computer programs, software development is clearly still a black art, and cannot yet be called an engineering discipline.
FORTRAN is not a flower but a weed -- it is hardy, occasionally blooms, and grows in every computer.
In programming, as in everything else, to be in error is to be reborn.
You think you KNOW when you learn, are more sure when you can write, even more when you can teach, but certain when you can program.
A language that doesn't affect the way you think about programming is not worth knowing.
The best book on programming for the layman is Alice in Wonderland; but that's because it's the best book on anything for the layman.
You can measure a programmer's perspective by noting his attitude on the continuing vitality of FORTRAN.
There are two ways to write error-free programs; only the third one works.
LISP programmers know the value of everything and the cost of nothing.
A programming language is low level when its programs require attention to the irrelevant.
In English every word can be verbed. Would that it were so in our programming languages.
We toast the Lisp programmer who pens his thoughts within nests of parentheses.
If we wish to count lines of code, we should not regard them as lines produced but as lines spent.
The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise.
Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer.
If debugging is the process of removing software bugs, then programming must be the process of putting them in.
The computing scientist's main challenge is not to get confused by the complexities of his own making.
Are you quite sure that all those bells and whistles, all those wonderful facilities of your so called powerful programming languages, belong to the solution set rather than the problem set?
The tools we use have a profound and devious influence on our thinking habits, and therefore on our thinking abilities.
Programming in Basic causes brain damage.
Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians.
The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense.
Object-oriented programming is an exceptionally bad idea which could only have originated in California.
APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums.
The competent programmer is fully aware of the limited size of his own skull. He therefore approaches his task with full humility, and avoids clever tricks like the plague.
If you're as clever as you can be when you write it, how will you ever debug it?
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.
The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?
That's the thing about people who think they hate computers. What they really hate is lousy programmers.
I think that great programming is not all that dissimilar to great art. Once you start thinking in concepts of programming it makes you a better person...as does learning a foreign language, as does learning math, as does learning how to read.
Lisp isn't a language, it's a building material.
The most disastrous thing that you can ever learn is your first programming language.
Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.
It has been said that the great scientific disciplines are examples of giants standing on the shoulders of other giants. It has also been said that the software industry is an example of midgets standing on the toes of other midgets.
I love computer programmers. They have a very beautiful definition of complexity as 'the capacity to transmit the maximum information with the minimum data'.
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off.
The most important single aspect of software development is to be clear about what you are trying to build.
Design and programming are human activities; forget that and all is lost.
However, when Java is promoted as the sole programming language, its flaws and limitations become serious.
I find languages that support just one programming paradigm constraining.
The standard library saves programmers from having to reinvent the wheel.
The trick is to fix the problem you have, rather than the problem you want.
The mark of a mature programmer is willingness to throw out code you spent time on when you realize it's pointless.
To a programmer, an operating system is defined by its API.
Data is not information, Information is not knowledge, Knowledge is not understanding, Understanding is not wisdom.
Programs are meant to be read by humans and only incidentally for computers to execute.
People think that computer science is the art of geniuses but the actual reality is the opposite, just many people doing things that build on each other, like a wall of mini stones.
We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.
Premature optimization is the root of all evil.
Premature optimization is the root of all evil in programming.
Computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better.
Beware of bugs in the above code; I have only proved it correct, not tried it.
If you optimize everything, you will always be unhappy.
Everyday life is like programming, I guess. If you love something you can put beauty into it.
The most important thing in the programming language is the name. A language will not succeed without a good name. I have recently invented a very good name and now I am looking for a suitable language.
A language that doesn't have everything is actually easier to program in than some that do.
UNIX is simple and coherent, but it takes a genius (or at any rate, a programmer) to understand and appreciate its simplicity.
C is quirky, flawed, and an enormous success.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity.
All programming is maintenance programming, because you are rarely writing original code.
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
Programming in different languages is like composing pieces in different keys, particularly if you work at the keyboard. If you have learned or written pieces in many keys, each key will have its own special emotional aura.
As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications.
The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better.
Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter.
In the beginning, there were Real Programmers.
The intellectual property situation is bad and getting worse. To be a programmer, it requires that you understand as much law as you do technology.
Programming is similar to a game of golf. The point is not getting the ball in the hole but how many strokes it takes.
The most amazing achievement of the computer software industry is its continuing cancellation of the steady and staggering gains made by the computer hardware industry.
Programming graphics in X is like finding the square root of PI using Roman numerals.
The cost of adding a feature isn't just the time it takes to code it. The cost also includes the addition of an obstacle to future expansion. ... The trick is to pick the features that don't fight each other.
One of the big lessons of a big project is you don't want people that aren't really programmers programming, you'll suffer for it!
It is not that uncommon for the cost of an abstraction to outweigh the benefit it delivers. Kill one today!
Programming is not a zero-sum game. Teaching something to a fellow programmer doesn't take it away from you. I'm happy to share what I can, because I'm in it for the love of programming.
Low-level programming is good for the programmer's soul.
Linux is only free if your time has no value.
Computer Science is the only discipline in which we view adding a new wing to a building as being maintenance.
Laziness is a programmer's main virtue.
Programmers can be lazy.
It is easier to port a shell than a shell script.
Real programmers can write assembly code in any language.
The three chief virtues of a programmer are: Laziness, Impatience and Hubris.
When in doubt, use brute force.
Testing is not the point. The point is about responsibility.
The world is changing, and I believe that, if I want to stay employed as a programmer, I'm going to have to change with it.
We could talk, act, and dress funny. We were excused for socially inappropriate behavior: 'Oh, he's a programmer'. It was all because we knew this technology stuff that other people found completely mystifying.
Software is eating the world.
Programming is usually taught by examples.
Software sucks because users demand it to.
Programmers work in bursts of productivity. Then, they let the brain rest and get back into it. A lot about the office world is not a great fit for me.
Object-oriented programming offers a sustainable way to write spaghetti code. It lets you accrete programs as a series of patches.
A programming language is for thinking about programs, not for expressing programs you've already thought of. It should be a pencil, not a pen.
When I'm working on a problem, I never think about beauty. I think only how to solve the problem.
Languages that try to disallow idiocy become themselves idiotic.
Such is modern computing: everything simple is made too complicated because it's easy to fiddle with; everything complicated stays complicated because it's hard to fix.