The best place to begin is at the beginning. Before a developer can start coding, they must know what the goal of the program is. What is the purpose of the application? Without a clear understanding of the problem that they are attempting to solve, it can be difficult to get started. At the very least, it is ill-advised to begin without some kind of plan.
Have you ever started a craft project without any objective in mind? How did you know what it was you were making? Did the project turn out well? If it did, you more than likely picked a direction at some point and set out to achieve a goal. You may have even had to start over or make adjustments along the way in order to complete the project.
Now, imagine starting the same craft project with the desired...