Programmer quotes

From Motley Bytes Wiki
Jump to: navigation, search

Contents

F_Terry_Baker

Code Library

“The most important of these is a development support library which encourages the visibility and manageability of the product, as well as reduces clerical effort on the part of the programmers. The library is typically maintained and operated by a programming librarian who serves to control the programming assets and to provide the necessary services for both programmers and management. As a result of its use, the entire project is maintained in a centralized, up-to-date, visible form which makes its status immediately apparent to code-competent software managers and makes it possible for programmers to answer their questions directly without relying on others.”
  • Source: Baker, F. T. (1975). Software Management Through Improved Programming Technology. ACM ’75: Proceedings of the 1975 Annual Conference, 286–287. https://doi.org/10.1145/800181.810346

Programmer Clerks

“...programmers typically get less programming done than they could because they do a great deal of clerical work directly.”
  • Source: Baker, F. T. (1975). Software Management Through Improved Programming Technology. ACM ’75: Proceedings of the 1975 Annual Conference, 286–287. https://doi.org/10.1145/800181.810346

Programmer Management

“With each programmer doing his own work in his own way, managers are so busy just trying to find out what's going on and why things don't fit together, that they don't have any opportunity to improve quality and reliability.”
  • Source: Baker, F. T. (1975). Software Management Through Improved Programming Technology. ACM ’75: Proceedings of the 1975 Annual Conference, 286–287. https://doi.org/10.1145/800181.810346

Robert_N_Britcher

Human Element

“The real scoop on programming and software is the human element. I didn't know Alan Turing or John von Neuman or the other inventors, but I've known plenty of programmers. We are just like everyone, part this, part that. Except we have to deal with enormous complexity, which springs upon us only after we are too far into what started out to be kind of fun - coding an algorithm and watching it run on a machine. Then it's too late and it all becomes work, very stressful work.”
  • Source: Britcher, Robert N. (1999). The Limits of Software: People, Projects, and Perspectives. Reading, MA: Addison Wesley. ISBN 0-201-43323-0. Page 28.

One Database

“I went too far. I specified too much detail. I insisted that one relational database connect every element of the software development environment. The subsystem designers and coders soon learned that this elegant solution could not work. Uniformity and commonality have their limits. ... They developed separate databases that could be queried independently. The team succeeded and I learned when to stop.”
  • Source: Britcher, Robert N. (1999). The Limits of Software: People, Projects, and Perspectives. Reading, MA: Addison Wesley. ISBN 0-201-43323-0. Page 41.

Lines of Code

“...programmers abhor the line of code. When managers speak of it, programmers quicken their step. Most of them know that the line of code is as central to the meaning of a program as the period is to the meaning of Tolstoy's Anna Karenina.”
  • Source: Britcher, Robert N. (1999). The Limits of Software: People, Projects, and Perspectives. Reading, MA: Addison Wesley. ISBN 0-201-43323-0. Page 50.

Limits of Testing

“The limits of software are never more obvious than in its testing. Software systems are beyond discrete and statistical analysis. A single incorrect state - out of two to the trillionth states - can down a rocket: To find such a fault in a software system would require a hundred generations of programmers - but after the first failure is found and fixed, all bets are off; they wouldn't be testing the same system anymore. We can design and build fail-safe systems, but can we know we did?”
  • Source: Britcher, Robert N. (1999). The Limits of Software: People, Projects, and Perspectives. Reading, MA: Addison Wesley. ISBN 0-201-43323-0. Page 56.

Testing Large Systems

“Many programmers do an adequate job of testing the logic of a single module. But testing an entire system is another matter. Once a module is absorbed into the mass of programs, running as part of the real world, the nature of testing changes.”
  • Source: Britcher, Robert N. (1999). The Limits of Software: People, Projects, and Perspectives. Reading, MA: Addison Wesley. ISBN 0-201-43323-0. Page 57.

Mixed Abstractions

“... computer systems and programming attract brainy people because symbol systems mix abstractions. One thing appears to be something else depending on how you look at it.”
  • Source: Britcher, Robert N. (1999). The Limits of Software: People, Projects, and Perspectives. Reading, MA: Addison Wesley. ISBN 0-201-43323-0. Page 129.

