What if our agents (or robots, or classifiers, etc) could just program themselves? Program induction is a set of techniques for learning programs from data - building higher-level function representations from a lower-level language that can encode useful priors or constraints in a specific domain. In recent years, they’ve been applied in RL and robotics for learning policies, operators, transition conditions, object representations and more. How do they work, why would you use them, and maybe most importantly, when should you skip them entirely? This is a discussion focused presentation including an intro to program induction techniques, a review of some recent work in RL and robotics using them, and some of the presenter’s work to give a picture of the strengths and limitations of this family of learning approaches.