I finished reading Learning GNU Emacs, Third Editionthis week. The edition is from 2004 but the book has aged well. All essential concepts, modes and key bindings are presented. The Emacs documentation system is also explained, which is useful to know if you want to further extend your knowledge once you read the book. One chapter is an introduction to Emacs programming with Emacs Lisp. It gives the basis to start and explains how to implement a simple major mode. Of course since 2004, the Emacs ecosystem has changed so you won’t find something on Magit mode (for Git) or on the Emacs Lisp Package Archive but if you are not an expert Emacs user, you will learn from reading it.
One chapter is on programming modes and Lisp key bindings are presented. Even if you don’t use paredit (and really you should - just take a few minutes to learn its key binding) many commands are available to work with S-expressions. Here is one table of the book that illustrates them:
Structurally editing S-expressions gives an intense satisfaction and will make you regret Lisp syntax whenever you have to program with an another language family.