Programmer Errors

“Programmers will always make errors.”
  • Source: Britcher, Robert N. (1999). The Limits of Software: People, Projects, and Perspectives. Reading, MA: Addison Wesley. ISBN 0-201-43323-0. Page 132.

Keywords: Programmer_quotes Programming_quotes Error_quotes Make_quotes

Important Development Things

“The single, most important thing is that the individual programmer needs to be given total responsibility and control of the programming, including its function... eliminate project design and review as an exhaustive and rigorous process. Most of the design and review should occur as the program is written. ... Monitor progress on the project by talking to the individual programmers as [code] is being written. ... You must trust developers on the project to create a good product. ... Sometimes there are failures. ... The important thing is to fail quickly so you have time to find another approach. ... Developers must also feel free to say what they think to their supervisor. ... Managers should be the best programmers; ...There should be no overtime pay. ... Use profit-sharing and bonuses to get awesome products. ... Developers should each get their own office. ... Eliminate the dress code. Avoid meetings at all costs. ... Writing software is a lot like writing a book. Almost anyone can write garbage; very few can write a best-seller.”
  • Source: Britcher, Robert N. (1999). The Limits of Software: People, Projects, and Perspectives. Reading, MA: Addison Wesley. ISBN 0-201-43323-0. Page 155-156.

Fred_Brooks

Programmer Poetry

“The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures.”
  • Source: Brooks Jr., F. P. (1995). The Mythical Man-Month - Essays on Software Engineering (Anniversary Edition) | 1975/1995 (Anniv.). Boston. MA: Addison-Wesley. ISBN: 0201835959. Chapter 1, page 7.

Child Bearing Task Law

“The bearing of a child takes nine months, no matter how many women are assigned. Many software tasks have this characteristic because of the sequential nature of debugging.”
  • Source: Brooks Jr., F. P. (1995). The Mythical Man-Month - Essays on Software Engineering (Anniversary Edition) | 1975/1995 (Anniv.). Boston. MA: Addison-Wesley. ISBN: 0201835959. Chapter 2, page 17.

Alexander d'Agapeyeff

Programmer Platoons

"In my experience programmers are rather difficult to shove around like platoons in the army."

Edward_Emil_David

Software Engineer Training

"The problem of how the software engineers will get their practice is precisely the same as in other fields of engineering, and is insoluble. This is recognized in industry, where one makes sure that the young engineers coming in will get the proper kind of experience in time."

Edsger_Wybe_Dijkstra

Humble Programmers

"We shall do a much better programming job, provided that we approach the task with a full appreciation of its tremendous difficulty, provided that we stick to modest and elegant programming languages, provided that we respect the intrinsic limitations of the human mind and approach the task as Very Humble Programmers."
  • Source: Edsger Wybe Dijkstra in an article entitled The Humble Programmer. Written by Edsger W. Dijkstra. Published 1972 in Communications of the ACM, volume 15, number 10. DOI: 10.1145/355604.361591.

Competent Programmer

“The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague.”

Competent Programming

“Don't blame me for the fact that competent programming, as I view it as an intellectual possibility, will be too difficult for 'the average programmer' — you must not fall into the trap of rejecting a surgical technique because it is beyond the capabilities of the barber in his shop around the corner.”

Powers of Abstraction

“The effective exploitation of his powers of abstraction must be regarded as one of the most vital activities of a competent programmer.”
  • Source: The Humble Programmer (1972), 1972 Turing Award Lecture[1], Communications of the ACM 15 (10), October 1972: pp. 859–866.

Math and Language

“Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer.”

Hans_Hüttel

Chatbots and Programmers

“Even if chatbots should become a useful tool for programmers, their existence cannot mean the end of programming. It may well be the case that this combination of a built-in repository of code examples and the ability to easily retrieve code examples based on it can be used for generating ideas and for forms of ‘pair programming’.”
  • Source: Written by Hans Hüttel in the journal article entitled “On Program Synthesis and Large Language Models”, in Communications of the ACM, volume 68, number 1, 2025-01. DOI:10.1145/3680410.

