I know how to program. I've familiar with C++, Python, and Java, and I've known how to program for years now. I've experimented with genetic algorithms, but I want to go further. What resources should I use to learn how to program

  1. Neural Networks
  2. Deep learning systems
  3. More complex genetic algorithms
  4. And other standard AI algorithms?

I want to be able to understand them well enough that I could program them from scratch.