Currently I am a newbie and I want to be a good programmer. Could you please tell me what should I do, to be a good programmer. Though I know C/C++ but never used it for solving programming puzzle.
If you can tell me some books or some study material will be a great help.
you can read
Art of Programming Contest
That mentioned book is nothing but a waste!
Too much typo errors, too much misleading concepts. Better go for a standard book, and practice here. That would be enough!
That book is actually okay… There is no such thing as misleading concepts… There can be some concepts more useful for programming contests than others, but, it’s very different from a concept being misleading… In fact, if there’s anything wrong with that book is being too complete and too detailed for a beginner, BUT, that book is really good.
Books are still the best way to learn any new subject you’re keen on. However, on the case of programming, books are good to teach you:
The syntax/details of a programming language (what I like to refer to as a necessary evil, since ideally, algorithms are language independent);
To learn standard algorithms about the vast majority of topics covered in contests, like, algorithms on specific data structures, sorting, searching, geometry and alike topics;
However, with some practice, you’ll sonner or later realize that almost all problems have their own twist over one of these standard topics, and “lock your head” to learn only “by standard” can actually be harmful up to a point, because, ultimately, you will need to think outside the box, look at things in a different perspective, spot patterns, exploit mathematical properties, derive recurrences only with your insight, supported with mathematical tools such as induction and that is actually something that you can’t learn in any book… That is something you can only learn by training, attending contests, reading editorials, looking and learning from setter and tester’s solutions and eventually, little by little you will get better at it, but, don’t feel bad if you can’t solve many problems at first, or even after lots of training… Contest and competitive programming is an art that can take many years to master, but, there’s also a lot more you will be able to do with the expertise and humbling lessons you will learn here.
I wish you the best of luck,