We live in a world where speed is venerated, rewarded, and sought after.

But certain things stubbornly resist attempts to speed them up. I cannot make the tomato plant in my garden grow faster no matter what affirmations I read her nor if I tell her that Sheryl Sandberg advises her to Lean In and flower already. Sure, water and rich soil can speed things up a little, but in a world that’s looking for exponential growth, the tomato plant is opting out of leaning in.

Learning, similarly, resists acceleration. We have not arrived at the point where we can simply plug in a new module and know French, and the rate at which we learn is still determined by many factors outside our control. Even as capital launches a headlong assault on the education industry, seeing the out-of-control college costs as a rich target for disintermediation, and the billions of people in the world without access to higher education as a vast new market to be served, there’s this: we’re not digital. We remain stubbornly analog, our brains not subject to Moore’s Law: we will not double the speed at which we learn every 18 months.

And so learning remains a craft and teaching remains an art form, for now, anyway.

I’m thinking about this today as I am learning Javascript. Slowly. Very, very slowly.

This week is Project Week in the 12 week course I am taking. We’re building a tic-tac-toe game. Like many of my peers, I didn’t finish by the time the week was up (although we have more time to work on it and turn it in). Trying something so simple, and not being able to get done in a week, makes you appreciate how difficult it is to get anything at all to work. Welcome to the Internet, and to digital things generally: where everything works about half the time.

The fact that I’ve gotten anything working at all is a testimonial to good habits: I’m disciplined at following a process that works. It’s also a testimonial to the instructors, who laid out a process that works. Each time I write a ┬ánew function, I follow the same process:

  1. I write a curl script that pings the API that returns user data and data about game states.
  2. I write the HTML that shows the board (or a form) to the user.
  3. I write an event handler that waits for and responds to users clicking on something.
  4. That event handler passes off data to a function in my file of API functions, and launches an API call.
  5. If the API call runs successfully, it passes it off to a file that holds all the functions I’ve written that affect the user interface — usually changing the state of the board or displaying an error message.

The first loop through this is always the hardest. For example, I need to be able to take a user click on a space on the tic tac toe board, update the array of board spaces, pass that to the API, and get a response from the API and have the board reflect the change the user made. Making that first move work was excruciating — hours of unsuccessful effort, followed by some quality time wondering why I chose to do this at all, followed by mowing my lawn, followed by a few more hours, then a breakthrough.

The breakthroughs — getting something to work for the first time — is wonderful.

The world is full of stuff that doesn’t work. The wait and effort required to get something to work in a world where broken is the default setting is worth it. Things that work are glorious.

I am still working on my tic-tac-toe game. Slowly. Fast can come later; speed comes with experience. But for now, slow is beautiful.



Leave a Reply

Your email address will not be published. Required fields are marked *