It sounds like you both ideally have what works best for most people: repetition and the actual application of the concepts through the completion of problems.
Working problems really help. I guess one by working problems reaches principles through induction. Then, of course, the textbook and lectures make explicit the basic axioms and theorems.