To give a little bit of background about myself: Although I took some CS courses in college, I didn't seriously consider myself a programmer until just over a year ago, when I started writing code as a quant at a hedge fund and realized that, when using the right languages and working on cool problems, programming can be a lot of fun. I've also realized that there are many people a lot better at it than I am, so I have a lot to learn about technology and computers. Among my interests are artificial intelligence and programming languages, so I figure that graduate school might be the way to go.
I'm interested in AI/machine learning research, which practically require a PhD, even in industry. I've also considered the entrepreneurial route, but I lack a certain technical maturity as well as co-founders, both of which I could find in grad school. Eventually, when I'm in my 40s, I'd like to be involved in VC... but I'd like to spend the next couple decades doing more detailed technology work so that, when I get there, I understand what I'm analyzing.
So, given my interests and career aspirations, I'm considering pursuing a PhD in computer science. I'm wondering if anyone here could give me some perspective on what to expect.
Here are my credentials. I'd like to know what I can expect in terms of admissions success. Are, for example, top-10 departments a possibility?
3.9 / 4.0 in-major (math) from top liberal arts college.
CS courses: AI, PL, Software Eng., Data Structures, Intro. Grades of A/A- in all but SE.
GRE (2004): 800Q/670V, 98% on math subj. test, have not taken CS subj. test.
Top 100 finish on Putnam.
Research: Two internships in applied math, but in a govt. context. Consequently, I have no publications, so this may be a weakness.
Career: Entered pure-math grad program in fall 2005. Passed quals but did poorly in courses. Left after 1 year (no degree) to work on Wall Street, starting 5/2006. Worked on WS up to 2008, with a reasonably successful career and 1+ year of programming experience, but no research or publications (obviously).
Specific questions are:
1. How much is it going to hurt me that I entered a PhD program and left? Is this a deal-breaker, or can I explain it away? (My reason for leaving pure math is that I realized the academic job market sucked, and that I was already qualified for a decent industry job. However, a CS PhD carries a lot of benefits outside of academia.) Could I possibly turn my grad school experience into an asset, noting (in spite of my lack of success, and departure) that I've been through the experience before and know what I'm getting into?
2. Ideally, I'd like to get an NSF or equivalent fellowship, but I have no hope of getting that without research experience. Is it likely, outside of the ivory tower, that I can hook up with a mentor and get to work on a problem so that, when it becomes time (12/08-2/09) to apply to schools and for fellowships, I'm on the ball?
3. How much does the distinction between top (5, 10, 20) schools and the rest matter in CS, assuming that I will not be seeking academia? Do AI research groups care about the distinction between #1 and #8 and #22? If I pursue the entrepreneurial route, are higher-ranked schools going to have better co-founders?
4. The most important, but most distant question: What can I expect once I am in graduate school in computer science? What are the courses, students, research opportunities, and career possibilities like?
If this is a course you're interested in, here's what I suggest.
1) Read up on AI breadth first and shallowly. Focus more on machine learning, search, filtering, and so forth, than heavier (and less successful) topics such as knowledge systems and computer vision.
2) Go through a list of startups that you like, use, or admire. Imagine the simplest cool/good/useful thing the startup could do with a cute little algorithm.
3) Develop the basic idea for it, contact the company, say you'd like to hack on it for cheap.
4) Kill the problem.
5) Use that startup as a reference. Find another one, but this time, ask that you can publish the method.
6) Repeat. Blog about your conquests. Explain how to replicate and extend your results. Eventually, focus on a bigger project to tackle. If your interests align with a research program at a university, consider entering the PhD program then. With this behind you, you'll probably get in anywhere.
If you're interested, I can give you some pointers on the development of quick and useful recommendation engines, which practically every startup can use. If you'd like, send me an email at daniellefong@daniellefong.com