For the past three years I have been experimenting intensively with teaching programming and programming languages online. In contrast with Massive Open Online Courses (MOOCs), such as those offered by EdX and Coursera, I have been exploring more interactive models of online learning, closer to mentorship and apprenticeship than to traditional classroom models.