💳 Кожен. Повинен. Мати. Trustee Plus: криптогаманець і європейська платіжна картка з лімітом 50к євро 👉
Марія БровінськаУвійти в ІТ
21 грудня 2023, 10:00
2023-12-21
Мануал для джуна. Що має знати, вміти та вчити Junior Python Developer: розбір від практика та викладача IT-школи
Ми продовжуємо рубрику для айтівців-початківців, які шукають роботу. Сьогоднішній мануал — для тих, хто мріє підкорити IT. Про те, що треба знати, чого вчитися, щоб зайняти позицію Python Software engineer, розповідає Іван Рамик, Software engineer & Coach в mate academy.
Збільшилася кількість вакансій з аналітики даних та ML, тож варіативність позицій для Python-розробника розширилась. Але для цих напрямів треба додатково вчити numpy, pandas, matplotlib, методи обробки та візуалізації даних, базову математику.
Для веброзробників збільшилися вимоги так само як і на всьому ринку IT, питають глибше та ширше.
На які вакансії можна дивитися зі знанням Python
З хорошою базою Python можна подаватися на різноманітні вакансії, проте деякі напрями можуть вимагати додаткових навичок:
Web development — знання Python, БД, вебфреймворків (Django, FastAPI, Flask).
Data analytics — знання Python, SQL, інструментів для візуалізації (Looker, Power BI, Tableau).
Software Engineer in Test — знання Python та теорії тестування.
Чого очікувати на співбесіді для Web development
Теоретичні запитання
Python Core:
Чим відрізняються mutable та immutable об’єкти? Наведи приклади колекцій кожного виду.
Розкажи, як працює словник під капотом та про його переваги.
Яка різниця між поверхневими та глибокими копіями?
Яка відмінність між Iterator, Iterable, та Generator?
Поясни, що таке декоратор та наведи поширені приклади його використання.
Що таке descriptor та property і які проблеми вони вирішують?
Що таке Exception, навіщо їх використовувати? Як створити свій Exception?
Розкажи про PEP8 і чому він важливий?
Як працює Garbage Collector та що таке reference counting?
Інструменти роботи з файлами в Python.
Які бібліотеки для тестування ти знаєш та які можливості вони надають.
Класи та ООП:
Відмінність між класом та об’єктом.
Що таке спеціальні (магічні) методи та як вони використовуються?
Що таке абстрактні класи, навіщо їх використовувати?
Що таке перевантаження операторів?
Яка різниця між public, private та protected модифікаторами доступу?
Дай визначення ООП, чим ООП відрізняється від процедурного програмування?
Перерахуй принципи ООП та розкрий зміст кожного з них.
Наведи принципи SOLID.
Багатопотоковість:
Які проблеми вирішує багатопотоковість, коли слід її використовувати?
У чому різниця між процесом та потоком?
Що таке GIL? Навіщо він потрібен?
Наведи бібліотеки для роботи з багатопотоковим та багатопроцесним кодом.
Що таке IO-bound та CPU-bound задачі? Які підходи існують для прискорення задач цих типів?
Розкажи про бібліотеку asyncio та принцип роботи event loop.
Бази даних:
Яка відмінність між реляційними та нереляційними базами даних? Наведи приклади БД обох категорій.
Які існують види зв’язків між реляціями в БД?
Які види джойнів існують в SQL? У чому між ними різниця?
Як працює group by? Що таке агрегатні функції?
Що таке параметризація в SQL?
Що таке індекси в БД та яку проблему вони вирішують?
Що таке транзакції, перерахуй властивості ACID.
Як влаштовані ORM? Розкажи про можливості ORM яка тобі знайома?
Що таке міграції?
Django:
Що таке Django?
Поясни архітектуру фреймворку.
Як влаштована структура Django проєкту.
Що таке views? Коли використовувати function-based, а коли class-based?
Що таке моделі та темплейти в Django?
Що таке Django REST Framework?
Що таке серіалізатори, серіалізація та десеріалізація?
Як влаштований ViewSet?
Яка мета методів get_queryset та get_serializer_class у ViewSet?
Що таке JWT токени?
Практичні завдання
Як практичні завдання зазвичай пропонуються алгоритмічні задачі, приклади яких можна знайти на leetcode чи codewars. Розв’язуючи такі задачі треба звертати увагу на алгоритмічну складність отриманого розв’язку та намагатись досягти оптимальної складності використовуючи різні підходи та структури даних (dict, set).
Що може бути в тестовому
На позицію веб-девелопера
Зазвичай тестове полягає в розробці API або вебсайту на одному з популярних фреймворків — Django, FastAPI або Flask. Часто треба вміти:
налаштувати роботу бекенду з Postgres або іншою БД (іноді нереляційною);
спілкуватись зі стороннім API;
використати Celery для паралельних обчислень;
загорнути додаток у Docker.
Також гарною практикою буде завжди покривати код тестами, навіть якщо цього прямо не вимагається в умові тестового.
На позицію дата-аналітика
Частим прикладом є написання сервісів, які витягують дані з API, БД або вебсайту (шляхом скрепингу) та генерують звіти lkz візуалізації в дешборді (Looker, Power BI, Tableau).
Додаткові теми, які корисно розглянути
Вебпротоколи: TCP/IP, UDP, HTTP, HTTPS, web sockets.
Операційні системи, Docker.
Клауд (AWS, GCP).
CI/CD.
Алгоритми та структури даних.
Для аналітиків даних: numpy, pandas, matplotlib, інструмент візуалізаці (для початку вистачить одного з Looker, Power BI та Tableau).
«Бути найкращим джуном на ринку»
Своїх студентів ми вчимо, що для успішного працевлаштування необхідно бути найкращими джунами на ринку: знати більше й робити краще того, що вимагають. Те, що цього року ми досягли позначки 3300 працевлаштованих студентів навіть тоді, коли ринок праці є дуже складним, — свідчить про те, що наші підходи у навчанні працюють.
Для цього необхідно:
Сумлінно навчатися — не просто опановувати технології, а розбиратись, що лежить в основі, як вони працюють під капотом. Глибоко досліджувати мову програмування, роботу баз даних, архітектуру вебдодатків.
Розвивати soft skills — вкрай важливо вміти якісно спілкуватись в команді.
Працювати над проєктами — створювати власні, долучатися до волонтерських, обʼєднуватися в групи з однодумцями. В нас на курсах обовʼязкова частина — участь у групових проєктах, що гарно розвиває hard&soft навички та робить резюме цікавішим.
Прокачувати англійську мову — більшість якісних ресурсів створюються саме нею, вона необхідна для якісного вивчення технологій та складних технічних тем.
Запускай код прямо в браузері: найкращі онлайн-компілятори для C++, PHP, Python, Java, C#, Go і не тільки
Не завжди є доступ до улюбленої IDE, або час на її запуск. Але коли потрібно швидко перевірити якийсь простий функціонал або втілити нову ідею, стане у пригоді онлайн-компілятор.
Мануал для джуна. Python Developer: запитання на співбесіді, практичні завдання та поради для початківців
Джунів, які шукають роботу, проходять купу співбесід та отримують відмови замість оферів, під час війни побільшало. А все тому, що до співбесід необхідно ретельно готуватися.
dev.ua продовжує серію матеріалів про те, що треба знати джунам для проходження співбесіди й отримання омріяного оферу від першого роботодавця.
Олександр Ковтунов, Python Software engineer компанії Ajax Systems, який також проводить співбесіди для junior- і middle-фахівців, розповів про професію Python Developer і надав поради, як початківцям долучитися до професії.
112 відгуків на вакансії, $100 за тестове та робота мрії. Історія моделі з Луцька, яка об'їздила півсвіту, через пандемію змінила плани й тепер навчає IT інших
Надя Адамович — у минулому успішна модель. Та через пандемію зірвався контракт на роботу до Китаю, тому Надія змушена була працювати таргетологом, сушисткою, а згодом вирішила піти в IT. Нині дівчина — UI/UX Designer, заочно навчається на факультеті міжнародно-економічних відносин у Луцькому політехнічному інституті та працює ментором у Mate academy. Розповідаємо її історію, що надихає.
Хочу стати програмістом. З чого почати і як вибрати між Java Script, PHP, Python та іншими
Діана Смелікова, операційний директор Wezom Academy, у своєму блозі на DOU пояснила, з чого почати вивчати програмування та яким мовам варто налагодити перевагу на початковому етапі. Ось 5 важливих порад від неї.
Хочете повідомити важливу новину? Пишіть у Telegram-бот
Головні події та корисні посилання в нашому Telegram-каналі