Part Three: Computer School
The Machine
I was twelve when I first sat down at a computer. It came to me through my stepfather.
He worked then as the system administrator of the one computer school our small town had — the man who kept the machines running, not the man who stood at the front and taught. He saw the pull the machines had on me, and he was the one who sat me down in front of one. And once the classes began I hardly saw him: I would come for my class, and he would be somewhere else in the building, keeping alive the things the rest of us only used.
And the machine in the classroom had me completely. The pull had two sources.
The first was the machine itself. It was a powerful one, and it could put graphics on a screen — games above all, which gripped me as they gripped many other children. I loved them. But a second thing pulled at me just as hard: you could tell the machine what to do, and it would do it. You wrote out a set of instructions — a program — and the machine carried them out exactly, and at the end something existed that had not been there before. Playing a game was running instructions someone else had written; I wanted to write my own. Both pulls were equal in me then, and I follow only the second through the rest of this part: what comes next is about making your own, not about using what someone else made. I had seen a thing done that I could not yet do, and I could not let it alone.
There was a second source of the heat, and he was a person.
My stepfather was an authority to me, in the way a grown man can be to a boy who has no one else to look up to yet. I wanted to be like him. And the work he did was, in our town and in those years, brand new. The few who did it seemed to me to have gone somewhere the rest of us had not. And he was one of them, and I wanted to go too.
Here is the piece of it whose weight I only felt much later. He was self-taught. He had trained as a physics teacher. Computers had only just come to our small town, and no one there knew how to work with them. There had been nowhere for him to learn: the town had no school for it yet, and no teacher who understood computers. He had learned them from a shelf of books, and the only people he could ask were acquaintances as self-taught as he was. The man who lit my fire had no one to walk him in; he had found his own way through, with those books for a guide. I did not reason about that at twelve. I only felt the heat of it coming off him — it can be done; a person can take up a trade that no one around him knows yet, and learn it himself. That heat was the fuel I carried into the course.
Notice one thing about that fuel, because the next turn of this book depends on it. I carried it in undepleted. Nothing had spent it before I sat down.
All of this was happening in the same years. In the same town, in the same childhood, a boy walked past the art school’s open composition door each week, by then too tired to turn the handle. He was the same boy who sat down on fire at this keyboard at twelve. The boy was never what differed between those two rooms. He had come to the art school with fire too, as a very small child. What differed was what each room did with the fire he brought into it.
1. It Fell Into Place
At first the course did not impress me.
We did theory, and the theory looked a great deal like the mathematics I knew from ordinary school. Boolean algebra. Number systems — binary, octal, hexadecimal. Flowcharts. Algorithms. I did not really understand what any of it was for. I copied it down and learned it because I had decided it must be important, but it was abstract and dry, and on its own it lit nothing in me.
Then we sat down at the machines, and everything fell into place.
Almost every piece of the dry theory turned out to be a thing I now needed in my hands. The number systems were how the machine counted. The algorithm was the plan the program carried out. The flowchart was that same plan drawn on paper — the shape of the program before a line of it was written. What I had been made to learn turned out to be the groundwork for this, and now that I was standing on it I could feel how solid it was. I remember thinking, with gratitude, how well and properly it had been given to us.
Our language was Pascal. We began with the smallest programs — print a line of text on the screen; work out some formula and show the answer — and the tasks grew harder by small steps, week on week.
The previous part had a great deal of dull repetition in it, and from the third year on that repetition stopped going forward. So it would be easy to walk away believing the drudgery was the enemy — that the dryness, the drill, the abstract theory with no visible point are what keep beginners from becoming artists, and that the answer is to skip them and get straight to the real work. That is the wrong lesson, and a dangerous one, because the drudgery is not optional. This room had it too. The theory here was as dry as anything at the easel, and I sat through it understanding it no better than I understood why I was drawing the same jug for the fourth week. The riverbed is dug by dull work in both rooms; neither of them spares you the digging.
The difference was not that this room skipped the dull part. The difference was that here the dull part connected. The water came. One week I was copying down abstract rules I could see no use for, and not many weeks later I was standing on many of those same rules, building something that ran. In the other room — at the easel — the water came too in the early years, on composition days, and then it stopped. I went on digging, but the dull work no longer connected with what I wanted to make on my own. And I learned, wrongly, to blame the digging.
So if you are sitting in the dull part right now, the question to ask is not whether it is boring. It will be boring; that is not the signal. The question is whether it is connecting to anything — whether, lesson by lesson, the dry pieces are starting to become things your hands reach for. Boredom in the service of a hand being built is the price of every art. Boredom that loops back on itself and reaches nothing is the loop that looked like a road, which I told you about in the previous part. They feel almost the same from the inside, early on. Telling them apart is hard, and what hangs on it is whether you stay in this room or go looking for another one.
2. The Hand That Stepped Back
The way our teacher gave us a task changed over the three years, and the strange thing is that I did not notice it changing while it happened. I only see the shape of it now, laid out from end to end.
In the beginning he simply gave us the text of a program. We typed it in, exactly as written, and ran it, and watched it work.
Then he stopped giving us the program. He gave us the flowchart instead — the diagram of the algorithm, the logic of the thing — and left us to write the actual program ourselves, out of the diagram.
Then he stopped giving us the flowchart. He would say a couple of words about how the problem might be approached, a hint at the door, and no more, and the rest was ours to find.
We felt ourselves becoming, year by year, more able to find our own way to a solution. And one sign of it sat right in front of us, though I did not understand what I was looking at: the programs we wrote for the same problem grew less and less alike. Once, the whole class would have typed in nearly the same lines. Now each of us came back with something shaped differently, because each of us had found our own way there.
I have to set that beside what was going on in the other room — the art school, the same years, the easel — because nowhere else in this book is it so plain what a room does to a child.
At the easel, a skilled hand came down on top of our finished sheets — the same confident shadow, the same placed highlight. It did not come down on every sheet: the teacher left alone the work that had come out especially well, or that was done in a manner far from her own, because she was afraid of spoiling it. But the rest, however differently they had begun, ended up carrying the same hand at the top of them: the teacher’s. In the computer class, the hand lifted off. A little more each year, on purpose, the example was taken away, until what we made was less and less like each other and more and more our own.
Two rooms, the same years, and in both I still had a hand to build. The main thing that differed was the teacher’s hand. I did not get to hold the two side by side as a child: in one room I was admiring the hand that came down, and in the other the teacher’s hand was quietly stepping back, and I did not even notice.
3. The Exam
After three years there was a final exam, and I was nervous, though I was reckoned one of the better students in the class. The exam problem was meant to be harder than anything we had been set, and somewhere I knew I was not ready for it.
The task that came to me was this: write a program that solves a quadratic equation. The user types in the coefficients — a, b, c — and the program returns the solution.
I read it, and I did what I had always done. I waited for the teacher’s hint.
He did not give one. He said the exam had to be done entirely on my own. That unsettled me badly. I had leaned on the hint for three years without knowing I leaned on it, and now the prop was gone, and I began to be afraid I would not manage.
Then he gave me one piece of advice, and I have remembered it word for word ever since. He said: “Solve the problem yourself first. Then you will understand what the algorithm has to be.” And he said nothing more, and he walked off to the next student, and left me alone with it. The whole class sat the exam at once, each of us at a machine, and he moved among us, and from that moment I was on my own.
What he had just done looked like almost nothing. It was not.
He had refused to give me a hint — and then handed me something far larger than any hint, disguised as one. A hint gives you a piece of the path. He took the path away entirely and left me only the destination: there is a right answer, go and find your own way to it. He was telling me, in the only words the moment had room for, to invent my own solution.
So I did. Not at the machine — on a sheet of paper. I sat with the equation and worked at it by hand, the way you would in a mathematics lesson, and after several wrong tries I found a general formula that solved it. Then I asked the next question, which turned out to be the heart of programming: how could the machine repeat, step by step, what I had just done by hand? I went back over my own working, step by step, and turned each move I had made into an instruction the machine could carry out — and there, out of my own solved steps, was the algorithm. I wrote the program quickly after that. The hard part was already finished; the hard part had been on the paper.
When the program ran, and the answers it gave back were right, I was stunned.
It felt as though I had taken some very large step, and I had. For the first time I had invented my own solution to a problem, built my own algorithm out of it, and made it run. No one had handed me the path. I had made the path, and it held.
From the outside all of this looked like very little. A boy in a room full of children, solving a quadratic equation — the most ordinary piece of school mathematics there is — and then writing a program that does the same. Any adult looking into the room would have seen a child doing his classwork. What had actually happened in that chair was the release — the thing this book is working toward. The release often goes unnoticed by anyone watching: it looks like a small task, finished, by someone who has finally done it from the inside.
And something changed in me that did not change back. After that exam I stopped being afraid of hard problems. I had felt, once, the whole motion of it — not knowing, then making the path myself, then arriving — and having felt it once, I trusted it. Any problem could be solved, it seemed to me now. It was only ever a question of time and work.
4. Craft and Art
There is something I should say here, because it changes how this part is meant to be read.
I do not feel programming as an art. For me it sits nearer to a craft. There is, at the end of the work, a right answer: the program runs or it does not, the equation is solved or it is not, and you can always go and check. The arts this book is mostly about have no such answer waiting at the end, and that difference is not small.
I am telling you this not to rank the two: a craft is not beneath an art, and this book opens with a carver who called himself a craftsman. I am telling you this to explain why I have set this story so early, before the harder ones.
In a craft with a right answer at the end, the release shows itself naked. You can watch the whole mechanism work with nothing hiding any part of it: the example withdrawn, the path made from the inside, the trained hand carrying it through. Then comes the plain, checkable proof — the program runs. There is no arguing with a program that gives correct answers. The release happened; there is the receipt.
In an art there is no receipt. Nothing runs or fails to run. No formula in any textbook tells you that the thing you just made is really your own, or that the step you just took was the release. It has to happen in an art too — the example withdrawn, the path made from the inside, the hand carrying it — but it happens in the dark, with nothing at the end to confirm it, and so it is far harder to see, in yourself or in anyone else. The stories that follow are about art.
I wanted you to see the release once in clean light, in the simplest room I ever stood in, before we go into the rooms where the light is bad.
And one more thing. In the previous part the release happened to another boy, and I was the witness. Here I was the one in the chair. But the conditions were the easiest a person could ask for: a right answer waiting at the end to tell me I had arrived. That is enough to let me speak about the release from my own experience. It is nowhere near enough to let me teach you how to make.
5. The Years After
When the course was over, my stepfather and I began building programs together.
Small games. A content management system for a website. A handful of other projects that came to nothing and did not need to come to anything. We taught ourselves new languages — the man who had lit the fire and the boy who had caught it. Somewhere in those years the gap between teacher and boy thinned out until we were working almost as equals, two people making their own path together, passing each other tools. Years later I finished my degree and went to work as a programmer. I owe that to him, and to the computer school, and I have always been clear about that.
The art-school story ended with a weight going off my shoulders: I had stayed on at the easel out of habit, in a place that had quietly become a place I went to be kept safe. This part ends with no weight to lift. Nothing here ever curdled into a thing I was waiting to be free of. The fire found its channel, and the channel went on carrying it, and it is carrying it still. And the motion itself — not knowing, then making the path from the inside, then arriving — turned out not to belong to that one craft. I am writing this book with the same motion: there is no example for it to follow, and I am making the path to it myself.
The two schools taught me together what neither of them could have taught me alone.
If a room has gone quiet on your fire — if you sat somewhere once and felt the thing you loved go cold, and walked out believing the coldness was a fact about you — then here is what I know: it may instead be a fact about the room. In the very months my fire was going out at the easel, the same boy was burning clean and hot across the same town, in a room that fed him instead of starving him. I was able to burn; the cold was not a fact about me. One room’s verdict on you is not the verdict. It is one room. The fire you think you lost may simply be sitting in the dark of the place that starved it, waiting for a place that knows how to feed it. So go and look for the other room. I was lucky enough to be sat down in one almost by accident, at twelve, by a man who kept the machines running. Not everyone gets the accident. But anyone can go looking, and now you know there is something to look for.
That is the release shown in the cleanest light I have to offer: a right answer at the end, a teacher who knew when to take his hand away, a fire that someone had the sense to feed.
The next story is about an art, not a craft. This time it is not about the example at all, but about the teacher himself: the largest thing a teacher can give a student, beyond any technique, and what becomes of the same student, in the same art, when that gift is not in the room. I learned both from the same art, from two men. That is the next part.