Almost every challenge that a programmer faces is in some way unique. You may have done similar things before, but each application seems to require a new twist. How can we prepare ourselves for constantly facing unknowns? Effective programmers train to use whatever is at hand and push forward with determination in spite of obstacles. In short, they've gotta stay scrappy. This bundle is a collection of five interactive guides, each exploring a different problem from the popular internet challenge site Advent of Code. In these problem solving guides, we will dive into: How to use Livebook, the interactive code exploration framework Gain insights with charts, animations, data tables, and more Uncover four different parsing strategies Leverage higher level data structures including sets and graphs Employ various optimization techniques, such as working backwards, pre-calculation, and even a little math (binary and middle school) Deploy multiple algorithms: binary search, point in polygon, flood fill, and more By the end of these lessons you will have a full array of tools to confidently face all the unknowns ahead. You might even need to upgrade the old tool belt to a tool box.