Можно слегонца поупарываться тут
https://www.codewars.com/
насчет алгоритмов - сначала разобраться, что такое асимптотическая сложность.
потом глянуть какие есть структуры данных, какие операции на них возможны, с какой сложностью по времени.
ну и так далее