Well, I think it depends on what your intentions are. I personally have been playing around a little with some free game engines. Its fun, and they save you a lot of work, that's true. But I think the choice is up to one's personal taste. I get the feeling of cheating when using somebody elses engine, and you often encounter restrictions, especially if it's not an open source engine.
My recommendation to you is that you follow a book or tutorial and learn how to create your own engine first. You will learn a lot, and you will get a hang of what to expect out of other engines.
As for literature on the subject, I suggest you pick a language and graphics library, and then stick to it for a while. Use google and you will surely find a thorough tutorial covering everything you wish to know.
I've been using an OpenGL Library for Java called Jogl for quite a while now. NeHe supplies good lessons for that, so you might want to take a look there.
I hope this helps!
Emil Olofsson