Choosing the step size
In the simplest case, we can choose a constant value for the step size. For strongly convex or concave curves, this will converge naturally.
We can also vary the step size dynamically. For instance, as the algorithm runs, we expect to get closer to the answer. So, if we take this into account, we can start with a larger step size and then decrease the step size with each iteration. We have to be careful to not decrease the step size too rapidly, because that may cause us to converge too slowly (offsetting any gain we got by starting with a large step size).