I've had this discussion with some students enough I should write some thoughts down somewhere. Here are a few words of advice--though as always, take a chance to have a 1:1 with a professor you know to get a second opinion.
Hey Professor, I need a job -- can I do a Ph.D. under you?
This is a common question I get, and it is a bad reason to do a Ph.D.
First, for me personally I have extremely limited funding (if I have any at all that is), and it's work for professors (i.e. we do more than just show up to lecture) to generate funding for you. I'm effectively running a small start-up company competting against corporations and other more senior faculty who have more resources. I cannot understate how much work it is to get funding -- and sometimes I'm waiting for 6+ months to hear if I have received any funding. It's more a 'my problem' thing that I don't want you concerned with in your pursuit, but you have to understand 'just asking for a job' is not going to cut it. I am always willing to do the fundraising for motivated students, but I need to know you are motivated.
Second, folks who do well in Ph.D. programs are pursuing a Ph.D. because they want to become a scientist. That means discovering something new and studying a topic deeply. Again, often times I will get e-mails from folks telling me it did not work out in industry, so they see a 'Ph.D.' as a fallback or a path towards something else. A Ph.D. is a commitment for *multiple years*, and something that you should consider with great care.
Is there any benefit to getting industry experience before pursuing a PhD?
For me, it probably would have been useful to work a year or two before going into a Ph.D. to get more programming experience, especially since I ended up doing a lot of systems related/software engineering research which required building things. I had the opportunity to do it at a good company, so that may have been worth doing.
That said, it sounds like you are in the MSDS and may have quite a bit of programming background and could continue forward. This is not an uncommon path to go straight from a masters to a Ph.D.
That said, going from industry back to school can be difficult (you get used to making money, your friends circle is making money and out having fun, your lifestyle/spending could increase, you may not want to go back to living frugally with roommates, etc.).
Life advice wise (i.e. some unsolicited financial advice), it can be useful to build up some amount of money if money has been a constant stressor. There may be other tips on here, but utilizing your 401k Match, investing in index funds, living within your means, and general financial literacy are all good skills to have.
How do grad programs evaluate applicants when there is a notable gap in time between working and the last time the person was a student?
I think it depends what your programming experience has been. If you were working at Intel on computer architecture and want to pursue a Ph.D. in a related topic, that probably strengthens your application.
One thing that might be worth mentioning is to maintain a relationship with your Professors as well if you think there is a gap. It's nice if they can remember you, remember a project or independent study you took up (something to consider doing now in your MSDS program). When it comes time to write a recommendation (you'll need three references), typically the application can be strengthened if they come from professors who can vouch for your research potential and ability to complete a Ph.D.
I think otherwise to answer your question, when entering a Ph.D. for a topic you're passionate about, it is more going to matter that your passion matches that professor who you are going to work with.
And as an FYI, make sure passion is something that you have actually worked on, and not something that just sounds cool. You could potentially be working in that area for 4-5 years on research projects!
I would recommend during your MS to consider an independent study, or perhaps really digging into a course project for an area you are interested in. It gives you something to talk about on your Ph.D. application and can also give you an idea of what it is like to work on a hard problem with an unknown solution for a longer duration.
Not to mention, there are opportunities to publish which can also strengthen your Ph.D. application (though not required to have publications, it can help to have publications, posters, participated in a college-wide research forum, etc.)
I'm an M.S. student but I still want more advanced math courses (Convex Optimization, Numerical Analysis, Topology, etc.) under my belt. Can I learn that content in a CS PhD or would I need to do a Post-Bac before applying to a PhD program?
Taking an extra math course or two during your Masters may be useful. I took a few extra courses during my undergraduate in computer graphics beyond my degree during my bachelors purely because of passion, and I also thought they'd be hard things for me to get myself motivated to do on my own (versus a class environment).
I think the question you need to ask is--are these courses relevant to your passion and what you want to work on as a researcher?
During most Ph.D. programs (In the United States) you'll have opportunities or otherwise be required to take a number of courses during the start of your Ph.D. If you're going to be working in any of those three fields mentioned above, I don't think any advisor would oppose you taking or sitting in on offerings of those classes.
Strategically, trying to be a teaching assistant for such courses may be another way to learn the materials.
Would I even have time to study that in a PhD if I'm working on research full-time?
Yes, certainly possible, again, if that is your area of research you'll be immersed in these topics and should probably take those courses. If these topics are otherwise things you just enjoy as a hobby, Youtube and the plethora of lectures now available online (due to the world going remote last year) are likely available to give you a start.
One thing to keep in mind, is that time management is a really important part of completing a Ph.D. And part of time management means staying focused on a particular project (e.g. dedicating the first say 4 hours of your day to the hard problem that you know you should be working on, and then scheduling other tasks, answering e-mails, etc.)
There will be opportunities to branch out (and that can likely lead to cool research), so I am merely speculating if the topics above are things you are interested in learning for the first time versus pursuing a Ph.D. in those topics.
How do PhD students finance their way through programs?
Most Ph.D.'s are funded (that means tuition and a stipend) by doing a teaching assistantship or a research assistantship.
In option 1 (teaching assistantship) you are helping grade,teach,run office hours for 1 or 2 courses (estimated about 20 hours a work of week)
In option 2 (research assistantship) your advisor (i.e. a professor) has gathered research funds and is paying you out of a grant to work on a specific project.
Otherwise, to find the some more concrete answers to this however, you can usually look at grade programs Ph.D. page or various online websites where people might post information.
For example:
You'll want to try to figure out how many years of guaranteed funding you get (Is it 2 years, is it 5 years, is it the whole program?)
You may also be able to look up faculty grants (either on their web pages or the NSF website) to also see what the funding situation is. This is probably more interesting to do when applying and after getting accepted to a program to figure out whether you're likely to work as a teaching assistant (TA) or research assistant (RA) during your Ph.D.
Option 3: Yes there is option 3--fellowships do exist (e.g. NSF fellowship, Microsoft has some, Facebook, NVidia, etc.). These fellowships would be company sponsored to pay for a few years of your Ph.D. If you can get one of these this will make you very competitive when applying for a Ph.D. program.
First: It shows that you have been vetted by some other smart folks at these companies.
Second: Your advisor does not have to raise funds for you or otherwise arrange for a TA position.
Third: Well, there is no third. If you don't get a fellowship, it does not mean you would not become a superstar Ph.D., industry research or professor later on--these fellowships are just really competitive.
Thinking of the worst-case (yes a CS pun) in which no scholarships are provided. Would pursuing this track require a part-time job to make ends meet?
Probably not in CS. On occasion I have seen students work full-time while pursuing a Ph.D. part-time in which they pay for classes. This option of a part-time Ph.D. is going to vary at schools and likely increase the duration of your completion.
As a CS Ph.D. student doing internships during the summer is a great way to also earn a reasonable amount of money. Depending on where you do a Ph.D. in the country, your 9-month stipend (working as a TA or an RA) probably ranges between 25k to 50k. You can probably make say another 15k during the summer and gain industry experience at an internship.
The years spent pursuing another degree could mean years not spent moving up in a company. What's the typical job placement like for folks who go into industry after PhD?
It depends on your goals.
If your goal is to start a company or work at a startup, you probably do not need a Ph.D. It is an option to think about not doing a Ph.D. as you have mentioned.
Your salary at any of these companies will be based on some sort of merit criteria (which is worth asking about perhaps after you get a job offer, that is, how often you'll have a performance review, and what is your continued employment and raises based on in your team).
Some companies (e.g. Intel to my knowledge) really value candidates having a Ph.D. and you'll start out a higher grade which comes with more salary.
Some companies (e.g. Microsoft to my latest knowledge) don't care if you have a Ph.D., but they assume you'll move up the ranks quicker the longer you stay with the company.
Maybe having a Ph.D. helps giving you more leverage when you negotiate an offer as well, but it depends on the company (There's probably plenty of advice otherwise on how to negotiate).
While pursuing a Ph.D. I did several internships, and it did lead me to what I will claim are more interesting opportunities--at least while I was doing internships. Folks knew I was a "researcher" so I got to join a lot of R&D teams. That type of position in industry can lead to a very satisfying and interesting career.
Post Ph.D. I have worked at some startups and doing some consulting where having a Ph.D. helped from a credential perspective, and again, I've gotten to work on interesting projects that I can't talk about. That said, my primarily role is as a teaching professor today--so I needed a Ph.D. for my current position (most faculty positions need a masters degree, and as a research professor you'll need a Ph.D.)
Again--If your goal is to become a research professor (another avenue to doing lots of R&D for a career), then a Ph.D. is a necessary part of the process.
If professorship isn't an immediate goal, is the PhD route still worth it for industry research opportunities?
It doesn't hurt to apply and see where you land.
I know a few folks who landed job offers doing things at IBM research after their masters, did that for a year, and then started their Ph.D. (They were accepted to Ph.D. programs and deferred their offer for a year to get some work experience in an industry environment--that was also a good option. They could probably continue summer internships their as well if all works out next year)
Regardless if you choose Ph.D. or not consider: 1.) Where will you be able to grow the most (I mean this in a technical sense) 2.) Which path may lead you to being fulfilled/happy/build good character (I mean this in a --enjoy life sense)
Is the PhD needed for a national lab or research position?
I know folks at national labs and other organizations (e.g. Intel, AMD, all the big tech companies) with and without Ph.D.s who do research.
I also know 1 or 2 folks who don't even have a bachelors degree, and sit in senior positions at top tech companies. They were always doing their homework, just not in a school environment.
Anyway, those are my thoughts, take a few moments to think about them, and then your action item is to talk to another professor who you have some relationship with (i.e. have taken a class, done a project with, etc.) with your new thoughts :)