Hello! So some context: I graduated 3 years ago from a “public Ivy” CS program with a 2.6 GPA. I had a 3.3 freshman year and then it was downhill from there. I was lazy and didn’t enjoy going to classes and just didn’t put in enough work through the semester. I tried to cram in as much as I could the night before exams and it never worked, and I graduated with a 2.6. I really regret it now, but there’s nothing I can do about that. Fortunately I had software dev jobs through college and spent a lot of time with programming side projects so I had plenty of job offers, and ended up working at a “big 5” tech company as a software developer on a product that many of you probably use right now.
So 3 years on, I’m trying to transition into machine learning teams and its extremely hard, since most teams require a Masters or PhD. I haven’t taken the GRE yet, but I’m pretty good at standardized tests, so I’m not too worried about that. I’m also not worried about costs, I have almost 110k saved up since I graduated in 2012.
I understand that the top-tier of schools are out because of my GPA, but I’m not sure where to draw the line. What sort of schools should I be looking at? Should I completely rule out PhD programs and just look at masters?
Well, I’m a strong advocate of only getting what you need. You need a credential because you want to move onto a different team at work, and it seems pretty clear that your goal with this degree is to work in industry. So I think you should rule out PhD programs primarily for that reason. It would be an uphill battle for you to get into one anyway, but you also don’t need to spend 5-6 years out of the workforce to do what you need to do.
Secondly, even if you have $110K saved up (good for you!), that doesn’t mean you should spend it or spend all of it. I work at a top technology company too and we have a great tuition assistance program; most of our competitors also have great benefits, so I would investigate the possibility of your employer paying for at least part of your master’s - particularly if you want to stay on and switch teams. No use blowing that money on an MS if you can use it to buy a house or something.
Thirdly, I’m not sure where you’re located but the top companies are mostly in California and Washington with some satellite offices often in New York, Texas (Austin), maybe North Carolina (Raleigh) - some other places too, but those are the bigger ones. Three years in you are already an in-state resident, and those states each have a really good CS program at a public university in the state. For example, if I wanted to go back and get an MS - in anything, really, but especially in CS - I’d go to UW before I went anywhere else. Top program, low cost. California has Berkeley and UCLA but also UCSD and Irvine, Davis, and Santa Barbara. Since you already have the experience at a top-tier tech company, where you get your MS won’t matter as much - you want to go to a good program, but it doesn’t have to be top 25 or something like that. The experience is going to be what gets you your job.
The exception is if you decide to attend part-time and need to commute from work, in which case you’ll need to pick something close to you. But then you’d be saving money anyway by not moving and by continuing to work to pay for living expenses
Also, I think that you’ve put some distance between you and the 2.6 by working for 3 years. You may want to put even more distance by taking one or two classes at the graduate level at a nearby university, as a non-degree student. Prove that you can achieve by getting an A in both of those classes. (Again…your employer will probably pay for them!) Take them in machine learning, so they have a dual purpose. Then I’d apply to a range: try some top schools (your later performance may make them give you a chance) but make the bulk of your spread mid-range schools.