What does a professional programmer usually do first to gain an understanding of a problem?
They would first need to understand the requirements that are needed for the program. Requirements include the task or goals which the program has to perform.