For a surface S, how do we know that two variables is always enough to parametrize the surface? I am thinking that it has something to do with the number of directions you can move in. For parametric curves, you could only move in two directions: either forwards or backwards along the curve. This means that one parameter is enough to describe the motion, since moving backwards corresponds to a decrease in the parameter while moving forward corresponds to an increase.
However, at any point on a parametric surface, you have an entire plane of directions you can move in. Assuming that the derivatives of the position vector with respect to each parameter are linearly independent, then the span of these derivatives includes all of the possible directions you could move (could you define a directional derivative in terms of the parameters u and v?).
Could you extend this to higher dimensions as well? For example, if I parametrized a 3D space, would I need 3 parameters so that I have 3 derivative vectors that together span all of the directions of 3D space, because I can move in any direction within the space?