Перш ніж почати своє кар’єрне зростання у сфері IT за напрямом Python, потрібно пройти доволі складний для початківця етап — працевлаштування.

Практичного досвіду роботи в компанії ще немає, тому головна увага приділяється теоретичним знанням. Але після навчання в голові міститься настільки багато нової інформації, що важко самостійно зрозуміти — яка саме знадобиться під час інтерв’ю.

 

Крім того, рекрутери цікавляться не тільки теоретичними та практичними знаннями, а й особистими якостями кандидатів, їх вмінням швидко відповідати на складні запитання та “не губитися”.

Щоб ви почувалися впевнено та комфортно під час працевлаштування, а найголовніше — отримали бажану вакансію, фахівці A-Level підготували для вас перелік найпоширеніших запитань для співбесід на позицію Junior Python Developer. Тож давайте попрактикуємось та перевіримо себе!

 

Уявіть, що ви вже на інтерв’ю — спробуйте відповісти на всі запитання! 

Знайомство з кандидатом

  1. Розкажіть про себе.
  2. Чому програмування?
  3. З якими завданнями хотілося б працювати?
  4. В якому напрямі хотіли б розвиватись?
  5. Чому саме Python?
  6. Чи готові ви вивчати суміжні технології (JS, HTML/CSS, SQL, NoSQL, Angular/React/Vue, DevOps, Numpy, Pandas, Scrapy тощо — залежно від компанії)?

Досвід роботи

  1. Чи вмієте ви працювати у команді?
  2. Чи знайомі ви з поняттями Waterfall, Kanban, Agile (Scrum)?
  3. Що таке спринт?
  4. Навіщо потрібні Product Owner та Scram master?
  5. Що таке git flow?
  6. Чи знаєте ви щось про deployment?
  7. Чи є у вас досвід роботи з хмарними серверами?

Теорія

Базові знання:

 

  1. Розкажіть про типи даних. Наведіть приклад, де в коді важливо знати про види типів даних.
  2. Що спільного у словника та множини?
  3. Які види типізації ви знаєте?
  4. Як працює типізація в Python? Чи є декларація типів даних обов’язковою?
  5. Як можна передати у функцію випадкову (заздалегідь не задану) кількість аргументів?
  6. Які види сортувань ви знаєте? Назвіть їх плюси та мінуси.
  7. Як можна отримати дані зі словника? І якщо є більше одного способу, то розкажіть, чим вони відрізняються?
  8. Які ви знаєте типи даних зі стандартної бібліотеки (ті, що необхідно імпортувати)?
  9. Як встановити значення за замовчуванням для параметра функції?
  10. Що поверне функція, якщо не вказати в ній return?
  11. Чи може бути більше одного return у функції?
  12. Що таке PEP8? Чи можна його порушувати?
  13. Які ключові слова використовуються для імпорту?
  14. Що таке булева алгебра?
  15. Чим відрізняється == від is?

 

Більш просунута база:

 

  1. Що таке декоратор?
  2. Як працює обробка винятків?
  3. Що таке протокол ітерації?
  4. Чим відрізняється ітератор від генератора?
  5. Розкажіть про принцип роботи map, zip, lambda, filter.
  6. У чому різниця між синхронним та асинхронним підходом?
  7. Як працює yield?

 

Базові знання “із зірочкою”

 

  1. Що таке GIL?
  2. Для чого потрібні ключові слова asinc, await?
  3. Як працює збирач сміття?
  4. Наведіть приклади генераторів у Python.
  5. Чим багатопотоковість відрізняється від багатопроцесорності?

 

Об’єктно орієнтоване програмування:

 

  1. Що таке клас та об’єкт?
  2. Інкапсуляція: що це/ де застосовується/ які існують модифікатори доступу/ на що вони впливають?
  3. Поліморфізм: що це/ де ми можемо наочно побачити поліморфізм у коді?
  4. Спадкування: що це/ навіщо треба?
  5. Множинне наслідування: що це/ навіщо треба/ що таке MRO?
  6. Що таке mixin?
  7. Абстракція: що це/ навіщо треба?
  8. Парадигми ОВП (запитання 2-7, лише більш стисло).
  9. Що таке Magic (Dunder) методи? Наведіть кілька прикладів.
  10. Що таке атрибут та метод?
  11. Навіщо потрібний self?
  12. Хто такі property, staticmethod, classmethod?
  13. Що таке super? Як він працює?
  14. Чи можна написати свій декоратор, використовуючи тільки класи? Якщо так, то як це зробити?

 

