Python — самый быстрорастущий язык программирования за последние несколько лет. Специалисты по Python востребованы на рынке труда. Поэтому многие начинающие программисты и задумались об изучении этого относительно простого и современного языка программирования, но овладеть навыками программирования на Python – только половина пути к успеху. Остается найти место работы, которое будет устраивать и по уровню заработной платы и по удобству рабочего графика. Поиск работы мечты возможен с помощью большого количества сервисов. Предлагаю рассмотреть некоторые из них.
Если хотите работать только на себя и не зависеть от рабочего графика, хотите сами выбирать сколько работать и соответственно сколько зарабатывать, то идите на фриланс биржи:
На Kwork нет никаких платных подписок и неоплачиваемых тестовых заданий, работайте сразу и без вложений, а платой за сервис будет 20% с каждого заказа. Выше оборот с клиентом – ниже комиссия, если достигнуть цифры в 300000, то комиссия снизится до 7,5%. Здесь вы сможете как предложить услугу, так и откликнуться на предложение заказчика, размещенное на бирже. От скорости и качества выполненной работы будет зависеть ваш рейтинг, а от рейтинга уже зависит степень доверия работодателя и соответственно вероятность получения нового заказа. Из-за популярности Кворка фрилансеры вынужденно занижают стоимость работы, чтобы получить заказ, но это проблема не столько Кворка, сколько всего фриланс рынка.
На Kwork Python-разработчик может брать заказы по направлениям:
Доработка и настройка сайта;
Создание сайтов;
Скрипты и боты;
Мобильные приложения;
Сервера и хостинг.
Еще одна популярная биржа, но без платной подписки не получится брать заказы. PRO аккаунт стоит 2500 рублей. Тут уже каждый для себя решает стоит ли платить за возможность работы, при условии, что заказы никто не гарантирует.
Специалист по Python может выбирать из этих разделов:
Разработка сайтов;
Программирование;
Разработка игр.
Если предыдущие фриланс биржи предоставляли возможность работать фрилансерам разных специальностей, то Хабр Фриланс создали специально для работников сферы информационных технологий. Из минусов: в сутки получится откликнуться только на 5 предложений. За возможность откликаться на большее количество заказов сервис берет плату 99 рублей за один отклик. Возможно купить безлимитное количество за 270₽ в сутки, 490₽ в неделю, 1200₽ в месяц или 7300₽ в год. Также биржа не регулирует платежи менее 3000 рублей, что не подходит новичкам, ведь им доверяют заказы меньше этой суммы.
На Хабр Фриланс намного больше, чем у конкурентов, разделов, посвященных разработке на Python.
Выбор бирж в СНГ огромен, но они не без недостатков. Остается искать заказчиков за границей. Upwork позволяет работать с нанимателями из разных стран. На этой бирже заказчики готовы платить больше, но и требования у них соответствующие. Если ваш уровень английского позволяет работать с иностранцами, то определенно стоит попробовать зарегистрироваться на Upwork. Сервис не просит оформить платную подписку или же купить право откликаться на заказы. Биржа берет 20% с выполненного заказа. То есть вы можете начать зарабатывать без вложений.
Итак, чтобы работать только на себя, нужно идти во фриланс. Как мы уже поняли, фриланс бирж много и перечисленные в статье – малая часть ассортимента, представленного на рынке труда. У каждой площадки свои минусы и плюсы, и каждый преследует свои цели и задачи, но для всех бирж действуют следующие правила:
- Необходимо внимательно заполнять профили и портфолио, чтобы работодатель сразу оценивал ваши способности и понимал отдавать вам заказ или нет.
- Придется потрудиться для получения первых заказов, ведь без хорошего рейтинга и отзывов заказы будут добываться с трудом. Со временем, когда в вашем профиле будет много положительных отзывов с заказами проблем не будет.
- Не стоит беспокоиться насчет безопасности сделок. Если следовать правилам биржи, то вы и ваши честно заработанные деньги будете защищены. Везде техподдержка решит проблему и заминок с выводом или получением денег не возникнет.
С темой фриланса мы разобрались, но что делать тем, кто хочет работать в крупной IT компании? Нужно идти на популярные сайты по поиску вакансий:
Это крупнейшая российская компания интернет-рекрутмента. С hh.ru сотрудничают свыше 350 тысяч компаний. Среди них присутствуют такие IT-гиганты, как Yandex, Ozon, Nvidia.
По запросу “Python разработчик” (Стоит писать без дефиса. Так hh.ru и другие сайты находят больше вакансий) сайт выдает 9751 вакансию.
Как и на фриланс биржах вы можете как откликнуться на вакансию, так и разместить свое резюме, чтобы работодатели сами нашли вас. Если вы специалист высокого уровня вас непременно заметят и предложат высокооплачиваемую должность.
На сайте гибкая система фильтров, где можно подобрать вакансию по разным параметрам. Даже без опыта работы велики шансы найти должность стажера или junior-разработчика. Также hh.ru рассылает письма на электронную почту с подбором подходящих вакансий. Если вам ответил работодатель, то сразу же приходит уведомление на e-mail, что избавляет от необходимости постоянно открывать сайт для проверки.
Авито – известный российский сайт по предложению услуг.
По запросу “Python разработчик” сайт выдает маленькое количество предложений. Видно, что IT компании не заинтересованы в поиске сотрудников через Авито. Фильтры для поиска не гибкие, например, отсутствует возможность выбрать проф. область компании.
Еще один проект Хабра, соответственно Хабр Карьера предназначен исключительно для IT-шников.
По запросу “Python разработчик” сайт выдает почти 3000 вакансий. На площадке присутствуют многие топовые российские IT компании: Яндекс, Лаборатория Касперского, 2GIS, Tinkoff, МТС, Билайн, Сбер. Предложения сортируются даже по профессиональным навыкам, что очень удобно.
Параллельно с поиском на специализированных сайтах не лишним будет и отсылать резюме в интересные вам компании. Контакты для связи можно найти на официальном сайте организации.
Теперь стало ясно, на каких сайтах стоит подбирать подходящие вакансии, чтобы трудиться на благо чужой компании. Если же вы хотите основать свою компанию и быть как Стив Джобс, Билл Гейтс или Павел Дуров, то запускайте стартап. Этот путь подразумевает огромные риски. В один момент можно потерять все, и это не преувеличение. Неудавшийся стартап может обречь на вечное выплачивание кредитов. Однако если у вас в голове засела гениальная идея, вы толковый разработчик с предпринимательской жилкой, лидерскими качествами и непреодолимым желанием покорить мир – ищите инвесторов, нанимайте команду и работайте над личным проектом.
Популярные места поиска работы мы уже рассмотрели, но остаются еще не самые очевидные, но не значит бесперспективные способы поиска.
Telegram-каналы
В этом мессенджере много полезного для разработчика контента: каналы с технической литературой, тематические чаты, а также каналы, где публикуются вакансии, которых нет на популярных сайтах, можно найти каналы, которые специализируются именно на Python и регулярно получать информацию о новых вакансиях.
В постах компании сразу выдвигают требования к будущему сотруднику, обозначает навыки и умения, которыми он должен обладать. В роли фильтров здесь выступают хэштеги. Вакансии добавляются несколько раз в день.
Личные связи
Те, кто учился или учится в ВУЗе на одну из IT специальностей могут попросить своих преподавателей, чтобы они рассказывали о вас знакомым работникам местных компаний, которые заинтересованы в поиске молодых и талантливых разработчиков. Если вы были хорошим студентом, то наставники будут только рады помочь устроиться на высокооплачиваемую должность.
Не лишним будет и самому поднапрячься и постепенно обрастать выгодными знакомствами из мира технологий. Полезно иметь товарищей, которые могут позвать работать к себе в компанию.
Язык — лишь малая часть того, что вам нужно знать. Может быть около 5%, а то и меньше.
Эта статья повторяет и дополняет содержание моего выступления «Что отличает джуниора от сеньора или как питонисту не иметь проблем с поиском работы» на последнем MoscowPython Meetup 39. Многие обращались ко мне после выступления с вопросами и я обещал опубликовать статью на Хабре и обсудить в комментариях.
Под катом вы найдете ответ на тему статьи
и немного оффтопа
. Имейте ввиду, что эта статья написана мной лично, по моему практическому опыту, так как у меня редко когда-либо возникали трудности с поиском работы. Она может отличаться от опыта других людей и я буду очень рад любым дополнениям и исправлениям, если я в чем-нибудь неправ.
Ответы будут чуть ниже
Сперва расскажу о результатах опроса с митапа (если кто был там или слушал трансляцию):
Кто же приходит на митап?
Из поднявших руки примерно по трети — джуниоров, мидов и сеньоров и совсем немного — тимлидов и технических директоров. При этом подняли руки примерно половина и кто остальные — остается загадкой
Есть ли вообще проблема?
Далее на митапе я спрашивал есть ли у присутствующих проблема поиска работы. Для неуверенного большинства проблем нет, но соотношение, на вскидку, примерно 60/40 (из тех кто поднял руки). Так что тема определенно актуальна и статья многим может стать полезной.
Как устроиться работать джуниором?
Это почти самый популярный вопрос, на который я отвечу так: работодатель вряд ли наймёт вас, если вы вообще ничего не знаете и не имеете никакого опыта. Весьма редко работодатели нанимают джуниоров и это зачастую что-то типа экперимента — вдруг поймаем реально таланта, который резко станет мидом, а мы сможем платить ему зп джуниора? Поэтому мой вам совет: не старайтесь устроиться джуниором, а лучше как следует изучите то, что здесь написано и сразу цельтесь в миды. Многие не знают и половины того, что надо и их берут только из-за «опыта» (зачастую бестолкового). Короче не бойтесь и не считайте себя ни на что не способными, вооружайтесь знаниями, практикуйтесь и ничего не бойтесь!
Что нужно знать
- Английский язык. Он нужен для чтения документации, примеров на stackoverflow и статьей
, а так же чтобы клеить иностранок, когда будете ездите в отпуск. Многие в России имеют печальный опыт обучения языку в школе и в институте, но на самом деле, ребят, это действительно на 95% проблема системы образования, а на остальные 5% — отсутствие реальной необходимости в языке. Не существует людей (не считая немых и больных амнезией), которые не смогли бы научиться говорить на английском, а уж тем более свободно читать. Почти все вы уже умеете читать со словарем и для начала этого вполне достаточно. - POSIX-операционная система. Конечно с появлением docker и прочих vagrant’ов это стало не так критично как ранее, но все же работать на UBUNTU или MacOS на порядок комфортнее из-за нормальной нативной консоли (особенно под убунтой) с ее командами ls, cd, cat, ps, grep, kill, killall, vim, ssh, cp/scp и множеством других, используемых ежедневно в работе. Оболочка bash, переменные окружения, ssh и ключи доступа к удаленным машинам — все это используется весьма и весьма часто. Как изучать? Да никак особо, просто установите и пользуйтесь, постепенно само все изучится, ну можно статейки по отдельным командам посмотреть.
- Python и его структуры данных. Структуры данных называются в питоне немного иначе, чем в других языках. Для изучения синтаксиса я настоятельно рекомендую самый обычный туториал на официальном сайте, он отлично написан — если не сильны в английском заодно и попрактикуете. Помните, если вы собираетесь работать питонистом, то английский нужен будет постоянно.
- Библиотеки Python. Именно знание их в основном от вас будут ожидать работодатели. О существовании некоторых достаточно просто знать, а некоторые нужно знать хорошо. Django сейчас в тренде и хорошее знание этого фреймворка сильно упрощает поиск работы. Вкратце: с одним лишь знанием языка вы нафик никому не нужны. Нужно иметь представление о популярных библиотеках, а найти список таких можно просто полистав вакансии.
- Форматы данных XML, HTML, JSON. Это форматы данных, без которых нынче никуда. Для изучения XML я рекомендую почитать документацию lxml (и попробовать все примеры оттуда), для HTML — htmlbook.ru, для json — хотя бы просто погуглите что это.
- Протокол HTTP. Имхо, самое полезное в нем это знать статусы сообщений HTTP, что такое cookies, session, заголовки, тело и reason. Мне кажется статьи в википедии хватит для начала, но может кто подскажет хорошую статью?
- Базы данных. Их можно изучать годами — настолько обширная тема и хорошее знание баз данных, умение оптимизировать структуру и запросы необходимы чтобы стать ведущим разработчиком с большой зарплатой. Но для начала вам нужен хотя бы минимум — уметь установить СУБД и знать что такое INSERT, UPDATE, SELECT, JOIN, GROUP BY для реляционных баз. Лично я рекомендую PostgreSQL, так как она хорошо поддерживает гео-данные, которые нынче в каждом втором стартапе. Помимо реляционных, вам надо знать, что есть ещё noSQL типа Mongo (и зачем они нужны) и key-value хранилища типа Redis.
- (очень желательно) Javascript, jQuery и прочие AngularJS. Сейчас все больше сайтов уже не генерят HTML, а асинхронно обмениваются с сервером информацией и ее отображают. Надо понимать зачем это все и из этого вытекает следующий пункт.
- (желательно) Архитектуры информационных систем. Фактически хорошее понимание архитектур вкупе с хорошим знанием баз данных делает вас сеньором. www.insight-it.ru — к сожалению мало обновляется последнее время, но даже то что там есть я нахожу крайне полезным.
- (желательно) Еще один тренд — это асинхронное программирование. Это не является чем-то необходимым для того чтобы найти работу, но это может быть вектором для дальнейшего развития.
Не пугайтесь такого большого списка. Английский и ОС изучаются по ходу, не нужно отдельно тратить на это месяцы и годы; Python, основы баз данных, форматы данных, HTTP изучаются за считанные дни, доскональное их знание не требуется, если это не отмечено в вакансии отдельно. Изучение архитектур, знакомство с Javascript — этим конечно можно заниматься годами, но для начала тоже можно лишь ознакомиться.
Пожалуй, единственное что я настоятельно рекомендую, это освоить какой-нибудь фреймворк и сделать что-нибудь реальное, что можно будет показать. Готовый сайт, пусть даже простой, выложенный на хостинге — это показатель того, что вы освоили каждый из множества небольших шагов на пути.
Постойте, а как же алгоритмы?
После митапа ко мне подошел один парень и спросил «а как же алгоритмы?». За 6 лет работы Python-разработчиком мне довольно редко приходилось писать что-то действительно не тривиальное, в основном все сводится к каким-нибудь манипуляциям с данными, их преобразование из одной формы в другую для дальнейших нужд ну и элементарная логика уровня школьной информатики. Чаще всего все алгоритмы давно реализованы в рамках специфичных библиотек и легко доступны.
Что нужно уметь?
- Читать чужой код — если не умеете, то фактически вы не умеете пользоваться существующими ресурсами и каждый раз будете пилить велосипед. Как правило это не эффективно (ну давайте может быть еще язык программирования каждый раз снова создавать под каждую задачу?). Со временем вы поймете, что иногда быстрее написать что-то свое, но по началу — старайтесь учиться у других. Даже если вы в итоге решите писать что-то свое, у вас будет уже хоть какое-то представление о том как надо или как не надо делать.
- Владеть IDE — это и ускорение написания кода и возможности отладки, тэстирования кода, подсказки ошибок и недочетов, где вы не следуете гайдлайнам, множество полезных инструментов. Я рекомендую PyCharm или PyDev — они достаточно зрелые и имеют хороший функционал прямо из коробки.
- Сразу осваивайте и пользуйтесь стандартными инструментами — virtualenvwrapper, pip. Недавно наткнулся на pyenv — имхо тоже хорошая штука.
- Немножко сисадминить — это пересекается со знанием ОС, рано или поздно надо все-таки уметь настраивать софт на сервере где ваше приложение/сайт будет жить (Дима, привет).
- Совсем забыл сказать на митапе и ребята подсказали: конечно же системы контроля версий — хотя бы только git, но не помешают и mercurial с svn — мало ли где с ними столкнетесь. НИКОГДА не используйте архивы и прочий PHP-стайл. Владение git должно быть чуть ли не выше, чем самим Python, если вы устраиваетесь на работу в команду. Посмотрите github.com, bitbucket.org.
- (желательно) освоить такие средства как vagrant, docker, puppet/chef/ansible, fabric — если у кого в этом пробелы, советую Moscow Python Conf, я вот сам пойду, если будет возможность.
Все это — постоянно используемые в работе инструменты, без знания которых даже отлично владея языком вы будете обузой для команды, потому что либо вы будете медленно работать (не используя IDE), либо постоянно писать велосипеды не используя существующие решения (не читая чужой код; особенно извращенная форма — не изучив даже код своих коллег в рамках проекта), будете испытывать проблемы с переходом на новые версии используемых библиотек (не используя virtualenvwrapper), дергать других при любой задаче связанной с сервером (не имея элементарных навыков админа), создавая лютый зуд в заднице коллег косячными коммитами (не зная git). Вас проще будет убить, чем прокормить в команде, а ваша эффективность может быть даже отрицательной, потому что другие могут тратить время на исправление ваших косяков и помощь вам. Поэтому потратьте немного времени, освойте эти инструменты, это тоже совсем-совсем не долго.
Что нужно понимать
С этого я начал свое выступление на митапе, потому что в устном выступлении сперва надо было наладить контакт с аудиторией, но здесь я постарался это сократить.
Помните, что для работодателя вы — инструмент решения бизнес-задач, которые в будущем должны принести ему выгоду. Поэтому фактически ваша задача на собеседовании убедить его, что платить вам зарплату — выгодное вложение денег. Вас нанимают не по клавиатуре стучать, а генерировать прибыль.
Язык — лишь малая часть того, что вам нужно знать. Может быть около 5% или даже меньше.
Таблица соответствия того, что нужно работодателю и как вы можете ему с этим помочь
Мечта работодателя | Что от вас требуется |
---|---|
делегирование — поставил задачу и её сделали правильно без твоего участия | не боитесь брать на себя ответственность и достаточно компетентны |
скорость разработки (основное преимущество питона) | владеете языком, знаете сторонние библиотеки и понимаете, что скорость разработки очень важна |
надежность системы | тэстирование собственного кода насколько это возможно или требуется |
поддерживаемость (еще одно преимущество синтаксиса и рекомендаций питона) | знакомство с гайдлайнами (pep, import this) и по возможности следование им |
эффективность системы | знакомство со свежими технологиями, библиотеками и другими приложениями |
эффективность разработчика | заинтересованы в проекте. Тут я советую действительно выбирать проекты, которые интересны. |
предсказуемость, возможность планирования | ваши планы на ближайший год ясны |
Интересно что он ей такое сказал на самом деле?
Советы
- Развивайте коммуникацию. Когда ищете работу — ходите на как можно больше собеседований. Успех собеседования напрямую зависит от навыка коммуникации и она отлично оттачивается на собеседованиях.
Вот вам пример
Приехали мы как-то в баню, и там чувак вениками орудует. А я веников 3 года не видал — в Азии туго с ними. Ну я ему “ого, братюня, фартануло тебе, где ты веников раздобыл?”. Он мне: “да вот привез с собой из России, че хочешь я тебя тоже напарю?”. Ну я не дурак отказываться, конечно. Пообщались с ним, нормальный такой чувак. Ну и разъехались по домам. Через пару недель опять приезжаем — там он же, опять с веником, стали снова общаться, он меня и спрашивает, мол, “а ты вообще чем занимаешься?”. Я говорю ну так-сяк, вот коворкинг у меня свой, а в свободное время на питоне программирую. Он “да ладно? Мне как раз питонщики нужны”. Оказался он основателем небезызвестной компании и я до сих пор с ним работаю.
Помимо собеседований рекомендую играть в мафию (только не по турнирным правилам, а таким, когда возможна дискуссия, но чтобы без балагана — это очень круто тренирует нервы и навык общения), ходите на хакатоны, митапы, конференции. Не пропустите, кстати, Moscow Conf, такие конференции даже не каждый год бывают — это вам не митап двухчасовой, а реально можно за день наобщаться с опытными ребятами, позадавать вопросы спикерам.
- Навык продаж. Этот навык позволяет иметь ЗП выше рыночной. Вряд ли конечно вы побежите работать продавцом, но если у вас есть такой опыт, то считайте это плюсом.
Антипример:
Жил у нас в коворкинге один парень — крутейший JS-программист, уровня сеньора с зп 120000+. Работает за 80, потому что неловко себя чувствует на собеседованиях, не может себя правильно позиционировать.
- Привирайте. Слегка, ну может процентов на 20, не больше. Например, можно сказать, что вы знаете что-то, о чем вы всего лишь слышали или слегка знакомы.
Правда жизни
Правда жизни в том, что как правило, никто не держит в голове все что он когда-либо делал. Сколько есть случаев, когда человек начинает искать ответ на какой-то вопрос, а находит свою собственную статью на эту тему 1-3 годовой давности. В конечном итоге работодателю как правило важно чтобы вы умели решать поставленные задачи, а не были ходячей энциклопедией.
- Чаще меняйте работу. Профессиональный рост на новом месте работы длится обычно порядка 2-3 месяц, изредка до полугода, потом начинается рутина и мало нового. Чтобы этого избежать, надо как можно чаще менять место работы (примерно раз в полгода-год). Как вариант — переходить на другую должность или в другой проект в рамках одной крупной компании, но если вы засиделись на одной позиции уже год и никаких изменений не предвидится — смело уходите.
Исключения
Исключения для этого совета: если вам ну очень интересен проект в котором вы работаете и/или у вас есть опцион и проект явно ждет успех.
UPD Этот пункт вызвал много споров в комментариях. Дело в том, что вас нанимают не за карму, а за ваше умение делать работу. Сидение 5 лет в одной конторе и делание одного и того же все это время сделает из вас мастера делать это одно и то же, но не сделает вас действительно хорошим специалистом. Умение решать любую задачу — это ценно, для этого вам надо сталкиваться с как можно большим количеством различных задач. Не надо впадать в крайности и менять работу каждые 2 месяца — это конечно чересчур (но и бояться уйти с говноработы где вам реально не нравится тоже не стоит — уходите и не парьтесь). В конечном итоге удержать вас в проекте — это головная боль работодателя, а не ваша. Это немного цинично, но это лишь совет и вам самим решать. Просто имейте ввиду — если вы уйдете с работы где как вы чувствуете у вас остановилось развитие или тем более вам что-то не нравится — скорее всего будет хорошей идеей.
- Изучайте смежные отрасли, новинки, новые библиотеки. Дедушка Ленин завещал ведь.
- Работайте за валюту напрямую на иностранных работодателей. Хорошим специалистам — на toptal.com, попроще — на upwork.com. С хорошим английским переехать в США, Австралию, Германию и прочие Великобритании дело вообще не хитрое.
как я английский выучил
Сперва я 9 лет изучал английский в школе, потом 3 года в институте и уже мог разве что читать и переводить со словарем. Потом я несколько лет оттачивал навык чтением документации, но сказать сложнее «how much for coconut» получалось с трудом. Первым действительно эффективным шагом был просмотр видеоуроков Дмитрия Петрова «Полиглот» с канала Культура, следующим шагом — практика общения с иностранцами в нашем коворкинге на Пхукете, ну а совсем легко стало после женитьбы на филиппинке. Кроме всего прочего один мой знакомых открыл школу английского с уникальным методом, который позволяет за месяц-два обучиться, правда это на Пхукетике опять же.
- Идите вообще на воркшоп. В США это нормальная практика — окончив школу (даже не вуз, представьте себе) пойти отучиться 2-3 месяца на воркшопе и всё — ты уже востребованный специалист, который без труда найдёт высокооплачиваемую работу наравне с выпускниками вузов и с опытом работы. Это мне рассказал один молодой-парень, американец, который жил у нас в коворкинге и прошёл именно такой путь. У нас в России такой практики пока, к сожалению, нет (чаще это трата 5 лет в вузе, просто курсы синтаксиса языка, который, как я надеюсь вы поняли — лишь малая часть того, что нужно знать). После митапа у меня возникла идея организовать воркшоп, но в конце октября я уже улетаю обратно в Азию и просто не успею провести его здесь. Поэтому если есть желающие уехать на зимовку вместе с нами, а заодно научиться всему тому, что я тут написал — пишите в личку, что-нибудь придумаем.
UPD: В комментариях выразили мнение, что эта статья относится только к веб-разработке на питоне. Это не совсем так, просто веб-фреймворк Django, который я советую к изучению является самым востребованным на данный момент в чем легко можно убедиться. Вы можете запросто выбрать другое направление и большая часть статьи так же останется актуальной, но легко ли вам будет найти работу — я не знаю. Более того, совет про изучение других популярных библиотек именно на то и нацелен, чтобы вы не ограничивались только лишь Django и расширяли свои знания по другим направлениям.
Буду бесконечно признателен за любые дополнения и постараюсь оперативно добавлять их в статью! Про орфографию пишите, пожалуйста, в личку, чтобы не засорять комментарии.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Так как у вас с поиском работы?
32.44%
вообще без проблем!
291
27.2%
ничего найти не могу
244
40.36%
ни разу не пробовал
362
Проголосовали 897 пользователей.
Воздержались 348 пользователей.
Python и фриланс – насколько это совместимые вещи? Фриланс настолько разнообразен, что там есть место специалистов с абсолютно любым навыком, тем более, если навыком является знание языка программирования.
Фриланс выгоден для всех:
для начинающих специалистов – это способ получить первый или дополнительный опыт, а также проекты в свое портфолио;
для заказчиков – это способ качественно сделать работу за куда меньшие деньги, чем если заказывать в других местах.
Да, во фрилансе есть риск и для фрилансеров, и для заказчиков:
фрилансер может «нарваться» на заказчика, который не оплатит его работу или оплатит, но не полностью, или будет требовать больше, чем входит в заявленную стоимость;
заказчик может «нарваться» на фрилансера, который сделает работу некачественно и не правильно или сделает работу не вовремя.
Но где нет риска?
Python и фриланс
Python — это популярный язык широкого назначения, на нем можно разработать много чего. Поэтому на фриланс-биржах очень много работы по этому языку, например:
сделать бота для Телеграм;
доработать сайт на Django;
создать регистратора аккаунтов;
создать бота для игры;
разработать программу для Linux;
написать парсер;
доработать нейронную сеть;
написать скрипт для рассылки писем или сообщений в соцсетях;
написать/исправить скрипты для Raspberry PI;
дать консультацию по проекту на Python;
доработать серверное приложение на Python;
backend на Python и др.
То есть тандем Python и фриланс существует и он очень разнообразен. Есть большой список различных задач на Python, на которых может заработать «питонист» во фрилансе.
Однако имеется маленькая загвоздка. Выучить Python не сложно, можно в течение нескольких недель освоить основы языка и начать на нем что-то кодить. Но для работы во фрилансе знаний чистого Python будет недостаточно. Для того, чтобы зарабатывать, нужно изучать еще и смежные инструменты. То есть, если вы стоите на самом старте и хотите уйти во фриланс со знаниями Python, то нужно сразу определиться, в каком направлении вы будете двигаться:
веб-разработка;
разработка программ и ботов;
работа с нейросетями;
работа с базами данных и серверами и т. д.
Отталкиваясь от направления вашей будущей работы, нужно будет подбирать соответствующие вспомогательные инструменты к знаниям по Python.
Python и фриланс: сколько можно заработать
Любой фриланс рассчитан не только на начинающих, но и на профессионалов по Python. От уровня вашего профессионализма и будет скакать ваш заработок. Назвать точную сумму вряд ли будет правильным. Потому что известны случаи, когда Python-фриланс начинает приносить по несколько сотен долларов в месяц уже на второй-третий месяц обучения. А спустя полгода, заработок может доходить и до 1000 долларов в месяц, если получится пристроиться в какой-нибудь интересный долгосрочный проект. И это – на постсоветском пространстве.
Если уходить на «западные рынки», то там ситуация во фрилансе поинтереснее. К примеру, на американских биржах фриланса заработки по Python начинаются от 10-80$ в час. Разброс большой, потому что проекты разные. Но для работы на американских биржах требуется отличное знание английского языка для коммуникации с англоязычными заказчиками и минимальный опыт.
На отечественных биржах можно «отхватить» проекты вообще без опыта, и английский язык практически не нужен, но и заработок будет намного ниже.
Еще ценообразование нужно отделить по опыту:
Python-фриланс для начинающих можно начинать на биржах фриланса за небольшую стоимость, где сложно говорить о каких-то серьезных заработках, но можно говорить о первом опыте и первых проектах в портфолио;
Python-фриланс для специалистов с опытом, где работу можно искать на специализированных площадках, наподобие hh.ru или GitHub, здесь требований к специалисту будет больше, но и заработок будет больше.
Как понять, что для вас уже открыт фриланс на Python
Чтобы начать фриланс на Python нужно обладать знаниями, которые можно уже продавать. Но где та грань, когда уже можно заходить во фриланс на Python? Этот вопрос мучает всех начинающих фрилансеров.
Многие ставят себе такую «планку для старта»: когда буду уверен/уверена, что знаю Python на 100%, ну хотя бы на 99%, то сразу пойду во фриланс и начну зарабатывать большие деньги. Такого не будет никогда. В смысле, вы никогда не будете знать Python на 100%. Чем больше вы будете изучать возможности этого языка, тем больше вы будете понимать, что вам еще очень многое нужно выучить. А еще печальнее для вас станет осознание того, что есть люди, которые больше вас знают Python, и поэтому перед ними больше открыто возможностей для заработка. Вы будете изучать то, что знают эти специалисты, считая, что это «потолок», но изучив, вы найдете других специалистов для ориентира, которые знают больше. В общем, эта «гонка» будет продолжаться бесконечно. Хотя бы потому, что сам Python постоянно развивается и обрастает новыми возможностями и инструментами. Пока вы будете изучать одни его возможности, в это время будут появляться другие.
Ну, и когда же начинать, спросите вы. Вы не поверите, но во фриланс на Python нужно заходить в тот момент, когда вы начали его изучать и уже написали свой первый небольшой скрипт из5 строчек кода (5 строчек кода — это условность!).Так устроен мир программирования, что на специалиста любого уровня можно найти работу во фрилансе.
На практике это происходит примерно так. Вы только начали изучать Python. Идете на биржу фриланса и видите условный заказ «Написать бота для Телеграм за 1000 р».
– О, первая 1000 р!,- думаете вы, оставляете заявку и получаете этот заказ.
В этот момент вас просто интересует получение опыта, плюс, возможность заработать небольшие деньги. Сделали вы таких 10-20 ботов, подучились, набрались опыта и понимаете, что такие боты стоят 3000 р, а не 1000. И за 1000 вы их не согласны делать, потому что вы стали опытней и берете уже проекты по 5000 р по веб-разработке или работе с базами данных. Потом проходит время, и вы увлеклись программированием на Python для нейросетей, а там и проекты крупнее, и зарплата в них больше, и вас вообще не интересует создание ботов за 3000 р, а тем более – за 1000. Вам подавай проекты за 50 000 р, и они будут! И вы будете в них работать. Но в это время кто-то другой только начал изучать Python, зашел на фриланс-биржу, видит условный заказ «Написать бота для Телеграм за 1000 рублей» и с радостью берет подобный заказ. Примерно так и происходит круговорот специалистов в программировании. В любой точке вашего изучения Python будут те, кто знает больше вас и берет проекты сложнее и дороже, но так же будут те, кто знает меньше вас и берет проекты проще и дешевле.
Заключение
Нужно вынести простую мысль: фриланс на Python открыт на любом уровне ваших навыков. Начинайте поиск работы с теми знаниями, что имеете, потом наращивайте свои знания, переходите на более сложные и высокооплачиваемые проекты.
Мы поговорили с Python-разработчиком Павлом Вавилиным и задали несколько вопросов о профессии. Павел — наставник на курсе по Python. По ходу текста будут его комментарии. А параллельно — наш анализ рынка и обзор зарплат.
Кто такой Python-разработчик и что он делает
Python-разработчик — это программист, который решает задачи бизнеса на языке Python: от разработки приложения до визуализации данных.
Почти всегда Python-разработчики — это бэкендеры: то есть те, кто пишет программы для серверов. Например, если есть интернет-магазин, то у него есть «витрина» — это сайт или приложение, им питонист не занимается. А есть «служебное помещение», в котором работают такие элементы:
- Картотека клиентов и их заказов.
- Синхронизация витрины со складом.
- Система рекомендаций товаров клиентам.
- Система определения ближайшего пункта выдачи.
- Система расчёта срока доставки.
- Программа лояльности.
- Алгоритм расчёта скидки.
- Панель управления ассортиментом, скидками и промо.
- Панель управления внутренней рекламой на сайте.
Вот всё это может делать разработчик на Python, если он занимается интернет-магазином.
Ещё Python часто используют в системном администрировании, например для написания скриптов для сервера или для настройки рабочего окружения. В этом случае Python-разработчик будет называться сисадмином или девопсом.
Наконец, Python как технология незаменим в обработке больших данных и их визуализации, но на эту работу обычно нанимают не разработчиков, а дата-сайентистов и аналитиков.
Павел Вавилин:
Здесь хотел бы добавить про деление на джунов, мидлов и сеньоров. Каждый разработчик сам определяет свой уровень — это зависит от наглости и уверенности самого разработчика. В Python-разработке это работает так же: если вы чувствуете, что вы доросли до мидла, то пора заявлять о себе как о мидле. Если тебя признают мидлом — всё, ты мидл. Корочки об уровне не выдают.
Какие навыки нужны
Рассказывает Павел:
Из хард-скиллов разработчика — знание базового синтаксиса Python. Второе — уметь пользоваться поисковиком и переводчиком. Поисковик позволяет найти ответ на любой вопрос; переводчик — понять этот ответ.
Другие технологии. Здесь есть замечание: программирование всё-таки не ограничивается одним языком. Язык — это инструмент. В этом смысле чистый Python-разработчик — это какое-то мифическое существо. Для многих задач одного Python мало, поэтому разработчики стремятся изучить другие языки.
Хотя есть направление, когда разработчик становится настолько крутым, что становится незаменимым для компании. Почему бы нет, такой подход тоже возможен.
Главный софт-скилл программиста — лень. Зачем мне делать что-то второй раз? Я это автоматизирую. За меня это может сделать компьютер? Пусть делает.
Важно и уметь общаться с людьми. У многих джунов замечаю такой надлом: вот, я посижу над проблемой в коде несколько часов, но найду ошибку. Но с опытом многие разработчики понимают, что проще подойти и спросить у коллеги, где ошибка, чем сидеть сутки и ломать голову над задачей.
Сколько платят
Сначала посмотрим на разные мнения, а в конце сделаем общий вывод. Например, на сайте «ГородРабот» на 2023 год средняя зарплата программиста Python — 119 688 рублей. Это средний показатель всех зарплат Python-разработчиков вне зависимости от уровня:
Медианный показатель — 68 000 рублей. Это зарплата без учёта самых высоких и самых низких зарплат.
А вот на «Хабр Карьере» медианная зарплата — 167 000 рублей, по результатам 333 анкет за первое полугодие 2023-го.
Зарплата сильно различается в зависимости от уровня. В среднем джуну предлагают зарплату 76 000 рублей, мидлу — 176 844 рублей, сеньору — 254 005 рублей.
Павел Вавилин:
Когда-то тысяч 50 мне казалось огромной зарплатой. Потом произошёл неприятный случай на работе, я обиделся и стал искать новые вакансии. Сразу поставил ценник выше, чем был. И так постепенно дорос до зарплаты более 200 тысяч рублей.
Сейчас параллельно с основной работой совмещаю проектную деятельность — это даёт дополнительный заработок. В один момент у меня была большая потребность зарабатывать больше, поэтому пришлось научиться всё совмещать. Совмещаю до сих пор.
По рынку точно не могу сказать, но у среднего Python-разработчика в средней компании со средним чеком зарплата будет около 100 тысяч рублей. Мы редко обсуждаем зарплату с коллегами, поэтому сложно ориентироваться по рынку.
Динамика зарплат и вакансий
По динамике есть две новости — хорошая и плохая. Хорошая — зарплаты Python-разработчиков остаются на высоком уровне. Плохая — количество вакансий на джуниор-позиции уменьшается.
Сначала про зарплаты. За 2022 год наблюдался незначительный спад. Это было связано с политикой и с резким отъездом разработчиков за рубеж.
В начале 2023 года продолжился небольшой спад. Особенно он заметен в марте — средняя зарплата упала до 88 642 ₽. Но в апреле зарплата выровнялась и вернулась к показателям начала 2022 года.
Это же подтверждают аналитики «Хабра» — зарплата остаётся примерно в одном диапазоне 140 000—160 000 рублей. Для джунов зарплаты — в диапазоне от 60 000 до 80 000 рублей. Причём у джунов более заметный рост в сравнении с 2021 годом.
Значения разные, но динамика одна — деньги в Python-разработке есть.
С вакансиями сложнее, чем с зарплатой. В 2022 году были готовы предложить около 1,5 тысячи вакансий Python-разработчика только в Москве. Лидерами по количеству вакансий Python-разработчика в России были Москва, Санкт-Петербург и Екатеринбург. С января по май 2023 года предложили около 700 вакансий Python-разработчика в Москве. При этом удалёнку никто не отменял: можно работать в московской компании, сидя в Пензе, Брянске или Туле.
Компании отмечают, что уровень экспертности разработчиков сильно упал. Квалифицированных специалистов мало, поэтому вакансии мидлов и сеньоров часто пустуют. А разработчиков-джунов много, но не все компании сейчас готовы браться за их обучение.
Это не значит, что работы нет совсем. Но теперь Python-разработчикам нужно потратить больше сил, чтобы найти подходящее место работы.
Павел Вавилин:
Если несколько лет назад был дикий спрос на джунов: многие компании были готовы вкладываться и обучать интернов. В некоторых компаниях были даже бесплатные курсы, по результатам которых они нанимали специалистов. Многих ребят забирали работать за рубеж. Сейчас такого нет.
Топ интересных вакансий месяца для начинающих
Мы подобрали вакансии для начинающих Python-разработчиков. Сначала прочитайте комментарий эксперта, а потом изучайте вакансии.
Павел Вавилин:
Кто хочет быстро развиваться, но очень много работать, стоит смотреть вакансии компаний-лидеров: Яндекс, Тинькофф — вам туда. Единственное замечание — нужно понимать, что это будет правда большой труд, но при этом с хорошей отдачей и корпоративными привилегиями.
Я прошёл собеседование на одну из фуллтайм-позиций в Яндексе, но отказался, потому что было более выгодное предложение. А вот на позицию наставника в Практикуме согласился — её можно совмещать с основной работой.
Кто любит неспешную работу и не хочет стрессовать, ищите вакансии у менее раскрученных компаний. Там есть больше времени, чтобы подумать и проанализировать решения.
Тем, кто хочет быстро развиваться и быстро получать отдачу:
- Разработчик в систему управления пушами: поисковый портал «Яндекса», гибрид, Москва, зарплата не указана.
- Разработчик бэкенда на Python в Вертикали: вертикальные сервисы в «Яндексе», гибрид или офис, город, где есть офис Яндекса, зарплата не указана.
Тем, кто хочет спокойно развиваться и меньше стрессовать:
- Разработчик в диджитал-агентство: Affarts, удалёнка, зарплата 35 000—45 000 рублей.
- Бэкенд-разработчик в международную компанию: Floship, удалёнка, Москва, 1 000 $.
- Разработчик в инвестиционный фонд: Kamtor, удалёнка, зарплата 50 000—70 000 рублей.
Блиц
Нужно ли знать английский Python-разработчику?
Не обязательно, зависит от задач и от места работы. Если вы работаете в иностранной компании, то английский нужен для общения. Ещё английский нужен, чтобы изучать документацию. Но если что — есть переводчики.
Как правильно произносить: «питон-разработчик» или «пайтон-разработчик»?
Это то же самое, что спросить, как правильно произносить API: «апи» или «эй-пи-ай». Зависит от того, как у вас принято. Если вы собираетесь работать в компании с сотрудниками из разных стран, то лучше произносить «пайтон».
Как относитесь к тому, что разработчики часто меняют компании?
Это тренд, который идёт на пользу самим разработчикам. Им приходится решать разные задачи у разных работодателей. Так расширяется кругозор и функционал.
Правда, что Python — уже прошлый век и нужно учить Go?
Иногда студенты мне говорят: «Ну вот, на Go так много вакансий, зачем я пошёл на Python». В этот момент я им говорю, что на Go редко ищут начинающих специалистов, а на Python — чаще.
Вёрстка:
Кирилл Климентьев
Сегодня Python один из самых популярных языков программирования, области его применения только расширяются. Последние несколько лет он входит в ТОП-3 самых востребованных языков на рынке IT.
Python используется для решения научных и бизнес-задач. На западе его используют учёные (математики, физики, биологи), так как изучить этот язык не слишком сложно. Он чаще используется для написания front-end веб-сайтов и back-end для мобильных и веб-приложений, а также создания разного рода сервисов и API. В целом это универсальный язык, входящий в тройку языков для анализа больших данных.
Веб-разработчику, работающему на Python, нужно знать дополнительные технологии из front-end разработки и язык программирования JavaScript для полноценного сопровождения любого проекта.
В течение последних 5 лет Python-разработчики востребованы на рынке труда, специалистов в этой сфере до сих пор не хватает.
Вакансии в России стоит искать на популярных специализированных сайтах:
- https://hh.ru/,
- https://www.superjob.ru/,
- https://www.rabota.ru/,
- https://ru.indeed.com/.
Лидеры по количеству предложений работодателей — HeadHunter и Indeed.
Предложения вакансий в других странах попадаются на https://ru.indeed.com/. Есть специализированный сайт по поиску работы заграницей — в СНГ, Китае, в Европе и США — https://24ru.com/, но на нем уровень зарплат занижен. Возможность трудоустроиться заграницей предоставляют и платформы для программистов-фрилансеров, например https://www.upwork.com/, где после удачного выполнения проекта вас могут заметить и предложить сотрудничество.
На указанных сайтах есть предложения как для начинающих — даже студентов, так и для опытных. Предлагается полная, частичная занятость и удаленная работа. В основном, на удаленной работе чаще платят меньше, но реально найти удаленную работу со свободным графиком и зарплатой 150-200 тысяч рублей. Все зависит от политики фирмы и вашей квалификации.
Стажерам на последних курсах института некоторые компании предлагают всего 20 000 рублей, но в целом, зарплаты на рынке далеко не всегда соответствуют квалификации программиста (обычно они занижены), поэтому очень важно для соискателя правильно оценивать свою квалификацию и рынок труда.
Требования к Python-разработчику
Требования к кандидатам варьируются в зависимости от сферы деятельности и, конечно, от конкретного проекта. Если говорить о типичной вакансии, то актуальны следующие требования:
- Уверенное знание языка и библиотек Python
- Знание фреймворка Django или Flask/Pyramid/Tornado
- Базовые знания HTML, CSS, JavaScript – для верстки страниц
- Умение работать с Git
- Знание SQL, опыт работы с реляционными базами данных (PostgreSQL, MySQL), умение использовать ORM (например, Django ORM)
- Английский язык, от базового технического до продвинутого разговорного, в зависимости от вакансии
- Опыт работы с не реляционными базами данных, например, MongoDB
- Умение работать в команде, разбираться в чужом коде. Паонимание Agile (Scrum) и традиционных методологий разработки
- Высшее образование — преимущественно в сфере информационных технологий и математики, но некоторые организации принимают на работу специалистов без высшего образования (обучившихся программированию на python на курсах или самостоятельно).
Это общие требования. Диапазон вакансий и программных продуктов, с которыми придется работать, очень широк. Поэтому каждая организация требует знания, которые будут полезны именно в ее работе. Общее правило таково, что чем больше популярных и необходимых языков программирования, фреймворков и баз данных вы знаете (Js, HTML, С, С++, PHP, Django, SQL, Mongo), и чем больше ваш опыт работы, тем больше шансы на удачное трудоустройство и достойную зарплату.
Достаточно популярен сейчас язык Go. Например, программисту с квалификацией Senior Backend разработчик, знанием Go, и опытом разработки под Linux/Unix известный маркетплейс Joom предлагает зарплату от 270000 рублей в месяц.
Знания английского также влияют на зарплату, особенно если вы ищите работу за границей. Дополнительным преимуществом будет не только английский в совершенстве, но и знания языка интересующей страны.
Типичные вакансии со знанием python
Python-разработчик может занимать такие должности:
Junior Python Developer — от 6 месяцев до 1,5 лет опыта работы. Пишет программный код. Человек, который сам решает небольшие задачи, но сложные не осилит. Либо потратит на них много времени и будет нуждаться в проверке работы более опытными коллегами.
Middle Python Developer — опыт от года до 3 лет. Специалист, который самостоятельно пишет код по средним и сложным задачам, почти не ошибаясь. Либо способен быстро найти ошибку. Консультирует джуниоров.
Senior Python Developer — опыт работы от 4 до 6 лет. Эксперт, способный разрабатывать сложные приложения на фреймворке. Его знания могут быть применены в архитектуре приложения, уровень оплаты намного выше, чем у начинающих. Руководит проектом или командой.
Python Team Lead — должность выше Senior. В обязанности входит управление своей командой разработчиков, владение технической стороной, участие в работе над архитектурой проекта, ревью кода, а также разработка некоторых сложных заданий на проекте. Совмещает в себе основные знания специалистов уровней Senior и Software Engineer.
QA Automation Engineer — тестировщик, специалист по обеспечению качества программного обеспечения. В обязанности входит нахождение ошибок в программе. Без тестирования нельзя получить программу высокого качества – поэтому QA-специалисты очень востребованы в IT-компаниях, занятых разработкой.
Python Backend Developer — создает серверную часть в веб-приложениях, администрирует базы данных, архитектуру, программную логику. Back-end разработчик должен знать серверные языки программирования, такие как PHP, Python, Ruby, Java, Perl, Node JS (программные платформы). Дополнительно к Node JS этому специалисту полезно изучить Express (библиотеку для взаимодействия платформы Node JS с сервером) и Mongo DB (базу данных для получения и хранения информации).
Data Scientist — это специалист, обладающий практическими знаниями методов статистического анализа данных, навыками построения математических моделей (от нейронных сетей до кластеризации, от факторного до корреляционного анализа). Он должен уметь работать с большими массивами данных и находить закономерности.
Уровень зарплат в России и в других странах
В Москве программист Python получает от 30 000 до 450 000 рублей в зависимости от компании и его уровня квалификации. В Санкт-Петербурге от 25 000 до 350 000. Средняя зарплата разработчика составляет 120-150 тысяч в городах федерального значения и 75-100 в региональных центрах.
В странах СНГ сильный разброс зарплат. Например, в Узбекистане средний доход составляет от 20 до 40 тысяч в пересчете на российские рубли. В Белоруссии средняя зарплата — 2-3 тысячи долларов.
Зарплата в странах Европы составляет от 1500 до 5000 долларов в месяц в зависимости от страны и квалификации сотрудника. В США программистам предлагают от 2500 до 8500 тысяч долларов в месяц.