Best way of learning is application.

How do you learn a topic (theory part), like new DS or new Algo? How much time to do you give in theory part before moving to problems?? How much minimum questions you do of that topic ,before u get strongly confident in that DS or Algo??

Answers to these will be helpful. Thank You.

For learning a new DS say segment trees, I prefer understanding the theory part first and then try to implement it on my own, taking help from other's implementation if needed. Once clear with the implementation, I practice many examples to make sure I am ready with it.

For Algorithms the only way is practice. Solve 100 dp problems and 101st dp problem will seem easier. And you are not mand budhi! Don't push yourself too hard. For grasping the basic concepts, you can start with interview bit. It's structured, short and covers almost all basic concepts.

I learn new techniques by participating virtual contest, and when I meet a problem which involves algorithms or data structure that I did not know before, I usually search on the internet first and read tutorials about this topic, like motivation behind it, general ways to apply it. Then, I try to solve this problem.

However, I seldom solve similar problems in a short period, and just move on to the next virtual contest.

"How much time to do you give in theory part before moving to problems??"

Until you understand it? I don't see why you would spend more time on theory after understanding it or why you would jump to doing problems before understanding it.