More on this book
Community
Kindle Notes & Highlights
Pressing a programmer for rapid elimination of a bug may turn out to be the worst possible strategy—but it is by far the most common.
it has been my experience that programmers as a group are over-motivated, which is a major reason why so many programming projects fall apart as the pressure grows.
there is no necessary relationship between what a person says he does or will or would do and what he actually does.
Even if these responses truly reflect differential strengths of outside forces, they represent those strengths in a particular circumstance at a particular time.
in certain circumstances we have seen, additional money can actually drive a man off the job.
programmers tend to be on a rather high scale compared with the general populace, so we might expect that money would be less motivating for them.
programming itself, if the programmer is given a chance to do it his way, is the biggest motivation in programming.
"Programming, like chess, women, and music, has the power to make men happy."
The striking factor is always the same—several years of working together on real projects under a formidable leader.
One of the confusions standing in the way of educational progress is the confusion between schooling and education. Another is the confusion between education and training.
by "education" we mean acquisition of general principles and skills, and by "training" we mean acquisition of specific skills.
This barrier cannot be removed by lecturing about it, but it can be removed by putting the learner in a situation where the machine keeps giving him the experience he needs.
the only time we fail to learn is when there are negative forces set up against it.
the average adult learns very little if left to his own devices.
in order to learn we have to acknowledge that there is something we don't know that might be worth knowing. For a professional programmer, this acknowledgment represents a lowering of status—unless
To learn, we must be willing to make mistakes, and this is difficult to do when there is an audience present.
There is no particular reason why a feature that is easiest to learn will be easiest to use in the long run.
In programming, we often encounter a programmer who has had much success working on problems of a certain size but has never been able to go beyond them. In fact, we sometimes encounter the converse situation—the programmer who was not notably successful until he began to work on bigger systems. In the first case, the techniques that worked so well on small programs just cannot be applied effectively to large ones. In the second, application of powerful and general techniques to simple problems may have resulted in excessive overhead.
For the programmer who has mastered certain dead-end techniques (or dead-end programming languages), new learning requires him to give up, at least temporarily, some current satisfaction.
The fear of new things, the expectation of failure, and the reluctance to admit weakness all have a direct retarding effect on learning,
The poor teacher may give his students the impression that things are too easy, perhaps by being too smoothly prepared so that they do not see the difficulties underlying his examples.
Or, he may choose intentionally simple examples to highlight certain points and, in so doing, give the impression that in real problems things always seem to fall into place.
the programming business relies more than any other on unending learning,
The programmer who wants to advance himself cannot afford to rely on formal training and the grace of his manager to get the education he needs.
If a programmer is going to make something of his experience, he must learn how to learn.
every modern theory of education recognizes the existence of favored modes of perception.
The debate over the optimum conditions for learning is probably endless, for it is essentially a debate over an unresolvable problem.
Probably the greatest cause of this type of loss is the concept that something that is not "right" is "wrong." This binary distinction—this Aristotelian fallacy which pervades our culture today—results in countless amounts of lost information, which, if recovered, could lead to a major increase in educational efficiency.
To implement such an active program of learning, the programmer must already know quite a bit.
It should, therefore, be the goal of formal educational programs to train the programmer to the point where he can use his tools as tools to further his learning.
It is a poor workman who hates his tools—all the more because it is the tools themselves which can teach us to become good workmen.
more articles and books have been written on programming education than on all other aspects of programming psychology put together, yet few of them have any lasting importance.
the astute manager can easily figure out what motivates each individual—by asking! Of

