лгоритмы, а знать как обойти дерево без рекурсии — и на клиенте бывает нужно. Вот, заставить себя расширять знания в области алгоритмов можно как раз олимпиадами. Например, я хотя бы раз в год участвую в Google Code Jam. И вот как-то с каждым годом все сложнее становится.. Старость? :/
Для расширения знания, есть книги по алгоритмам и проджект Эйлера. :D
Обсуждают сегодня