The programmable editor is an outstanding opportunity to learn to program!TheEmacsPaper

Learn Lisp the easy way: Read the Introduction to Programming in Emacs Lisp, written by Robert J. Chassell. Highly recommended for those without prior Lisp programming experience.

Until Emacs 21, the EmacsLisp introduction was distributed separately. The introduction comes in Texinfo format, which means that it can be converted to a variety of formats: info, html, and others. So, for example, in Debian, apt-get install emacs-lisp-intro would do the trick.

The way to read the intro is to type ‘C-h i’ to start Info, and then `m Emacs Lisp Intro RET' or evaluate (info "(eintr) Top"). See InfoMode for help on using Info

Get the emacs-lisp-intro file from any GNU ftp mirror or from:

Here is some more information about the Emacs Lisp Introduction (PDF format): http://www.gnupress.org/Intro-Elisp-Review1.pdf (link down as of 2010-02-14, but see archive.org).

You will also want the EmacsLispReference as you start to learn how Emacs Lisp works. Note: EmacsLispIntro is for beginners; EmacsLispReference is truly a reference, not a tutorial.

Solutions to the exercises on Emacs Lisp Intro: https://github.com/RenWenshan/emacs-lisp-intro-solutions