07.08.2022

Что должен знать Junior Python разработчик для устройства на работу

Сергей Немчинский
10 минут чтения

Язык программирования Python входит в тройку самых популярных ЯП. Он подходит для решения самых разных задач, от небольших приложений до корпоративных систем. Python работает на разных платформах и поддерживает принципы объектно-ориентированного программирования. Поэтому спрос на разработчиков Python велик.

Многие начинающие программисты обдумывают, стоит ли браться за изучение этого языка. Кроме самого процесса обучения, их смущают многие нюансы: нужно ли высшее образование, какие hard и soft скиллы нужны, какие книги прочесть и о чем будут спрашивать на собеседовании. Попробуем ответить на эти вопросы.

Нужно ли разработчику Python высшее образование?

Наверное, это самый частый вопрос, который задают будущие разработчики. Стоит ли тратить несколько лет на ВУЗ, когда можно потратить полгода на изучение языка программирования и идти работать? На этот вопрос нет однозначного ответа. Поговорим о плюсах и минусах высшего образования для программистов.

Потраченные годы

Четыре года понадобится отучиться в вузе, чтобы получить степень бакалавра. Возможно, это время можно использовать эффективнее.

Устаревшая программа

На то, чтобы добавить новые знания в программу ВУЗа, уйдут месяцы, а то и годы. За это время знания устареют, особенно в IT.

Некомпетентные преподаватели

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

Казалось бы, этих аргументов против высшего образования достаточно. Но есть и другая сторона.

Широкий кругозор

Это банально звучит, но вузовская программа расширяет кругозор. Кроме кода, полезно знать, как устроено общество, как функционирует экономика, что движет политикой.

Фундамент профессиональных знаний

Теоретические знания плохо монетизируются, но они закладывают основу для профессионального развития будущего программиста.

Навык самообучения

В вузе студент привыкает регулярно выполнять задания, читать учебную литературу, искать дополнительные источники информации. Если в дальнейшем придется изучать что-то еще, эти навыки пригодятся.

Диплом по специальности

Многие развитые страны имеют программу иммиграции Blue Card, с помощью которой привлекают квалифицированных специалистов. Для подтверждения квалификации потребуются документы с работы и диплом.

Недавно на сайте DOU проводился опрос об образовании у IT- специалистов. Выяснилось, что примерно у трети нет высшего образования, и больше половины обладателей дипломов работает не по специальности.

Так что не делайте однозначных выводов. Работать программистом можно и без высшего образования, но нельзя сказать, что оно бесполезно.

Требования к техническим навыкам

Требования к техническим навыкам junior python разработчика постоянно растут. Парадокс: разработчиков не хватает, а входной порог повышается. Индустрия пытается защититься от недоучек, которые приносят больше проблем, чем пользы. Что нужно знать, чтобы одолеть входной порог?

1.     Python, синтаксис, библиотеки, алгоритмы, структуры данных, и так далее.

Для позиции Python-разработчика это основной критерий. Обязательно также знать, где хранится документация.

2.     Фреймворки, например, Django или Flask.

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

3.     Базовые знания HTML\CSS.

Начинающий программист Python не обязан вникать в тонкости фронт-энд разработки, но общее представление необходимо.

4.     Реляционные базы данных.

SQLAlchemy, SQL, PostgreSQL, MySQL.

5.     Общие принципы работы интернета.

API, протоколы (http, https), JSON-RPC, Protocol Buffers, gRPC.

6. Linux, а также одну или несколько IDE.

Разработчику надо уметь настраивать рабочее окружение самостоятельно.

Кроме того, пригодятся следующие знания и умения:

1.     Agile\Scrum

Если даже вам не доводилось работать по этим методологиям, то хотя бы ознакомьтесь с общими принципами.

2.     Git

Умение работать с системами контроля версий будет требоваться постоянно.

3.     Микросервисы

Подробного знания микросервисов от новичка не будут требовать, но понимание их работы пригодится.

Список навыков, которые «хорошо бы» иметь, можно продолжать бесконечно. В него войдут и Amazon Web Services, и облачные технологии, и Machine Learning. Словом, все, что вы знаете на достаточном для работы уровне, пойдет в плюс: главное, не забудьте добавить эти скиллы в резюме и упомянуть о них на интервью.

Какие soft skills могут пригодиться?

На всякий случай напомним, что soft skills — это профессиональные навыки, не связанные непосредственно со специальностью. Развитые софт скиллы нужны и для поиска работы, и для дальнейшего продвижения.

Английский язык

IT всего мира говорит на английском. Справочная литература, новые технологи — все на английском. Кроме того, на этом языке вам придется говорить с иностранными коллегами, партнерами и даже клиентами. Без английского ваш карьерный рост будет медленным.

Общение

Большие задачи не делаются в одиночку. Хороший разработчик должен быть командным игроком и уметь эффективно общаться. Товарищи по команде, менеджмент, представители заказчика — со всеми этими людьми предстоит решать рабочие вопросы, а без развитых коммуникативных навыков это сложно.

Дисциплина

