This book covers everything required to start in the field of deep learning by fully understanding, practicing, and building neural networks. Starting from the simplest model Y=X, the book gives intensive full step-by-step math and Python examples to clarify the neural network calculations. The gradient descent algorithm is discussed by examples for training a neural network with any architecture until building a generic Python implementation from scratch mainly using NumPy. So, rather than just using an implemented version of the neural network like that in Scikit-Learn, the reader will both understand and implement it themself. Because building such an implementation is not easy, the book plays a crucial role in simplifying it. This book ensures understanding even if the reader is familiar with neural networks.