Neural Network Learning: The Engineering Problem