It was far past midnight. My wife and kids had long gone to bed. But sleep was not an option for me. I had to figure it out. So I tweaked the code again, for the googolth time, and hit run. Hmm, looks promising. If I click here, the program should call the “compute next move” function. Yes. And if I click here, that function should call itself. Good. Now, if I click here, I should get…not that. Argh.

More tweaks. More errors. More hours tick by. Learning programming is hard, I thought. My next thought? Yes, and that’s why I like it.

Roger opened the Medium app on his phone and looked for something interesting to read. He scrolled past articles about how to be more creative. He scrolled past articles about how to be a mega-successful entrepreneur. He scrolled past articles about how to write way more gooder. He was about to bounce over to Twitter when a headline caught his eye.

How I built an app that showcases the first and last sentences of great novels

Wouldn’t it be great, I’ve often thought, if there were a place online where anyone could contribute the first and last sentences of the books they were reading. We could, together, build a treasure trove of sentences. It would be a great resource for people who, like me, enjoy learning by imitation.

Well, it just so happens that my latest obsession is learning to program in JavaScript. So I have begun, with my limited knowledge, to make that place myself, using the JavaScript frameworks MongoDB, Express, Angular 2, and Node.js — known, collectively, as the MEAN stack.

When you create software to learn programming, your most important user is you

I created a very simple web application I called Collection Tracker. It allows me to enter my sneaker collection into a database and browse a grid of images. Each morning, I open the application in Chrome (on my phone), I pick the pair I want to wear (on my feet), I press the “wear today” button (with my finger), and that day’s date is added to the database entry for those shoes (by digital magic).

The picture of that pair then drops to the last position of the last page of images. So when I open Collection Tracker, I first see pictures of the sneakers that have been sitting on my shelf the longest. No more neglected Nikes. No more abandoned ASICS. No more shunned Skechers. (Haha — Skechers. As if. Friends don’t let friends wear Skechers.)