A Software Engineer’s Intuition for Gradient Descent