Things have been going pretty well at work. Working in a central technical capacity as opposed to being on a game team is both a blessing and a curse. It’s a blessing in that work is much more regulated with a much smaller chance of overtime. The curse is that there’s relatively little room for new ideas since we have a minimum of two internal clients who are dictating what features and refinements we need to make. Actually, that’s probably my biggest complaint about both of the jobs I’ve had since university; they have so far been concerned only with maintaining the status quo and fulfilling existing needs. Contrast this to my university days where everything was new (at least to me) and every project was completely different with more things to learn. My work to date has been sort of like my university experience growing into a huge, bumbling behemoth who’s attempting to be as dynamic and progressive, but only manages to do it at 1/50th of the rate and scale as before.
Last week Paul, who is a good friend of mine from university, took some time to visit me in the off-time from his HackU presentation at the University of Washington. I really took a lot away from the brief reunion and am now reinvigorated with regards to work and my future. Part of that reinvigoration is a desire to move to Silicon Valley. The very early stages of this move will begin this summer at the conclusion of my current contract with EA, when Dee and I will be visiting Paul and Michelle in San Jose. That’s the only rock solid plan yet, but I’ll use it as a decision point and then go from there.
Paul also had a very inventor-like moment at one of his HackU speeches. In a presentation, one piece he threw out was:
If you ever catch yourself saying “I wish that…”
1) write it down
2) do it yourself if you can or
3) tell a friend
He tells me that it wasn’t a big piece of the speech; just something that made sense that he threw in there. The surprise was that it garnered a huge response from the crowd. I say it’s inventor-ish because it’s a simple statement, it makes sense and it seems incredibly obvious except who’s actually written it down before and formalized the thought into a do-able mantra?
I’ve been writing lists for a couple of years now as a way to keep ideas nearby when my mind is darting around in thousands of directions. I like this mantra because it fits in very easily with my list-keeping. It’s better than that, though; this new mantra provides ideas and motivation for personal projects that I’ve been struggling with in the past! I’ve often been in the situation where I just want to code something, but I can’t think of what to do. Since adopting this mantra, I’ve already amassed several ideas; a couple that are really worthwhile and which I will work on soon, and quite a few more general “pie in the sky” type ideas that will require more research.
This is what computer science is about
I’m excited again about programming. I like my prospects and appreciate my education. I’ve now done a complete 180 from where my thoughts and feelings have been over the past couple of years. It’s been a somewhat long and tumultuous recovery. I’ve gone through a lot of personal growth and think I am the better for having experienced it.
Part of this process also involves an idea very intimate to computer scientists: abstraction. I heard from a professor once that “Computer Science is just adding another layer of abstraction.” I like this statement, because it commonly rings true. In this regard, the abstraction is stepping up in the “computer science hierarchy” from programming languages and specific technology to design patterns, complexity analysis and algorithms. At a certain point it no longer matters which language you’re using – whether you have experience in it or not. Most languages are similar, and all fall into just a few defining types of languages. (ie., Procedural, Functional and Logical are three paradigms I learned in University.) I believe I have reached this point now, as evidenced my my jumping from Perl to C++ to Python, Lua, Javascript and Actionscript. I jump back and forth through these trying to figure out what the “next, big, cool tech” is that I can create. Unfortunately, languages don’t define ideas. They can help shape ideas, but ideas can be extracted out into a more encompassing hierarchy.
So, over the next several months while my contract with EA finishes up, I’m going to brush up on all of my high-level computer science knowledge to maintain this newfound excitement, and to prepare for a new future in which I will (hopefully) become part of the stimulating environment in Silicon Valley.