In terms of your "brackety confusion", that's just a syntax issue. Just remember that you only have function calls, not anything else, and that functions appear inside their parentheses. Instead of infix operators like "+", you have functions; instead of control structures like if/while, you have functions (special functions called macros, but you don't care about the difference yet). So in your head, just convert an "operation" like "1 + 1" to a function call using the "+" function: "+(1, 1)"; then put the function inside the parentheses instead of outside and drop the commas between arguments, and you have a valid Lisp expression: "(+ 1 1)". Really, try evaluating that in the Emacs scratch buffer. Other than that, the syntax is pretty much the same as any other language. There's just less of it. If you did everything in Python/Perl/whatever using just functions, it would already look a lot like Lisp.
[1] http://mitpress.mit.edu/sicp/
[2] http://steve-yegge.blogspot.com/2008/01/emergency-elisp.html
If you have 6 months: Structure and Interpretation of Computer Programs (highly recommended, I enjoyed it a great deal). http://mitpress.mit.edu/sicp/
Emacs-specific tutorial on using the built-in help and the elisp packages' source code when you need to figure out how to do a particular customisation: http://david.rothlis.net/emacs/customize_c.html
Good modern Lisps are Racket and Clojure. SICP is good, but if that's too hard, you can try "How to design programs" which starts from scratch.
> Lisps are Racket and Clojure
Racket and Clojure are languages derived from Scheme or Lisp . They are mostly incompatible to other Lisp dialects. Racket and Clojure are completely incompatible with each other or even Emacs Lisp.
Racket and Clojure are both Lisps, and, yes, they are incompatible. They are different, if related, languages.
Our local guru, Paul Graham, has his own (incompatible!) Lisp dialect, Arc, loosely based on and implemented in Racket.
Static scoping is nowadays supported in Emacs Lisp.