Фасад служит только доступом к реализации через контейнер
Вопрос можно ли вызывать фасад из логики (которую он вызывает/запускает) или нет.
+ Ещё стоит почитать про то как работают те или иные вещи в твоём основном языке. Те же list comprehension во что превращаются в рантайме или как работают генераторы, на сколько и то и то тяжёлое и где лучше использовать их, а где циклы.
+ Математику ещё надо прокачать, тк многие вещи не очень очевидны без неё и многие олимпиадные задачки решаются чисто через какой-нибудь математический трюк.
По практике - есть литкод, там также по каждой отдельной теме есть задачки (только читай условия внимательно, тк часто на хард задачках там есть требования типа "уложиться в такой-то big-O" или "не использовать дополнительную память".