How to be a programmer (part 1)