The hard part of learning Elisp is not the syntax. Being Lisp, the syntax is trivial and takes about 10 minutes to learn. The real problem is learning the library and, perhaps even more difficult, the proper idioms for getting things done. For example, a n00b writing Elisp code may load a file by calling
find-file, the command used at the user level to load a file with Ctrl+x Ctrl+f but that is almost never the best strategy.
One excellent way of learning Elisp is Xah Lee’s Emacs tutorial. In particular his page on Emacs Lisp Idioms for Text Processing really helped me get up to speed with writing Elisp. I’m certain I’ve linked to that page before but it bears repeating: if you’re trying to learn a bit of Elisp—even if all you want to do is add an occasional function to your configuration—you should definitely read this page and the pages linked to it.
The definitive authority, of course, is the Emacs Lisp Reference Manual, which is also available as an info file right from Emacs, but for getting an idea of how to actually write Elisp, Lee’s tutorial is hard to beat. Read his tutorial and read some of the Emacs (or Emacs packages) source and you’ll be well on your way to becoming a competent Elisp programmer.