The First Lines
For more than a year, I searched for the door that would make Oliver enjoy programming. Turtle graphics had taught him many important ideas, but progress remained painfully slow. Even after completing substantial projects, programming never became something he naturally wanted to pursue.
This summer, I decided to try something different.
Instead of Python Turtle, I would introduce him to p5.js.
There was one problem.
I had never set up my lightweight p5.js environment on a Windows computer in China before.
If it failed, the lesson would end before it even began.
We moved slowly.
Created a new ws folder.
Copied his existing Python workspace.
Created ws/p5/sample.
Downloaded p5.min.js.
Copied index.html and sketch.js.
When everything was finally in place, I paused.
"Now double-click index.html."
"All our luck depends on the result."
I honestly had no idea what the sample program would do.
The browser opened.
A black canvas appeared.
One white line stretched across it.
"Yahoo!"
The entire environment worked.
For the first time, Oliver had a creative coding studio running on his own Windows computer.
After a brief introduction, I asked him to draw another line.
Then another.
Then another.
Soon his screen looked like this:
line(0, 0, width, height);
line(0, 30, 150, 200);
line(150, 200, 150, 300);
line(200, 200, 200, 300);
Four simple lines.
Objectively, almost nothing.
To me, they were among the most exciting lines I'd seen all year.
Because they weren't really lines.
They were possibilities.
For the first time, I could imagine Oliver creating motion instead of static pictures, experimenting with color, interaction, and animation without fighting the limitations of Turtle graphics.
Maybe...
just maybe...
this was the engine that could teach a snail to fly.
When a student struggles, our first instinct is often to explain better, practice more, or slow down.
Sometimes that's exactly the wrong move.
Sometimes the learner isn't resisting learning.
They're waiting for a medium that matches how their curiosity wants to grow.
Changing the tool can change the learner's relationship with the subject.
A tiny technical success—a browser showing one white line—can open an entirely new creative path for a learner.
Instead of pushing the student harder, change the environment. Sometimes a new tool reveals abilities the old one never could.
Education is not only about adapting students to tools. Sometimes great teaching means adapting the tools to the student.
I don't know where Oliver's programming journey will go.
But as I looked at those first four lines on a black canvas, I couldn't help smiling.
Hopefully, the p5.js engine can drag this snail into the sky. 🐌✈️