Quoting myself from a related question,
On a more programmatical aspect, Toro's Riemann Solvers and Numerical Methods and LeVeque's Finite Volume Methods for Hyperbolic Problems are pretty much the bible for how to write code that will accurately model fluid flows. In both books, vector calculus and linear algebra are needed. LeVeque's book is written more towards undergraduates, but is good for anyone interested in numerical methods; it also includes references an older version of his Fortran code Clawpack (an open-source library).
I don't recall if two-phase flows are covered in those texts (my guess would probably be no), but my understanding is that it should be a matter of replacing the pressure in the Euler equations with the results from your pressure function (e.g., $p_\text{tot}=f(\rho_1,\,\rho_2, \cdots)$).
For sure, however, these texts would be able to provide you with sufficient background of FVM to be able to write a code that could be used for two-phase.