In complex variables class, they teach you to use the Laurent series for this
A function with a simple pole at $z_0$ has a Laurent series
$$
\frac{b_{-1}}{z-z_0} + \sum_{n=0}^{\infty} a_n (z-z_0)^n
$$
Roughly speaking, if you multiply this function by $(z-z_0)$, it becomes analytic at $z_0$.
You can have poles of higher order
$$
\frac{b_{-m}}{(z-z_0)^m} + ... + \frac{b_{-1}}{z-z_0} + \sum_{n=0}^{\infty} a_n (z-z_0)^n
$$
In this case you'll have to multiply by $(z-z_0)^m$ to get an analytic function at $z_0$.
If the negative part of the series goes on forever, you have an essential singularity. Functions behave very badly in the neighborhood of such a singularity.
$$
\sum_{n=-\infty}^{\infty} a_n (z-z_0)^n
$$
A zero is just a root of a function, if $F(z_0)=0$ then $z_0$ is a zero of the function.
A removable singularity is a "technical" singularity, e.g. $\sin(z)/z$ for $z_0 = (0,0)$. You can get rid of it by redefining the function suitably at $z_0$. Once you do this, $\sin(z)/z = 1 - \frac{z^2}{3!} + \ldots$.
In addition to poles and essential singularities, there are singularities which are in the shape of a line, like a branch cut.