Over the six months tåhat I've been writing this blog, I've gotten a bunch of email from people asking about what it's like working as a researcher in industry vs working in academia. It's a good question, one which I've spent a lot of time thinking about. So I thought it was worth turning into a post.
Industry versus academia is ultimately a tradeoff in a couple of different dimensions. I'll go into a bit more detail on each, but the basic tradeoffs as I see them are:
* Freedom: industrial research is much more constrained than academic; academics have more freedom that industrial folks.
* Funding: industry people do not need to spend nearly as much time on money chasing as academics.
* Time and Scale: there are types of work that you can do in industry that you couldn't in academia because of resources and scale.
* Products: the kinds of end-product of your research are very different in academia versus industry. In academia, you have two requirements: get money, and publish papers. In industry, you're expected to produce something of value to the company: software, hardware, patents, etc.
Freedom
---------
The kind of freedom I'm talking about here is the freedom to set and pursue your own research agenda. This is something that's usually very important to researchers.
In theory, academic researchers are free to work on whatever they want, so long as they can arrange to get grant money to support that work. The good part of academia is that freedom; the bad part of academia is that grant requirement. (But more on that later.)
In industry, you're constrained by the needs of the company. You can't just decide that you want to do "X". You're expected to work on things that are at least *potentially* beneficial to the company. It actually ends up being not *that* different than academia in this sense: the way that it ends up working is that in an industry job, you can do whatever you can get people to cough up money to pay for. The main difference from academia is *who* you get the money from. In academia, it's generally grant programs, either from the government or from interested industry groups; in industry, it's product teams from within the company. But that's a big difference: industrial product development groups are generally *extremely* focused, and will not bother with things that are irrelevant to their *current* needs.
Funding
----------
In academia, you're pretty much required to arrange all of the funding to do your work. The end effect of that is that many academics end up spending at least half of their time doing work related to getting the grants they need to do their research. (And that means that they're not nearly as free as the general statement above about being able to do what they want would imply: academics can do what they want *provided they can get someone to pay for it*; but getting someone to pay for work is *very* hard; and getting someone to pay for something very different from what you've done before can be close to impossible.)
And as I said above, in industry, your funding generally comes from product development groups within the company. As an industrial researcher, you are indirectly working for the product groups. This tends to mean that you spend much less time going around and begging for money; it also means that you have a lot fewer choices about who to send an application to. If the product group for your research area isn't interested in what you're doing, you're going to have
to find a new project.
Time and Scale
-----------------
This one is a really interesting tradeoff. Academic researchers can set very long-term research agendas and pursue them. It's rare to find an academic researcher who doesn't have a rough plan for *at least* the next five years of their research. In industry, you can't plan that far ahead: a project is usually expected to start showing *some* results within a year. The project can go on for many years (the longest project I know ended up lasting around 15 years!), but you don't have the ability to plan for that kind of time when you start.
But on the other hand, in industry, you can do work on a scale that's unimaginable for an academic. Spending four person-years working on infrastructure to make your system work on a really large code base would be pretty much out of the question in academia. In research, it's not just possible, but it's often expected.
In my field, software engineering, academics usually run their tests on what they call real systems: generally a couple of thousand lines of code. In industry, we run on hundreds of thousands to *millions* of lines of code. One of my first projects involved writing compiler analysis of templates for a C++ compiler. The code base that I got to test my analysis on was 1.5 million lines of code. And I've gotten to run tests on larger things than that since! Academics generally don't get to do that, both because they rarely have the time to build code that can handle things that large; and even if they did, they rarely have access to code bases that large: companies don't go handing the source code for their products to academics!
Products
----------
By products, I mean what your research project produces as a result.
In academia, you're under a huge amount of pressure to publish *publish* **publish**! The main product of your research is the papers. You design your agenda around produces papers on a regular schedule, and you work insane hours (especially before you get tenure) making sure that you get enough done to write the papers you need to write, and then actually doing the writing in the breaks between applying for grants.
In industry, the common saying is that research can produce three things: products, patents, and papers (in that order). To be successful you need to produce at least two of those three; and the first two are preferred to the last one. Publishing papers is nice, and you definitely get credit for it, but it just doesn't compare to the value of products and patents.
Why do I work in industry?
----------------------------
When I started working on my PhD, I had no intention of going to work at an industry research lab. I went to get my PhD specifically because I wanted to teach.
The way I wound up in industry is a combination of strange factors - my obsessiveness about programming languages; some really *good* luck; some really *bad* luck; some coincidences, and the fact that I'm married to someone smarter than me. I originally started writing out the whole story, but it would have turned into the longest post in the history of this blog by a factor of three or four. So I'm going for the short version.
Because of my obsessiveness about programming languages, I knew about a somewhat obscure but extremely cool programming language, which I used for doing some exploratory development when I was working on my dissertation proposal. As a result of that experience, I wound up getting a summer internship at the lab where I now work.
I had a *great* time working for them that summer. Without that, I never would have considered industry; but my experience working with them for the summer helped me realize that an industry research lab was a lot more fun than I would have expected; and that there are some real advantages to being in industry instead of academia. What I learned was that industry researchers weren't nearly as straight-laced as I'd expected; they had more freedom than I'd expected (although still not as much as in academia); and they had *access* to people and materials that would be nearly impossible for an academic person.
When graduation time came, I had a lot of solid experience in research and building systems; but I didn't have as many publications as I would have liked. (There's an interesting story in there about research politics, but that's a story for another day.)
The folks I'd worked for in industry were very interested in hiring me; and I'd had a great time working with them, so I interviewed with them, and got the job.
It was a place I thought I'd enjoy working, and it was well-located, so there were plenty of places not too far away where my wife could find a job. (That was a *very* important factor; we met while working on our PhDs, and she's a better researcher than I am. So making sure that we weren't stranding her in order to give me an opportunity was a big deal.) And that was that.
- Log in to post comments
My super-anti-authoritarian streak puts Freedom above else, including food and clothing. I was lucky to have freedom in grad school - I cannot imagine having any less in the future.
Do you know if the same mechanic applies to pure mathematics? I imagine getting grants is less important when your research is based on sitting in your office 80 hours a week and trying to prove the last part of the Langlands Program.
Alon:
Actually, from the academics I know, the grant chase isn't any easier for mathematicians than for scientists. Mathematicians are not expected to bring in as much money as the scientitsts - but the size of grants available to them are also much smaller. So it reduces to very nearly the same amount of effort.
Think of it this way: you still need to bring in enough money to pay your share of the office costs (Universities expect you to cover part of the cost of your own office!); and to cover a couple of grad students to work with you.
What was the somewhat obscure but extremely cool programming language?
You seem reluctant to reveal where you actually work! So, what is this mystery company? And if you won't name it, why do you prefer not to tell? Can you give any clues?
The so called freedom in academia always seems to come down to the fact that you aren't responsible to the people which resources you are using since they don't have a choice in parting with them or not (in case of government grants). This is freedom for the academic but certainly not for the people who have to support him/her.
Gerald:
My employer asked me not to mention them by name on my blog. It's easy to figure out where I work; just do a google search on me.
-Mark
tibbe:
Spoken like a true conservative asshole with no clue of what in hell he's talking about.
Anyone who thinks that academics aren't responsible to the people who give them grants clearly has no actual knowledge of how grants work.
The freedom of academics comes from the fact that they aren't required to do things that show potential for reasonably short-term profit in the specific business area of a corporate employer.
This seems to depend quite a bit on the university. In my graduate program (actually, as of a week ago it's my alma mater) very few pure math grad students were funded through the faculty. The majority of our support came from teaching and TAing undergraduate courses, with some departmental fellowships available as well.
Mark,
tibbe was referring to the taxpayers, not the grant administrators.
Of course, he doesn't understand. It is the taxpayers' moral obligation to support our important research. If they don't like it, they can leave the country and renounce their citizenship.
Stupid conservatives. Don't they realise that PL research created the Internet? How do you think you're typing this comment, Mr. Bush-Nazi? I'll bet this very blog is running on a Haskell server. I'll bet parts of your browser were actually written in Haskell. Ha.
Besides, what's a few million bucks on PL research when Iraq costs $100 billion a year? It's chump change, man. Peanuts. If it starts with "m", it's not real money.
Of course, it's an open question whether a conservative like tibbe even knows the difference between a million and a billion. Do they even teach that in Texas? Or does it violate God's law?
Curtis:
Yeah, those grants from the government are just so intolerable, because in everything else the government isn't allowed to spend money without getting permission from the taxpayers. And it's clearly *such* a waste of money; after all, nothing that was developed under government grants has ever led to profitable businesses that wouldn't have existed without them.
(And for your comment about parts of the browser/server being written in Haskell. Heard about that web 2.0 thing that everyone's buzzing about? The server side of many web 2.0 applications are written in Java 5. Why Java 5? Because a bunch of really useful and important stuff got added to Java that makes programming a lot easier. Where did it come from? Haskell. The proposal that led to the integration of that feature came from Phillip Wadler, who is one of the designers of Haskell, and led the implementation of one of the premiere Haskell compilers.)
So Haskell was the cool programming language? What Haskell features were added to Java 5? Personally, I'm excited about type inferencing (which admittedly predates Haskell) being added to C# 3.0, as generics / templates are so much easier in a type inferencing language like OCaml.
In industry, we run on hundreds of thousands to millions of lines of code. One of my first projects involved writing compiler analysis of templates for a C++ compiler. The code base that I got to test my analysis on was 1.5 million lines of code. And I've gotten to run tests on larger things than that since! Academics generally don't get to do that, both because they rarely have the time to build code that can handle things that large; and even if they did, they rarely have access to code bases that large: companies don't go handing the source code for their products to academics!
I used to work in industry and found this to be the case, but the availability of open source software like Linux, Apache, KDE, and Postgres now allows academics to study very large codebases (though primarily in C and C++, which is a bit limiting.)
jw:
I don't want to say what the "mystery language" is, because I don't want to give away who the person in the story is, and naming the language would do that. But I can say it wasn't Haskell.
The contribution of Haskell to Java is type inference and generics. The current mechanism for that in Java5 is based on the Pizza/GJ work of Phil Wadler. There are also functional contributions to how good JVMs do various kinds of optimization (linear types are used for optimizing GC and stack allocation; and most JVMs internally use a functional model of tail recursion.)
Your sense of entitlement is repellent.
Robert: I think your irony sensor is tuned a little low. Not that I can blame you.
Mark, I love this kind of grant-proposal reasoning. Similar logic has been used to assert that without NASA, we wouldn't have semiconductors. You probably believe that one too. And it certainly convinces Congress - whose opinion matters more than mine.
Anthropologists count the phrase "it must be okay if everyone else is doing it" among humanity's great moral universals. First noted by Aristotle, it also features prominently in the Tripitaka, the Bible, the Koran, and the works of Al Gore. So it must be true.
One problem with citing adoption by Sun and Microsoft of FP approaches is that Sun and Microsoft are not exactly highly responsive to market pressures. They are guardians of giant state-enforced monopolies. Working for them is not exactly like working for the government, but it's not like working for a startup, either.
So when you say that FP idea X or Y has been pulled in to the Java or CLR spec, all that means is that some manager at Sun or MS decided that it should be so. It probably is not actually damaging to the JVM or the CLR. But it is not exactly prima facie evidence of grass-roots acceptance - of the same sort, for example, that Ruby and Python demonstrate for the duck-typing approach.
Although my own academic background is in OS, I actually think FP is wonderful. In fact, I'm developing my own purely-functional language with type inference and pattern matching. I just think the centrally-planned state industry of PL research, which is mainly dominated by mathematicians such as yourself, has done a very bad job of creating actual functional languages for actual programmers to use. A programming language is first and foremost a user interface. A lot of very brilliant and elegant work went into Haskell - for just one example - but I'm not sure most of it was focused on creating a product that was as easy as possible to learn and use. And Haskell, as I'm sure you're aware, is on the demotic end of the curve.
Curtis:
I thought you were being facetious up until I read:
Stupid conservatives. Don't they realise that PL research created the Internet?
Did it?
I was always taught that OS research created the Internet. Of course, now that I think about it, I learned this from OS researchers. Hm.
No, seriously, when you look at the state of DARPA, Xerox PARC, Bell Labs, etc, back in those glory days, you realize why so much good stuff came out of them. It's because - at least compared to today's research universe - there was no accountability at all. No one had to justify anything. It was the opposite of central planning. It must have been amazing fun.
But of course it was completely unsustainable. You can't ask people to give you money without lying to them about how your research will cure cancer or whatever.
I couldn't agree more. I am one class and a dissertation away from a doctoral dissertation. I don't want to devote my life to research that will only be read by a bunch of high-brow academics who will do nothing with it but pick it apart... IF I do any research, I want it to actually contribute to something. (besides add another line to my C.V.)