In general, quantitative finance requires mathematics, finance, and numerical programming. The mix of the three and the areas of focus within the three will depend on the particular area you intend to work in. For example, option pricing, risk, and asset management are all related but derivative modeling would draw more on stochastic processes and martingales, whereas risk and asset management would draw more on statistics.
For the programming side, it's good to be familiar with numerical libraries like Lapack, numerical programming languages like Matlab, and source control (git). Programming in Python, C and C++ is a good idea too, as well as some reasonable level of computer science & software engineering (data structures, algorithms, software design, etc).
To start, one should at least have some familiarity with numerical methods, such as from:
but be warned that Numerical Recipes can be simplistic.
For option pricing and the mathematically sophisticated, it helps to have a strong background in probability and measure theory. For that, the following texts would be useful:
For the basics of options, everyone uses:
but I preferred:
when I was first learning the subject. But, Cox & Rubinstein is old, and Hull is regularly updated.
That will give you the basics on the finance side in an intuitive way but not in a mathematically rigorous way. For the mathematical rigor, I recommend:
Steele rigorously develops stochastic processes, martingales, Ito
integration in a financial context but includes the intuition, so
he's also being very down to earth and concrete.
Other general, texts a little more sophisticated than Hull, but less rigorous than Steele that people commonly like would include:
After that, there are lots of different places to go. It will depend on the numerical methods needed, the asset class being worked on, etc.
For example, for more on the numerical methods and the PDE approaches, there's:
Every interest rate derivative quant needs to be familiar with:
For other areas, the list would be different.