How to teach (yourself) computer programming