Another way of looking at it is that the "directional derivative", the rate of change of function f(x,y,z) as you move in the direction of unit vector [itex]\vec{v}[/itex], is given by [itex]\nabla f\cdot\vec{v}[/itex]. If the function is given implicitely by f(x,y,z)= 0 (or any constant, then on the surface f is a constant and so it derivative is 0 in any direction tangent to surface: the dot product of [itex]\nabla f\cdot \vec{v}[/itex], with [itex]\vec{v}[/itex] tangent to the surface, is 0 so [itex]\nabla f[/itex] is perpendicular to the surface.