In my recent conversations with friends fortunate enough to have evaded the long journey otherwise known as grad school, I noticed a few recurring misconceptions about my chosen profession. Being the kind soul that I am, I've decided to take some time out of my
extremely busy day to clear up some misunderstandings regarding academia and discuss my reasons for choosing it. Bear in mind that this is my own personal (and probably heavily biased) view on the trade-offs between different types of jobs in computer science.
While most university positions include some type of teaching responsibility, there are many who don't. In fact, a large percentage of professors actually dislike teaching. So why, you ask, would these people become professors in the first place? The truth is that at research institutions, teaching usually comprises only a small portion of the expected workload.
So what kind of activities take up a professor's time? For the kind of job I'm interested in, it's a plethora of things, which is part of why I find it so appealing. But a large part of it is research. From a high level, one can think of a professor as managing a small business. The employees are students (mostly grad students, but some undergrad as well), and the products are research publications.
How is this different from research jobs in other settings? In the field of computer science, industrial research can range from having a strong applications oriented focus to more theoretical work. By comparison, research at universities typically fall more towards the theoretical end and is usually at least one level removed from mainstream applicability.
So why is such research appealing? Well, one of the biggest things which turned me away from development jobs at places like Microsoft is the fact that any complex software intended for mass distribution needs a great deal of attention to detail. Given that this is not something I particularly enjoy, it would follow that I'd probably give a subpar effort in this regard. As such, I enjoy working on projects whose end goals do not include a finished product for widespread public use.
Another annoying aspect of standard development jobs (as well as application focused research) is this tendency to hack at things until they work. This can come in many flavors and guises, but it all boils down to the fact that deadlines must be met, and the elegance of a solution will typically only gain you a little self-satisfaction.
I enjoy taking a more principled approach in tackling these problems. Rather than trying to work within the current known limitations, I prefer to find a reformulation of the problem which yields a simpler solution. This point is perhaps best illustrated with a short example. Suppose you're given a bunch of data points and you're trying to spot a trend. You've tried least-squares line-fitting as well as a few other methods. Nothing seems to work great, but certain fitting methods let you tune parameters until the line seems to fit OK. By doing this, you are implicitly making an assumption that the data you're trying to fit was sampled from a distribution which is geometrically similar to one of the models you're using to generate the fit. Since nothing seems to work really well, you end up tuning a bunch of parameters until something looks decent. By contrast, if you tried a broader range of models, you might find that a log-linear rescaling of the data yields a near-perfect straight line, which is a much simpler solution than the previous ones you hacked up. The trick then is to find the correct mathematical tool in order to abstract the problem into something that is simpler and therefore more elegant. As you might expect, this is usually pretty difficult for real-world problems.
But progress has been made in the past, and progress will be made in the future. I find this type of research very exciting because the results can open up entire new ways to view a certain problem, which might suddenly turn what used to be very difficult into something much more tractable. The elegance of these results holds a certain aesthetic appeal to me, which I find very compelling and inspiring.
So what's my dream job? In its current incarnation, I would ideally, at some point in the foreseeable future, be locked in as a tenured professor at a major research university. If I'm really lucky, I might even get invited on a few federal committees, though that typically doesn't happen until the latter stages of one's career. I'd have my share of teaching duties (which I enjoy immensely), as well as a horde of grad students at my beck and call. My daily routine will be interjected by periodic travels to various research conferences. And every few years I'll be able to take an extended leave (known as a sabbatical) to focus purely on research.
While the picture I've painted thus far might seem laden with roses, there are plenty of thorns in sight as well. First off, the pay, though solid, will never be spectacular. Furthermore, the process to even matriculate from grad school requires many long, lonely nights at the office. After receiving a PhD, it's a dogfight to gain a professorship at a good school. Should you survive the interview gauntlet and be awarded a position, you'll spend the next six years or so working your ass off to gain tenure. Then, and only then, can you breathe a small sigh of relief and consider the storm mostly weathered.
So is worth it? The profession is obviously not for everyone. It may be that I'll stray from this path ere I reach the end. But in terms of finding a job which affords incredible intellectual freedom, can offer up potentially groundbreaking advances in science, as well as steers relatively clear from frustrating corporate mandates, a professorship is, in my opinion, without peer. Given that such positions are extremely competitive despite all the negatives I've mentioned, it seems there are many others who would agree with me.