Як dev.ua тестили болід айтішника — відео 🏎

Мануал для джуна. Python Developer: запитання на співбесіді, практичні завдання та поради для початківців

Джунів, які шукають роботу, проходять купу співбесід та отримують відмови замість оферів, під час війни побільшало. А все тому, що до співбесід необхідно ретельно готуватися.

dev.ua продовжує серію матеріалів про те, що треба знати джунам для проходження співбесіди й отримання омріяного оферу від першого роботодавця. 

Олександр Ковтунов, Python Software engineer компанії Ajax Systems, який також проводить співбесіди для junior- і middle-фахівців, розповів про професію Python Developer і надав поради, як початківцям долучитися до професії.

Залишити коментар
Мануал для джуна. Python Developer: запитання на співбесіді, практичні завдання та поради для початківців

Джунів, які шукають роботу, проходять купу співбесід та отримують відмови замість оферів, під час війни побільшало. А все тому, що до співбесід необхідно ретельно готуватися.

dev.ua продовжує серію матеріалів про те, що треба знати джунам для проходження співбесіди й отримання омріяного оферу від першого роботодавця. 

Олександр Ковтунов, Python Software engineer компанії Ajax Systems, який також проводить співбесіди для junior- і middle-фахівців, розповів про професію Python Developer і надав поради, як початківцям долучитися до професії.

Хто такий 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 — значеннями дікта

3. Дано список списків [[1, 2, 3], [4, 5, 6]]

Треба зробити [1,2,3,4,5,6]

4. Дано два списки

a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89];

b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13].

Треба знайти спільні дані для цих двох списків 

5. Розпарсити json

6. Написати сортування пузирком

7. Показати приклад поліморфізму

8. Знайти три ключі з найбільшими значеннями

{'a':500, 'b':5874, 'c': 560,'d':400, 'e':5874, 'f': 20}

Читайте головні IT-новини країни в нашому Telegram
Читайте головні IT-новини країни в нашому Telegram
По темi
Читайте головні IT-новини країни в нашому Telegram
Мануал для джуна. Чим займається Azure Cloud Engineer:
must have навички початківця та список запитань зі співбесід від сеньйора із SoftServe
Мануал для джуна. Чим займається Azure Cloud Engineer: must have навички початківця та список запитань зі співбесід від сеньйора із SoftServe
По темi
Мануал для джуна. Чим займається Azure Cloud Engineer: must have навички початківця та список запитань зі співбесід від сеньйора із SoftServe
Мануал для джуна. Що треба знати початківцю аби влаштуватися маркетологом в IT-компанію: 30 запитань і поради від досвідченого фахівця
Мануал для джуна. Що треба знати початківцю, аби влаштуватися маркетологом в IT-компанію: 30 запитань і поради від досвідченого фахівця
По темi
Мануал для джуна. Що треба знати початківцю, аби влаштуватися маркетологом в IT-компанію: 30 запитань і поради від досвідченого фахівця
Мануал для джуна. Що треба знати початківцю в DevOps: 30 запитань і поради досвідченого ліда
Мануал для джуна. Що треба знати початківцю в DevOps: 30 запитань і поради досвідченого ліда
По темi
Мануал для джуна. Що треба знати початківцю в DevOps: 30 запитань і поради досвідченого ліда
Мануал для джуна. Що треба знати початківцю у Project Management в GameDev: 30 питань та приклади тестових завдань
Мануал для джуна. Що треба знати початківцю у Project Management в GameDev: 30 питань та приклади тестових завдань
По темi
Мануал для джуна. Що треба знати початківцю у Project Management в GameDev: 30 питань та приклади тестових завдань
Мануал для джуна. Що треба знати початківцю у fullstack-розробці: 30 питань та приклади тестових завдань
Мануал для джуна. Що треба знати початківцю у fullstack-розробці: 30 питань та приклади тестових завдань
По темi
Мануал для джуна. Що треба знати початківцю у fullstack-розробці: 30 питань та приклади тестових завдань
Ми запускаємо розсилку про українське IT-ком’юніті. Залиште email, аби розуміти більше. Прем’єра — скоро!
Дякую! На вказану адресу надіслано листа для підтвердження підписки.
Читайте також
Хочу стати програмістом. З чого почати і як вибрати між Java Script, PHP, Python та іншими
Хочу стати програмістом. З чого почати і як вибрати між Java Script, PHP, Python та іншими
Хочу стати програмістом. З чого почати і як вибрати між Java Script, PHP, Python та іншими
Діана Смелікова, операційний директор Wezom Academy, у своєму блозі на DOU пояснила, з чого почати вивчати програмування та яким мовам варто налагодити перевагу на початковому етапі. Ось 5 важливих порад від неї.
Які IT-спеціальності будуть потрібні в найближчі п'ять років? Ми з'ясували у голови американського стартапу ADAM Дениса Гурака
Які IT-спеціальності будуть потрібні в найближчі п'ять років? Ми з'ясували у голови американського стартапу ADAM Дениса Гурака
Які IT-спеціальності будуть потрібні в найближчі п'ять років? Ми з'ясували у голови американського стартапу ADAM Дениса Гурака
Як навчитися кодити на Python: 5 курсів від міжднародних платформ, доступні кожному
Як навчитися кодити на Python: 5 курсів від міжднародних платформ, доступні кожному
Як навчитися кодити на Python: 5 курсів від міжднародних платформ, доступні кожному
Python — популярна високорівнева мова програмування, призначена для створення додатків різних типів. Це і веб-програми, і ігри, і настільні програми, і робота з базами даних. Досить велике поширення Python отримав у галузі машинного навчання та досліджень штучного інтелекту. Зібрали топ-5 курсів з Python, доступних кожному.
Запускай код прямо в браузері: найкращі онлайн-компілятори для C++, PHP, Python, Java, C#, Go і не тільки
Запускай код прямо в браузері: найкращі онлайн-компілятори для C++, PHP, Python, Java, C#, Go і не тільки
Запускай код прямо в браузері: найкращі онлайн-компілятори для C++, PHP, Python, Java, C#, Go і не тільки
Не завжди є доступ до улюбленої IDE, або час на її запуск. Але коли потрібно швидко перевірити якийсь простий функціонал або втілити нову ідею, стане у пригоді онлайн-компілятор.

Хочете повідомити важливу новину? Пишіть у Telegram-бот

Головні події та корисні посилання в нашому Telegram-каналі

Обговорення
Коментарів поки немає.