Part 1: How to read complex code