1. Crafting Interpreters 2. Designing Data Intensive Applications 3. Fundamentals of Data Engineering