Проектування:

 

  1. Що таке патерн?
  2. Які бувають види патернів?
  3. Що таке DRY/KISS?
  4. Розкажіть про SOLID у всіх подробицях.
  5. Що таке синглтон?
  6. Що таке фабрика?

 

Додаткове запитання, яке часто можна почути під час співбесіди:

 

1) Що таке метаклас? І до чого тут type?

Бази даних

 

SQL:

 

1) Що таке SQL?

2) Чому такі бази називають реляційними?

3) Які бувають види зв’язків?

4) Що таке нормалізація? Опишіть перші 3 нормальні форми. Скільки їх буває?

5) Що таке рекурсивний запит?

6) Які бувають види joins?

7) Що таке транзакція?

8) Що таке ACID?

9) Які бувають рівні ізоляції транзакції?

 

NoSQL:

 

1) Що таке NoSQL?

2) Коли краще застосовувати SQL, а коли NoSQL?

3) Які бувають види NoSQL? Наведіть хоча б один приклад кожного виду.

4) Чи застосується ACID до NoSQL?

5) Назвіть сфери застосування Redis.

 

GIT:

 

1) Що таке гілка?

2) Що таке коміт?

3) Що таке pull request?

4) Навіщо потрібні команди pull та push

5) Як працює cherry-pick?

 

Front-end:

 

1) Навіщо потрібні HTML/CSS/JS?

2) Що таке замикання?

3) Яка типізація у JS? 

4) Яка типізація у TS?

5) Які фреймворки для Front-end ви знаєте?

 

Django:

 

1) Що таке фреймворк?

2) Що таке MVC та MVT?

3) Які бувають види моделей?

4) Навіщо потрібні параметри null та blank?

5) Що таке ORM?

6) Як продати soft delete?

7) Що таке менеджер моделі?

8) Навіщо потрібний related_name?

9) Чи можемо ми контролювати проміжну таблицю для M2M зв’язку? Якщо так, то як?

10) Навіщо потрібний bulk_create?

11) Що таке міграція?

12) Що таке data міграція?

13) Що корисного може зберігатися у request?

14) Що таке CBV?

15) Чим відрізняється instance і queryset?

16) Чи може спроба отримати дані з бази через ORM викликати винятки? Якщо так, то які?

17) Що таке валідація?

18) Як ми можемо отримати дані клієнта?

19) Що таке форма?

20) Що таке сесія? Як нею скористатися?

21) Що таке кеш? Як ним користуватися?

22) Що таке Middleware? Навіщо це треба та як ми можемо цим скористатися?

23) Що таке manage command? Чи можемо ми створити свою?

24) Що таке template tag?

25) Що таке DjangoTemplates? Чи можемо ми використати щось інше для цієї ж мети?

Загальні запитання

 

1) Що таке cookie?

2) Що таке HTTP? Чим він відрізняється від HTTPS?

3) Що таке авторизація? З яких етапів вона складається?

4) Як працює авторизація у базовому Django?

5) Які бувають HTTP методи?

6) Що таке ідемпотентність?

7) Які бувають коди стану HTTP? Навіщо вони потрібні?

8) Які ще протоколи бувають, окрім HTTP?

9) У чому відмінність монолітної архітектури від мікросервісної?

10) Що таке API?

11) Що таке CI/CD?

12) Хто такий DevOps?

 

REST/ Django REST Framework:

 

1) Що таке REST? Навіщо він потрібний?

2) Що таке JSON та XML?

3) Що таке серіалізація?

4) Як у DRF працюють права доступу?

5) Що таке базова авторизація та авторизація за токеном?

 

Celery:

 

1) Що таке celery?

2) Чи є celery синхронною чи асинхронною технологією?

3) З яких частин складається celery?

4) Що може бути брокером для celery?

5) Для чого використовується celery?

6) Що таке механізм підпису?

 

Web sockets:

 

1) Що таке web sockets? Навіщо вони потрібні? Наведіть приклад, де їх використовують.

2) Який протокол використовують sockets?

3) Чи існує бібліотека для використання sockets з Django?

 

Deployment:

 

1) Що таке Linux?

2) Що потрібно для розгортання програми Django?

