Photo of a man jumping among clouds

Abra Cadabra: I Create as I Speak

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

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 dis­tinct­ness and newness of each leaf and each snow­flake.

Second is the pleasure of making things that are useful to other people. Deep with­in, we want others to use our work and to find it help­ful. In this respect, the pro­gramming system is not essentially differ­ent from the child's first clay pencil holder "for Daddy's office."

Third is the fasci­nation of fashioning complex puzzle-like objects of inter­locking moving parts and watching them work in subtle cycles, playing out the con­se­quences of prin­ci­ples built in from the beginning. The pro­­grammed com­puter has all the fasci­nation of the pin­ball machine or the juke­box mechan­ism, carried to the ulti­mate.

Fourth is the joy of always learning, which springs from the non­repeating nature of the task. In one way or an­other, the problem is ever new, and its solver learns some­thing: some­times practi­cal, some­times theo­retical, and some­times both.

Finally, there is the delight of working in such a tract­able medium. The pro­grammer, like the poet, works only slightly re­moved from pure thought-stuff. He builds his castles in the air, from air, creating by exer­tion of the imagi­nation. Few media of creation are so flex­ible, so easy to polish and rework, so readily capable of realizing grand con­cep­tual struc­tures. (As we shall see later, this very tract­ability has its own problems.)

Yet the pro­gram con­struct, unlike the poet's words, is real in the sense that it moves and works, producing visible out­puts sep­arate from the con­struct it­self. It prints results, draws pic­tures, pro­duces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct in­can­tation on a key­board, and a display screen comes to life, showing things that never were nor could be.

Programming then is fun because it gratifies creative longings built deep with­in us and delights sensi­bilities we have in common with all men.

­  — Fred. P. Brooks, Jr.; The Mythical Man Month: Essays in Software Engineering (1975); Chapter 01: The Tar Pit; "The Joys of the Craft"; Pp. Pgs 7-8

The above passage from Fred Brooks, beautiful and exciting in its descriptive imagery, conveys so well why I first got into software development (particularly hoping/intending to do game development): The challenge and fun/reward of both making and solving puzzles, as well as producing something substantial that is either useful or entertaining (or both), more or less out of thin air.

I'm making my way through The Mythical Man Month as fast as I can (although I have to take a break in order to perform updates to a client's Website this weekend). So far, I've only read the first chapter, but I like the way Brooks writes. His style is easily readable and almost conversational.

Post thumbnail photo by Vlad Chețan from/on Pexels

How do you rate this article?



Great White Snark
Great White Snark

I am currently unemployed, having quit my S/W & Web Dev job due to COVID-related health issues. I'm hoping to go full Crypto to earn a living, not go back to an 08:00-18:00 grind. Unsigned music producer; snarky; white; balding; smashes Patriarchy some.

Return to the Source
Return to the Source

Use the Force; read the source! This blog is mostly a collection of study notes on ASM, ASP .NET, Blender, BASIC, C/C++, C#, ChucK, Computer Architecture, Computer Literacy, CSS, Digital Logic, Electronics, F#, GIMP, GTK+, Haskel, Java, Julia, JavaScript (ES6+) & JSON, LISP, Nim, OOP, Photoshop, PLAD, Python, Qt, Ruby, Scheme, SQL (MySQL & SQLite), Super Collider, UML, Verilog, VHDL, WASM, XML. If I can learn it and make notes on it, I'll write about it. || Blog images copyright Markus Spiske and Pixabay

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.