Could you expand a bit on the intangible benefits of a cs PhD? I have recently been offered admission to a top 10 program and am struggling to decided between it and staying in industry.
From the point of view of someone hiring/interviewing/having spent some time around PhDs, I'd say the main benefit is that it pushes you to be intellectually more capable. In a good university, doing original research, you'll be doing a lot of actual thinking and continuous learning and be pushed to do more of it than you'd do naturally. This is the main reason I wish I had done a PhD, although I don't think I'm smart enough to have gotten in a good programme (graduated with a 2.2 in engineering from Cambridge - all the MIT/Princeton/Stanford/whatever admitted had firsts).
It's in no way the sole predictor, but the probability of someone have done hard things and being able to solve tougher problems [1] quicker is higher with a PhD than someone who spent the same time in industry. It's also tremendously competitive (in the same way, say, Goldman Sachs is in "business") so you can trust the PhD admissions committee to have done some filtering for you. Finally, it takes a lot of willpower to stick through it til the end (particularly in the US with its much longer programs), and drive is a strong predictor of adding value to a company later.
On the downside, few people in business realise that because they haven't hung around PhDs or thought about it much, and just see a "lack of industry experience", an "attitude" and "not the most commercial mindset" (usually with a mention of the "ivory tower").
A good corporate job will have you learn a lot (broader, less specialist, probably less hard); but most corporate jobs are not good, and pay well to compensate the drop in intellectual challenge and loss of skills that results vs your undergraduate self (although you'll pick up more useful soft skills, to an extent, vs learning to navigate bureaucracies which are the soft skills a PhD teaches you). I heard that across practically all academic fields.
[1] Unfortunately most of the problems people actually need solved in tech companies, like building a data warehouse, some reporting, a user friendly front end, are not "tough problems" in the way, say, building a machine vision engine tailored to your specific industry might be.
The marginal benefit of grad school is obviously a very personal thing. It depends on a) how excited you are about your current position/opportunities in industry, and b) how excited you are about the independent research you'd pursue in a PhD program. The latter will of course depend on what program(s) you're considering, who your likely advisors might be, and if there's a research topic you're passionate about investigating that you wouldn't otherwise be able to pursue in industry.
In my case, I was interested in machine learning, and after doing some internships as an undergrad concluded that there was no easy path to work on interesting ML problems in industry with only a bachelor's degree (both because the positions weren't available, and because I didn't know enough to do the work). So for me the first-order benefit is that I get to spend my time learning about and working on stuff that I'm interested in, and developing a skill set and a credential that should let me keep working on interesting things for the foreseeable future. It's different for other people, of course: some want to become professors, some want knowledge for knowledge's sake, some could pursue their chosen area equally well in industry but have a specific crazy idea they want the freedom to explore (I think this is more common in systems research), some want the lifestyle flexibility to go skiing in the middle of the week and make up by cramming work on weekends, etc. For most people it's really a mix of these factors and others.
The other main bit of grad school advice I have is that your relationship with your advisor is extremely important. The chance to be mentored one-on-one for six years by an extremely bright person you click with, share interests with, and who wants you to succeed is incredibly valuable. On the flip side, the possibility of being stuck for six years under a boss who doesn't care about you or know how to motivate you and develop your skills can be a massive liability (and one that's harder to escape than the equivalent situation in industry, since a lot of people internalize the value structure of academia and think of quitting a PhD as a failure on the part of the student rather than the advisor). So whatever you can find out about your likely advisors -- both by talking directly to them when you visit (are they looking for new students? do they seem enthusiastic about you specifically? how do they help their students find research topics? what is their philosophy of how to develop a student's skills as an independent researcher?), and by talking to their students: take them out to coffee and ask pointed questions like "is X a good advisor?", "what do you like/dislike about working with X?", "what sort of person is best suited to working with X?", "would you make the same choice again?" -- should have a huge bearing on your decision whether to attend, even if your program doesn't actually make you choose an advisor initially.
It's in no way the sole predictor, but the probability of someone have done hard things and being able to solve tougher problems [1] quicker is higher with a PhD than someone who spent the same time in industry. It's also tremendously competitive (in the same way, say, Goldman Sachs is in "business") so you can trust the PhD admissions committee to have done some filtering for you. Finally, it takes a lot of willpower to stick through it til the end (particularly in the US with its much longer programs), and drive is a strong predictor of adding value to a company later.
On the downside, few people in business realise that because they haven't hung around PhDs or thought about it much, and just see a "lack of industry experience", an "attitude" and "not the most commercial mindset" (usually with a mention of the "ivory tower").
A good corporate job will have you learn a lot (broader, less specialist, probably less hard); but most corporate jobs are not good, and pay well to compensate the drop in intellectual challenge and loss of skills that results vs your undergraduate self (although you'll pick up more useful soft skills, to an extent, vs learning to navigate bureaucracies which are the soft skills a PhD teaches you). I heard that across practically all academic fields.
[1] Unfortunately most of the problems people actually need solved in tech companies, like building a data warehouse, some reporting, a user friendly front end, are not "tough problems" in the way, say, building a machine vision engine tailored to your specific industry might be.