💳 Trustee Plus — твоя персональна картка європейського банку: 3 хвилини і 10 євро 👉
Марія БровінськаВойти в IT
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-канале