Explore the code

At some point in the last few years strange things started happening in life. Like really  strange things. Strange along the lines me deciding to get a degree in electrical engineering. And it didn’t just stop there either. Somehow I got talked into applying to some of the top Computer Science graduate programs in the world and for some reason I actually got accepted into one. Even though by day I’m a starving graduate student heading towards some amount of respectability as a computer scientist, the deep, dark truth is that inside I’m just kid who likes slinging code to build cool stuff. And there’s an awful lot of cool stuff waiting to be built.

The greatest thing about working with software is the immense flexibility that it offers. We are quite literally building structures with pure thought. Of course, our thought gets manifested as lines of code, functions, classes, modules, type systems, so and so forth. And all that gets compiled down to ones and zeros which in turn become little groups of electrons flowing (or not flowing) through unimaginably small, real, physical structures made of semiconducting materials. The magic of computer technology is that I can easily ignore all those layers and easily spin my thoughts into increasingly complex and intricate webs. And that is wonderful.

I’m currently listening to “Christofori’s Dream” by David Lanz on Pandora. It’s a quite beautiful piano piece (though I’m no real judge of piano pieces) and I can’t help but think that programming is quite similar to music (and writing and painting, you get the drift). But the one advantage we programmers have is that our instruments are quite literally limitless — if a problem can be solved in a finite, reasonable amount of time we have the tools in our hands to solve it. That’s like having instruments capable of creating all possible musical sounds (given an suitable definition of musical). Now that doesn’t mean that it’s easy (any more than owning a violin means that you can play it) or that all instruments are created equal. Again, one more strength of computing over music performance is that it so much easier to create our own instruments if need be — oftentimes building atop other, less sophisticated instruments. Please keep in mind that I know very little about music (I played classical Indian violin for a while, but that’s about it) so if you know about computers and music (or just music) and think I’m talking crap, please have at it in the comments.

Before getting distracted by Pandora I was going to say that rapid experimentation is one of the really cool things about programming. You can write a line of code and in an instant see the computer carrying out your code. Hell, these days you don’t even need any actual programming tools installed — you just need a browser. I think that as we go from being teenagers making computers do cool stuff to “software engineers” and “computer scientists” we start to think that we are bound to use our powerful machines to solve important, large problems (or at least problems we’ll get paid to solve). At times like this, it’s worth remembering the wise words of Alan J. Perlis, one of the early pioneers of our field –

I hope the field of computer science never loses its sense of fun. Above all, I hope we don’t become missionaries. Don’t feel as if you’re Bible salesmen. The world has too many of those already.

There’s more on the about page. Sure there are important problems that need solving and we need our machines to help otherwise we’ll never get them done in time. However, there’s a lot of fun to be had on the way. We can sequence the human genome and model the birth of the Universe. But we can also create music, art, poetry, games and just general neat hacks that fill people with a sense of wonder.

At the beginning of Star Trek: Insurrection Captain Picard says, “T remember a time when we used to be explorers”. That time is now. Computers are powerful tools and instruments, but they are also amazing vehicles for exploring the spaces of the mind. While we’re off solving important problems and making tons of money let’s take some time off to kick back, pick up a keyboard, write some code and just wait and see where it takes us.

Keep exploring.

2 thoughts on “Explore the code

  1. It intrigued me that you referenced Captain Jean-Luc Picard in this post. I knew there just had to be another TNG fan out there besides me! I enjoyed reading your post very much. I am new in the blogging world. Yesterday was my first attempt. This is my first comment to a peer’s piece.

    I am rather new in computer studies. I am halfway through my associate’s of science degree in information technology. I received mostly all of my experience on computers by being a user of software in the healthcare industry. At some point, I began trying to create easier methods of completing tasks within our organization by using software programs (no, we were not using electronic medical records). I came up with some good ideas and examples, but I always got knocked down because “this isn’t your field”. My curiosity got the best of me, as well as my pride, and this is when I decided to do something about it and go back to school.

    I recently completed a course in Web site development, and I was genuinely surprised at how my excitement for the course grew. The more I learned, the more I wanted to know. And I still want to learn more. That is what motivated me to begin blogging. I am hoping to gain some insight from other people’s educational and personal experiences. I have found that my classmates are not open to this type of collaboration. I think that they fear competition. For me, I would just like to see the field from another perspective. Thank you for providing that perspective for me!

    I appreciate the fact that you are willing to express your thoughts. And I will not dispute your association of music with computing. I applaud it! I am an avid lover of music – I play all the saxophones and all the clarinets, and I have dreamed of learning the piano at some point in my life.

    Keep exploring!

    1. I’ve always been a fan of TNG, especially Captain Picard’s character. I think I’ve grown to appreciate it more the older I get (I watched the whole series a few years ago). As for computing and blogging, I think it’s really important to share what we know and think about. After all, what we know about computing, others will learn (also from Alan Perlis). Perhaps if we share openly from the get go we’ll encourage others to do the same and we’ll all be better off for it.

      I wish you the best of luck on your journey. Computing is an incredibly broad and interesting field and you’ll find lots of great problems to solve and apply your knowledge to, no matter what level you are at. And of course, the more problems you’re exposed to, the more you’ll want to learn about better and more powerful tools for solving them (at least, I hope you will). Good luck and have fun.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s