Teaching Programming Languages by Experimental and Adversarial Thinking | Hacker News Reader