Wednesday, June 13, 2018

Quitting my Ph.D. program

I've just retired from a full-time gig as a tenured professor of computer science. It was my dream job and I loved it. I taught in two different places for a total of 22 years. I also worked in the computer industry for a bit over 16 years, ending up as the VP of development for a startup software company. And I did it all without a Ph.D.

I've never really talked about the whole story of how and why I never finished my Ph.D. and I didn't really need to because I was lucky and found places that would hire me without one. But recently one of my former students has also quit her Ph.D. program and has just written an excellent essay on how that all worked for her. (her essay is here) So I thought I'd go through what I experienced when I quit my program.

In a sense, I quit two Ph.D. programs. I started grad school at Syracuse University as a Ph.D. student in mathematics (I have a B.A. in liberal arts with a major in math.) After my first semester of grad school I decided that I was not cut out to be a mathematician (that would be another long post) and I switched from mathematics to computer science. A year and a half later I got my M.S. in CS and high-tailed it out of upstate New York and went to work.

My problem was that, while I liked the software development jobs I got, what I really wanted to do was teach undergraduates. I was a math TA in grad school and really loved being in the classroom and interacting with students. Working in industry I missed that interaction. Really, my passion was teaching. After a year or so I started picking up adjunct teaching positions. I'd teach Introduction to CS, Data Structures, and the odd programming language class. That certainly helped and got me back in the classroom, but wow was I exhausted. Working full time in software development and then teaching for 3-4 hours in the evening, plus creating lectures, grading, etc. was a lot, even in your 20s.

So after a couple of years I decided to go back to grad school, finish the Ph.D. and get a teaching job at an undergraduate institution. This time I was at Rice University. At that time - 1978 or so - Rice didn't have a CS department. CS was split between the Electrical Engineering department (for the hardware bits) and Mathematical Sciences (for the theoretical bits). Since I was more interested in hardware and operating systems at that time I ended up in the EE department. Over the course of four years I finished all my coursework, passed my qualifying exams, and started research in networking algorithms (specifically using max-flow-min-cut algorithms to help design distributed operating system software). This should all have ended with me finishing the research, getting a publication or two, writing a dissertation, and then making my way into academia. Or not. As happens with many plans, life decided to interrupt. I went through a divorce. I was the first doctoral student for my Ph.D. advisor and it turned out he wasn't very good at it - and neither was I. It also didn't help that because I'd already been out in industry and in grad school once, that I was actually a year older than my adviser. I struggled with some of the mathematics we were using. And then just to make things more difficult a paper was published that proved that a similar research problem to the one we were working on was NP-complete, which kind of threw a wrench into our solutions. Finally, I frankly didn't really know how to do research at that time and I wasn't very good at it. So I got Rice to give me a second Master's degree, this time in EE, and I quit.

I packed it in and headed back to industry. For a long time I felt like a failure, even though I subsequently had a very successful career as a developer and a manager. I was convinced that I was merely a dilettante and was incapable of finishing any difficult intellectual task. This despite the fact that I was writing complex operating system software pretty much every day.

 The hardest part was that I really wanted to teach and for several years I thought that was just out the window. But, I finally started feeling better about myself. I decided that while failures on my part might be the reason for leaving my Ph.D. program, that in the end it was better for my life going forward. I still had many things to learn to get to the level that I supposed I needed to be at to do research and teach. It helped that early on in this process I got married to my wonderful wife of now 32 years and we had a son. I found a way to do some publishing while I was still working in industry, and I went back to teaching as an adjunct. Then I had the incredible luck to be fired from my last job in industry. Really. In my startup job my boss (who was a psychologist, not a tech person) didn't like some of the software project management innovations I was adding to the development process, so she fired me. That company is now barely alive, but there's no shadenfreude here; well, not much.  Getting fired was the best thing that happened to me.

Those things eventually gave me the confidence to apply for the teaching job of my dreams at Knox College. It also helped that at that time (2001) Knox had a terrific Dean who was willing to take a chance on a 48-year-old guy with two master's degrees to teach CS full-time in a struggling program. Sixteen years later I retired as a tenured full professor in an endowed chair and a thriving department with really terrific colleagues.

 I guess my point is that just because you've decided to walk away from one thing, doesn't mean you shouldn't walk straight into something just as good, or that with a little patience you'll end up where you should be. Quitting a Ph.D. program (or anything really) isn't about failure. It's about choosing what is best for you and opening up the opportunity to try something different and be a better you. It may take a while but you can surely get there.