I am an absolute beginner in this field.
I have a dream of buidling game engine(s).
Then you have a lot of learning in front of you. Actually, you should probably forget about building an engine for a while. Just focus on learning as much as possible about programming, and getting experience.
Begin with learning the absolute basics of programming, so you know how to use your tools. You need to know your programming language, a bit of the standard libraries (how to load data from files, how to draw graphics of the screen and detect keyboard presses), and you need to know how to run your program, find bugs in the code and package it for others to use.
This is important! Pick a language that is easy to get things done with. Python ( http://www.python.org/ ) is a great language for programming games. C++ is probably a bad idea for a beginner. It is too picky with the tiny details. I started a new C++ project a few days ago, after using other languages for a several years, and I can't understand how I didn't get tired of it when I was a beginner.
Then make something. It doesn't really matter what you build. Games are great, because they are fun and relevant to your dreams. Start simple. A game like Tetris is great for learning the basics of game programming, and practice your skills. Go on and try using a few diffrent game engines to see how they are used to build games.
Then, some day in a few years, you'll realize you have a basi understanding of what the game engine does, an you are ready to to try to build something on your own.
So could you advise me on how to approach it as a hobbyist - the code and books I need to refer.Books should deal with Modelling ,Design and Implementation.
Since you are writing here, I'm guessing you have an Internet connection. Use it. The Internet has more great stuff to learn from than all the books you can ever buy.
Try following this free Python book: http://inventwithpython.com/chapters/
It will teach you everything you need for writing a simple game.
So designing and implementing Games Engines has its added advantages as well as it would improve one's modelling,design and programming capabilities by leaps and bounds.Isnt it?
Not really. Building an engine requires programming skill. It won't make you a better designer.