Есть смысл всё время учить что-то новое. И, как уже заметили в ответах, языки разметки и запросов должен знать любой программист. Но учить всё это для подготовки к изучению Python - это глупость.
Идеал по определению недостижим, а потому верхняя граница необходимых знаний определена быть не может. Как минимум для разработки ПО высокого класса web-разработчику необходимо хорошо понимать сети. Да и знание железа и алгоритмов тоже совсем не лишнее.
Коммиты должны быть атомарными, что означает, что они должны быть как можно более мелкими, но при этом самодостаточными. Если у вас не получается коммитить небольшими порциями, не ломая при этом работоспособность ветки, то ваш код не является чистым.
Множества - это не "рандомный список". Почитайте. Нужны они для быстрых операций с их членами - пересечением, объединением, разностью. У Скиены, если мне не изменяет память, был пример оценки скорости поиска пересечения. Для множеств из миллиона элементов это заняло 0,02 микросекунды, для соразмерных списков 15 минут.