I went to work at a startup after an MSc. I was there for little over a year, and now I am back in Grad school (the same where I was, in the UK).
Most of the differences you describe I experienced as well, except that holidays could be planned at a much shorter notice at our company, even though workdays were considerably longer (10 hours).
I also had to argue for, and then introduce, automated testing, and some other good practices that I'd expected to be industry standard (was nevertheless nice there was room for this, and it was appreciated in the end...).
After a while, though, I missed the research, the self-development, the thinking about broader problems, and also, even though the team was great; the social side of things (especially as the hours left me exhausted in the evenings and even into the weekend). I guess I'm someone who is happiest and most creative when working 8 hours or so, and not tired. I also missed my friends in Europe, and the life-style there (walkable cities, no abject poverty, etc).
As for working on important problems, yes I loved what the product tried to accomplish, and our company mission, but 80-90% of most peoples time was spent on bug-fixing, repaying/circumventing technical debt, and at best relatively minor features that most users probably would/should never notice. So on balance spending 10-20% of ones time on a new real-world problem, versus, say 70-100% on a theoretical one, might still end up in favor of the latter as for making a difference...
Everybody should make their own decision on grad-school vs industry, but trying both is definitely a good idea.
Great post, thanks for taking the time to write it.
I took a similar route– quit my PhD program to join a startup at which I had interned the summer prior– and slowly find myself missing many aspects of grad school.
Will probably end back there at some point– if only there was a magical place with the best parts of grad school and the best parts of the startup world...
I dropped out of grad school to work in a start-up, which also turned out to be my first proper full-time job after graduating from university. I had worked before, in internships and before university, which made me attractive to the company that offered me my get-out offer from grad school.
At the time, I was super stressed. I was working three days a week to pay for grad school and having to work pretty much every single day with barely any money to live on was hell. Start-up life, for me, was almost like a holiday. I was working regular hours, and although there were times where I was working hard and long hours it felt structured.
That being said, I absolutely loved grad school. The idea of it is what made me do it. My bachelors in CS left me wanting to know more, so a step-up was required.
I let my university know that I was struggling to make ends meet and that I would be leaving as I couldn't afford the next term. The university where I got my bachelors was as tight with money as possible, so I expected nothing, but they refunded EVERYTHING and wished me luck. I effectively got almost three months of education for free.
For that reason, I will return to grad school, and I will definitely continue it at the same university. Sadly, the price of a Masters degree in the UK has almost tripled, so it won't be any time soon. It if goes down to around £5k I'll definitely do it again.
That's absolutely incredible that your university refunded everything, and I'm glad to hear.
Maybe you should consider pursuing fellowships or work at companies that would pay for you to get a higher degree and also provide a reasonable living stipend. Seems to me like someone with the drive you have, clearly hoping to pursue it but financially unable to, is the perfect candidate for one of those positions.
Nice read, I always enjoy reading about the grad school experiences of people with similar background to mine.
> The main issue was that I never crisply understood all the use-cases and requirements for the systems I was building. I felt weird making assertions about how people wanted to use something, when I had never operated or used it in the real world!
I think that if you're interested in building systems that actually get to be used <in the real world>, the industry is a better place. Personally, I enjoy doing a PhD because I have fewer restrictions which allows me to focus on the things I really find interesting. For example, I don't have to worry too much about making software user-friendly since it will only be used by myself or a handful of people, I don't have to handle tricky corner cases unless I'm actually hitting them on my data, etc.
You also get to work on problems that will only become relevant in the future, e.g. people who have been doing research relevant to many-core systems for quite some time.
It's good to hear that Cal's grad program is good. I'm in undergrad here right now, and I plan to start researching next semester so I can integrate myself a little more into this side of things. Any advice? If you haven't left yet I'll buy you lunch if I can pick your brain.
I'm no longer at Berkeley, but I'm sure there are any number of professors or grad students who'd be happy to talk to you. I'd talk to Armando Fox if you want to get into research, he works with a lot of undergrads. He also runs a website (Research Match? something like that) which lists projects looking for undergraduates.
The CSGSA also hosts an undergraduate "research mixer" which is a chill way of speed dating a bunch of projects.
I am about to return to grad school after working a bit in industry; so this article is very relevant to me. I will be doing a Masters right now, but I do plan on doing a PhD afterwards.
I am constantly splitting my brains about how I can work on an "important" problem; something where my expertise will be relevant years after grad school, too. And I don't want to become a professor and there is a chance I might choose to go back to my home country (not much of compsci products, but very good e-commerce and banking); so my expertise should be of value even in a consumer-of-technology (not producer) economy.
If anybody has ideas about how to pick an area for research, I'd love to hear.
If you want to make an impact on an important problem, I'd focus on the advisor first, not the area of research. Pick an advisor with a track record for strong publications in quality journals. Someone who produces quality research will typically have the best sense of what problems are and aren't important, and can guide you much better than bystanders who don't know your skills. In addition, a strong advisor will have the contacts necessary to get you in touch with other top researchers in your field, which is extremely important in producing high quality publications.
The one with lots of publications in big-deal journals may or may not be running a sweatshop. And they may or may not be doing actually interesting science, because that game requires so much attention to fashion, fundability and grinding out large quantities of papers (contrary to common belief, prestigious journals do not mean journals publishing the highest quality papers).
But if you want to learn that particular trade then find the advisor best at it to study under.
A great academic who taught me once said of a PhD (paraphrasing); "It's not going to be your best work and it'll not be amazing. It's just your trade union card. Nobody gets really good at research until they're 10 years in."
Pragmatic advice. The problem you solve doesn't have to be paradigm-shifting or world-changing, just a bit above what humanity already knows [1].
w.r.t your question; pick an advisor you know you can work with for $x years first. Read papers before you pick your topic and keep looking for "holes" - these are where you can make your little dent.
> If anybody has ideas about how to pick an area for research, I'd love to hear.
If you don't really know, maybe you shouldn't do it, or at least stop after your masters. PhD is not something you do some work to get, its rather something that comes along with the work you do.
Bs. That happens a lot and result in frustration and inferior research as the student keeps trying to fit everything into that little box of his interests.
I am just beginning my PhD but I have been "dipped" in academia for a few years and my short experience tends to agree with your point. It's not about loving your PhD project (although that doesn't hurt, and it should be preferred if possible) as much as it is about loving research as a whole. In my country (France) we have a lot of CS students doing "industrial" research (partially sponsored by companies) and while it couldn't be more dull, they usually do it because research is interesting as a domain in itself (and it pays well, without having to do any teaching).
BS. I think the opposite happens a lot: the student tries to "be interested" in what is hot or has funding/an interested adviser, they wind up unhappy and ineffectual because its all just pretend.
When you get a job and really get paid; you can be flexible with what you work on. When you go get a PhD, you should have some idea of at least the area you are interested in, you can be flexible within that area, but you should at least have one.
You have to be intrinsically motivated to succeed at getting a PhD, which normally means being strongly interested in your area of research. It's a lot of hard work; I wasn't kidding when I said I pulled three weeks of 16 hour days in a row (and that paper wasn't even accepted!).
If you've gotten an undergraduate and master's degree in computer science, you should already have a pretty good feel for the different areas. Choose the one you really want to immerse yourself in for reasons of pure interest, and pursue that one. Once you have the PhD, you can go on and do whatever you want afterwards. You don't have to stay in the same subarea as your thesis; lots of professors (my advisor included) have changed areas based on the times.
Most of the differences you describe I experienced as well, except that holidays could be planned at a much shorter notice at our company, even though workdays were considerably longer (10 hours).
I also had to argue for, and then introduce, automated testing, and some other good practices that I'd expected to be industry standard (was nevertheless nice there was room for this, and it was appreciated in the end...).
After a while, though, I missed the research, the self-development, the thinking about broader problems, and also, even though the team was great; the social side of things (especially as the hours left me exhausted in the evenings and even into the weekend). I guess I'm someone who is happiest and most creative when working 8 hours or so, and not tired. I also missed my friends in Europe, and the life-style there (walkable cities, no abject poverty, etc).
As for working on important problems, yes I loved what the product tried to accomplish, and our company mission, but 80-90% of most peoples time was spent on bug-fixing, repaying/circumventing technical debt, and at best relatively minor features that most users probably would/should never notice. So on balance spending 10-20% of ones time on a new real-world problem, versus, say 70-100% on a theoretical one, might still end up in favor of the latter as for making a difference...
Everybody should make their own decision on grad-school vs industry, but trying both is definitely a good idea.