This book is great- it really only requires a little bit of experience with analysis, the approach is very motivated and clear, and for problems it has both proofs and computation. The thing that I love most about this book is the very natural way that it proceeds- you start with the motivation for developing this calculus (optimization), then you treat the simplest of functionals. After this you bit by bit treat more general functionals. After you get your hands dirty with these problems, you then confront deeper more theoretical ideas which were motivated by the problems.