Как стать автором
Обновить

Как проходит собеседование Python-разработчика: вопросы для джуниоров и мидлов

Время на прочтение7 мин
Количество просмотров86K
Всего голосов 25: ↑21 и ↓4+17
Комментарии13

Комментарии 13

НЛО прилетело и опубликовало эту надпись здесь
Поддерживаю ваше недоумение, сам начал подозревать шуточность статьи после «Где в Django применяется паттерн мост?»

Не задавался целью собрать топ самых идиотских вопросов, но этот не мог не вставить, так как он с пары реальных собесов)


Ещё почему вставил — мне нравится, что он направляет отвечающего посмотреть на Джангу, не как на «вещь в себе» и нечто данное нам свыше (у многих джунов такое представление), а обычный код от других чуваков, в сорцах которого можно и нужно поковыряться.

Хотя, с вышеописанной целью уж лучше тогда спрашивать «Какие паттерны применяются в Джанго»
Согласен, что открытые вопросы о знаниях и опыте полезнее, нежели закрытые о конкретных навыках — поэтому и написал, что прошу подробно рассказать, как устроен проект, на котором кандидат работал до этого, и в процессе этого разговора узнаю о знаниях и опыте.

Статья в основном для джунов и неуверенных миддлов чтобы им понимать как готовиться к собеседованиям. Вопросы в таблице — это усредненные вопросы для подготовки, ответы подобные обычно нужно знать, чтобы пройти интервью.

На многих собеседованиях это будут спрашивать, поэтому нужно быть к этому готовым) Если бы писал о том как проводить собесы, наверное сделал бы больше упора на то о чем вы говорите)

Вопрос про множественное наследование напомнил другую ситуацию на собеседовании, рассказываю со слов коллеги.
Вопрос интервьювера: Что будет, если написать такой код?


class Foo:
    def bar(self, x):
        print(x)

    def bar(self, x, y):
        print(x, y)

Foo().bar(x)

Коллега ответил (и по-моему идеально): не пройдет код ревью.

Arseny_Info, по-моему python не поддерживает перегрузку методов и тут последний bar перезапишет первый. Поэтому надо передавать два аргумента внизу. Еще в самом низу x неопределён — это вызовет ошибку. Правильно?

Вообще да, в питоне почти везде dict под капотом, в т.ч. для методов:


In [1]: class Foo:
   ...:     def bar(self, x):
   ...:         """I am first"""
   ...:         print(x)
   ...:
   ...:     def bar(self, x, y):
   ...:         """I am second"""
   ...:         print(x, y)
   ...:
   ...: Foo.__dict__['bar'].__doc__
Out[1]: 'I am second'
А где здесь множественное наследование?
К чёрту подробности! Где здесь наследование?!?!?!?

P.S. перечитал комментарий, вопросы сняты
прокачать софт-скилы в целом помогают публичные выступления на мероприятиях: вебинарах, хакатонах, конференциях, демо-презентациях

Согласен. :) Ждём желающих выступить на митапах MoscowPython (форма заявки тут). :)
  • Не высказывайтесь критично о своих предыдущих работодателях.
  • Не высказывайтесь критично о каких-либо технологиях (например, «php — отстой»).
  • Будьте открыты, отвечайте честно, даже если вам кажется, что ответ не понравится собеседующему.

Один я вижу противоречивость этих рекомендаций?

Wow, класс, nice catch! Я и сам не заметил противоречия, хотя несколько раз вычитывал)


Видимо этим противоречием хочу неявно морализовать, что лучше не относиться (внутри) и, как следствие, не высказываться (наружу) негативно к работодателям (даже если там были чудаки) или технологиям, потому что это душняк.


Ну и если прям бомбит от прошлого работодателя или технологии, что никак не переработать это в себе, то уж лучше высказать — на работу может не возьмут, ну так оно и к лучшему. А может, наоборот, возьмут из солидарности.

«Как проходит собеседование Python-разработчика...»
После прочтения нескольких статей о собесе в Я, у меня только один ответ на этот вопрос :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий