Necessary and sufficient condition for branch points on a Riemann surface. I've been reading out of a book by V.B. Alekseev about Abel's theorem on the insolubility of the quintic, and I'm a bit troubled by its presentation on Riemann surfaces. 
My question is as follows: Suppose $X$ is the Riemann surface defined by the zero locus of the polynomial $P \in \mathbb{C}[z, w]$. I'm confused as to the nature of the branch points and how to find them. I've heard people say that the branch points occur when $\frac{\partial P}{\partial w}$ vanishes. This doesn't occur if $P(z, w) = w^{2} - z^{2}$, where the whole gradient vanishes. I'm wondering if there's a precise condition about which points are branch points versus which points are singularities.
Also I'm quite confused about what happens when $P$ is reducible. It seems if $P$ contains a square factor then it will always share a root with $\frac{\partial P}{\partial w}$, so this vanishes for infinitely many $z$. I'm sorry if this is quite vague, but this book never seems to indicate how to find branch points and I'm just looking for guidance as to how to do it in general.
 A: Your book seems a bit loose with defining what a branch point is. I'll give a vague description/intuition then I'll give you a reference to make everything rigorous.
Here is the simplest example of a branch point. Consider the function $f: \mathbb  C\to \mathbb C$ given by $f(z)=z^2$. $0$ (in the image copy of $\mathbb C$) is a branch point because it is "hit with multiplicity 2". $4$ (in the image copy of $\mathbb C$) is not a branch point because $4$ is hit by $2$ and $-2$ but at $2$ and $-2$, $f$ "has multiplicity 1".
Being a branch point depends on a map between two spaces. Here is a connection to the definition that your book gives (changing sheets of a multi-valued function). Say we want to define a square root function on $\mathbb C$. Clearly this is multi-valued so we somehow want to capture this behavior. Define $X = \{ (x, y) \in \mathbb C^2 \mid y^2 = x \}$. Take $f: X \to \mathbb C$ by sending $(x, y) \to x$. While I've set up all this in $\mathbb C$, let's just think about the picture in $\mathbb R^2$. So $X$ is just a sideways parabola and $f$ is just projection to the $x$ axis. Note any function $g$ on a open set $U \subset \mathbb C$ into $X$ such that $f \circ g$ is the identity on $U$ is a "local square root function". So if I'm at $x=1$, I can choose the positive real root or the negative square root. The upper half and lower half are thought of as the sheets of the function. At $0$ these meet ("with multiplicity 2"), and so according to your book's definition $0$ is a branch point.
Everything I've said here is vague and imprecise so I'll refer you to Rick Miranda's book Algebraic Curves and Riemann Surfaces. Specifically Chapter 2, Section 4. He has explicit exercises at the end to find ramification and branch points, and you can check your answer with the Hurwitz Formula. Hope that helps!
PS. We take the polynomial $P$ to be irreducible so that the zero set of $P$ is a complex manifold, and this spaces I mentioned above need to be complex manifolds.
