Living Museum of Learning

Where real moments become exhibits
← Prev Next →
The Day Tianjing Put a Rook on the Board

The Day Tianjing Put a Rook on the Board

She didn't know chess. Then she started building it.

Tianjing had almost no idea what chess was.

When I mentioned chess, she initially confused it with Chinese chess. The only things she could remember were:

“Grid.”
“Pieces inside squares.”

That was enough to begin.

Instead of explaining chess to her, I let her search for some chess images.

“Do you know those pieces?” I asked.

“Yes, yes!” Her voice suddenly got louder. “This is little pawn. That one is ‘vehicle’...”

“That one is called a rook,” I told her. “Go to the dictionary and learn this word: r-o-o-k.”

Now she had a piece she could name.

When we started putting the pieces into her iOS project, I asked:

“Which one do you prefer to draw first?”

“Rook.”

“Black or white?”

“黑的吧.”

And that was how our chessboard began.

Tianjing noticed something I hadn't asked her to notice.

The white rook image had a white background. Since the square underneath it was already white, she realized:

We don't need to draw the white square.

She didn't touch the square-drawing code. She simply recognized that one visual element was already provided by another.

Then we placed the rook on a black square.

Suddenly, something was very wrong.

The rook appeared with a white rectangle around it.

That made no sense.

For the past ten years, I had expected chess-piece images to have transparent backgrounds. Why was this one different?

Fortunately, the white rook image I had sent through Slack had arrived correctly. It had a transparent background.

We had our control.

The culprit wasn't the Swift code.

It wasn't the drawing code.

WhatsApp had changed the image.

A beginner had just encountered a debugging problem that had nothing to do with the code she was writing.

Tianjing was not simply following instructions to draw a chessboard.

She was gradually discovering what a digital object actually is.

An image has properties.

A square has properties.

A piece can occupy a square.

A white background can be redundant.

A transparent background behaves differently from a white background.

A communication tool can silently change an asset before the program ever sees it.

And when she wanted to make the rook smaller, another question appeared.

I had told her that there were two ways to draw the image.

The first takes a point.

The second takes a rectangle.

I asked:

“That's why we saw two options. The first one we provided a point. For the second, we provide a rect(angle). Do you know why?”

“Yes!”

Loudly. 😂

The question was no longer “What code do I memorize?”

She had reached the more useful question:

What information does the program need?

A point tells it where.

A rectangle tells it where and how big.

Tianjing began the session without knowing chess, without knowing what a rook was, and with only a very rough memory of Xcode and Swift from a few weeks earlier.

She ended it having:

reconstructed a basic mental model of a chessboard from images;
learned the English word rook;
chosen which piece to build first;
noticed that one layer of drawing was unnecessary;
encountered and investigated an unexpected image-rendering problem;
compared two image assets to isolate the cause;
discovered that the communication channel had altered the image;
and understood why a drawing API might ask for a point in one case and a rectangle in another.

None of these appeared as isolated lessons.

They appeared because she was trying to make something.

A beginner can enter a completely unfamiliar domain and begin creating something meaningful before understanding the whole system.

Give her something concrete to make, let questions emerge naturally, and treat every unexpected result as something worth investigating.

Real learning is not just acquiring answers. It is developing the habit of noticing, questioning, testing, and figuring out what must be true.