A Beginners Introduction to Differentiable Programming (∂P)