Приходить вовремя на работу и на митинги, вовремя отчитываться о задачах, отвечать на письма в течение дня — казалось бы, несложно, но сколько молодых специалистов этим пренебрегает!

Управление временем

Это часть общей дисциплины, но отдельно хотелось бы подчеркнуть необходимость work-life баланса. Разработчик, который не отдыхает и ничем не интересуется, кроме программирования, может быстро выгореть.

Общая адекватность

Описать этот скилл непросто. Но рекрутеры обычно отслеживают особенности поведения кандидата на собеседовании. Если у вас есть экстравагантные привычки, например, дома вы работаете раздетым, лучше это не показывать. 

Конечно, это далеко не все полезные soft skills, но эти мы считаем ключевыми.

Что будут спрашивать на собеседовании?

Собеседование будет состоять из нескольких этапов. На начальном этапе вопросы самые общие — вас спросят, на какую вы позицию претендуете, и другие элементарные вещи. Рекрутеру нужно убедиться, что работу ищете вы, а не ваша мама. Не поверите, как часто это случается, особенно у начинающих программистов. 

Затем будет нетехнический этап собеседования. Вас спросят, почему вы выбрали этот язык программирования, где учились, есть ли у вас опыт работы, словом, проверят бекграунд.

Вопрос «Кем вы себя видите через пять лет» тоже задают на этом этапе. Так рекрутеры пытаются выяснить, насколько вы амбициозны и нацелены на профессиональный рост. Кстати, в этой части собеседования можно упомянуть участие в хакатонах и других отраслевых ивентах.

Часть вопросов направлена на то, чтобы оценить софт скиллы, которые мы описали ранее. Уровень владения английским, стрессоустойчивость, подход к решению задач — все учитывается. Могут спросить, почему вы выбрали именно эту компанию. Поэтому полезно перед собеседованием прочитать, что это за компания и подобрать пару аргументов.

А затем вас ждет техническое интервью. Есть масса способов его проведения и сотни вопросов, которые вам могут задать. 

Общие вопросы: устройство компьютера, принципы работы интернета. Тут уместно рассказать о сетевых протоколах и что происходит, когда в строке поиска набираешь google.com.

Основы программирования: чаще всего спрашивают об основных принципах ООП. Если возможно, добавьте к описанию принципов примеры практического применения. 

Python: массивы и как они устроены, основные алгоритмы сортировки, типа данных, способы поиска. Не обойдется без вопросов по фреймворкам. Скорее всего, ваш технический интервьюер будет задавать довольно сложные вопросы. Не огорчайтесь, если на какие-то из вопросов не будет ответов: интервьюер не пытается вас завалить, а проверяет границы ваших знаний. Скорее всего, вам предложат тестовую задачу. Попросят ее решить или описать, как бы вы ее решали. 

Навыки создания кода: какие IDE вы знаете, умеете ли их устанавливать, подключать библиотеки и плагины, и так далее.

Базы данных: какие базы вы знаете, с какими работали, каковы их особенности.  

Какие знания будут плюсом

Компания-наниматель ищет не просто разработчиков, а тех, кто способен выполнять актуальные бизнес-задачи. Поэтому будут спрашивать то, что имеет отношение к этим задачам.

Например, если в работе компании значительное место занимает Data Science, то у junior python разработчика будут спрашивать о знании математики, анализа, теории вероятностей. Выше мы писали, что все это изучают в профильных вузах, но вполне реально освоить основы самому.

Если у вас есть учебные или личные проекты, перед собеседованием их стоит выложить на Git или на ваш сайт, чтобы показать на интервью. Хорошо, если демонстрация кода будет сопровождаться рассказом о том, какую задачу решал этот проект.

В целом мы бы рекомендовали в начале поиска работы проанализировать свои знания и скиллы и составить список. Бесполезных знаний не бывает, надо только уметь их правильно применять.

Какие книги нужно прочесть Junior Python разработчику

Главное имя, которое должен знать Junior Python разработчик — Марк Лутц. Он написал серию книг о разработке на Python, включая Python Pocket Reference. Этот карманный справочник лучше читать в оригинале, и в нем содержатся ответы и подсказки почти на все вопросы, которые могут возникнуть у неопытного разработчика.

Еще одна базовая книга для начинающих разработчиков — «Программируем на Python» Майкла Доусона. Автор предлагает освоить основы языка, создавая простые игры. Опытным разработчикам эта книга не пригодится, а вот для начинающих вполне подойдет.

А вот книга Марка Саммерфилда «Python на практике» подойдет и для опытных программистов. Мы ее рекомендуем еще и потому, что в ней описываются паттерны проектирования и правила их использования для создания хорошего кода.

Заключение

Сейчас ситуация на рынке IT-кадров складывается в пользу соискателей. Миру нужно больше программистов, поэтому толковых ребят буквально отрывают с руками. Даже начинающий программист может легко найти работу, если приложит усилия.

Для junior python разработчика лучший путь — освоить основы языка Python, познакомиться с фреймворками и базами данных, прочесть несколько книг по специальности и поработать над развитием софт скиллов. После этого можно начинать поиски работы, и очень скоро поиск увенчается успехом.