The Psychology of Computer Programming (Silver Anniversary Edition) (The Psychology of Technology)

The Psychology of Computer Programming (Silver Anniversary Edition) (The Psychology of Technology)

Gerald M. Weinberg

Language: English

Pages: 244

ISBN: 0932633420

Format: PDF / Kindle (mobi) / ePub


Publish Year note: First published in 1971
------------------------

This landmark 1971 classic is reprinted with a new preface, chapter-by-chapter commentary, and straight-from-the-heart observations on topics that affect the professional life of programmers.

Long regarded as one of the first books to pioneer a people-oriented approach to computing, The Psychology of Computer Programming endures as a penetrating analysis of the intelligence, skill, teamwork, and problem-solving power of the computer programmer.

Finding the chapters strikingly relevant to today's issues in programming, Gerald M. Weinberg adds new insights and highlights the similarities and differences between now and then. Using a conversational style that invites the reader to join him, Weinberg reunites with some of his most insightful writings on the human side of software engineering.

Topics include egoless programming, intelligence, psychological measurement, personality factors, motivation, training, social problems on large projects, problem-solving ability, programming language design, team formation, the programming environment, and much more.

The author says, "On an inspired eight-week vacation in Italy, I wrote the first draft of The Psychology of Computer Programming. . . . the book quickly became a best-seller among technical titles, running through more than twenty printings and staying in print for twenty-five years. . . .
"For this Silver Anniversary Edition, I decided to take my own advice and not try to hide my errors, for they would be the source of the most learning for my readers. I decided to leave the original text as it was—antiques and all—for your illumination, and simply to add some 'wisdom of hindsight' remarks whenever the spirit moved me. I hope you find the perspective brought by this time-capsule contrast as useful to you as it has been to me."

Sue Petersen of Visual Developer said: "In this new edition, Jerry looks at where we were 30 years ago, where we are now and where we might be in the future. Instead of changing the original text, he's added new comments to each chapter. This allows the reader to compare and contrast his thinking over the decades, showcasing the errors and omissions as well as the threads that bore fruit.
". . . one issue -- communication -- has been at the core of Jerry's work for decades. Unknown to him at the time, Psychology was to form the outline of his life's work. . . . Psychology is valuable as history in a field that is all too ready to repeat the errors of its past. Read Psychology as a picture of where we've been, where we are now, and where we need to go next. Read it as an index to the thinking of one of the most influential figures in our field."

Alexander Wolfe said, "Weinberg's book isn't loaded up with one-liners, but rather provides an almost Freudian dive into the personalities of the people you work alongside. When I read it in the late 1970s (it came out in 1971) I was blown away by its dead-on-ness."

one reviewer commented,
"One comes away with the feeling of having spent a pleasant but somewhat 'wasted' afternoon of reading, and as the old joke goes, 'it ain't till you try to turn your head that you realize how sharp the razor was.'"

An Amazon reviewer wrote: I bought this for my son, who is following in my footsteps as a computer programmer, sort of: Instead of machine languages, assembly languages, Fortran, Cobol, and report generators, he uses newer languages such as Pearl, Ruby, and Java. But he still found this book very interesting and well worth reading, as I did years before I first met his mother.

J. Hirschfelder of Computing Reviews wrote: "The Psychology of Computer Programming . . . was the first major book to address programming as an individual and team effort, and became a classic in the field. . . . Despite, or perhaps even because of, the perspective of 1971, this book remains a must-read for all software development managers."

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

transportability between machines. In fact, it has the effect of freezing us to a machine or implementation that we have admitted by our very act is unsatisfactory. However, the same managers who scream for efficiency are the ones who tear their hair when told the cost of modifications. Conversely, the managers who ask for generalized and easily modified programs are wont to complain when they find out how slow and spacious these programs turn out to be. We must be adult about such matters:

was much larger and much better organized. They had come to complain about the lack of consulting service; and, indeed, when he went to look for himself, he saw two long lines extending out of the consulting room into the common room. He spoke to the consultants to ask them why they were suddenly so slow in servicing their clients, but they told him that they were working as fast as they had ever done—if not faster. For some reason, they said, there were just a lot more people needing advice than

anthropomorphisms do not have to represent rational thinking in order to be important factors in determining team satisfaction with work assignments. They can be quite real—perhaps all the more so for being irrational. ESTABLISHING AND ACCEPTING GOALS Suppressed feelings by a team member about the inferiority of his assignment can be surprisingly damaging to a team effort. Egoless programming tends to moderate such feelings, since each programmer feels that he has a share in a larger part

capabilities. Not every programmer wants to advance to more challenging work—some will leave if pushed too fast—but for the most part, as programmers learn they become discontented unless they can apply their knowledge. Thus, to achieve a stable project over a long period of time, a manager must encourage the project to function as a sort of programmer processing plant—with a fresh supply of trainees coming in one end and a stream of experienced leaders coming out the other, with people in the

the program, we must not be misled into the illusion that we could have started with this kernel as a specification and had some system take care of the other limitations. Aside from the obvious difficulties in determining a programmer's intentions when he doesn't know very much or in producing efficient code from a specification that is written without the slightest understanding of what computers can do, there will always remain the fact that, in most cases, we do not know what we want to do

Download sample

Download