Sunday, July 14, 2013

Yesterday's Post

The Matrix was still magical, for the 63rd time. The perfect dialogue, the salad of spiritual references, the gorgeous special effects, the ineffable ineffableness, none of that has aged much. But the speed has slowed. I'm beginning to feel a generation gap. 10 years ago the Matrix was a rollercoaster ride, a non-stop thrill that throbbed with suspense. In 10 years, The Matrix will be Bladerunner, a languid film-noir. The newer sleeker models are higher velocity if not higher impact. They don't dole out meaningful dialogue in consumable chunks, they slam you with it like a slam poet and leave you to figure out the details for yourself on the 3rd viewing. In this sense, The Social Network moved faster than The Matrix. I didn't understand a word they said in their crossfire dialogues and yet I walked away with the feeling that they were saying something interesting. Poor Matrix.

I was reading up today on how networks work. Some of it was review for stuff covered in my Computer Systems Engineering (6.033) class at MIT, but concepts learned in my formal education are often obscured by so much fog that it'd be easier to try to see the Beijing sky. Some seemed completely new, in other words the fog in front of it has solidified into intrabrain Jello and is refracting the hell out of my searches.

My favorite thing about networks is the hilarious pessimism that defines the whole field. For example, TCP vs UDP (the two major communication protocols on the internet):

TCP: "There is absolute guarantee that the data transferred remains intact and arrives in the same order in which it was sent."

Sounds good so far...

UDP: "There is no guarantee that the messages or packets sent would reach at all."

That's the spirit I love. I understand that this is true by definition, that such a protocol is very necessary, but the wording is always so tragic. They build you up...

TCP: "Sir Sean Connery will deliver your packet himself if necessary. Tom Cruise will not rest till your packet is safely at its destination."

And then they murder you...

UDP: "We take your message and throw it in the shredder. Sometimes we miss and if your destination happened to be the floor, congratulations!"

Too much fun.

One of the things that frustrated me about my education at MIT was that very little of the main curriculum was focused on practical applications. There were "hardcore" classes that delved into operating systems and compilers and other witchcraft, where you could probably get some solid experience, but the required courses in the CS branch hardly stressed practical skill acquisition. In other words, we didn't code much.

What we did, was perform largely a depth-first search into important but (in my opinion) secondary concepts. Intro to Algorithms, for instance, was probably my favorite CS class, but at the same time probably one of the most useless. At a real job, unless you're a researcher, how often do you need to come up with low-level algorithmic solutions? About as often as you need to build a lightbulb as an auto-mechanic. It was about as useful to me as the Special Relativity class I took for fun. I'd much rather have gotten a firmer grasp on the next levels up in the software abstraction onion - object oriented programming, application design, common development patterns, as well as gotten some crash courses into the most commonly used technologies (especially in web application programming) - CSS, Javascript, Servlets, programming for mobiles. When I did an internship at Microsoft the summer after junior year, I had to learn all the practical skills needed for my project on the spot. My MIT education hardly helped me at all. When 5 years later I did some more serious hacking for two start-ups, I had to learn everything as I went. My MIT education played with itself somewhere in a far corner of my mind while I was getting my hands very very dirty.

I remember during the tour at MIT, when I was still a senior in high school, the guide was telling us how MIT teaches people "how to think." It sounds oh so romantic, but it's hadly true. It's more like you go to MIT to train to be a blacksmith and when you go to your first smithy after getting out, you find yourself constantly hitting your thumbs with the hammer you've never wielded before. But you sure know a lot about iron.

Anyway, MIT was fun, I don't resent it at all. I could have pushed myself harder and searched out the opportunities for practical application. It just wasn't force fed to me, like I think it should have been.

No comments: