The GNU organisation has published a book on programming in eLisp. It is entitled An Introduction To Programming In eLisp.
There is also a reference manual - the GNU Emacs Lisp Reference Manual.
There is also a commercially published book Writing GNU Emacs Extensions.
Where appropriate this book will refer you to these works for further reading.