Robert_M_McClure

Time and Motion Code

“I know of one organisation that attempts to apply time and motion standards to the output of programmers. They judge a programmer by the amount of code he produces. This is guaranteed to produce insipid code”

Malcolm_McIlroy

Automate Programmers

“It would be immoral for programmers to automate everybody but themselves.”

Negative Code

“The real hero of programming is the one who writes negative code.”
  • Source: Malcolm McIlroy, spoken during a talk 2009-12-03 at the Dartmouth-Lake Sunapee Linux User Group (DLSLUB).

David_E_Nye

Programmers Perfectionists

“A single error in a program thousands of lines long prevented it from running correctly, and computer programmers became known as a fanatically exact group of perfectionists, working in an arcane specialty. Sociologists studying the ‘man-machine' interface found that a programmer's personality often changed after prolonged exposure to the computer, becoming severely logical and machine-like.”
  • Source: A book. Written by David E. Nye. Entitled 'Narratives and Spaces'. Published in 1997 by Univerity of Exeter Press, Exeter, UK. Hardback ISBN 0-85989-555-6. Paperback ISBN 0-85989-556-4. Chapter 10, page 164.

Alan_Perlis

Software Engineering Competence

“It is a fact that there are software engineers around today who are quite competent. There are systems in many places which are quite stable and which provide magnificent service. It is also the case that there are large numbers of efforts, containing large numbers of programs and programmers, which have no software engineers on them, that is that people function as though they did not know how to build software.”
  • Note: Un-indexed continuation of quote: “I have a number of questions: 1. Is it possible to have software engineers in the numbers in which we need them, without formal software engineering education? 2. Is software engineering the same as Computer Science? 3. Is software engineering best provided by baccalaureate programs in universities? Or by adult education courses? Or by two year courses following the standard grade school education? 4. Do the people educated in these programs have a growing and future role in our society? 5. Will they be useful enough in a firm or government or university, and is their value such that they can distribute their talents in other activities, or must they always remain programmers? 6. What curriculum do we have in mind for software engineers, regardless of what level we choose to educate them? 7. Is software engineering really different from what we now call systems engineering?”

Ingenuity and Analysis

“Programmers are not to be measured by their ingenuity and their logic but by the completeness of their case analysis.”

Steven_Pinker

Blind Programmer

“Richard Dawkins called natural selection; the Blind Watchmaker; in the case of the mind, we can call it the Blind Programmer.”
  • Source: Steven Pinker (1997). How the Mind Works. New York, NY: W. W. Norton. ISBN 978-0-393-06973-0; eISBN 978-0-393-06973-0. Chapter 1 Section Reverse-Engineering the Psyche.

Herbert_Schildt

C and C++

“C gives the programmer what the programmer wants; few restrictions, few complaints... C++ maintains the original spirit of C, that the programmer not the language is in charge.”
  • Source: Herbert Schildt. In the book entitled C++: The Complete Reference. Written by Herbert Schildt. Fourth edition. Published by McGraw-Hill in 2003. ISBN 978-0072226805. Page 8.

Herbert_Simon

Top Down or Bottom Up

“Alternatives are also open, in organizing the design process, as to how far development of possible subsystems will be carried before the overall coordinating design is developed in detail, or vice-versa, how far the overall design should be carried before various components, or possible components, are developed. These alternatives of design are familiar to architects. They are familiar also to composers, who must decide how far the architectonics of a musical structure will be evolved before some of the component musical themes and other elements have been invented. Computer programmers face the same choices, between working downward from executive routines to subroutines or upward from component subroutines to a coordinating executive.”

Gerald_Weinberg

Desire To Eliminate Programmers

“Over the years, executives have backed their desire to eliminate programmers with staggering funds.”
  • Source: Book Entitled: The Psychology of Computer Programming (Silver anniversary edition). Edition: Silver anniversary. Written By: Gerald Weinberg. Published originally: 1971. Republished: 2011.

Programmers Are Human Beings

