At MIT, mostly what I did was documentation. I sort of read things. Wrote some descriptions of various aspects of the file system. Did not really do very much programming at all. At least on Multics.
Bad programmers worry about the code. Good programmers worry about data structures and their relationships.
If you've never programmed a computer, you should. There's nothing like it in the whole world. When you program a computer, it does exactly what you tell it to do. It's like designing a machine — any machine, like a car, like a faucet, like a gas-hinge for a door — using math and instructions. It's awesome in the truest sense: it can fill you with awe.
There are two methods in software design. One is to make the program so simple, there are obviously no errors. The other is to make it so complicated, there are no obvious errors.
The best way to prepare [to be a programmer] is to write programs, and to study great programs that other people have written. In my case, I went to the garbage cans at the Computer Science Center and I fished out listings of their operating systems.
I don't like programming. It's tedious.
Premature optimization is the root of all evil.
Computer science is not as old as physics; it lags by a couple of hundred years. However, this does not mean that there is significantly less on the computer scientist's plate than on the physicist's: younger it may be, but it has had a far more intense upbringing!
A programming language is a tool that has profound influence on our thinking habits.
I was a programmer.
Computer science needs to be part of the core curriculum - like algebra, biology, physics, or chemistry. We need all schools to teach it, not just 10%.
Learning to program has no more to do with designing interactive software than learning to touch type has to do with writing poetry
[Computer science] is not really about computers and it's not about computers in the same sense that physics is not really about particle accelerators, and biology is not about microscopes and Petri dishes... and geometry isn't really about using surveying instruments.
I started to write a new editor not too long ago and had it about half done after two days.
Anyone, from the most clueless amateur to the best cryptographer, can create an algorithm that he himself can't break.
It would've been amazing [to work as programmer]. You're good at numbers, you're good with people, you like to wear shorts in the summertime.
In my daily work, I work on very large, complex, distributed systems built out of many Python modules and packages. The focus is very similar to what you find, for example, in Java and, in general, in systems programming languages.
As we said in the preface to the first edition, C "wears well as one's experience with it grows." With a decade more experience, we still feel that way.
I am rarely happier than when spending entire day programming my computer to perform automatically a task that it would otherwise take me a good ten seconds to do by hand.
Great coders are today’s rock stars.
A lot of people assume that creating software is purely a solitary activity where you sit in an office with the door closed all day and write lots of code.
What is the central core of the subject [computer science]? What is it that distinguishes it from the separate subjects with which it is related? What is the linking thread which gathers these disparate branches into a single discipline. My answer to these questions is simple -it is the art of programming a computer. It is the art of designing efficient and elegant methods of getting a computer to solve problems, theoretical or practical, small or large, simple or complex. It is the art of translating this design into an effective and accurate computer program.
Learning to write programs stretches your mind, and helps you think better, creates a way of thinking about things that I think is helpful in all domains.
To me programming is more than an important practical art. It is also a gigantic undertaking in the foundations of knowledge.
Programming today is the opposite of diamond mining. In diamond mining you dig up a lot of dirt to find a small bit of value. With programming you start with the value, the real intention, and bury it in a bunch of dirt.