1. Что такое Python?
Python (питон) - один из самых популярных языков программирования (занимает третье место по индексу TIOBE на декабрь 2018 года). Впервые он был выпущен в 1991 году и завоевал популярность благодаря простоте освоения, но мощному в решении задач. Синтаксис похож на синтаксис семейства C ++, но реализован во множестве современных решений.
Ключевые преимущества Python:
- Плоская кривая обучения. Он привлекает пользователей с небольшим техническим опытом, например ученых для исследований или бизнеса для автоматизации.
- Он принадлежит независимому Python Software Foundation (PSF) и управляется сообществом.
- Мощные научные инструменты (например, SciPy).
- Хорошая документация и поддержка сообщества. Это включает в себя множество локальных групп пользователей и конференций .
2. Что важно знать ИТ рекрутеру о Python?
Поскольку Python имеет множество применений. Часто бывает трудно отличить кандидатов от ученых, от сетевого программирования и веб-приложений до простых сценариев. Тем не менее, разработчику часто легче изучить новый Python, чем сменить домен (например, Data Science на веб-приложения).
В 2007 году был выпущен Python 3.0. Он был отклонен сообществом из-за обратной несовместимости. Это бросает вызов сообществу и по сей день, так как Python 2 и 3 по сей день отмечены почти одинаково. Python имеет динамическую типизацию, что упрощает создание сценариев и небольших приложений. Часто говорят, что это создает трудности при создании больших и долговечных приложений.
3. Как проверить навыки разработчика Python на этапе отбора?
Проверка утомительна, трудна и требует много времени. Обычно ИТ- рекрутеры обращаются к скринингу резюме, техническому отбору (тесты по кодированию) и собеседованиям, чтобы оценить навыки Python программиста.
Ниже вы найдете несколько полезных и практических советов по подбору ит персонала и как проверить навыки Python с помощью каждого метода.
3.1. Технический отбор навыков Python на основе резюме
К счастью (для подбора персонала), Python имеет меньше библиотек и технологий для проверки, чем, например, Java. И все же ряд вещей может сбивать с толку.
Язык Python: Популярная версия 2.6, 2.7, 3.4, 3.5
Веб-фреймворки Python: Django, Flask, Bottle, Tornado, web2py
ORM: SQLAlchemy, Django ORM
Инструменты сборки : Setup-tools, pip, tox
Фреймворки для тестирования: UnitTest, py.test, nose
Asyncio: Python 3.5, Tornado, Twisted
Инструменты анализа данных: NumPy, SciPy, Pandas
Особенности:
- Python 2 и 3 очень разные. Python 2.7 - это последняя (и последняя) версия Python 2. Версия Python 3 развивается, и последняя версия - 3.6.
- Asyncio встречается только в Python 3.
- Tornado, Twisted, Gevent - это библиотеки для асинхронного программирования.
- Django - безусловно, самый популярный веб-фреймворк.
- Библиотека модульных тестов встроена в язык, поэтому редко упоминается отдельно.
- Сертификация
Сообщество Python не предоставляет никаких программ сертификации. Поэтому редко можно встретить какие-либо (независимые) сертификаты для языка или библиотек Python.
Разработчики полного стека
Полный стек часто означает, что разработчик Python может также создавать HTML-страницы с помощью CSS и JavaScript. Навыки внешнего интерфейса приветствуются, и здесь применимы большинство знаний по проверке JavaScript .
3.2. Техническая проверка навыков Python во время телефонного / видео-интервью
Поскольку сделать достоверные выводы о навыках программирования кандидата из самого резюме довольно сложно, ИТ рекрутеры часто проводят телефонное или видео-интервью. Такое интервью дает возможность задать вопросы, касающиеся навыков Python. Во многих компаниях такое техническое интервью по телефону или видео является основой для принятия решения о том, приглашать ли кого-либо на техническое собеседование с ИТ командой или нет, поэтому стоит выбрать и задать правильные технические вопросы.
Поскольку сами вопросы могут варьироваться в зависимости от должности, на которую вы нанимаете, и конкретных навыков, которые вы хотите проверить, исходя из своего опыта, я бы рекомендовала следующие общие вопросы, чтобы узнать больше о навыках кандидата Python:
В1: С какими технологиями, перечисленными в вашем резюме, вы имели коммерческий опыт за последние 2 года? Каковы были ваши обязанности? Какое ваше самое большое достижение? Задавая этот вопрос, вы можете узнать больше об актуальном опыте кандидата, его обязанностях и достижениях. Таким образом вы лучше узнаете своего кандидата.
В2: Какие библиотеки Python с открытым исходным кодом вы считаете ценными и почему?
Этот вопрос позволяет кандидату продемонстрировать свои знания об экосистеме Python. Более того, кандидат может указать, что он учитывает при выборе той или иной технологии. В качестве дополнительных вопросов вы также можете спросить, в чем, по его мнению, преимущества коммерческих решений по сравнению с открытым исходным кодом и наоборот. Это показывает, как думает кандидат.
В3: Я заметил, что вы указали фреймворк X в своем резюме. Каково ваше мнение об этом? Это хороший выбор?
Такой открытый вопрос позволяет кандидату продемонстрировать свои знания, если они у них есть. Вы также можете сыграть в адвоката дьявола, основываясь на их ответах «Но почему бы не использовать для этого фреймворк Y?». Таким образом, вы можете увидеть, как кандидаты выбирают технологию, обосновывают свой выбор и совпадают ли его мнения с вашими ИТ-командами.
В4: На каком этапе вы присоединились к недавним проектам? Были ли вы вовлечены в выбор технологии или настройку проекта? Если да, то какую технологию вы выбрали или рекомендовали для проекта и почему? Такие вопросы показывают не только то, как кандидат делает выбор в отношении технологий, но также и то, были ли они включены в процесс принятия решений. Особенно важно, если вы ищете кого-то с опытом.
В5: Подумайте о решении по проекту программирования, которое вы приняли неудачным. Как вы думаете, почему это была ошибка? Почему так случилось? Можно ли сделать что-нибудь по-другому, чтобы добиться успеха? Какие шаги вы предприняли, чтобы улучшить ситуацию? Что вы узнали из этого опыта?
Этот тип вопросов поможет вам узнать, как кандидат воспринимает свои решения, делает выводы и сколько он извлекает уроки из своего предыдущего опыта.
3.3. Техническая проверка навыков Python с помощью онлайн- теста кодирования
Онлайн-тесты кодирования могут быть отличным способом проверить навыки Python. Ниже вы найдете информацию о том, как использовать тесты по программированию и какие из них выбрать.
Некоторые компании используют тест по программированию как дополнение к отбору кандидатов после анализа резюме и проведения телефонного или видеоинтервью. Но все больше и больше компаний обращаются к тестам кодирования как к первому методу проверки программистов. В настоящее время компании склонны приглашать всех кандидатов, претендующих на определенную должность, пройти тест. Таким образом, рекрутеры тратят свое время только на кандидатов, которые сдали экзамен, доказывая, что они обладают навыками программирования на Python. С другой стороны, кандидатов не просят посвящать слишком много времени процессу набора на раннем этапе - вместо этого они быстро проходят тест (обычно в течение часа) в удобное для них время и с точки зрения места.
Онлайн-тест на кодирование на Python - какой выбрать?
На рынке существует множество онлайн-тестов программирования Python, но обычно они проверяют знания кандидата, а не навыки программирования и способности решать реальные проблемы программирования. Вот почему многим опытным программистам не нравится такая оценка, и, более того, они не могут получить хороший балл, поскольку не могут показать свой опыт и навыки в решении реальных задач программирования.
Итак, какие функции должен иметь хороший тест на кодирование? Ниже вы найдете 5 моих лучших функций, которые вам следует искать: Тесты программирования на Python должны подтверждать не только навыки Python в отношении технологий в целом, но также фреймворки и библиотеки;
Тесты кодирования Python должны состоять из нескольких задач, не только тестов с множественным выбором, но, прежде всего, задач программирования, сложность которых должна соответствовать обязанностям кандидатов, которые будут иметь место, если они получат работу (тесты не должны основываться на алгоритмических задачах, как таким образом, вы не можете проверить, может ли кандидат решать реальные проблемы кодирования);
Желательно, чтобы задачи программирования на Python были подготовлены на основе собственного кода компании, поскольку это лучший способ имитировать проблемы, с которыми кандидат столкнется после получения работы;
Нет смысла запрещать программисту использовать внешние источники. Наилучший способ - создать среду, аналогичную той, которая была бы у них на работе, поэтому открытый книжный экзамен более уместен. Более того, кандидат должен иметь возможность использовать предпочитаемую им среду IDE так же, как он это делает ежедневно.