I had my very first-ever interview for a Ph.D. position (program analysis) in computer science in Germany today. Well, after sending my application, I was asked to prepare a two-page research statement which I was given positive feedback on and, consequently, was invited to take an interview so that "[...] You will be asked some non-technical and some technical questions, including some programming questions". In the interview, and after saying hi, how are you, and tell me a little about yourself, the professor started firing algorithmic questions towards me. He even asked me to implement an algorithm for a string manipulation question in firepad.

Well, I wasn't prepared to be asked directly about coding and finding working algorithms for specific problems and, unfortunately, my mind went completely blank. I thought an interview would include conceptual technical questions like tell us about your ideas in our field of research or tell us about your master's thesis or at least I'd expected to be asked some programming questions like what is the difference between this and that in Java or tell us about collections in Java. My question is now:

Does a typical Ph.D. interview in computer science really include such detailed questions? or I was a very unlucky person that my first ever interview went this way?


2 Answers 2


There really is no "typical" interview protocol for CS PhD positions. The kinds of questions asked will mostly depend on the qualities and skills that the PI deems relevant for the position. If the work requires specialized technical knowledge, it's possible that the PI will try to test this knowledge, and programming tasks are a valid way of doing that.

In your case, one could argue that the PI slightly miscommunicated the contents of the interview, since a programming task is arguably not a programming question.

  • 2
    There might not even be questions... the interviewee might be the one guiding what gets said in the visit/interview.
    – einpoklum
    Mar 11, 2021 at 20:47
  • 1
    The distinction between a "programming task" or a "programming question" is meaningless in this context. Certainly, asking an interviewee to implement a typical string manipulation algorithm is within the realm of reasonable topics one can expect to encounter in an interview. The real question the OP should be asking is "how can I improve my whiteboarding skills so that the next time this happens, I am prepared?". Cracking the Coding interview remains a great resource for practicing these kinds of "programming etudes". Mar 11, 2021 at 21:36
  • @Our_Benefactors Well, whether that's a worthwhile question to ask, let alone the "real" question, seems to depend very much on the answer to the present question. Mar 11, 2021 at 22:38
  • 1. "Does a typical Ph.D. interview in computer science really include such detailed questions?" Yes. 2. "I was a very unlucky person that my first ever interview went this way?" No. Mar 12, 2021 at 0:08

As mentioned in the answer of lighthouse keeper, there is no typical protocol for such interviews. But I'd like to add that the questions in interviews not only depend on the requirements of a position, but also the past experiences of the PI.

Doing a PhD in CS typically means to come up with some new ideas to solve problems of interest to the academic community and to then validate that these ideas are good. In fields with an applied component, this often means to implement the ideas in one form or the other. In program analysis, this often means to implement the ideas in research prototype program analysis tools.

This means that a successful PhD student should be able to

  • come up with new ideas to a field of research (normally the one in which the PI works)
  • being able to implement them.

It is good for both student and PI if only applicants are accepted for which it is reasonably certain that they can do both. This is because doing a PhD in an acceptable time frame is tough. Even skilled candidates pretty much never finish their PhDs in three years (which is the norm on paper in Germany but not in practice). If the work in the "coming up with ideas" or "implementation" categories takes longer because of a lack of skills acquired in the past, then this can easily mean that this part takes two-fold to ten-fold as much time. And then there is no way to finish the PhD on time and depending on where the funding for the position comes from, the PI may also run into trouble with the funding source (they want to see results!).

While the ten-fold figure is surely drastic, I believe it to be realistic for the implementation part, though. Programming is hard initially and then later one becomes more proficient. Implementing a scientific idea means that you implement something whose implications you haven't fully understood. You want to keep your mind open and constantly think during every step of the implementation whether what you are doing is really what solves the problem. Often, during the implementation, you found out that you forgot an aspect during the conceptualization of the new idea. But you only find that out when you are able to focus on what you are doing. If you lack programming skills, then your mind will be busy with fighting the programming language and basic algorithms concepts while you are at the same time doing something quite difficult. This is like learning to drive during a race.

Now obviously you acquire new skills during your PhD, which will help you speed up your work over time. But the basic programming and problem solving skills are normally learned quite early on during a CS course of study (normally in the B.Sc.), and catching on later will take a lot of time - time that makes you unproductive in the first couple of years, as there is also a lot of research that other people did in the field to catch up with. And this is incompatible with an academic system in which you are expected to work on research from day 1 during your PhD studies (as it is the case in Germany). There are no courses (except in some structured programs)!

Note that it is possible that the PI had a student in the past who had to drop out because of implementation work not going well. Then it's not surprising that such questions are included in an interview.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .