I understand the reason why the gradient vector is always orthogonal to the level sets of f, but I just cannot find any notes saying the gradient vector is tangent to the surface.
But it seems to be reasonable if I imagine that when climbing the hill, the steepest path is actually tangent to the hill!!!
So I am now a bit confusing...
You cannot any notes saying the gradient vector is tangent to the surface, because it is not. If you define a surface $S$ as a level curve:$$S=\bigl\{(x,y,z)\in\mathbb R^3\mid f(x,y,z)=c\bigr\},$$and if $p\in S$, then $\nabla f(p)$ is orthogonal to $S$, not tangent to it, since it gives you the direction in which $f$ is groing fastar and, within $S$, $f$ does not grow at all.