I am trying to improve my programming logic, what is the best and efficient way to do it.
There is just one way to improve it: solving problems.
There are no shortcuts, nor magical books that will teach you how to solve every single problem, however, there are books that will help you develop your data structures and algorithms knowledge.
Look here at the Tiers 2, 3 and 4.
I think, once you’re done with the algorithms-part of FCC you should check out HackerRank and solve the problems there. I didn’t do a lot of them but they will be good practice I think (and they aren’t easy!)