• The Joys of the Craft

    Why is programing fun? What delights may its practitioner expect as his reward?

    "The programmer, like the poet, works only slightly removed from the pure-thought stuff."
    
    The Mythical Man Month
    Frederick P. Brooks, Jr.
  • First

    is the sheer joy of making things. As the child delights in his mud pie, so the adult enjoys building things, especially things of his own design. I think this delight must be an image of God's delight in making things, a delight shown in the distinctness and newness of each leaf and each snowflake.

  • Second

    is the pleasure of making things that are useful to other people. Deep within, we want others to use our work and to find it helpful. In this respect the programming system is not essentially different from the child's first clay pencil holder "for Daddy's office".

  • Third

    is the fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning. The programmed computer has all the fascination of the pinball machine or the jukebox mechanism, carried to the ultimate.

  • Fourth

    is the joy of always learning, which springs from the nonrepeating nature of the task. In one way or another the problem is ever new, and its solver learns something: sometimes practical, sometimes theoretical, and sometimes both.

  • Finally

    there is the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from the 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. (As we shall se later, this very tractability has its own problems.)

  • Yet

    the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itseld. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.

  • The Woes of the Craft

    Not all is delight, however, and knowing the inherent woes makes it easier to bear them when they appear.

  • First

    one must perform perfectly. The computer resembles the magic of legend in this respect, too. If one character, one pause, of the incantation is not strictly in proper form, the magic doesn't work. Human beings are not accustomed to being perfect, and few areas of human activity demand it. Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program.

  • Next

    other people set one's objectives, provide one's resources, and furnish one's information. One rarely controls the circumstances of the work, or even its goal.

  • The next woe is that designing grand concepts is fun;

    finding nitty little bugs is work. With any creative activity come dreary hours of tedious, painstaking labor, and programming is no exception.

  • The last woe

    and sometimes the last straw, is that the product over which one has labored so long appears to be obsolete upon (or before) the completion. Already colleagues and competitors are in hot pursuit of new and better ideas. Already the displacement of one's thought-child is not only conceived, but scheduled.

  • This then is programming, both a tar pit

    in which many efforts have floundered

  • and a creative activity

    with joys and woes all its own. For many, the joys far outweigh the woes, and for them the remainder of this book will attemt to lay some boardwalks accross the tar.

    The Mythical Man Month
    Frederick P. Brooks, Jr.

Back to top

Version: 3.14159. Last Published: 2019-03-24.