Working on Udacity lesson 2.5 “How to Solve Problems” this week, which encourages taking a systematic approach to solving complex problems. The sample problem discussed throughout the lesson is to return the number of days old someone is, using their birthday and today’s date (or any other date, actually.) My first attempt mainly included frustrated stabbing in the dark with solutions that quickly became overcomplicated when I realized I needed to take in leap years, etc.
The Udacity lesson walks through some basic guidelines, which seem obvious in retrospect. Basically, it provides an organized approach to solving a problem, starting with determining inputs and outputs, working out some examples without code, and then deciding on the simplest system.
The instructor emphasizes breaking down the solution into manageable parts and testing each step to determine each part is functional and works as intended before continuing.
Seem like good practices to refer back to as the problems continue to get more complex.