October 10th, 2012
My grandfather is an impressive man for a number of reasons, but one thing that continually amazes me is how curious he is. He’s a voracious learner, reads everything, and figures things out on his own. In general, computers are more difficult for grandparents. They constitute a paradigm shift in how we consume and produce information, and the more people are ingrained in the traditional means of doing so, print, television, and radio, the more difficult it is to start using computers.
Several years ago, my grandfather asked for help in picking out a new computer. When it arrived, I walked him through setting it up and installed the new version of Microsoft Office. As you may or may not recall (or care), Microsoft Office 2007 contained a complete user experience overhaul, and a number of people who were experts at prior versions complained that they couldn’t find the features they were used to. I expected the same from my grandfather and started to talk him through the new interface, and I’ll never forget what he said, “when there’s something that I don’t know how to do and I think that I should be able to do it, I just look around until I find it.” Rather than throwing up his hands, he opens his mind and thinks about what’s possible and how it should work.
In contrast, I was speaking with a coworker recently who had been working on an incredibly efficient C library for binary-packing and encoding a particular data structure. I had asked him a question why the web interface he’d built to decode one-off instances of encoded data loaded on the order of seconds when the library itself operated on the order of microseconds, and he went through how the webapp was built. Apparently, instead of decoding the information once and rendering it on the webpage, his CGI spun up hundreds of processes, each of which printed pieces of the HTML.
Now, I’m well-aware of using the tools you know to build something quickly rather than architect a brilliant, overengineered solution. But he’d spent hours and hours building a square block to jam into a round hole. I asked him about why he didn’t use any of the myriad web frameworks that have been in use for the last 20 years, and he said that he knew that web stuff was out there but he didn’t really want to learn it.
Honestly, that last bit scared me. I’m terrified of being stuck in a particular way of doing things and not being open to obviously better solutions because they’re new. I’m not sure how warranted that fear is, particularly because I’m aware of it, but I’m at the point in my career where it’s on me to keep up with the industry and learn about technologies on my own time. In school, I was fed a lot information and if I don’t learn anything outside of that, I was still getting my fill. In my first job out of college, I was surrounded by talented engineers who introduced me to technologies as they’re used on the job as opposed to an academic environment. At this point, though, it’s too easy for me just to use tools that I’ve used before, even if they’re not the most appropriate solutions to a particular problem.
There’s obviously a tradeoff here. A jack of all trades is a master of none, and it pays (literally) to have in-depth knowledge of a subset of the tools available. But staying curious is critical to remaining on top of what’s going on in this fast-moving industry, and it’s not something that I can take for granted.
Learn new technologies, read up on the latest research, and keep building stuff. Stay curious. It’s worth it.