Emacs
GNU Emacs has a reputation as being the most powerful programmers' editor available, but this power doesn't come without a cost. The reason for this power is that the language in which a vast majority of Emacs is written (called Emacs Lisp, which is often shortened to ELisp) is available for writing extensions at run time, meaning that almost any aspect of Emacs behaviour can be modified dynamically while the user is working.
The drawback to ELisp is that it's a whole new language to learn and, for most developers, follows unfamiliar paradigms.
At the moment, this book will assume that you have Emacs installed, and are comfortable performing basic editing within Emacs (loading files, modifying text, etc.) It will also assume that you are interested in using Emacs as a programming editor / IDE, and are familiar with basic programming concepts. In due course this book may be expanded to include more complete beginner material, but this is not currently a priority.