Lots of background material (eg, on linear algebra) can be found on the Hyper-textbook on optimization.
Convex Optimization, by Boyd and Vandenberghe.
Lectures on Convex Optimization, by A. Juditsky.
Introductory lectures on convex optimisation, by Y. Nesterov.
Nonlinear programming, by D. Bertsekas.
Convex Analysis, by R.T. Rockafellar.
Numerical optimization, by J. Nocedal & S. Wright.
Lectures on modern convex optimization, by A. Nemirovski.
Optimization for Machine Learning, by S. Sra, S. Nowozin, S. Wright.