Ben Simon has a couple of nice posts on
eshell. In the first, he talks about finally wrapping his head around
eshell and shows some of the things you can do with it that you can't do or that are harder to do with a normal shell.
In the second post, he writes a bit of Elisp that switches to an
eshell buffer but makes sure that it is in the same directory as the default directory of the buffer he's coming from. That avoids having to manually switch to the correct buffer with
cd some-buffer from within
Both posts are short so pop on over and take a look when you have a minute or two.