Что стоит знать junior developer'y (python)
UPD: #comment_211858676
здесь есть более свежая и развернутая дока, следует использовать ее
https://docs.google.com/document/d/1Yl2WAqG5zmivO1LDP1N7Iu3x...
______________________________________
Я тут в комментах предложил написать список того, что следует знать джуну-питонисту, ходя на собеседования. Получилось обширно, решил сделать пост. Сам я пишу под django, но его в этом посте не затрагиваю.
@nataha123 это тебе)
Данные собраны по посещению примерно 13 собеседований (включая по удаленке) в Питере за 2 последних года. (искал работу трижды, последний раз 3 недели назад)
Собственно, сам список:
1) Для начала типы данных - как использовать, как хранятся, что делает функция id, изменяемые-не изменяемые. Надо понимать почему не стоит использовать конструкцию вида def foo(bar=[])
2) Потом декораторы. Их любят вообще все. Советую не просто почитать что это, а написать парочку, а потом написать декоратор который еще и аргументы принимает)
3) Что такое итераторы и генераторы, чем отличаются и как задать и тот и другой
4) Знать что делают методы класса типа __call__, __srt__, __init__, __next__ и т.д.
Почитать про то, какие есть базовые декораторы (property, staticmethod..)
Дальше общие вопросы, не связанные с питоном.
5) Следует знать про асимптотику функций, уметь расчитывать сложность. Почитать про популярные алгоритмы сортировки, особенно про то, что есть базово в питоне)
4) Почитать про популярные способы хранения информации и как (и за сколько) в них совершается поиск
5) Любят спрашивать про SQL, особенно про индексы. Мне с SQL помогли разобраться задачки на составление запросов, гугл выдает много сайтов, найти что-нить для себя не трудно
6) Про ООП следует понимать как работает механизм наследования классов, знать что такое mixin и как это применить. Про инкапсуляцию/наследование/полиморфизм меня спрашивали только 1 раз, но знать будет не лишним)
Вроде ничего не забыл)
Несколько раз мне встречалась задачки про взвешивания (Что то типа даны весы с 2 чашами и 8 монеток. Одна из них фальшивая и легче. За сколько взвешеваний можно найти монетку?)
Еще было пару раз задание накодить следующее: дана строка, содержащая скобки (), {} и []. Необходимо определить валидна ли эта строка (т.е. (а+{в-с}) валидна, а {а×(в+с}) нет.)
И еще мне нравится задачка: человек находится в поезде, замкнутым по кругу. Все окна заколочены, никаких меток ставить нельзя, паттерны тоже использовать запрещено - количество вагонов конечно, но вполне может стремиться к бесконечности) Можно только включать или выключать свет. Изначально в каждом вагоне рандомное состояние света. Задача - посчитать сколько всего вагонов)