Breaking Down Complex Problems

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.

Udacity Updates + “Cheat Sheet”

Working my way through Unit 2.5 “How to Solve Problems” in Udacity today. Last week, I finished my Unit 2 lessons and practice problems on the train to and from Washington, DC, which felt like quite an accomplishment. The problems have definitely started to get more challenging, and keeping track of the overarching tasks (such as determining whether and how to use a whether/if/or else statement) as well as the details, including proper indentation and colons, has been a little overwhelming.

One downside of the Udacity class setup is that it’s hard to go back into older lessons to review a problem that has already been solved. I’ve started taking screen shots and keeping notes on paper to save a little time and frustration. In an episode of Developer Tea I recently listened to, David Hemphill mentioned that creating a “cheat sheet” for himself contributed to a major gain in learning momentum. Tidying up my current notes would probably be a good cheat sheet start for me.