If you are young try to learn Assembly. If you are using C then try van der Linden's book. It is great. And try some algorithm book too. Dont reinvent the wheel
Try to read the books related to programming theory and algorithms, then you can use any programming language (depending on your application).
C is not object oriented language, why don't you use an object oriented language like c++ , its similar to .
There are not a best book for programming. If you want to mastering a programming language, You must read many book about that language and some book about data structure.