3) Хто такі gunicorn, daphne, uvicorn, hypercorn?

4) Що таке nginx та apache?

Тестування

1) Які види тестування ви знаєте?

2) Чим відрізняються unit tests від integration tests?

3) Навіщо для тестування потрібні фабрики?

4) Хто такий Faker?

5) Що таке Mock?

Практичні завдання

У більшості випадків це завдання з кодом, тому їх важко описати словами. Але ми наведемо кілька прикладів, щоб ви мали змогу потренуватися.

 

Завдання 1

На вхід йде словник, у якого всі ключі та значення — це унікальні хешовані типи даних. Напишіть код, який поміняє місцями ключі та значення.

 

Завдання 2 

a = 200

b = 200

print(a is b)

a = 300

b = 300

print(a is b)

 

Що виведе цей код?

 

Завдання 3 

Вам надається csv файл. Напишіть код, який зможе зчитати файл і записати вміст у зручний для вас тип даних.

 

Завдання 3.1

Проведіть валідацію рядків. Якщо є не валідні — видайте відповідне повідомлення і пропустіть цей рядок. Використовуйте самописний виняток.

 

Завдання 4 

Напишіть свій декоратор.

 

Завдання 4.1 

Напишіть свій декоратор із параметрами

 

Завдання 5

Замовник хоче, щоб на його сайті клієнти були зобов’язані додавати в профіль кредитну картку. А якщо у користувача не прив’язана карта, щоб будь-яка його дія переводила його на сторінку додавання картки. Як ви діятимете?

 

Чудова робота! Навіть, якщо на якісь запитання відповісти не вдалося — тепер ви бачите прогалини у своїх знаннях та ще маєте час їх закрити!

А для студентів A-Level за напрямом Python наша школа пропонує: додаткові безкоштовні заняття з проходження співбесід та написання резюме, допомогу рекрутингового відділу у пошуку вакансій та підтримку під час адаптації на новому місці роботи!

 

Бажаємо всіх успішного інтерв’ю та подальшого професійного розвитку!

Ще iсторii

Кирило Смаковенко

Кирило Смаковенко Python Developer, випускник IT-школи A-Level   Всім привіт! Мене звати Кирило, і сьогодні я хочу трохи поділитися мотивацією та власним досвідом з тими, хто прагне вивчити мову програмування Python з нуля та почати кар’єру в IT.    Зараз я працюю в компанії ДДІ — розробляю сайт, що обслуговує заправки. Важко сказати, що тут

Вiдгук повнiстю

Бендера Олександр

“Ніколи не пізно кардинально змінити кар’єрний шлях. Я це зробив у віці майже 30 років! Мені здавалося, що поїзд вже скоро піде і влитися в новий напрям у такому віці буде досить складно. Але за правильного підходу можливо все! Головне – не здаватися, вірити в себе, продовжувати йти до своєї мети, навіть якщо щось не

Вiдгук повнiстю

Буглак Вікторія

“Не бійтеся пробувати. Якщо вас не драйвить, то чим ви займаєтесь – треба щось міняти! Пам’ятайте, що, обираючи напрям, ви приймаєте, можливо, найважливіше рішення у своєму житті, але таких рішень буде багато на вашому шляху, тому keep growing завжди!”   Зараз я працюю у компанії SoftServe рекрутером. Моя посада охоплює повний спектр напрямів сфери Recruiting.

Вiдгук повнiстю

Осичнюк Стас

“Програмування потрібно не заучувати, а практикувати. І важливо приділяти цьому якнайбільше часу. На курсах нам казали, що відвідувати заняття недостатньо, треба ще й займатися вдома. Я скажу вам більше: кодити треба скрізь – на роботі, на вулиці, у дорозі чи вдома. І тоді ви зможете досягти великих успіхів!”   Довгий час я працював на виробництві.

Вiдгук повнiстю

Загальні питання

Який формат проведення занять: онлайн чи офлайн?

Заняття у школі проводяться в режимі онлайн.

В які дні та час проводяться заняття?

Заняття у школі проходять двічі на тиждень. Адміністрація школи затверджує розклад для кожної групи окремо. Це може бути один з трьох варіантів:

- понеділок (19:00-22:00) та четвер (19:00-22:00);
- вівторок (19:00-22:00) та п'ятниця (19:00-22:00);
- середа (19:00-22:00) та субота (11:00-14:00).

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

