Gerald M. Weinberg: Writer  -  Consultant

Dedicated to Helping Smart People be Happy


Understanding the Professional Programmer

    * ISBN: 0-932633-09-9     240 pages   softcover 

      Dorset House Publishing)

     (translated into Japanese, Chinese)

Sample and/or Buy the ebook through:


  Barnes & Noble


Paper version is on Amazon

"If you are a programmer or manage programmers, or indeed just associate with programmers, this is a book that you should read... turn to any one of the essays, and find a thought-provoking idea."

- System Development

". . . [this book] is likely to give readers a better start on supervising than the conventional management book would. . . . [it mixes] knowledge of bottom-line reality with techie ingenuity." —Walter Zintz

Open Computing

". . . the author has a marvellous knack of mixing humour and serious discussion thereby getting his message accross. . . . a very thought provoking book. . . . immensely enjoyable." —Lorna Kyle

Personal Computer World

"If you are a programmer or manage programmers, or indeed just associate with programmers, this is a book that you should read. . . . turn to any one of the essays, and find a thought-provoking idea."  —System Development

Software developers another twenty years from now will still be reading this book.


The title of this book, Understanding the Professional Programmer, is slightly misleading. It might make you think that the book is aimed at software development managers, intended to help them make sense of the strange people called programmers who work for them. While software development managers might enjoy reading this book, it is really aimed at programmers themselves. To quote the author from the Preface, the book "is intended as an exercise in self-examination for the professional programmer."

I must confess, this is probably my favorite book on the subject of software development. It is definitely my favorite of Weinberg's many excellent books. I return to this book again and again, and find something new every time. Understanding the Professional Programmer is organized as a collection of essays, and, like my developer.* essays aspire (at least in part) to be, the essays are about being a professional software developer. In fact, I freely admit this book is the direct inspiration for my developer.* essays, and with every one I write, I aspire to emulate Weinberg's friendly, insightful, non-judgmental, irreverent, and witty essays. (That's a tall order, given that Weinberg has been involved with computer programming since the mid 1950's--;before the term "computer programmer" had even been coined.)

The book is broken up into seven sections, and the titles of these sections are a great start for communicating what it is about:

    I. What Questions Are Important to the Professional?

    II. How do Professionals Get That Way?

    III. Why Do Programmers Behave the Way They Do?

    IV. Is it Possible to Think More Effectively?

    V. Why Doesn't Everyone Understand Me?

    VI. How Can I Survive in a Bureaucracy?

    VII. Where is the Programming Profession Going Next?

Each of these sections contain several essays, and most of the essays are short enough to be easily read in one sitting. Weinberg loves to tell stories, and he uses stories and anecdotes to illustrate most of his points, with the points themselves often expressed as aphorisms. Weinberg's gift is inspiring thinking that is outside of one's normal patterns of thought. Sometimes this is done in a subtle way, with ideas that will creep under your skin and not hit you until days later. Other times, something he will say will hit you right between the eyes, and you will have to put the book down for a minute to recover.

With all of this hyperbole, I am in danger of spoiling this book by raising expectations too high, so I am going to quit while I'm ahead. Let me close by saying that this may not be the book for you right now. I think that during a professional developer's career, there are times when one is focused exclusively on technical issues. There's nothing wrong with that. There are languages to be learned, techniques to be mastered. But many developers will reach a point where they desire look beyond the purely technical concerns, to look inward at themselves, and outward at the environments in which they work and the problems they are trying to solve. This is where Gerald Weinberg's writings come in, and Understanding the Professional Programmer is a great place to start.

One final comment, just so nobody feels misled: this book was first published in 1982&emdash;twenty years ago at the time I am writing this review; and many of the essays were written in the late 1970's. One reviewer on Amazon felt this to be a strike against the book. I understand this view, but I disagree. This is not a book about technology; it is a book about people and ideas. The themes are universal, and I predict that software developers another twenty years from now will still be reading this book.

--;Daniel Read

For all professional programmers, and especially for their managers.

From a review by Richard E. Biehl in Software Quality Professional, Premier Issue,:

    Focusing on the complex challenges confronting skilled and experienced programmers in their unique environment, this book provides practical ideas and insights concerning the "people problems" of computer programming. The book is organized as a series of short essays, each exploring a concept vital to the advancement of the software professional. For all professional programmers, and especially for their managers.

    Gerald Weinberg's Understanding the Professional Programmer begins with a definition of a professional as someone 'having great skill or experience in a particular field of activity.' Looking at the technical skills and paradigms required, Weinberg challenges professionals to explore and understand their meta-paradigms.... The meta-paradigms of the successful professional include such skills as the use of analogy, tracing and retracing one's own thought processes, induction from special cases to general rules, deliberately widening one's circle of intellectual associates, actively seeking to know what others have done and using such work as a starting point, and attempting to communicate with others using paradigms to clarify one's own thoughts.

    He offers personal reflection in the form of this 10 'precious programming principles,' the last of which states: 'Every programmer has at least 10 personal principles, but only one programmer in ten thousand is willing to take the time to write down even one.' Weinberg's book challenges professionals to reflect on and share their own meta-programs and principles.

    Any paid programmer will use the technical skills and paradigms of the field, but only professionals will develop and consistently use such meta-capabilities... Weinberg challenges readers to 'spend a part of your working day examining and refining your own methods.' In the process, people will uncover secrets that will make the pursuit of their profession more successful.

    Weinberg laments the fact that there are many programmers working for pay who should not be referred to as professionals. 'The point is not merely that there are people out there passing as professional programmers who shame us all, but that few managers have any way of telling if they're talking to one of them or one of us.' He later adds, 'Somehow, if programming is ever to be treated as a profession, the public - and programmers themselves - will have to be reeducated.'