The most important single aspect of software development is to be clear about what you are trying to build.
Bjarne StroustrupRead
Topic
161 quotes
The most important single aspect of software development is to be clear about what you are trying to build.
I think it is inevitable that people program poorly. Training will not substantially help matters. We have to learn to live with it.
Most of us become so rigidly fixed in the ruts carved out by genetic programming and social conditioning that we ignore the options of choosing any other course of action. Living exclusively by genetic and social instructions is fine as long as everything goes well. But the moment bioloical or social goals are frustrated- which in the long run is inevitable - a person must formulate new goals, and create a new flow activity for himself, or else he will always waste his energies in inner turmoil.
There's a subtle reason that programmers always want to throw away the code and start over. The reason is that they think the old code is a mess. [...] The reason that they think the old code is a mess is because of a cardinal, fundamental law of programming: It's harder to read code than to write it.
... programming requires more concentration than other activities. It's the reason programmers get upset about 'quick interruptions' - such interruptions are tantamount to asking a juggler to keep three balls in the air and hold your groceries at the same time.
Good code is its own best documentation. As you're about to add a comment, ask yourself, "How can I improve the code so that this comment isn't needed?" Improve the code and then document it to make it even clearer.
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.
There is always a well-known solution to every human problem - neat, plausible, and wrong.
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.
Low-level programming is good for the programmer's soul.
Because of the nature of Moore's law, anything that an extremely clever graphics programmer can do at one point can be replicated by a merely competent programmer some number of years later.
A user interface is well-designed when the program behaves exactly how the user thought it would.
I made up the term "object-oriented," and I can tell you I did not have C++ in mind.
Lisp isn't a language, it's a building material.
I mean, if 10 years from now, when you are doing something quick and dirty, you suddenly visualize that I am looking over your shoulders and say to yourself "Dijkstra would not have liked this," well, that would be enough immortality for me.
Adding manpower to a late software project makes it later
C is quirky, flawed, and an enormous success.
I will, in fact, claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships.
You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time.
You know that I write slowly. This is chiefly because I am never satisfied until I have said as much as possible in a few words, and writing briefly takes far more time than writing at length.
There are only two industries that refer to their customers as 'users'.
Subscribe for the occasional hand-picked quote. No noise.