On… Many Things
I've had quite a bit of time to dwell on things during my unscheduled sabbatical from my dearest web server, so this is going to be a doozy of a post.
On Graduating From College
I never really yearned for high school to end, but after three years of college, I began to grow restless of school. By the middle of my fourth year, every fiber of my being was screaming to be released from learning. I was tired of spending hours in the library studying things that seemed hopeless to understand, tired of 8 AM lectures on circuits, tired of long sleepless nights writing code, tired of worrying about grades, and just tired of being tired. It was a bittersweet relationship that I had with school; I loved UCLA and I knew that I would miss it after I left, but I was desperate for a break from learning.
I made my way through high school with a nagging voice at the back of my mind telling me that I needed to succeed in order to get into a good college. Upon entering college, that voice fell silent and I grew complacent. But I was soon spurred forward, partially by a true desire to learn and to a lesser degree, a niggling realization that a sub-par performance in school wasn't going to get me an even passable job after graduation. The fact is, I've spent most of my life working towards the moment when I would graduate from college, a goal that I always thought was far off in the distant future and therefore never considered the consequences of. So after I moved out of my apartment in LA, a new thought wormed its way into my mind, asking, "now what?" And its a question that I have yet to properly resolve to my own personal satisfaction.
Others brought up in similar scenarios as mine undoubtedly have the same thought running around in their heads. From this point in life, there ceases to be as many milestones set out for us, if any at all. The goal now (as I try to tell myself) is to live fully and pursue that which inflames our passions, refusing to accept the limitations ahead.
From Tolkien's "The Two Towers,"
To stay behind bars, until use and old age accept them, and all chance of doing great deeds is gone beyond recall or desire.
On Entering the Work Force
Perhaps the awkwardest part of starting full time work, is that I must now address men twice my age by their first name. No prefixes like Mr. or Professor, just a first name. For the past month, I have been attempting to unlearn the manners that twenty years have taught me.
In college, if I had class at 8 AM, I rolled out of bed at 7:30, put on the first set of clothes I pulled out of the dresser and walked to class in sandals. The oh-so detestable act of shaving was something I only had to submit myself to once a month, and even less frequently if I was feeling lazy. But these days, I shave my face and comb my hair every morning, I often wear collared shirts and my feet haven't felt sandals in weeks despite the lovely weather. If I ride my bike to work I even take the time to shower at the company gym before heading to my desk. These morning rituals are apparently a sign that I'm growing more mature (how unfortunate).
Work is easier then school; its done when I leave the office and it doesn't require me to work sixteen hours in a day. The best part of course is that I get paid to work, which means I don't have to constantly worry about being as thrifty as humanely possible (although I still do, just not as dramatically as I once did). Having some money available for discretionary spending is of course the reason why I splurged and bought two HP Touchpads yesterday (one for myself and one for my parents) at the low price of $99 each.
On Living Alone
I have found many benefits to living alone. I can lube my bike chain in the kitchen while cooking fried rice with fish paste (something a previous roommate absolutely detested), leave the bathroom door open at all times, and not fold my clothes immediately after washing them. Trying to fall asleep while my roommates are playing video games or hammering away at a keyboard has become a memory of a distant past. Admittedly, it does get a little bit lonely, but I've never been the most gregarious of people to begin with.
But without the judging eye of another human being, or the constant reminder that having company brings, I have fallen quite lax in some of my personal habits. I've become quite messy, only washing dishes every other day and leaving clothes draped on every available surface (of which there are actually very few). Last week, I checked out Brandon Sanderson's massive novel, "The Way of Kings," and stayed up till 3 AM reading it (and therefore woke up extremely tired) simply because there was no one around to be a constant reminder of what time it was. And in an incredible display of continued idiocy, I also did the same thing last night, this time with a stack of books by Diana Wynne Jones. (Who would have thought that in a library eight stories tall, "Howl's Moving Castle" would be stored amidst a section dedicated to old and out-of-print children's fiction on the seventh floor?)
On Writing Production Quality Code
I notice that there isn't too much difference between the programming style of most professionals in industry and that of the typical undergraduate computer science student. Granted, a more experienced engineer writes with a little more forethought and with more elegance and cleanliness then an amateur, but many of the slipshod techniques picked up in school still remain.
When you're writing a project over the course of a week, there is not a huge need to thoroughly comment up your code, especially if you know the TA is only going to run your program without actually examining the source. But you would think an engineer developing for a product that is going to remain on the market for many years, would add nice helpful comments for their successors. This is quite often not the case. Stumbling through several hundred lines of obtuse C, written many years ago, with nary a single comment to explain what is going on is far from an enjoyable experience. And yet this seems to happen far too often in the real world (quite frankly, even once is too much).
Choosing meaningful variable names has always been a bit of a chore for me. When in a rush, I, like many others, will simply slap down a somewhat arbitrary variable name and continue plodding on. C programmers, writing in the Unix style, seem to be especially guilty of this terrible sin. Four or five letter acronyms, unusual abbreviations, and names with an inside joke like "hufflelumps" or "i_win" are never particularly illuminating to anyone except the original developer. Picking good variable names is a bit of a fine art, one that I feel most people (like me) never really learned, and one which we never seem to appreciate until its absence.
Few people enjoy maintaining legacy code, especially if it suffers from annoying deficiencies like the ones previously mentioned. But the thing that bothers me the most above all, is actually quite insignificant in the broader scheme of things: white space and formatting. As projects change hands and teams, the standards used for white spaces changes. Are open brackets supposed to go on the same line as the conditional statement? Eighty characters per line or something more modern? How many indentations when we overflow a line? Do we expand tabs or not? Is a tab two, four or eight spaces? Perhaps the developers were feeling especially ballsy and decided on THREE spaces (Oh the ignominy!) Editing files touched by so many hands, each one using a different formatting scheme, often with multiple schemes in the same file, is by far the most aesthetically unpleasing thing I've ever had to do. But that's how programmers are; simple aesthetics do really matter and we often have problems accepting another persons designs over our own.
Despite the many lingering issues that plagues many professional developers, they still write far better code then a rank amateur (as one might hope). But I suppose its partly due to the fact that style and the small details that generally don't seem to matter much, are never really taught in school.