Free Online Courses
Neural Networks for Machine Learning was the first online class devoted to deep learning, taught by one of the founders of the field, Geoff Hinton, when he was at the University of Toronto. It provides nice background to the history of the field.
Neural Networks, taught by Hugo Larochelle, is a little more didactic in places, with some things explained more slowly and in more detail than Hinton's class.
Convolutional Neural Networks for Computer Visual Recognition, taught by Fei Fei Li and Andrej Karpathy of Stanford, is an introduction to deep learning for vision applications. You can jump right to this if vision is your only interest in deep learning as they cover the basics of neural networks. They had to take down the online lectures for some reason, but bootleg copies of them have appeared on Youtube.
Natural Language Processing with Deep Learning, taught at Stanford by Chris Manning and Richard Socher, is an introduction to using deep learning for natural language applications (e.g. translation, caption generation, speech recognition, parsing, etc.). Videos are available here.
Books
Neural Networks and deep learning, by Michael Nielsen, is a free, online introduction to deep learning. It is very clearly written and goes step by step so you really understand the foundations.
Deep Learning by Ian Goodfellow, Yoshua Bengio, and Aaron Courville is the definitive, in depth text. It is available online for free at http://www.deeplearningbook.org/
Free Online Courses
Machine Learning, with Andrew Ng of Stanford, is a gentle introduction to machine learning with little taken for granted. Good discussion of how to approach machine learning problems, how to handle data sets appropriately, and how to interpret errors.
Learning from Data, taught by Yasser Abu-Mostaffa at Cal Tech, is a more mathematically rigorous introduction to machine learning, with more emphasis on the theoretical underpinnings of it. Very interesting and worthwhile, but you might want to go through Andrew Ng's class first.
Free Online Courses
Introduction to Computer Science and Programming is MIT's intro to CS course, taught in Python, which is the most popular language for machine learning.
Introduction to Computer Science: CS50 is Harvard's intro to CS, mostly using C.