Чи є заняття з англійської мови?

Так, на всіх курсах (крім “Основи Програмування”) передбачені безкоштовні заняття з англійської мови. Вони проводяться в неділю - час занять залежить від вашого вихідного рівня англійської мови.

Чи видається сертифікат після навчання?

Так, після успішного завершення навчання ви отримуєте сертифікат про закінчення курсу.

Курс завжди стартує у вказану на сайті дату?

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

Що відбувається, якщо група не набирається до старту?

Якщо в групі до анонсованої дати старту не набирається 50% студентів, ми зміщуємо дату старту на період до 2 тижнів, про що попереджаємо всіх студентів, які вже записалися до цієї групи. Навіть якщо протягом цього часу ми не набираємо жодної людини - ми все одно стартуємо навчання з тією кількістю студентів, яка є.

Де можна почитати відгуки про школу?

На сторінці кожного курсу є відгуки про курс. Також є сторінка всіх відгуків від компаній-партнерів та окрема спільна сторінка відгуків

Якщо я не маю досвіду, чи можу я навчатися у вашій школі?

Так. У нашій школі всі курси складені таким чином, що ви можете прийти на навчання абсолютно без знань у сфері - але зайвими вони не будуть. З корисною інформацією стосовно різних IT-курсів та напрямів ви можете ознайомитись ще перед навчанням у нашому блозі

Чи можу я почати вчитися з середини курсу?

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

Чи можна перевестися на наступний набір, якщо у мене виникли складності, і я зараз не можу відвідувати заняття?

Так, ми практикуємо переведення на наступний потік або на інший напрям, але тільки за умови наявності вільних місць у групі.

Хто ваші викладачі?

Викладачі в нашій школі - це практикуючі фахівці, які працюють в IT-компаніях, з досвідом не менше 3-х років. Кожен викладач проходить 3 етапи співбесіди, а також консультації з навчального процесу перед тим, як буде допущений до викладання в нашій школі.

Який мені потрібен ноутбук для занять?

Стандартний ноутбук для офісної роботи з мінімальними вимогами: процесор i3, ОЗУ мінімум 8гб та SSD 256 Гб.

Чи є у вас зворотний зв'язок на курсах?

Щомісяця адміністрація школи проводить анкетування студентів для збору зворотного зв'язку про викладачів, якість освіти та зручність навчання в нашій школі.

Договір та оплата

Як здійснюється підписання договору зі школою?

Є 3 варіанти підписання договору зі школою:
Договір підписується через електронно-цифровий підпис ПриватБанку та сервісу “paper less”;
Через електронно-цифровий підпис у сервісі “Дія” та електронний сервіс “Вчасно”
Відправлення договору у паперовому вигляді через Нову Пошту для підписання.

Які є види оплати за курси?

Виключно оплата за реквізитами на розрахунковий рахунок школи.

Який крайній термін сплати за курс?

При щомісячній оплаті - через кожні 8 занять. Тобто: раз на місяць в перше заняття навчального місяця.
Якщо двома частинами, то друга оплата має бути внесена на початку четвертого місяця (на 24-му занятті).

Чи передбачено повернення коштів за курси, якщо я не можу продовжувати навчання?

Згідно з договором, ви можете повернути 50% від вартості непройдених занять, що були оплачені. Повернення можливе з поважної причини та надання документів, що її підтверджують.

Чи можна ознайомитись з договором до запису на курс?

Так, ви можете звернутися з таким запитом до нашого менеджера. Ми надішлемо приклад договору на електронну пошту або в Telegram.

Чи можна сплатити готівкою?

Ні, оплата проводиться тільки на розрахунковий рахунок.

Працевлаштування

Як відбувається працевлаштування?

Школа веде студента від початку пошуку роботи до отримання ним офера, бере участь у всіх етапах співбесіди в кожній компанії. Школа надає додаткове заняття зі складання резюме та допомагає у комунікації з HR/Rec. Ближче до фіналу навчання рекрутер школи збирає резюме та подає на співбесіди до компаній-партнерів, які вже мають відкриті позиції та знають рівень наших студентів. Вони лояльно ставляться до студентів школи, оскільки багато випускників A-Level вже потрапили до наших партнерів.

Куди ви працевлаштовуєте?

Основні компанії, в які ми працевлаштовуємо випускників - це наші партнери, з якими ви можете ознайомитися на сайті A-Level.

