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