Want to teach yourself programming? It’s possible — but not easy