When I think about the little probes I send out to see where another developer might be at in their journey I focus mostly on these traits. There's a lot more to being a good programmer than these three, but it lets me know if this person is the kind of person you can spark a good conversation with - the kind where you both learn things from each other! :D
Being intuitive is a key trait of a creative problem solver. Do they happen to be smart and have the right education for this topic, or are they equipped with the mental tools it takes to learn new things? How quickly could they respond to new knowledge and learn what to do with it?
As long as there is more than one way to accomplish something, humans will form opinions about which is best. Are they able to separate what they are doing from the opinions they hold? If the problem they are solving changes do their opinions change too, or are they acting in a dogmatic or superstitious way? Are the opinions they hold ones they have set themselves, or are their opinions inherited from others?
Solutions being built from code can usually be expressed in more than one way, just like there are many ways to rephrase a verbal explanation of something. When I was a beginner I could only express a code solution one way, and if you asked me to express it differently I wouldn't know how. I might be able to explain my code in english only one way too, but I wouldn't be able to summarize, simplify, or express it much differently than the way I had written the code. Now that I've grown a little more, when I write code I might be aware of a few different ways the same thing could be expressed. If you asked me to explain the code in english I might now be able to match the complexity of my explanation to your level of understanding. Can this programmer express and explain code solutions in different ways? Are they able to match the complexity of their explanation to people of different levels of understanding? The more flexible they are at articulating and expressing their thoughts in code and speech, the more likely it is that they truly understand the solution.