One of my favorite things about interacting with young researchers is to help them navigate the process of 1) deciding whether they want to pursue a PhD, and 2) if they decide so, to help them navigate the application process.
One big part of that of course ends up being providing feedback on their statements of purpose. I have found that I very often end up providing the same feedback to different prospective applicants, and so I figured it didn’t hurt to consolidate this in one location.
I am aware that other CS researchers have provided their own suggestions for such documents, and I highly encourage prospective applicants to read those as well – overall, I find that gathering as much info as possible and then deciding what works for you is the best way to work around the uncertainty of a PhD application process.
My suggestions are presented as basic “rules” but they are of course not really rules, you can break these, more just guidelines.
Your very first sentence should immediately tell the reader 1) who you are, 2) briefly what background you have, 3) what you are applying to specifically. Don’t assume your reader knows any of these things – your SOP can be shared without your CV, they may come from different departments etc.
In that first paragraph, you should also provide a high-level goal of what you want to accomplish/research in your PhD. I think it is good to strike a balance between too precise and too general (sorry – many things here are an art and very much a “goldilocks” situation). I advise students to sit down and think about what concrete problems they are interested in working on (beyond just general areas), and try to combine them into a coherent direction. This direction will evolve substantially (or even change altogether!) during your PhD but having one shows you have thought deeply about what you want to do.
The core of your SOP should then be guided by this research direction. Presumably, there are smaller subthemes or ideas that will be necessary in carrying out this agenda. I suggest students structure the core of their SOP to introduce these and provide evidence from their past experience that shows they have the right tools/mindset/knowledge to make progress on these problems. A simple initial structure is 1 paragraph per “idea”, lead with the idea, and then connect to a particular experience you have had (e.g. a research paper, project, internship, etc) that shows you are prepared for this problem.
While coursework can be an experience, I think these are the least convincing for a PhD application. Your goal as PhD student (I would argue that term is a misnomer) is to carry out research, not take courses. So if you can substantiate experience with hands-on research, prefer this. If you can’t and need to connect it to a course, then emphasize the project/output experience rather than test grades etc.
Many students can struggle to find connections between their past work and what they want to do next. Personally, I think you can connect most topics (in CS) to some extent, so my first advice is to stop worrying too much about this. Some concrete ways to find connections are trying to go through the following list:
At some point in your SOP you should clearly answer the question: why do a PhD? A lot of exciting research is happening outside of academia – you should be clear on why you want this. Some people may have a clearer answer (they want to be faculty), others will need to think more about their tradeoffs. Either way, SOP or not, this is a useful question to think about.
You should have a paragraph (my preference is at the end) specifically addressing why the current program/school would help you accomplish your goals. And importantly, what can you contribute to that program. This is the natural paragraph to highlight faculty you are interested in working with. These faculty are probably carrying out research that aligns with your own agenda laid out at the beginning.
Some more general advice: