What is the perfect PhD candidate? What are the mathematical, programming habilities, publication record and etc?