The “conversation” mentioned in the post in your response that you struggle to understand is a feeling out of the candidate’s knowledge base via an on the fly “conversation”. Questions too tough? Go over the basics. Explore what they know and how comfortable they are with listening and communicating something you teach them or they teach to you in the interview process.
I always try to find the edges of a candidates knowledge and then explain to them some part of their missing knowledge and then push them to guess just pass their own knowledge about what I explained to them. I let them know I am asking them to guess and that I will explain the answer after.
I start off the interview process by explaining that I don’t know how other interviewers in my group do their interviewing but I will be doing an evaluation and not passing or failing them based on a magic list of preprepared questions.
I will also explore the languages that a candidates knows. Find out which language they feel strongest in and if I can’t find common ground I will fallback on first principles even if the candidate and I don’t have a programming language in common. i.e. loop over the digits from one to ten and print the item inside the loop. It is a great way to reset an interview
I do this to avoid missing out on quick learners with little experience and great candidates with the wrong language skills. When you only pick the randomly perfected before they walk in the door interview candidate your standardized interview process creates a monoculture reinforced by the very same interview process.
I like to jump around in the language starting with first principles: type names, built-in functions, built-in modules, external packages, and go from there. At every step I will often check the breadth and depth of the candidates knowledge. An interview process is not a pass or fail quiz. An interview process is an evaluation of the ability of the candidate to understand their limitations and show they can learn and demonstrate learning in the interview process.
I want to have a sense of the candidates enthusiasm level for coding and learning and “what” they already know. Because if they are going to “be a good fit” they will have a lot to learn no matter how experienced they are. Knowing what they know allows me to quickly bring them up to speed if they come on board.
If all I want from the candidate is what the candidate walks in with what am I saying to the candidate about what working with me will do for them? I always warn self proclaimed experts in Python that although I may not know everything about Python I will find the edges of their knowledge. The parts of Python they don’t know or are unsure about. I was rewarded once with a candidate that took 90 minutes of back and forth Python and SQL trivia quizzing of each other to find his first knowledge gap. It felt great even though after the first 45 minutes I wasn’t sure my boast would hold true. Sadly the candidate did not take the job because of the commute.