Які умови потрібно виконати, щоб бути працевлаштованим?

Отримати сертифікат про успішне проходження курсів. Також обов'язковою умовою є відвідування занять з англійської мови.
Студент має брати активну участь в процесі працевлаштування: ходити на співбесіди, виконувати тестові завдання і давати фідбек школі по кожному етапу, щоб ми могли вже в процесі підкоригувати проблемні моменти.

На всіх курсах є гарантія працевлаштування?

На багатьох наших напрямках є працевлаштування, проте, на жаль, не на всіх. Але ми працевлаштовуємо на всіх напрямках, незалежно від гарантії. Найважливіше - це знання та бажання самого студента!

Чи можу я вибрати компанію для працевлаштування?

Студент може написати свої побажання - ми намагатимемося знайти максимально схожу до них компанію серед наших партнерів. Проте, найголовніше - це знайти першу роботу для наших студентів! На жаль, не завжди є крутий вибір.

Якщо я сам знайду роботу після курсу, мені повернуть гроші?

Ні, повернення коштів з цієї причини не передбачене.Найголовніша мета школи - це можливість для випускників знайти першу роботу. Але якщо студент знаходить роботу самостійно, ми вважаємо, що умови договору виконані, оскільки головна мета здійснена.

Профорієнтація

Як вибрати курс?

Ви можете звернутися за консультацією до адміністрації школи за телефоном або в Telegram. Адміністрація школи проведе консультацію, визначить ваші сильні сторони та допоможе обрати напрям. Також з описом кожного напряму ви можете ознайомитись у нашому блозі в статтях від викладачів та студентів

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

На кожній сторінці курсу є програма навчання та детальна інформація про технології, що вивчаються. Також ви можете прочитати детальніше про курси в нашому блозі в рубриці “курс очима викладача”

Чи можна поспілкуватися з викладачами до старту курсу?

Такої можливості немає, але ви можете ознайомитися з викладачами та школою на наших відкритих заняттях, які ми проводимо щомісяця. Стежте за нашими соцмережами та анонсами заходів. Також ви можете підписатися на розсилку, щоб не пропустити повідомлення про наші заходи.
Крім того, познайомитися з викладачами можна в нашому блозі

Процес навчання

Наскільки програми курсів в A-Level актуальні?

Програми курсів коригуються щомісяця: відповідно до нових трендів та оновлень технологій, які передбачені на курсах. Ви можете бути впевнені, що програма буде актуальною на той момент, коли ви будете навчатися на курсах.

На що більше робиться наголос у програмі курсів: на практику чи теорію?

Основний упор у нашій школі робиться на практику, щоб на момент випуску у вас був досвід роботи в команді з практичними завданнями. Завдяки цьому в реальному проєкті ви зможете почувати себе комфортно.

Чи є зв'язок із викладачем у позаурочний час?

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

Чи зберігається запис заняття, якщо я не зміг бути на ньому присутнім?

Так, кожне заняття записується. Ви матимете можливість переглянути заняття за потребою, якщо не змогли бути присутніми.

Чи надаватимуться методичні матеріали для повторення?

Після кожного заняття від викладача ви отримуватимете всі методичні матеріали, презентації, які використовувалися на занятті, а також додаткову літературу для самостійного вивчення.

А є домашні завдання?

Так, домашнім завданням приділяється окрема увага - їх буде багато.

Як проводяться заняття?

Заняття проводяться в режимі online через платформу Google meet.

Як ведеться комунікація з викладачами, групою та адміністрацією школи?

Комунікація ведеться через Telegram групу та електронну пошту.

Як часто проводяться зрізи знань (модулі)?

Модулі можуть проводитись у різні відрізки часу - залежно від курсу. Але в більшості випадків це - раз на місяць.

Чи видаватимуться додаткові методичні матеріали для самостійного вивчення?

Звісно так - таких матеріалів буде велика кількість.

Чи буде у мене якесь портфоліо після випуску зі школи?

Так, на кожному курсі студенти розробляють кілька невеликих проєктів та один великий - випускний. Всі ці проєкти будуть складати ваше портфоліо.

Що потрібно для отримання сертифікату?

Не менше 80% відвідувань занять
Не менше 80% зданих дз
Не менше 7 балів за модульні роботи та фінальні іспити (захист проєкту та технічну співбесіду)