Немного про собеседования
Зачастую интервью сопровождаются не только вопросами о самой ML или DL разработке, Data, но и о знании самого языка. В нашем случае Питона.
В нашем посте мы собрали 8 неочевидных вопросов, которые могут задать на собеседовании.
Уверены, что знаете Python так хорошо, как никогда?
Какие проблемы есть в Python?
Вопрос на логику. Где лучше всего недостатки языка? – в его преимуществах. Динамическая типизация может приводить к ошибкам во время компиляции и затруднению обнаружения некоторых типов, а автоматическое управление памятью может привести к:
а) неэффективности;
б) ее утечке.
Опишите процесс компиляции
И тут, на самом деле, попадаются многие джуниоры. Питон — язык интерпретируемый, но он все равно компилирует код, правда, за кулисами.
Питон использует формат компиляции байт-кода, т.е "переводит" исходный код в низкоуровневое представление и выполняется виртуальной машиной (PVM). Виртуальная машина — это и есть тот самый интерпретатор, который трактует ваш байт-код.
Назовите три способа ускорения уже существующего кода
Перевести исходный код в байт-код самостоятельно при помощи PyPy или Cython.
Организовать многопоточность или параллельное выполнение задач в нескольких ядрах процессора.
Провести векторизацию при помощи библиотек NumPy, идеально подходит для оптимизации кода, выполняющего большое количество операций над массивами данных.
Python - императивный или декларативный язык?
Простой, но вгоняющий в ступор некоторых новичков вопрос. В первом случае — вы предписываете команды, во втором — конечную техническую задачу. Естественно, Питон — императивный язык, как и большинство других по типу C++ и Java.
Из семейства декларативных показательным примером будет SQL.
Чем фреймворк отличается от библиотеки?
Фреймворк представляет собой интегрированный набор уже готовых компонентов и инструментов — он обеспечивает уже заранее заданную структуру и логику работы, поэтому ограничивает разработку, предлагая готовую концепцию.
Библиотека — коллекция модулей или функций, используемые другим приложениями. Но здесь логика подбирается самостоятельно, поэтому ограничения минимальны.
Чем отличаются библиотеки NumPy и SciPy?
NumPy - библиотека для работы быстрой работы с массивами и матрицами (векторами). Наш выбор для ML разработки и попросту математических вычислений. Хотя и тут есть модули для статистики и машинного обучения по типу scikit-learn.
А вот SciPy вообще способна справляться интегрированием, дифференцированием, анализом спектральных данных и даже моделированием физических систем. Больше подходит для ученых.
Что такое лямбда-функции?
Она же "анонимная функция", которая определяется без слова def. Простые, зачастую одноразовые функции, определяемые lamda. В основном, используются в качестве аргументов функций высшего порядка и позволяют сделать код более читаемым и компактным.
Что такое функции высшего порядка и какие бывают?
Раз уж про них заговорили. Все же Питон — это высокоуровневый язык. И тут не обошлось без функций, которые могут возвращать функции в качестве результата.
Функция map() - применяет функцию ко всем элементам объекта и возвращает итератор.
Filter () делает то же самое, но возвращает итератор и элементы со значением True.
Функция reduce() объединяет элементы итерируемого объекта в одно значение.