Обновить

Полный список вопросов с собеседований по Python для дата-сайентистов и инженеров

Время на прочтение14 мин
Охват и читатели168K
Всего голосов 21: ↑19 и ↓2+31
Комментарии24

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

Каким образом «53 questions» в оригинале превратились в «полный список»?

49. Вариант нагляднее — .keys()

Нельзя. .keys() возвращает не список. Хотя я бы, наверное, написал list(d.keys()). Хоть это и тоже самое, что list(d)
тогда уж питон указывать, если придираться
НЛО прилетело и опубликовало эту надпись здесь
Интересно что же тогда возвращает .keys() если не список? Или уже по умолчанию все что до python 3.3 не питон? )))
НЛО прилетело и опубликовало эту надпись здесь
Вроде, еще если он не был выполнен ни разу. И для while так же.
Когда собеседовал питонщиков, для определения уровня знаний языка использовал 4 вопроса:

— что такое декоратор? + пример
— что такое дескриптор? + пример
— что такое метакласс? + пример
— что надо знать про многопоточность в Python?

Вполне хватало.
Про дескриптор, кмк, слишком специфичный вопрос. Довольно редко возникает надобность в них.
Вопросы не относятся к надобности. Это маркеры знакомства с инструментом.

Если человек реально знакомился с языком и копнул хотя бы на средний уровень, то он сможет своими словами рассказать что это.

reduce принимает функцию и последовательность — и проходит по этой последовательности. На каждой итерации в функцию передаются как текущий элемент, так и выходные данные предыдущего элемента.

Ничего не сказано о том, в каком порядке передаются эти два элемента, о том, что можно третьим аргументом передать начальное значение и о том, что без этого третьего аргумента reduce бросает исключение TypeError на пустом итераторе.


Как работает умножение списка?

Забыли упомянуть, что элементы списка при этом копируются неглубоко, что может привести к несколько неожиданному поведению:


a = [[]] * 3
a[0].append(1)
print(a) # [[1], [1], [1]]

Назовите изменяемые и неизменяемые объекты

Из встроенных забыли frozenset.


Чёрт побери, я ведь даже на Python толком не пишу.

Да уж, а я, наоборот, знаю Python лучше всего остального, и в тоже время хуже всех остальных.

Mail.ru Group, Вам этого достаточно для трудоустройства на джуна? Я все это знаю, но меня даже проверить не хотят, даже на стажировку отказы...

Подачу заявки проще всего делать через team.mail.ru/vacancy. Если вам не ответили там по вакансии, на которую вы отправили запрос, то я, к сожалению, не смогу подсказать, почему вам отказали.
Из общих соображений — у каждой вакансии могут быть свои специфические требования, помимо навыков кодинга. Поэтому на вопрос «достаточно ли этого для трудоустройства» можно ответить — нет. Нужно подходить и по другим требованиям вакансии.
Ответы поверхностные и не всегда точные. По таким ответам даже у меня сложилось бы впечатление о поверхностности знаний. Можно использовать в качестве проверки — если не видите в ответе неточность, значит нужно вернуться к документации и перечитать соответствующий раздел.
Меня допустим еще спрашивали обычно про:
  • Побитовые операции
  • Простая реализация бита четности
С первого же вопроса у меня возникло странное ощущение.
Проводится сравнение листа и кортежа
Список упорядочен.

Кортеж тоже

как правило, одного и того же типа

Что значит «как правило»?
И list и tuple могут содержать разные типы данных.
class A:
    ...

c = [A, 1, 'hello']
c
[<class '__main__.A'>, 1, 'hello']
t = (A, 1, 'hello')
t
(<class '__main__.A'>, 1, 'hello')

Вот пример, который еще можно показать, что класс — тоже объект.

У кортежа есть структура

У любой структуры данных есть структура, что имеется в виду?
Видимо очень расплывчато упомянуто то, что list выделяет несколько блоков памяти, в отличии от tuple, который хранится в одном блоке, из-за чего последний быстрее.
import sys
sys.getsizeof(c)
96
sys.getsizeof(t)
80


Странно, что совсем не упомянуты генераторы, которые, как мне кажется, являются очень важным концептом в data science, где данных настолько много, что на оперативу не поместится.

  • Инкапсуляция
  • Шаблонам проектирования
  • Генераторы и итераторы
  • DRY, SOLID, KISS
  • Docker

Если бы этого было бы достаточно для устройства на работу, я бы уже полгода джунил на каких-нибудь галерах. Но нет, приходится писать свои пет-проекты, чтобы можно было набрать хотя немного опыта, чтобы проходить требование "от 1 года опыта работы"

Мало научиться программировать.
Надо еще научиться отвечать на экзаменационые вопросы?
Можно ли избежать такого собеседования, просто показав свой проект с 17к звезд на гитхабе?
24 вопрос самый коварный и там много подводных камней…
a = 2.1245
round(a,3)
#=> 2.124

В декораторе из примера потеряли аргументы функции и возвращаемое значение

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
team.vk.company
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия
Представитель
Дмитрий Головин