Given an ellipsoid in the form:
$$ \frac{x^2}{a^2} + \frac{y^2}{b^2} + \frac{z^2}{c^2} = 1$$
and an arbitrary point $p$ on the surface of the ellipsoid, how can I compute the normal vector of the surface in that point? I never learned about the $\nabla$ operator, therefore I'd prefer an explanation that only makes use of basic geometry.
Background: I want to model a light source shining on a Go stone, including diffusion and reflection. I think of the stone as an ellipsoid, and I want to place the light source at an arbitrary place, as well as the observer. For that, I plan to use Lambertian reflectance, and for its $\cos \alpha$ I thought I'd take the deviation from the reflected angle and put that into the $\cos \alpha$ formula.
I know that this question exists, but I didn't understand it, and it covered only one specific case, not the general case.