My maths level was probably worse than yours: I too only paid any attention to geometry at school, plus trigonometry and the single chapter we did on logic. I think I hid under the desk when we were learning calculus.
I graduated from CompSci in 2011 and worked as a proud code monkey since then.
Last year I took up a Master's course in AI (well, "Intelligent Systems") which was chock-full of machine learning modules, as expected [1]. I finished just a few weeks ago.
I struggled a lot, particularly because I did the course part-time and I was only offered an (optional) maths course in the second year after the machine learning and image processing modules- and concurrently with an NLP module.
The maths module helped a great deal and it cleared up a hell of a lot to do with differentiation and linear algebra. I still struggled with the maths module itself and to be honest I got a lot of help on the homework from my roommate who is a maths wiz, but in the end I managed to feel comfortable with the material and to get a good mark (75%) in the maths module.
I think I impressed my maths lecturer even -but that was my coding skillz, haha. Teach was amazed I managed to implement an LSTM RNN in Python [2] (we went over optimisation and had to code a hill-climb/gradient ascent algo, plus a RNN). In truth once you get the maths down pat the coding is nothing, but I guess mathematicians are crap as coders :P
Anyway, what I mean to say is: yes, totally. You can totally get at the very least comfortable with the material required for deep (or standard machine) learning. And if you've built a good level of coding skill from work you'll find it gives you a big boost, and can even help you clarify some of the maths. Frex, I feel I got a good intuition about optimisation in general from implementing hill climb/ gradient ascent, especially because I spent hours watching it trying to get over a ridge in a datascape and getting stuck every. single. time. the dumb thing XD
I think you'll find linear algebra in particular the easiest to learn because it's almost just array manipulation and you've done that in spades. Differentiation is a bit harder, but at some point it clicks ("it's like stepping on a break pedal" or some such analogy) and it goes swimmingly from there. Probabilities are not hard either, it's just a form of logic. Other stuff- ymmv, but it's all doable.
As to books- I don't have any recommendations. I think any popular textbook is going to be good enough to get you started :)
[1] How I ended up doing that course- I got into AI via logic programming, that I learned during my degree. Many Prolog textbooks are also AI and particularly NLP textbooks so I thought it would be a shame to let all that kewl stuff I learned by reading them go to waste. At the time I had no idea how hot machine learning is in the industry.
[2] Plug: https://github.com/stassa/lstm_rnn