“If our experiences are any indication, each of them could be functioning more efficiently, with greater satisfaction, if he and his manager would only learn to look upon the programmer as a human being, rather than as another one of the machines.”
  • Source: Book Entitled: The Psychology of Computer Programming (Silver anniversary edition). Edition: Silver anniversary. Written By: Gerald Weinberg. Published originally: 1971. Republished: 2011.

Multiple Programmer Productivity

“As a rough rule, three programmers organized into a team can do only twice the work of a single programmer of the same ability — because of time spent on coordination problems. Moreover, three groups of three programmers can do only twice the work of a single group.”
  • Source: Book Entitled: The Psychology of Computer Programming (Silver anniversary edition). Edition: Silver anniversary. Written By: Gerald Weinberg. Published originally: 1971. Republished: 2011. Chapter: 5.

Small Teams More Efficient

“In any case, the basic rule for size and composition of programming teams would seem to be this — for the best programming at the least cost, give the best possible programmers you can find sufficient time so you need the smallest number of them. When you have to work faster, or with less experienced people, costs and uncertainties will rise. In any case, the worst way to do a programming project is to hire a horde of trainees and put them to work under pressure and without supervision — although this is the most common practice today.”
  • Source: Chapter 5. Weinberg, G. M. (2011). The Psychology of Computer Programming (Silver anniversary edition) | 1971. Weinberg & Weinberg.

Faster Programming Demands Better Programmers

“If we have to have the program faster, we shall have to hire a better man for the job.”
  • Source: Chapter 5. Weinberg, G. M. (2011). The Psychology of Computer Programming (Silver anniversary edition) | 1971. Weinberg & Weinberg.

A Good Program

“Most programmers feel that there is such a thing as good programming. Although this feeling may be valid, it does not follow that there is such a thing as a good program. Not, at least, in the sense that we can study the program out of the context in which it was developed and in which it will be used and declare it to have a goodness of 83.72 percent.”
  • Source: Chapter 2. Weinberg, G. M. (2011). The Psychology of Computer Programming (Silver anniversary edition) | 1971. Weinberg & Weinberg.

Programming Not Individual

