Choosing between academia and the industry
I regularly have new grads asking for advice on whether they should continue studying or join a company. My advice follows these lines:
- If you have a genuine interest in teaching then stay in academia
- If you have a genuine interest in doing theoretical research with no companies working on this kind of research, then stay in academia
- Otherwise join a company
The rationale being that:
- You can grow faster as an engineer in a company than by studying. For example the median L3 to L4 promotion at Google is 2 years but if you want to join as a L4 after school, you need a PhD (so probably 6+ years after a bachelor)
-
Companies have way more resources whether that is live traffic, data or just machines. For example, if you want to do research in AI, you can get access to much more data and compute power at Google/Meta/Databricks/etc.
- I remember spinning up a thousand machines to crunch small logs at Google without using non default config – you don’t have a thousand beefy machines available by default at school for fun.
- If you want to build large distributed systems, you can better do it in a large company – there are so many problems with large systems that you won’t be aware of until you actually build and run such a system. I actually think the research content is 5-10 years late compared to the state of the art.
The exception to the statement above is that it’s also OK to do a master/PhD just for fun – e.g. to live abroad, explore what really interests you etc. There are tons of interesting things outside being a software engineer. I personally have no regrets studying abroad at Tsinghua University in China even if it took a few extra years.
If you are studying in the US, you should obviously also factor the cost of university :)
What’s your personal experience? Do you regret staying at school too long or joining the industry too early?