Sign In

Communications of the ACM

Kode Vicious

The Parchment Path?

person wearing a backpack standing on a mountain of oversized books

Credit: BreakerMaximus

back to top 

Dear KV,

I have spent much of my career working as a developer and software architect for various companies, both startups and large, established firms. I have always been lucky enough to work on projects that were interesting to me, several on the cutting edge of computing technology. A lot of the interesting projects have been close to research, but I have always been on the implementation side rather than the research part. Recently, I have been inclined to poke more into the research, but I do not have the pedigree to lead such projects, as they often require an advanced degree. With only a decade or so left until retirement, I have found myself considering various Ph.D. programs, which I never would have when I was younger. When I finished my undergraduate degree, I really wanted to work in industry, and, like many people, pay off a lot of loans. Is it too late for me to think about this? On the one hand, it seems crazy to consider taking several years to work on a Ph.D. just to be able to cross the line from development to research, but on the other, maybe it is not. If I went back, I would be, well …

A Very Mature Student

Dear Very Mature,

Is there ever a time when learning is not of value—for its own sake? A good Ph.D. program is not meant to be a meal ticket; it is meant to give you the skills and the time to really dig into a problem you think is worth the effort. And it will be a lot of effort. Like you, KV has spent enough time around the research side of R&D to see the large amount of work involved in earning a Ph.D. The greater the risk, the greater the reward, and if you do succeed, it will be an achievement you can look back on and smile wryly about. Postdocs never laugh because postdocs are post-laughter. However, there are some things to consider before plunking down your application fee and writing all those essays.

As a very mature student, you will have some advantages and disadvantages. There are some things to consider for anyone, young or old, who might seek such a diploma, so let's follow the parchment path and see what they are.

First and foremost, you should enter any sort of learning program with the understanding that knowledge is its own reward. While this incredibly idealistic view may seem to clash with your hard-bitten, jaded, taciturn image of KV, it is, nevertheless, key to a successful journey in pursuing an advanced degree. While there are people who have not had a pursuit of knowledge at their core and yet acquired advanced degrees, the people I have met who have done the best at it have all been, at some level, deeply curious about the world and the problems they are solving. Nothing quite sustains one in the long dark nights of work like an abstract—some might say crazy—focus on acquiring knowledge.

If you do not have a burning desire to know new things and—while being constantly rebuffed by your own intellectual shortcomings—continue in a nearly Sisyphean manner to climb the slopes of your own ignorance, well, maybe an advanced degree is not for you. If, on the other hand, you are this style of crazy, read on for a few more practical and less philosophical thoughts.

Undertaking a successful path of study also requires you to consider a few practicalities. KV will assume you have the financial wherewithal to spend several years working for, shall we say, lower pay rates than you have found in industry to date. If your goal is riches, there are faster ways to make them than joining an advanced degree program. The other things you need—and these are the most significant ones I have seen while watching the R half of my R&D projects—are: a good advisor, the support of your program or department, some ability to write clear prose, and an ability to receive and integrate criticism. You will note that none of these has anything to do with age, but there are some distinct advantages to having some life and work experience before you start any such program.

When you undertake an advanced degree, your advisor is your boss—and not just any boss, but a boss who can demand all kinds of work and from whom you will get not stock or bonuses, but guidance and knowledge. Picking an advisor is far more important than interviewing with a new boss at a company. Most developers change jobs every 18 to 24 months; most advanced degrees take 48 to 72 months, which means you will spend more than twice as much time working for your advisor than you would at a typical industry job.

Ensure you read up on the papers your advisor has written to date and check out their dissertation. Part of what you will be doing is working on papers with your advisor, who will be a co-author on pretty much anything you produce during your time working with and for them. If you read their papers and think, "Ugh, this is awful," then no matter what else you think of them, or how well they are regarded in the rest of academia, you should run—not walk—away. In fact, you should not even apply to a program with an advisor whose papers you have not read and enjoyed. Just because someone is a famous researcher does not mean that your mind and their mind will mesh in a productive way for both of you. The goal of picking an advisor is to find someone who can help you learn the skills of research. As a mature student, you should already have the skills for software development.

If there is any endeavor in the world of computer science that requires clear writing, it is pursuing an advanced degree.

The next thing to consider is the group or program you will be joining. Look at the last few Ph.D.'s produced by the program and see if you could imagine yourself working with those people on those problems. Your dissertation is your dissertation, but it has to swim in the stream that is the overall research of the group. All advanced degree programs and groups have Web pages with their recent publications. At least read the abstracts for the past several years before even thinking of applying. Much of this information can be gleaned through a reverse interview—or what a smart person does at a real interview. When you are interviewed, you had better be interviewing the people interviewing you.

If there is any endeavor in the world of computer science that requires clear writing, it is pursuing an advanced degree. At the end, you will produce something the length of a novella—approximately 100 pages of well-written, well-thought-out prose. The code you produce during such an undertaking is in support of the dissertation, and, KV thinks, should also be a significant artifact that exists alongside the writing. What you are judged on to complete your degree, however, is not just whether the code runs, but if the ideas sing. If your committee does not like the idea you are selling, and the idea you are selling is through writing, then you are not going to finish, and you will either be making many, many corrections or throwing up your hands and becoming ABD (all but dissertation). If you think your writing is not up to snuff, then it is time to get two books I recommend to programmers for prose: William Zinsser's On Writing Well and Strunk and White's The Elements of Style.

The last point I will make in this column is you must be able to receive and integrate criticism to complete an advanced degree. There are very few people who enter such programs with fully formed, correct ideas that turn directly into their dissertation, and I have met a few in the past 40 years. I can count these people on one hand with a couple of missing fingers. The process of refining your ideas as research is one that requires being challenged and being willing to listen to what others have to say. Consider it, all the while keeping a smile on your face and controlling your impulse to tell them just how wrong they are. They might be wrong, but first you will have to listen. The type of developer who likes to scream across an open-plan office about how stupid some other developer is, is not the kind of person who should be going for an advanced degree, because a significant part of the process is having your ideas challenged and picked apart—sometimes gently, sometimes less so.

Can you do all of this at your admittedly mature age? They say mathematicians do their best work when they are young. I say that in computer science, experience is often the best teacher, and if we can learn from that, we can learn from anything, at any stage of life.

q stamp of ACM QueueRelated articles

Koding Academies
Kode Vicious

Undergraduate Software Engineering
Michael J. Lutz, J. Fernando Naveda, and James R. Vallino

Evolution of the Product Manager
Ellen Chisa

Back to Top


George V. Neville-Neil ( is the proprietor of Neville-Neil Consulting and co-chair of the ACM Queue editorial board. He works on networking and operating systems code for fun and profit, teaches courses on various programming-related subjects, and encourages your comments, quips, and code snips pertaining to his Communications column.

Copyright held by author.
Request permission to (re)publish from the owner/author

The Digital Library is published by the Association for Computing Machinery. Copyright © 2023 ACM, Inc.


No entries found

Sign In for Full Access
» Forgot Password? » Create an ACM Web Account
Article Contents: