I really enjoyed the section on symbolic data in SICP https://xuanji.appspot.com/isicp/2-3-symbolic.html - gives lots of good insight to start thinking about how automatic differentiation is implemented in the deep learning libraries.
FWIW, automatic differentiation (as used in popular machine learning frameworks) is not the same thing as the symbolic differentiation described in that section.