💳 Кожен. Повинен. Мати. Trustee Plus: криптогаманець і європейська платіжна картка з лімітом 50к євро 👉
Вікторія ГорбікВойти в IT
5 сентября 2022, 12:00
2022-09-05
Мануал для джуна. Python Developer: вопросы на собеседовании, практические задания и советы для начинающих
Джунов, которые ищут работу, проходят кучу собеседований и получают отказы вместо оффера, во время войны стало больше. А все потому, что к собеседованиям необходимо тщательно готовиться.
dev.ua продолжает серию материалов о том, что нужно знать джунам для прохождения собеседования и получения вожделенного оффера от первого работодателя.
Александр Ковтунов, Python Software engineer компании Ajax Systems, который также проводит собеседования для junior- и middle-специалистов, рассказал о профессии Python Developer и дал советы, как начинающим присоединиться к профессии.
Python — один из самых легких языков программирования. Он универсальный и используется для серверной стороны веб-приложений, разработки настольных и мобильных приложений, игр, Data Science, тестирования программного обеспечения и прочего.
Соответственно, Python Developer может разрабатывать программное обеспечение, формировать аналитику данных, работать в качестве веб-разработчика, исследователя данных, специалиста по автоматическому тестированию, инженера искусственного интеллекта или инженера машинного обучения.
Путь разработчика
Александр Ковтунов в профессии около 3 лет. По его словам, сталкивался со сложностями, потому что в первый год работу найти очень сложно
«Стандартный ответ: „Решили двигаться дальше с более опытным кандидатом“. Иногда казалось, что рекрутеров где-то учат этой фразе», — вспоминает разработчик.
Но после каждого интервью он анализировал, что было не так, на каких вопросах посыпался и уходил учиться. Кроме того, Александр находил в Telegram-группах людей, которые были согласны провести тестовое интервью и дать обратную связь.
Как выбирают кандидатов
Junior Python Developer отбирают по двум основным критериям: знание Python и умение думать.
Кандидату обычно предлагают логические задачи и смотрят, как человек рассуждает. При этом необязательно, чтобы на все вопросы, и логичные, и по программированию, был правильный ответ. Важны и реакции на ситуации, когда у кандидата не получается решить проблему, или он чего-то не знает.
«Это в принципе нормально — чего-то не знать. Но, конечно, минимальная техническая подготовка необходима», — отмечает Александр.
Как он говорит, если простыми словами, в первую очередь ищут инженеров, имеющих некий опыт с Python (необязательно коммерческий).
Основные вопросы на собеседовании
Протоколы
1. Что такое http протокол? Из чего состоит http request? Что такое headers? Что такое статус кода в http responce? Что такое способ?
2. Модель OSI. Что такое? Какие уровни бывают? Какой протокол лучше подойдет для видео tcp или udp?
Базы данных
3. Что такое SQL? Как расшифровывается? Что такое DBMS? Назовите известные вам DBMS?
4. Что такое реляционная модель? Что такое row? Что такое таблица? Что такое атрибут (в контексте SQL-БД)?
5. Отношения: many-to-many, many-to-one, one-to-one (что такое foreign key?)
6. Queries: SELECT, INSERT, JOIN, INDEXES
7. Что такое No-SQL базы данных? Чем они отличаются от SQL? В чем преимущество или недостаток того или иного?
Python Core
8. Data Types, mutable/immutable
9. Сроки. Распарсить массив разделенных запятыми. Отформатировать данные по какому-либо критерию (f-string, format). Найти данные в ленте.
10. Что такое dictionary? Какой объект может быть ключом диктата? Как реализовать такой объект своими руками?
11. Может ли дикт храниться в тупле? Может ли тупл быть ключом диктата? Может ли лист храниться в тупле? А если может ли его изменять?
12. Что такое хеширование? Зачем используется? Приведите примеры.
13. Что такое компрехеншен в Python? Какие структуры можно сделать с его помощью?
14. Что такое контекстные менеджеры? Зачем нужны? Какие способы создания кастомного контекстного менеджера?
15. Что такое slices в Python? Что такое индекс? Какой объект можно обрезать?
16. Что такое декоратор? Как написать свой? Как сделать, чтобы он принимал аргументы?
17. Что такое итератор? Что такое итерабельный объект? Какая между ними разница? Что такое next? Как реализовать итератор? Как и терабельный объект?
18. Что такое генератор? Чем отличается от итератора? Какие способы написания генератора? Что такое yield? Чем отличается от return? Что такое send? Throw? Как написать нескончаемый генератор?
19. Как обрабатывать ошибки в Python?
20. Что такое lamda функции? Напишите такую функцию для фильтрации данных в дикте.
21. Области видимости. Сколько существует? Как расшифровать LEGB? Global и nonlocal? Приведите прил.
22. Как работают способы map? Filter? Enumerate?
ООП
23. Что такое ООП? Для чего используют ооп? Что такое class в ооп (не в Python, а в принципе)? Какова его базовая характеристика (стейты+поведение)? Что такое сущность? Каковы принципы ООП?
24. Что такое гетеры, сеттеры? Зачем их используют? Как можно в Python написать геттер или сеттер? Что такое property?
25. В чем разница staticmethod и classmethod? Для каких задач используют тот или иной?
26. Что такое отвлеченный класс? Что такое отвлеченные методы? Что такое интерфейс? Зачем строят интерфейсы в программировании?
27. Для чего нужна функция dir ()? Что такое dict? Как отличаются dict у родительского класса и класса отпрыска? От чего же это зависит?
28. Что такое переменная класса? Как изменятся экземпляры, если ее изменить?
29. Какие магические методы? Зачем нужен метод init? Чем отличается от new?
30. Как переопределить арифметические операции?
31. Как работает множественное наследование? Какой Python ищет имплементацию методов?
Практические задачи
1. Данный дикт {1: «value1», 2: «value2»}
Надо поменять ключ значение местами
2. Даны два массива
a = [1, 2, 3]
b = [q, w, e]
Надо сделать чтобы значения, а были ключами, а значения b — значениями дикта
Запускай код прямо в браузере: лучшие онлайн-компиляторы для C++, PHP, Python, Java, C#, Go и не только
Не всегда есть доступ к любимой IDE или время на ее запуск. Но когда нужно быстро проверить какой-то простой функционал или воплотить новую идею, пригодится онлайн-компилятор.
Хочу стать программистом. С чего начать и как выбрать между Java Script, PHP, Python и другими
Диана Смеликова, операционный директор Wezom Academy, в своем блоге на DOU объяснила, с чего начать изучать программирование и каким языкам стоит отдать предпочтение на начальном этапе. Вот 5 важных советов от нее.
Как научиться кодить на Python: 5 курсов от международных платформ, доступные каждому
Python — популярный высокоуровневый язык программирования, который предназначен для создания приложений различных типов. Это и веб-приложения, и игры, и настольные программы, и работа с базами данных. Довольно большое распространение Python получил в области машинного обучения и исследований искусственного интеллекта. Собрали топ-5 курсов по Python, доступных каждому.
Хотите сообщить важную новость? Пишите в Telegram-бот
Главные события и полезные ссылки в нашем Telegram-канале