Spoke at Hack Hours about two things I picked up from Dave Beazley's Advanced Programming course. Link to code examples and README.
- The State Machine pattern - a useful way to break complex conditional logic into individual classes. Each class is then easier to reason about, because it only represents one side of a conditional, so there's no if/else/or/and/not to reason about.
- Design by "Wishful Thinking" - sometimes also referred to as "top-down design". This one is covered a lot more in-depth in the SICP book and video lectures, but the basic idea is to write your program as if there was a set of library functions that already existed that did exactly what you wanted (including taking the parameters you had in mind and returning the result in your preferred format). After repeating this over and over, you have the skeleton for your entire program, and can go back and figure out the implementation details for the smaller parts.