The Road to Differentiating Your Programs