Saturday, July 18, 2020

My Type of Computer Gaming

Lars texted me yesterday. He made it out of South America and is now is southern Spain, living temporarily in a condo with a view of the sea. Even as a native Swede, the prices of Europe compared to Ecuador were a shock to him.

"Like a gut punch every time you step outside," I told him.

It can make you want to stop eating. Lars is much more social than I am, and he has already made friends at his favorite drinking hangouts. Those kind of expenses add up quickly.

Having started his new job working remotely, he is immersed in a crash course of the cloud platform of his new company. This is in addition to the self-imposed training he undertook in Ecuador during the shutdown to master the cloud infrastructure of the major players in the field, which at this moment happen to be Amazon and Google, with Microsoft in third place. Now he needs to learn his company's propriety architecture, which sits on top of these big providers. Learning this kind of thing feels like a full-time job into itself. He said that he might be ready to actual start doing his normal job in a month or two.

I replied with an update of my own situation. I said I was ecstatic because Stanford had just released the Youtube videos to their CS193P course on iOS programming---building apps for iPhones and iPads. It was something I'd been wanting to learn, and I'd half-started it a couple years back when I was doing my "virtual computer science degree", mostly through MIT but also through Stanford, MIT has put almost their entire comp sci curriculum online. Stanford is more selective that way, but what they do make available is usually the juicy advanced courses like this one, that you can't find anywhere else online. When you go through these courses, you know you are getting a Silicon-Valley-level education on a subject.

Paul Hegarty teaches this iPhone programming course on a regular basis, and they have been putting up the course materials online over the years. But they had not updated it since 2017.

For some computer platforms and languages, this would hardly matter, but for anything involving Apple, the coding required to build apps gets out of date very quickly. If you do that kind of work, you have to keep abreast of the new technology incessantly. This spring Apple came out with a whole new way to design and build iPhone apps, and thus all the old Stanford courses were obsolete, even more than usual.

Normally I would have gone to other sources online to learn the current Apple way of doing things, but I absolutely love Hegarty's lectures. He is the kind of instructor who has catapulted me to a whole new level of understanding of what lectures can do.

He has an amazing rapport with his classroom audience, even though one never sees them or hears them in the videos. I can tell by his tone of voice, and the way he scans the room at different points, that he is highly aware of the difficulty of certain topics and he knows how to explain things in a way that circumvents the common ways that people might misunderstand something. I used to try to do this kind of thing when I taught university physics---pausing in the right way, and emphasizing certain points that would be difficult to learn. Hegarty is a skilled master at this from many years in the classroom. If I ever teach physics again, I will have a new level of understanding of technique from him.

So in March when I discovered that I couldn't learn the current way of doing iPhone programming fro his course, I decided to go through the old course from 2017. I liked his style so much that I decided it would be worth it. It would put me on par with coders from last year, and then I could learn the new way from some other course online.

But that was easier said than done. I wasn't enthusiastic about it. I listened to the lectures and took notes, but I didn't do the homework assignments---building the required apps---which meant at the end of the course I had only a passing knowledge of the subject, without really being able to do it on my own beyond the basics. At least that counted for something.

Then two weeks ago I learned that Hegarty had put his new course online, that he had taught this past spring, that was updated for the new way of building iPhone apps. It felt like Christmas to me when I heard this. I resolved to do all the homework this time, like I was a real Stanford student.

The only downside is that because of the shutdown, Hegarty had to teach this quarter's course from his office desk, almost entirely through screen capture. I miss the subtle interplay he has with his students, that comes from watching their faces as he teaches. But he's such a brilliant and experienced lecturer that much of that comes through anyway.

Hegarty always starts his courses by going through a demo of how to build a version of the game Concentration with a Halloween theme. It must be his favorite holiday. Right now I'm halfway through the challenging midterm assignment which involves building a version of the card game Set, in which one matches three cards depending on certain criteria. The mechanics of the game itself is not hard to program, but the assignment requires implementing complex animation, including making the cards fly out from a deck as they are dealt out on the screen. At the moment I have only a vague idea of how to do this based on the lectures, but experience has taught me that I'll figure it out if I'm persistent. Nothing like that has ever defeated me in coding, for the last thirty years. You just have to be patient enough to keep trying.

Neither Lars or I play computer games as a hobby.

"This is our computer gaming," I told him,

No comments: