Being from an C++ background you probably already learned other Algol dialects and because of they all are different dialects they usually are pretty easy to learn. It's pretty much the same as learning another spoken language closely related to the ones you know are easier than the ones farthest away.
LISP is not an Algol dialect so expect it to be different than the transition between C++ and Java. LISP dialects share most of the original specification made by McCarthy in 1958 so learning a new Lisp dialect when knowing one is simple. I recommend you start with Paul Grahams essay and his Common Lisp version of eval. There are numerous historical and current books you can download for free but for Common Lisp the CLHS (hyperspec, direct link) is the most important. Paul Grahams book On LISP is freely available too but it's more for intermediate Lispers.
I love Land of Lisp. It's a nice book where you learn the essence of Common Lisp. Previous version of an early chapter and chapter 8 from it are freely available. I've bought this book and think it's a fun way to learn Common Lisp. (I also bough the new Racket (Scheme dialect) version of the book called Realm of Racket, but I think the old LOL is slightly better book while the RoR has cooler (graphical) games)
I learned Common Lisp as my first Lisp. I don't think it's important what dialect you choose to learn but it's important to think in Lisp and making your own Eval from scratch (making your own dialect or subset of LISP) in LISP. Also if you like interpreters and compilers you should try to make one in something different than Lisp as well. You'll learn a lot from it.
I use Clisp when doing Common Lisp tasks since it has readline
support and I think it's easier to understand it's error messages and debug interface. I even run my programs in it unless I need more performance. It doesn't happen often but then I use SBCL.
Good luck :)