“But there is much evidence, as we shall see presently, to argue that the proper study of programming is done at the level of the programming social unit. Not that the individual level is unimportant, but we might start by asking why, if the average programmer spends two-thirds of his time working with other people rather than working alone (yes, it's true!), that 99 percent of the studies have been on individual programmers.”
  • Source: Chapter 3. Weinberg, G. M. (2011). The Psychology of Computer Programming (Silver anniversary edition) | 1971. Weinberg & Weinberg.

Furniture Partitions

“Someone should definitely study the depressing effect that the all-too-common half partitions have on programmer productivity. They manage to cut off all useful communication while permitting all disturbing sound and movement to penetrate.”
  • Source: Chapter 4. Weinberg, G. M. (2011). The Psychology of Computer Programming (Silver anniversary edition) | 1971. Weinberg & Weinberg.

Egoless Programming and Cognitive Dissonance

“Now, what cognitive dissonance has to do with our programming conflict should be vividly clear. A programmer who truly sees his program as an extension of his own ego is not going to be trying to find all the errors in that program. On the contrary, he is going to be trying to prove that the program is correct — even if this means the oversight of errors which are monstrous to another eye.”
  • Source: Chapter 4. Weinberg, G. M. (2011). The Psychology of Computer Programming (Silver anniversary edition) | 1971. Weinberg & Weinberg.

Egoless Programming and John von Neumann

“Programming groups who have conquered the ego problem do exist and have existed from the earliest days of computing. John von Neumann himself was perhaps the first programmer to recognize his inadequacies with respect to examination of his own work. Those who knew him have said that he was constantly asserting what a lousy programmer he was, and that he incessantly pushed his programs on other people to read for errors and clumsiness. Yet the common image today of von Neumann is of the unparalleled computing genius — flawless in his every action. And indeed, there can be no doubt of von Neumann's genius. His very ability to realize his human limitations put him head and shoulders above the average programmer today. Average people can be trained to accept their humanity — their inability to function like a machine — and to value it and work with others so as to keep it under the kind of control needed if programming is to be successful.”
  • Source: Chapter 4. Weinberg, G. M. (2011). The Psychology of Computer Programming (Silver anniversary edition) | 1971. Weinberg & Weinberg.

Bad Managers and Good Programmers

“Bad managers are easier to find than good programmers.”
  • Source: Chapter 5. Weinberg, G. M. (2011). The Psychology of Computer Programming (Silver anniversary edition) | 1971. Weinberg & Weinberg.

Technical Leaders

“Leadership, in the sense that social scientists use it, means the ability to influence people. Programmers, being people who tend to value creative work and professional competence, tend to put their stock in people whom they perceive to be good at the things they do. Thus, it is easier to exert leadership over — to influence — programmers by being a soft-spoken programming wizard than by being the world's fastest-talking salesman. When nonprogramming leaders are brought in to be in charge of programming teams, trouble usually brews unless the appointed leader explicitly and implicitly recognizes his incapacity on technical matters. The very worst he can do — and this goes also for a former programmer who has lost touch with the field — is to try to match programming wits with the other members of the team. Although a team might come to respect a leader who openly admitted his programming inexperience, they could only come to ridicule one whose pretense at knowledge was revealed to be a sham.”
  • Source: Chapter 5. Weinberg, G. M. (2011). The Psychology of Computer Programming (Silver anniversary edition) | 1971. Weinberg & Weinberg.

Management Deskilling

“Even though the nth-level manager may have originally been a programmer, which is rare enough, he has almost certainly lost any programming ability by the time he reaches these heights. Given the rapid change of programming techniques and hardware, the higher-level manager becomes obsolete even if he retains the skills he originally had and keeps them sharply honed, for those languages and those machines are no longer in use. In a small survey of working programmers, only 15 percent of the first-line managers were thought to be as skillful as the programmers themselves, and none of the higher-level managers.”
  • Source: Chapter 6. Weinberg, G. M. (2011). The Psychology of Computer Programming (Silver anniversary edition) | 1971. Weinberg & Weinberg.

Amateur and Professional Programmers

“The amateur... is looking for a way to get the job done. If he runs into difficulty, all he wants is to surmount it — the manner of doing so is of little consequence. Not so, however, for the professional. She may well be aware of numerous ways of circumnavigating the problem at hand. She may even employ one of them for the immediate purpose of getting the job done. But her work does not stop there; it begins there. It begins because she must understand why she did not understand, in order that she may prepare herself for the programs she may someday write which will require that understanding. The amateur, then, is learning about his problem... The professional, conversely, is learning about her profession — programming — and the problem being programmed is only one incidental step in her process of development.”
  • Source: Chapter 7. Weinberg, G. M. (2011). The Psychology of Computer Programming (Silver anniversary edition) | 1971. Weinberg & Weinberg.

Edward_Yourdon

Enterprise Productivity

“Enterprise productivity is much more important than project productivity or programmer productivity.”
  • Source: Edward Yourdon in the book “Decline and Fall of the American Programmer”. Published in 1992 by Prentice Hall. ISBN: 0-13-203670-3. Chapter 1, section 1.6, page 18.

Better Programming Languages

“Better coding techniques may do nothing more than help you arrive at a disaster sooner than before. Better programming languages, used without anything else, may be just what your programmers need to develop a brilliant solution to the wrong problem.”
  • Source: Edward Yourdon in the book “Decline and Fall of the American Programmer”. Published in 1992 by Prentice Hall. ISBN: 0-13-203670-3. Chapter 2, section 2.1, page 27.

Recruiting Audition

“Let me add one new strategy to your recruiting and interviewing approach...: The ‘audition’ process... ask a candidate to programmer or analyst to give a 30 to 60 minute presentation on some technical subject to the group that would normally interview him [or her].”
  • Source: Edward Yourdon in the book “Decline and Fall of the American Programmer”. Published in 1992 by Prentice Hall. ISBN: 0-13-203670-3. Chapter 3, section 3.6, page 55.