Что нужно знать, уметь и понимать, чтобы не иметь проблем с поиском работы питонистом
Эта статья повторяет и дополняет содержание моего выступления «Что отличает джуниора от сеньора или как питонисту не иметь проблем с поиском работы» на последнем MoscowPython Meetup 39. Многие обращались ко мне после выступления с вопросами и я обещал опубликовать статью на Хабре и обсудить в комментариях.
Под катом вы найдете ответ на тему статьи и немного оффтопа. Имейте ввиду, что эта статья написана мной лично, по моему практическому опыту, так как у меня редко когда-либо возникали трудности с поиском работы. Она может отличаться от опыта других людей и я буду очень рад любым дополнениям и исправлениям, если я в чем-нибудь неправ.
Ответы будут чуть ниже
Сперва расскажу о результатах опроса с митапа (если кто был там или слушал трансляцию):
Кто же приходит на митап?
Из поднявших руки примерно по трети — джуниоров, мидов и сеньоров и совсем немного — тимлидов и технических директоров. При этом подняли руки примерно половина и кто остальные — остается загадкой
Есть ли вообще проблема?
Далее на митапе я спрашивал есть ли у присутствующих проблема поиска работы. Для неуверенного большинства проблем нет, но соотношение, на вскидку, примерно 60/40 (из тех кто поднял руки). Так что тема определенно актуальна и статья многим может стать полезной.
Как устроиться работать джуниором?
Это почти самый популярный вопрос, на который я отвечу так: работодатель вряд ли наймёт вас, если вы вообще ничего не знаете и не имеете никакого опыта. Весьма редко работодатели нанимают джуниоров и это зачастую что-то типа экперимента — вдруг поймаем реально таланта, который резко станет мидом, а мы сможем платить ему зп джуниора? Поэтому мой вам совет: не старайтесь устроиться джуниором, а лучше как следует изучите то, что здесь написано и сразу цельтесь в миды. Многие не знают и половины того, что надо и их берут только из-за «опыта» (зачастую бестолкового). Короче не бойтесь и не считайте себя ни на что не способными, вооружайтесь знаниями, практикуйтесь и ничего не бойтесь!
Что нужно знать
- Английский язык. Он нужен для чтения документации, примеров на stackoverflow и статьей
Пожалуй, единственное что я настоятельно рекомендую, это освоить какой-нибудь фреймворк и сделать что-нибудь реальное, что можно будет показать. Готовый сайт, пусть даже простой, выложенный на хостинге — это показатель того, что вы освоили каждый из множества небольших шагов на пути.
Постойте, а как же алгоритмы?
После митапа ко мне подошел один парень и спросил «а как же алгоритмы?». За 6 лет работы Python-разработчиком мне довольно редко приходилось писать что-то действительно не тривиальное, в основном все сводится к каким-нибудь манипуляциям с данными, их преобразование из одной формы в другую для дальнейших нужд ну и элементарная логика уровня школьной информатики. Чаще всего все алгоритмы давно реализованы в рамках специфичных библиотек и легко доступны.
Что нужно уметь?
- Читать чужой код — если не умеете, то фактически вы не умеете пользоваться существующими ресурсами и каждый раз будете пилить велосипед. Как правило это не эффективно (ну давайте может быть еще язык программирования каждый раз снова создавать под каждую задачу?). Со временем вы поймете, что иногда быстрее написать что-то свое, но по началу — старайтесь учиться у других. Даже если вы в итоге решите писать что-то свое, у вас будет уже хоть какое-то представление о том как надо или как не надо делать.
Что нужно понимать
С этого я начал свое выступление на митапе, потому что в устном выступлении сперва надо было наладить контакт с аудиторией, но здесь я постарался это сократить.
Помните, что для работодателя вы — инструмент решения бизнес-задач, которые в будущем должны принести ему выгоду. Поэтому фактически ваша задача на собеседовании убедить его, что платить вам зарплату — выгодное вложение денег. Вас нанимают не по клавиатуре стучать, а генерировать прибыль.
Язык — лишь малая часть того, что вам нужно знать. Может быть около 5% или даже меньше.
Таблица соответствия того, что нужно работодателю и как вы можете ему с этим помочь
Мечта работодателя | Что от вас требуется |
---|---|
делегирование — поставил задачу и её сделали правильно без твоего участия | не боитесь брать на себя ответственность и достаточно компетентны |
скорость разработки (основное преимущество питона) | владеете языком, знаете сторонние библиотеки и понимаете, что скорость разработки очень важна |
надежность системы | тэстирование собственного кода насколько это возможно или требуется |
поддерживаемость (еще одно преимущество синтаксиса и рекомендаций питона) | знакомство с гайдлайнами (pep, import this) и по возможности следование им |
эффективность системы | знакомство со свежими технологиями, библиотеками и другими приложениями |
эффективность разработчика | заинтересованы в проекте. Тут я советую действительно выбирать проекты, которые интересны. |
предсказуемость, возможность планирования | ваши планы на ближайший год ясны |
Интересно что он ей такое сказал на самом деле?
Советы
- Развивайте коммуникацию. Когда ищете работу — ходите на как можно больше собеседований. Успех собеседования напрямую зависит от навыка коммуникации и она отлично оттачивается на собеседованиях.
Вот вам пример
Приехали мы как-то в баню, и там чувак вениками орудует. А я веников 3 года не видал — в Азии туго с ними. Ну я ему “ого, братюня, фартануло тебе, где ты веников раздобыл?”. Он мне: “да вот привез с собой из России, че хочешь я тебя тоже напарю?”. Ну я не дурак отказываться, конечно. Пообщались с ним, нормальный такой чувак. Ну и разъехались по домам. Через пару недель опять приезжаем — там он же, опять с веником, стали снова общаться, он меня и спрашивает, мол, “а ты вообще чем занимаешься?”. Я говорю ну так-сяк, вот коворкинг у меня свой, а в свободное время на питоне программирую. Он “да ладно? Мне как раз питонщики нужны”. Оказался он основателем небезызвестной компании и я до сих пор с ним работаю.
Помимо собеседований рекомендую играть в мафию (только не по турнирным правилам, а таким, когда возможна дискуссия, но чтобы без балагана — это очень круто тренирует нервы и навык общения), ходите на хакатоны, митапы, конференции. Не пропустите, кстати, Moscow Conf, такие конференции даже не каждый год бывают — это вам не митап двухчасовой, а реально можно за день наобщаться с опытными ребятами, позадавать вопросы спикерам.
Антипример:
Жил у нас в коворкинге один парень — крутейший JS-программист, уровня сеньора с зп 120000+. Работает за 80, потому что неловко себя чувствует на собеседованиях, не может себя правильно позиционировать.
Правда жизни
Правда жизни в том, что как правило, никто не держит в голове все что он когда-либо делал. Сколько есть случаев, когда человек начинает искать ответ на какой-то вопрос, а находит свою собственную статью на эту тему 1-3 годовой давности. В конечном итоге работодателю как правило важно чтобы вы умели решать поставленные задачи, а не были ходячей энциклопедией.
Исключения
Исключения для этого совета: если вам ну очень интересен проект в котором вы работаете и/или у вас есть опцион и проект явно ждет успех.
как я английский выучил
Сперва я 9 лет изучал английский в школе, потом 3 года в институте и уже мог разве что читать и переводить со словарем. Потом я несколько лет оттачивал навык чтением документации, но сказать сложнее «how much for coconut» получалось с трудом. Первым действительно эффективным шагом был просмотр видеоуроков Дмитрия Петрова «Полиглот» с канала Культура, следующим шагом — практика общения с иностранцами в нашем коворкинге на Пхукете, ну а совсем легко стало после женитьбы на филиппинке. Кроме всего прочего один мой знакомых открыл школу английского с уникальным методом, который позволяет за месяц-два обучиться, правда это на Пхукетике опять же.
UPD: В комментариях выразили мнение, что эта статья относится только к веб-разработке на питоне. Это не совсем так, просто веб-фреймворк Django, который я советую к изучению является самым востребованным на данный момент в чем легко можно убедиться. Вы можете запросто выбрать другое направление и большая часть статьи так же останется актуальной, но легко ли вам будет найти работу — я не знаю. Более того, совет про изучение других популярных библиотек именно на то и нацелен, чтобы вы не ограничивались только лишь Django и расширяли свои знания по другим направлениям.
Буду бесконечно признателен за любые дополнения и постараюсь оперативно добавлять их в статью! Про орфографию пишите, пожалуйста, в личку, чтобы не засорять комментарии.
Говорят, выучить Python и стать программистом легко. Правда?
Работать в ИТ — круто, но путь в индустрию может быть совсем не таким, как описывают родители или преподаватели в школе. На биржах труда ищут мобильных разработчиков, девопсов, бэкендеров и фронтендеров, но где эти профессии в списках специальностей классических вузов?
Мы запускаем цикл статей в которых подробно расскажем о каждой профессии через опыт людей. В первом выпуске обсуждаем Python-разработчиков. Свои истории рассказали Артем Сухаренко и Данила Лобанов. Они пришли в профессию совсем недавно, но успели набраться опыта в других сферах. А экспертом выступил Алексей Петренко — декан факультета Python в Geekbrains.
Мы поговорили о том, что нужно знать перед обучением, чем хорош и плох язык, что трудного ждет в обучении и на чем стоит сосредоточиться; какие профессии и деньги сулит знание языка, как готовиться к первым собеседованиям и многое другое.
Для чего учить Python
Артем Сухаренко учился в СибГИУ на кафедре автоматики и информатики. Его специальность была инженерной, но не связанной с программированием. После выпуска Артем устроился работать на завод ЗСМК — один из самых крупных металлургических комбинатов в России.
«Я обалдел, насколько там все ужасно», — говорит он, — «Полуразвалившийся советский электропривод, никакой модернизации, специалисты особо не нужны». Долго на заводе он не задержался, но продолжил работать с электрикой дальше. Вырос до ведущего инженера в Сибирьтелекоме, затем переехал из Сибири в Москву и устроился в коммерческий ЦОД, где отвечал за инфраструктуру.
Программирование иногда подразумевалось. Артем пытался работать с микроконтроллерами, делать что-то более сложное, но всегда упирался в отказы работодателей и заказчиков — им это было не нужно. Хватало элементарных вещей, которыми, как говорит Артем, интересно заниматься только первые 15 минут, и особых скиллов для этого не нужно.
«Может быть, я не туда совался, но развития для себя не нашел. Пять лет вуза — просто чтобы крутить провода. Это было так обидно».
Однажды коллега подал Артему идею изучать программирование не для электрики, а чтобы стать разработчиком. Он стал читать книги, пробовать разные задачи, но не решался сменить профессию. «Желание у меня назревало долго. Сначала не давали сменить профессию ипотека, финансовые вопросы, личный страх».
В 36 лет Артем пошел на курсы Python-разработчика.
Веб-разработка стала клондайком для многих людей, кому интересны технические профессии. А Python — одним из популярнейших языков программирования для входа в профессию. Он привлекает простотой и универсальностью.
«Зная Пайтон можно делать много всего — от простейших скриптов до анализа данных и построения нейронных сетей. Но конкретно разработка на Пайтоне — это бэкенд для веб-серверов, разработка скрытой части интернета — той, которую не видят обычные пользователи. Сервер, его логику, взаимодействие с базами данных», говорит Алексей Петренко, декан факультета Python в Geekbrains.
«Думаю, это хороший выбор в качестве первого языка. У него простой синтаксис. Он прощает мелкие ошибки разработчика. У Пайтона низкий порог вхождения, на нем очень легко освоить азы программирования. У него очень большая аудитория и обширная библиотека, плюс много внешних библиотек, которые делают разработчики со всего мира. За счет этого он становится языком, который подойдет для чего угодно».
«Хоть Python и пропагандируется как язык для всего, по факту у него только две сферы применения: всякие data science, ML и прочая математика — и веб-разработка. В этом он меня немного разочаровал», — говорит Данила Лобанов, бывший сисадмин, который недавно стал Python-разработчиком.
«Питон понравился мне тем, что он может выполнять любую работу. У него есть библиотека для мобильных приложений, для десктопных, на нем можно писать скрипты автоматизации для серверов, можно веб-приложения. Но по факту на работу без глубокой математики требуются только веб-разработчики. Никто не пишет на нем десктопные приложения, и уж тем более мобильные. Для этого есть другие языки, которые создавались специально под свои задачи».
Данила тесно познакомился с компьютером относительно поздно, примерно в 18 лет. От высшего образования он отказался и почти сразу пошел работать сисадмином. Начинал с самых элементарных задач, потом приступил к изучению Linux и программирования.
«Я попытался изучать С, PHP, Java еще какие-то языки, но не заходило — начинал и бросал. Не мог писать даже простейшие скрипты. Когда я ходил на курсы по С, у меня получалось читать код, но не получалось его писать. Мне давали задачу, я смотрел на нее и не представлял, как делать. Преподаватель садился рядом, писал построчно, объяснял, и я понимал, что именно так и надо было делать. Но мне давали аналогичную задачу, и я снова был в ступоре».
После неудачных попыток Данила надолго забросил программирование. Около десяти лет он проработал сисадмином. И когда почувствовал, что администрирование больше не приносит радости, решил дать разработке еще один шанс.
«Новичку лучше первым делом разобраться в синтаксисе», — считает Алексей Петренко, — «Только потом стоит думать, куда хочется идти дальше. Чем больше ты учишься, тем больше уходишь от синтаксиса к библиотекам, паттернам проектирования, отдельным шаблонам».
Данила все-таки выбрал Python потому, что язык считался легким. «Синтаксис реально оказался простым», — говорит он, — «Как писать текст на английском языке. Сначала я изучал его самостоятельно по видеоматериалам на Ютубе, по статьям, решал задачи на pythontutor.ru. Но потом понял, что ресурсы в интернете — это только основы и азы. Они доступны всем и везде, и не помогут научиться программированию основательно. Я понял, что надо искать курсы, которые дадут все то же самое, только систематизировано, а потом поведут меня дальше».
Что надо знать перед началом обучения
Перед тем, как серьезно погружаться в изучение языка, Алексей Петренко рекомендует выяснить заранее — а нравится ли программировать вообще. «Я бы советовал попробовать написать несколько программ, пройти бесплатные уроки. Перед началом обучения лучше уже понимать, что такое переменная и как две переменные сложить.
Чтобы курсы не стали бесполезными, поможет только одно — практика. Если только смотреть и слушать, ничего не получится. Для новичка практикой будет даже переписать код, который преподаватель показывает на экране. Переписывать и думать, как он работает.
Необходимый минимум для занятий — четыре часа в неделю. Два дня в неделю по два часа. Но я бы рекомендовал выделять час в день на написание собственного кода. Главное не нырять в программирование с головой, чтобы не было буйства магии. Когда три дня учишь все подряд — в голове получается каша.
Начать может быть легко, но впереди ждут трудности
Артем продолжал работать электриком днем, а вечерами начал учиться на курсах, несмотря на усталость. «Как и у всех наивных людей, у меня было ожидание магии от курсов. Я пришел не совсем нулевым. В багаже было несколько книг и даже простых сайтиков, в том числе на PHP (грешен, признаю). Я ждал, что на курсах надмозги меня выдрессируют, и я стану волшебником. Реалии оказались другими — там такие же люди, которые просто знают чуть больше».
Артему нравилось на курсах, но не все шло гладко. Программа на тот момент была новая, мало обкатанная и по его впечатлениям сумбурная. О спорных моментах ученики высказывались, давали обратную связь, и недостатки исправлялись на ходу. Один из преподавателей оказался настолько слабым, что его попросили убрать. Но остальные, как вспоминает Артем, были очень сильны.
У Данилы же все шло еще труднее. После нескольких вводных курсов он перестал успевать за программой, и несколько раз покидал свой поток, чтобы повторять программу в следующем.
«Все признавали, в том числе сотрудники Geekbrains, что уровни 2 и 3 в программе по Python были одними из самых сложных курсов в университете. Очень много информации в слишком сжатые сроки, очень большие домашние задания. Многие усваивали только часть материала. Я лично два раза переводился в следующий поток. Мы просили облегчить программу, нас спрашивали как, и я предлагал разбить два курса на три. Что-то из этого приняли во внимание и сейчас реализовали».
В отличие от первых попыток учить С, когда ничего не получалось, Данила шел дальше. Вещи, которые он не понимал, превращались в вещи, которые он не понимает, как можно было не понимать. Но преодолеть эту грань нельзя простым зубрением учебников. Как говорит Данила, умение программировать и знание языка — абсолютно разные вещи.
«Преподавать программирование тоже очень сложно. Всем кажется, что раз человек может писать программы, значит может и научить. Это не так. Когда мышление перестроено, и знаешь много всего — уже не можешь вспомнить, каково это — не понимать».
Алексей предупреждает, что Python легкий только в начале. А после легкой базы придется приложить усилия, чтобы освоить более серьезные аспекты — библиотеки и фреймворки. «Если сравнить язык программирования с водоемом, то, например, язык С — это океан. Ты ныряешь с обрыва на огромную глубину, и либо плывешь, либо тонешь. Язык Пайтон — это пляж с чистым песком, где ты можешь далеко зайти, спокойно поплавать, и если понял, что хочешь двигаться дальше — то за красивым пляжем есть огромная впадина, по глубине сопоставимая с С и Java».
«Асинхронное программирование в Python — это мозгодробительная штука», вспоминает Артем. «Мы проходили это как-то поверхностно, и потом даже на собеседованиях, когда по нему спрашивали, я чувствовал, что плыл.
Паттерны проектирования тоже нахрапом взять невозможно. Я уже по три раза перечитывал выдержки, специально читал книгу, и все равно до конца не чувствую себя уверенным. За один месяц, который длится курс по ним, это вообще нереально освоить».
Данила же вспоминает модуль select как самое трудное: «Все три потока помнят мою боль с селектами. Есть такой модуль, и он мне прямо очень не давался в свое время. Сейчас-то он для меня простой — я теперь не понимаю, как его можно не понять».
«В базовой конфигурации Python лежит около 70 функций и несколько десятков зарезервированных слов, но даже крутой программист не обязательно использует их все. То есть, чтобы выучить сотню слов и понять, что они делают, можно потратить одну-три недели при желании и активной работе», говорит Алексей.
«Начинающие программисты пишут программы, которые тоже работают. Но код один раз пишут — десять раз читают. Когда спустя время программу пытается прочитать другой человек, то возникают сложности.
Чтобы в будущем работать в команде и показывать код кому-то еще, надо знать общепринятые стандарты стиля. В Python они называются «Пепы» (Peps). Я бы советовал читать Pep8 параллельно с изучением синтаксиса. Это соглашение программистов, которые пишут на Пайтоне. Оно рекомендует как правильно писать, а как неправильно.
Несколько лет назад в Python произошло разделение. Был Python 2.7, а потом вышла версия 3. Вторая версия все еще используется, но только в старых фирмах для поддержания легаси-кода. Если устроиться в такую фирму, то изучать Python 2 придется, но я бы рекомендовал учить третью версию. Все современные проекты и сторонние библиотеки пишутся под нее».
Как выдержать первые собеседования
Артем и Данила закончили курсы очень по-разному. Данила после нескольких попыток решил не заканчивать обучение, потому что не нашел взаимопонимания с преподавателем последних курсов, но зато нашел работу. Артем же вместе с сокурсниками уже во время обучения вырастил учебный проект в стартап, который начал приносить реальные деньги.
«Проект назвался GoLiving. Это что-то вроде AirBnb, только задумка такая: в Америке есть люди, которые часто ездят работать в разные города на непродолжительный период. И они могут между собой меняться жильем с гарантированной страховкой, чтобы точно быть уверенным, что не вернешься в разгромленную квартиру. Сейчас я не знаю, насколько далеко пошел этот ресурс, кажется финансирование приостановили. Но тогда у нас даже были инвесторы».
Данила во время обучения на курсах полгода сидел без работы. Он уволился специально, чтобы учиться, но из-за частых переводов учеба заняла больше времени, и отложенные на это время деньги подходили к концу. Покинув курсы, Данила даже не успел начать изучение Django — самого популярного фреймворка для веб-разработки.
«Под новый год я написал в компанию, которая просто находилась рядом с моим домом. Зашел к ним на сайт, увидел вакансию бэкенд-разработчика и написал им письмо. Говорю, хотел бы у вас поработать, хоть и учился, но знаю немного. Очень интересуюсь и буду развиваться. И меня позвали на собеседование».
«Мой опыт в Geekbrains показывает, что некоторые студенты находят работу, до того как они заканчивают годовой курс обучения», говорит Алексей. «Работодатель хочет видеть у серверного разработчика элементарное умение работать с синтаксисом, знание как работают сайты, как устроен бэкенд, тот же самый набирающий популярность Django. Я бы сюда ещё добавил работу в команде и знания баз данных, потому что любой бэкенд любого сайта неразрывно связан с хранением информации.
Ежемесячно на «Моём круге» открывается порядка 200 вакансий python-разработчиков, вы можете посмотреть самые свежие и подписаться на рассылку о новых вакансиях.
Во время интервью главное не молчать. Если дают задачу, на которую не получается сходу ответить, то надо просто рассуждать вслух, показывать, как думаешь, и что способен двигаться к решению.
И главное не отчаиваться, если первое собеседование оказалось неудачным. Сходя на два-три собеседования заметишь, что вопросы начинают повторяться. И тогда уже сам будешь выбирать, куда устроиться, потому что однажды из трех собеседований пройдешь сразу везде».
Данила на собеседовании больше всего удивило то, что ему не задали ни одного технического вопроса: «Не давали никаких заданий — просто общались о том, как я учился, чем интересуюсь. В итоге предложили работу, и я согласился».
Алексей же считает, что с такими компаниями стоить быть внимательнее. «Кроме общих вопросов должны быть задачи на написание кода. Даже если на бумаге карандашом — это нормально. Но если ты пришел на собеседование программиста и не получил ни одного вопроса о программировании, то тебя либо собеседовал некомпетентный человек, либо ты будешь заниматься вообще чем-то непрограммистским. Программистов надо проверять на программирование».
«Я считаю, не спрашивать технические вещи — это правильный подход», говорит Данила. «Очень известный в Python-сообществе Григорий Петров тоже говорит, что скилы по программированию (хард скилы) подтянуть всегда можно. Главное сойтись во взглядах на жизнь, чтобы было комфортно вместе работать. Я с ним согласен.
Конечно, навыки программирования важны. Но сейчас я работаю с такими вещами, которых на курсах не преподают. Мне их показали уже на работе, и дальше я разбираюсь сам, читаю документацию, статьи, смотрю примеры. Меня больше настораживают компании, которые дают «нормальные» тестовые задания. Ты смотришь и думаешь — а это правда тестовое или я сейчас бесплатный фрилансер?»
«Собеседование, которое проходил я, расплавило мне мозг еще как», вспоминает Артем. «Когда я вышел, состояние было, как будто иду на автопилоте — так сильно продолжали жужжать мысли».
Проходило оно так: сидели два эйчара и два технаря. Один питонист и фулстек, который занимался вебом — куда пробовался и я. Второй — судя по вопросам — совершенный надмозг. У него такой был сильный матан, что просто ого-го!
Сначала пошли житейские вопросы, все эти «как себя видишь, как себя чувствуешь». Потом за меня принялся фулстек, погонял меня по Python, по Django. Он прямо на бумаге накидывал примеры и спрашивал по ним. Не сложные, но с подковырками.
А потом за меня взялся дядька-надмозг. Полез вглубь матана, спрашивал про алгоритмы, и поскольку компания работает с безопасностью и шифрованием, он меня и по нему тоже погонял. Но в этом я совершенно не силен, поэтому отвечал как пятилетний ребенок. В общем, на шифровании сыпался, в алгоритмах держался, но не очень.
Честно, даже не ожидал, что мне перезвонят. Тем не менее — получил оффер. Через несколько дней будет первый рабочий день».
На какие деньги стоит рассчитывать
Люди идут в ИТ не только по зову души. Это индустрия с одними из самых быстро растущих зарплат в России. И иногда кажется, что зарплаты программистов по сравнению со среднестатистическими профессиями отличаются как зарплаты в Москве и в регионах. Тем не менее, ни Артем, ни Данила не шли в эту профессию за богатством. Больше того — они его пока так и не нашли.
«Даже в Москве на начальных позициях программистам предлагают 40-50 тысяч, может даже меньше. В регионах 20 тысяч для джуниора тоже не редкость. Это не такая уж высокооплачиваемая работа, как все утверждают. Да, когда достигаешь уровня синьора, зарплаты могут переваливать за 200-300 тысяч. Но где таких зарплат нет? Недавно одна такси-компания показала доходы таксистов, которые больше всех заработали. Там 230, 240 тысяч.
На диаграмме зарплат python-разработчиков с разбивкой по квалификациям видно, что медиана для джуна составляет почти зарплатного калькулятора «Моего круга».
Возможно, в программировании проще дойти до уровня выше среднего, чем во многих других сферах. Но для меня это вообще не было главным. Мне было интересно создавать программы».
«Зарплаты зависят от региона», говорит Алексей, «Кто-то устроится за 40 тысяч как начинающий, кто-то может и сразу на 100 тысяч. Смотря как себя проявить. Если покажешь, что можешь писать не только код, но и разбираешься в архитектуре, можешь набросать схему проекта целиком, всех модулей, сервисов, связей между ними».
Артем же вообще ушел в разработку на меньшую зарплату, чем имел будучи инженером. «В электрике у меня была должность главного инженера, и зарплата была очень хорошая. Я ушел, потому что хочу развития. А в программировании можно развиваться до бесконечности».
Несмотря на то, что в программировании одна из самых четких и понятных градаций по уровню мастерства (джуниор, мидл, синьор) — она все равно остается относительной и постоянно разжигает споры размытостью своих критериев. Споры в духе «ты в компании Х синьор, а в компании Y и джуниором не возьмут» или «пока десять лет не работал — не синьор».
«До уровня мидла можно прокачаться в течение года обучения. Например, в Geekbrains есть обязательные курсы и дополнительное. Все их надо пройти полностью чтобы честно сказать — я прокачался до уровня мидла. То есть, получается год основной программы и ещё полгода параллельных курсов», — считает Алексей, — «А синьор — это человек, у которого есть богатый опыт. Это тот, кто разбирается в разных фреймворках, способен масштабировать задачи, понимать каких ресурсов они требуют. Человек, который не изобретает велосипеды. Кто на собственном опыте разобрался во всех аспектах и нюансах работы.
Если человек через три года работы называет себя синьором — почему бы и нет. Все зависит от фирмы, стремления и навыков. Если человек одаренный и целеустремленный, то я в это поверю.
- Блог компании Хабр Карьера
- Python
- Карьера в IT-индустрии
Кто такой Python-разработчик и как им стать
Python является одним из самых популярных языков программирования. Он особенно востребован у начинающих специалистов, т.к. достаточно прост в изучении, удобен и даже чем-то похож на английский язык. Поэтому разработка на Питон — сфера с одним из самых низких порогов в IT.
Из данной статьи вы узнаете кто такой Python-разработчик, какие обязанности он выполняет, сколько зарабатывает и, конечно, как им стать.
Профессия Python разработчика. Кто это такой
Если говорить максимально кратко и понятно, Python-разработчик — это IT-специалист, который, используя язык программирования Python, участвует в разработке игр, сайтов, приложений, ботов, онлайн-сервисов и других продуктов.
Другими словами, задачи, которые можно выполнять при помощи этого языка программирования, весьма обширны. Данный язык программирования универсален, поэтому его можно применять в разработке фронтенда (видимой пользователям части и приложений), но обычно его используют backend-программисты, т.к. он лучше всего подходит для разработки на стороне сервера.
Что делает Python разработчик
Есть 3 основные специализации, в которых данный язык востребован больше всего:
1. Анализ данных. Благодаря широким возможностям языка программирования можно обрабатывать огромные массивы данных.
2. Нейросети и машинное обучение. Нейронная сеть — это метод в ИИ, который учит компьютеры обрабатывать данные таким же способом, как и человеческий мозг. Эта сфера сейчас развивается невероятными темпами.
3. Веб-разработка. Серверная часть сайтов и веб-приложений подразумевает написание сложного кода на Python.
Помимо этого, возможности языка используют также DevOps-инженеры, тестировщики программного обеспечения, desctop-разработчики и т.д.
Так что задачи и обязанности Python developer’а будут зависеть в первую очередь от того, какую именно сферу деятельности он выбрал. Аналитики данных занимаются структуризацией информации, тестировщики создают автоматические тесты, увеличивая тем самым скорость выполнения своих задач, а веб-разработчики занимаются созданием сайтов/приложений.
Что нужно знать специалисту
Хороший разработчик на Python должен обладать массой всевозможных навыков и умений, где знание непосредственно языка программирования — лишь капля в море. Давайте подробнее изучим, что в первую очередь необходимо знать специалисту для успешной работы в данном направлении. Список основывается на опыте профессиональных разработчиков.
Алгоритмы
Когда у IT-специалиста есть много задач, их эффективнее и быстрее всего решать с помощью алгоритмов. Они позволят разработчику получать результат, затрачивая на него меньше ресурсов, чем если бы он каждую задачу решал отдельно. При этом нет никакого смысла заучивать алгоритмы — достаточно лишь понять принципы сортировки и научиться оценивать сложность алгоритма.
Здесь важно знать:
- понятие об О-нотации и алгоритмической сложности;
- виды алгоритмов сортировки (пузырьковая, сортировка выборкой, вставками, пирамидальная и т.д.).
Git
Какой уважающий себя программист не слышал о Git — распределенной системы управления версиями! Эта система создана для простого отслеживания и фиксирования изменений, которые вносятся в проект по ходу работы, таким образом исключая риск потери частей кода.
Здесь предстоит изучить:
- некоторые типы команд, включая add, merge, rebase, commit, push и pull;
- понятие ветки;
- виды репозиториев (локальный, удаленный).
SQL и базы данных
SQL — это декларативный язык программирования, который применяется для создания, совершенствования и управления данными в реляционной базе данных. Другими словами, среды, в которых хранятся все необходимые данные.
Здесь стоит изучить:
- особенности использования БД реляционного типа;
- NoSQL;
- команды, которые позволяют создавать и управлять таблицей.
Алгоритмы на графах
В математике графами называют абстрактное представление разных объектов и связей между ними через точки и линии. Алгоритмы на графах, в свою очередь, это те же графы, которые удовлетворяют операциям алгоритма.
Здесь рекомендуем обратить свое внимание на:
- поиск в ширину и глубину;
- алгоритм Дейкстры.
Рекурсия
Рекурсия в программировании — термин, который означает вызов функцией самой себя. С помощью данного инструмента разработчики могут решать массу различных задач. При этом цикл и рекурсия — взаимозаменяемые вещи, при этом нужно понимать, что рекурсия куда сложнее в написании. Ее также тяжелее поддерживать, чем цикл.
Здесь специалисты должны понимать:
- ошибку предельной глубины рекурсии;
- затраты памяти.
Агрегатные функции
Агрегатными функциями называют особый класс функций, применяемых сразу к нескольким записям набора данных, но возвращающим одно значение. Все функции заучивать не требуется (особенно начинающему специалисту).
Здесь важно освоить:
- функции count, average, groupby, join, sum;
- представление, когда могут пригодиться агрегатные функции.
Docker
Docker — это открытая для всех платформа для разработки, тестирования, доставки и эксплуатации приложений. Данный инструмент позволяет программисту автоматизировать управление и взаимодействие с различными приложениями и в кратчайшие сроки развертывать готовое приложение.
Здесь необходимо знать:
- понятия образов и контейнеров;
- правила написания файлов Docker Compose;
- разницу между докером и контейнером.
Структуры данных
Чтобы иметь возможность оптимально хранить данные, python разработчик должен разбираться в структурах данных. Для этого в первую очередь специалисту необходимо разобраться в следующих терминах:
- хеш-таблицы;
- массив/множество;
- стек, дек и очередь;
- графы;
- связанные списки.
Soft skills
При работе в команде хороший программист должен обладать также некоторыми социальными и личностными качествами, среди которых можно выделить:
- умение общаться с людьми и работать в команде;
- стремление к постоянному росту в профессиональном плане;
- повышенное чувство ответственности;
- умение грамотно распланировать свой рабочий день.
Джуниор, мидл и сеньор. В чем отличие
Как и в любом другом направлении IT, в программировании на языке Python существует градация специалистов по степени их мастерства: это junior, middle и senior.
В IT сфере классификация работников по их знаниям и умениям достаточно расплывчатая — сходу определить, к какой касте относится тот или иной сотрудник, бывает не так просто. Однако есть определенные критерии, которые позволят понять, кто перед вами — джуниор, миддл или же сеньор. Давайте поговорим о каждом из этих уровней подробнее.
Junior (Джуниор)
Джуниорами или попросту джунами зовут начинающих специалистов с опытом от 0 до 12 месяцев. Т.к. язык программирования Python отличается достаточно низким порогом входа, начинающему разработчику достаточно знать его на базовом уровне, чтобы претендовать на должность джуниор-программиста.
Знания junior разработчиков фрагментарны, поэтому им нельзя получать действительно серьезные задачи. Их работу обязательно нужно контролировать и давать советы. Этим обычно занимаются миддлы.
Особенности junior:
- Владеет языком программирования на базовом уровне.
- Знает стандартные библиотеки и хотя бы 1 фреймворк (например, Django или Flask), а также БД SQL.
- Способен выполнять несложные типовые задания под надзором наставника.
- Пишет простой код, который также необходимо контролировать и проверять на ошибки.
Чтобы шагнуть на следующую ступень, а именно — стать middle-разработчиком, начинающему специалисту потребуется на регулярной основе заниматься обучением и самообучением, общаться с коллегами, изучать код более старших сотрудников.
Middle (Миддл или мидл)
Миддлами называют более серьезных специалистов с опытом работы в среднем от 1 до 3 лет. Middle разработчик на Python обладает более комплексными знаниями, в т.ч. гораздо лучше понимает язык программирования. Middle — это основа любой IT-компании. Эти программисты среднего звена могут самостоятельно справляться с достаточно серьезными задачами и писать качественный код. Перейдя в когорту мидлов, разработчик станет получать более сложные, но в то же время интересные задания, работа над которыми может занимать недели и даже месяцы.
Особенности middle:
- Способен самостоятельно писать качественный код и оптимизировать его.
- Владеет дополнительными навыками и знаниями по сравнению с джуниором (владение несколькими фреймворками, уверенная работа с базами данных и т.д.).
- Имеет практический опыт работы с алгоритмами, серверами приложений, юнит-тестированием и т.д.
- Является полностью самостоятельным специалистом, лишь изредка прибегая к помощи более опытных коллег.
Большинство миддлов, в т.ч. в направлении Python программирования, навсегда остаются миддлами. Причин тому много: высокие зарплаты уже на этом уровне, а требования для перехода в класс сеньоров бывают слишком серьезными. Кроме того, не у всех middle разработчиков есть необходимые soft skills (лидерские качества, хорошо развитые коммуникативные навыки и т.д.).
Senior (Сеньор)
Высшая (и для большинства — недостижимая) ступень развития специалиста в IT-сфере. Это высококлассный разработчик с большим опытом (от 5 лет), который в одиночку в состоянии справиться с любой поставленной задачей. Сеньоры не только владеют всеми для этого необходимыми навыками (инструменты Питон, всех наборов технологий для программирования), но и способен заниматься управлением проектами, принимая в нужное время нужные стратегические решения.
Особенности senior:
- В совершенстве владеет языком программирования и может решить любую поставленную задачу в одиночку.
- Обладает лидерскими качествами и высоко развитыми коммуникативными навыками.
- Выстраивает проекты с нуля и распределяет задачи между членами команды разработки.
- Пишет крутой и максимально понятный для других разработчиков код.
Уровень зарплаты у senior программистов — в несколько раз выше, чем у профессий в почти любой другой сфере. Это объясняется недостатком кадров и высокой квалификацией таких специалистов. Конечно, стать сеньором — задача не из простых. Однако преимущества от этого неоспоримы, в частности, вас с ногами и руками оторвут в любой крупной фирме.
Сколько зарабатывает Python программист
Вопросом заработка Python программистов озабочены не только действующие разработчики, но также начинающие специалисты и даже те, кто только присматривается к IT-сфере.
В целом, можно сказать, что оплата за услуги разработчиков в данном направлении выше, чем у большинства других профессий. Даже начинающий питонист может претендовать на неплохую заработную плату от 30-40 тысяч рублей в месяц. За более конкретными цифрами давайте заглянем на небезызвестный сайт HeadHunter.
В момент, когда писалась эта статья, только на одном этом ресурсе было размещено более 5 000 вакансий по этому направлению.
Безусловно, уровень зарплат Python разработчиков сильно колеблется от уровня навыков и знаний, которым обладает соискатель. По итогам нашего исследования, средняя зарплата по России у Питон программистов составляет:
- Junior — от 40 до 60 тыс рублей в месяц
- Middle — от 70 до 180 тыс рублей в месяц
- Senior — от 200 до 350 тыс рублей в месяц и больше
Максимальная заработная плата Python разработчика на hh.ru, которую нам удалось отыскать — 9 000$ (по нынешнему курсу это примерно 675 000 рублей!
Конечно, чтобы претендовать на такую вакансию, вы должны быть первоклассным специалистом, обладающим массой знаний и богатым опытом разработки.
По исследованию портала Zarplan.ru, средняя зарплата хорошего питониста в России в зависимости от уровня подготовки составляет от 98 000 до 344 000 рублей. Неплохо, не правда ли?
Еще лучше дела в финансовом плане обстоят за рубежом. Т.к. Python — один из пяти самых востребованных языков программирования в мире, опытные разработчики нужны в разных странах, включая СНГ, США и государства Европы.
Так, например, в Германии заработок junior разработчика начинается от 35 000 евро в год, а middle- и senior-специалисты спокойно могут рассчитывать на зарплату в 100 000 евро в год (по нынешнему курсу это примерно 8,06 млн рублей в год или 670 тыс рублей в месяц).
Что касается США, то там Python среди всех популярных языков программирования оплачивается лучше всего (кроме Go). Так, средняя зарплата питон девелопера на 2023 год составляет $119 916 в год или около 745 000 рублей в месяц по текущему курсу.
Где работают специалисты и востребованность профессии
Из-за востребованности данного языка программирования специалисты, обладающие нужными знаниями, нужны везде — от мелких предприятий до транснациональных корпораций.
Среди отраслей, в которых наиболее востребованы разработчики на python, можно выделить:
- IT-компании, занимающиеся разработкой сайтов, приложений и другого ПО;
- различные интернет-порталы (Яндекс, Mail Grop);
- финансовые предприятия (например, те же банки);
- провайдеры (Билайн, Tele2, МТС);
- онлайн-сервисы (доставка еды, такси, онлайн-кинотеатры);
- ритейл (всем известные магазины DNS, Спортмастер и т.д.);
- образовательные платформы (Skillbox, EdX);
- различные госорганизации.
Примеры вакансий
Предлагаем вновь посетить сайт hh.ru, чтобы воочию увидеть и подробно изучить типичную вакансию python developer. Для примера возьмем на hh.ru вакансию «Разработчик Python» в московскую АО Крибрум.
В верхней части видим неплохую зарплату, требуемый опыт работы и условия по занятости. Ниже подробно расписаны требования к соискателям: Еще ниже — условия работы, ключевые навыки, которыми должен обладать кандидат (списком) и адрес компании:
Это достаточно типичная вакансия, где все требования и условия обозначены четко и понятно.
Примеры резюме
Несмотря на то, что сегодня развивающаяся невероятными темпами IT-сфера испытывает серьезную нехватку кадров, не стоит пренебрегать возможностью выделиться среди других кандидатов. Одним из таких способов произвести первое впечатление на работодателя является грамотно составленное резюме.
Взгляните на этот образец:
Здесь все строго по делу, ничего лишнего — кандидат указывает личные данные, навыки и качества, которыми обладает, а также подробно описывает опыт работы, образование, курсы и т.п. На такое резюме обязательно обратят внимание работодатели.
Как стать Python разработчиком
Узнав про высокий уровень зарплат специалистов в IT-сфере, многие читатели уже потирают руки в предвкушении. Однако не все так просто. Даже для того чтобы претендовать на вакансию начинающего Python-программиста (джуниора), необходимо сперва получить начальный набор навыков и умений. В частности, претендент на подобную вакансию должен понимать базовые понятия в IT сфере, знать (хотя бы в общих чертах) язык программирования Питон и разбираться в его коде.
Огромным подспорьем в получении работы будет какое-никакое портфолио. Его вполне реально составить, выполняя максимально простые проекты или ТЗ на собеседованиях. Но не стоит сразу пугаться — этот язык программирования реально выучить с нуля в любом возрасте, даже если вы имеете об IT очень смутное представление. Если у вас есть высшее математическое образование или оконченный ВУЗ по направлению информатики, вам будет проще освоить эту профессию.
Сегодня основных вариантов того, как получить необходимые знания и в результате стать Python разработчиком, всего три: это онлайн-курсы, поступление в ВУЗ и самостоятельное обучение. Давайте более подробно разберем плюсы и минусы каждого из этих способов.
Онлайн-курсы
Одним из самых популярных вариантов обучения профессии Python-разработчика является прохождение онлайн-курсов. Причин тому несколько:
- насыщенная программа обучения, включающая теорию и практику;
- четко структурированная подача материала, от простых уроков к сложным;
- среди преподавателей — специалисты своего дела, многие из которых являются действующими разработчиками в крупных компаниях;
- возможность спокойно совмещать учебу с работой и личной жизнью;
- невысокая стоимость обучения;
- свидетельство/сертификат/диплом по окончании обучения;
- помощь (иногда — и гарантия!) с трудоустройством.
Главный (и, пожалуй, единственный) минус онлайн-обучения — платная основа. В остальном же — это прекрасный способ быстро овладеть профессией и начать работу за солидную заработную плату.
Виды онлайн-курсов
Что касается формата онлайн-обучения, то здесь достаточно условно можно разделить все имеющиеся курсы на короткие и длительные. На одних вы получаете максимум информации в сжатые сроки, на других — не спеша овладеваете всеми необходимыми для python программиста навыками.
Короткие курсы
На коротких онлайн-курсах, как правило, начинающим IT-специалистам предлагают изучить какой-то один конкретный навык, которым должен владеть любой питонист. Это может быть непосредственно язык программирования Python или какой-нибудь популярный фреймворк. Подобные небольшие курсы длятся обычно от 1 до 3 месяцев и стоят в среднем от 10 до 30 тысяч рублей. Пойти отучиться по такой мини-программе целесообразно, если вы, например, уже овладели языком программирования на базовом уровне, но не знаете никаких фреймворков.
Длительные курсы
Долгие курсы в онлайн-школах сильно отличаются от коротких насыщенной и многогранной программой обучения. Такое обучение предполагает овладение профессией с нуля вплоть до трудоустройства. Цена на подобные программы, конечно, выше — в среднем от 100 до 180 тысяч рублей, но, во-первых, многие популярные онлайн-школы предоставляют беспроцентную рассрочку, а, во-вторых, после обучения вы овладеете профессией и сможете претендовать на трудоустройство в хороших компаниях и достойную заработную плату.
Лучшие курсы для Python разработчиков
Давайте перейдем от слов к делу. Представляем вашему вниманию несколько популярных онлайн-курсов от самых известных онлайн-школ на сегодняшний день.
Skillbox
Образовательная российская платформа Skillbox, основанная в 2016 году, является лидером рынка онлайн-обучения в нашей стране. Обладатель многочисленных наград и премий. Основной упор здесь делается на IT-профессии, среди которых можно найти любой вариант по душе.
На данный момент студентам предлагается свыше 780 различных образовательных программ. Компания также проводит более 70 вебинаров ежегодно, среди которых масса бесплатных мероприятий. Те, кто заинтересовался направлением разработки на Python, найдет в Skillbox курсы по всем знаниям, которые понадобятся специалисту в данной области:
Верхний предел стоимости курсов — 226 700 рублей.
Курсы Skillbox для Python разработчиков:
Geekbrains
Еще одна топовая российская компания в сфере онлайн-образования, работающая с 2010 года. Предлагает массу обучающих курсов по IT, программированию, тестированию, маркетингу и т.д. Является частью VK с 2016 года.
Компания лицензирована государство на образовательную деятельность, а все студенты получают по итогам обучения дипломы о профессиональной переподготовке или же удостоверения о повышении квалификации.
Стоимость курсов варьируется от 48 400 до 198 000 рублей.
Курсы Geekbrains для программистов на Питоне:
- Инженер-программист Python
- Программист Python Мастер
- Python-разработчик
Нетология
Одна из ведущих образовательных платформ, ведущая свою деятельность с 2011 года. В Netology есть масса самых различных направлений, от маркетинга и программирования до курсов по финансам и компьютерным играм.
Регулярно предоставляют студентам бесплатные курсы, лекции и другие полезные материалы, а на платные программы дается рассрочка. Не забудьте также о постоянных акциях, делающих обучение здесь еще более выгодным.
Стоимость образовательных программ — от 14 700 до 165 000 рублей.
Курсы Нетологии для python developer:
- Разработка на Python. Базовый курс
- Python-разработчик с нуля
- Fullstack-разработчик на Python
SkillFactory
Популярная онлайн-школа, созданная в 2016 года, главным образом сосредоточена на обучении профессиям в IT-сфере, Data Science, аналитике и дизайну. Ежемесячно обучение здесь проходят более 75 тысяч человек.
В SkillFactory вы также найдете массу бесплатного контента: онлайн-митапы, практикумы и карьерные встречи, а также гиды по актуальным профессиям и другие полезные «плюшки».
Стоимость образовательных в этой онлайн-школе составляет от 48 400 до 198 000 рублей.
Курсы SkillFactory для питонистов:
- Как стать успешным разработчиком на Python
- Интенсив по программированию: Python за три месяца
- Python-разработчик
Бесплатное самостоятельное обучение
Если вы по каким-то причинам пока не готовы посещать онлайн-курсы, никто не запрещает вам начать с самостоятельного изучения профессии python разработчика. На сегодняшний день в Сети представлена огромная масса всевозможных материалов, с помощью которых вполне можно получить представления о деятельности специалистов в данной отрасли и получить необходимые знания и навыки.
Специально для вас мы провели небольшое исследование и выбрали несколько действительно хороших образовательных источников.
- Основы Python от Хекслет — это бесплатный курс, призванный помочь будущим программистом научиться создавать и составлять программы, а также анализировать ошибки в коде. Курс состоит из 44 видео- и текстовых уроков, более 180 проверочных тестов и 55 упражнений в тренажере. Отличный вариант для старта!
- Python-разработка для начинающих от Нетологии — еще один абсолютно бесплатный курс, пройдя который вы изучите основы языка программирования Python и сможете самостоятельно разработать планировщик задач/Телеграм бота.
- Introduction to Computer Science and Programming Using Python (Введение в компьютерные науки и программирование через Python) — мощный курс от MIT (Массачусетского технологического института), рассчитанный на 9 недель. Участие — бесплатное, среди преподавателей — профессора компьютерных наук. Единственный минус — весь курс на английском языке.
- A Byte of Python подойдет в первую очередь тем, кто лучше всего воспринимает информацию через чтение. Это бесплатная электронная книга, являющаяся одним из самых популярных пособий по данному языку программирования. Как нельзя лучше подходит для новичков, т.к. содержит максимум полезной информации, от принципов и базовых понятий до основ синтаксиса и инструкций по разработке. Опять же, материал на английском языке.
- Python Tutorial for Beginners — плейлист на YouTube из более чем 225 видео, которые содержат огромное количество уроков для тех, кто начинает изучать Питон. Этот плейлист — одна из самых полезных находок для будущего программиста. Язык — английский.
Достоинства и недостатки самостоятельного обучения
Среди бесспорных плюсов самообразования можно выделить огромное количество обучающих материалов в свободном доступе в самых разных форматах: видео, лекции, статьи, курсы, тренажеры, тесты, аудио и т.д., а также возможность учиться в любое удобное время.
Минусов у самостоятельного обучения также хватает:
- Среди всей этой массы бесплатных обучающих материалов необходимо найти действительно качественный контент, что зачастую бывает совсем непросто.
- У вас не будет преподавателя, а значит, никто не сможет дать вам совет, проверить домашнее задание или направить в нужное русло. Сюда же можно отнести отсутствие контроля — все зависит исключительно от вас и вашей силы воли.
- Самообразование, как правило, занимает гораздо больше времени, чем при посещении курсов.
- Никто не даст вам официальный документ о полученных навыках. Проверяя ваши навыки python, будущие наниматели будут оценивать вас исключительно по результатам тестового задания.
ВУЗы
Другим вариантом изучить Python является поступление в специализированное высшее учебное заведение. Из-за стабильно высокого спроса на данную профессию ВУЗы России постоянно повышают квоту мест по IT-направлениям, включая бюджетные. Это неплохой вариант, но подойдет он в первую очередь тем, у кого имеется по меньшей мере 4 года на обучение.
Плюсы и минусы обучения в институте
- Вы получите комплексные фундаментальные знания, которые несомненно пригодятся в будущем в работе.
- После завершения обучения вы получите диплом о высшем образовании.
- Классическое академическое образование главным образом строится на теории, в то же время практика — важнейшая часть при обучении программированию.
- В России пока нет отдельной специальности по Python, поэтому для более глубокого понимания этого языка программирования все равно придется немало времени уделить самообучению.
- Необходимость подстраиваться под график учебы и посещать непосредственно университет.
Часто задаваемые вопросы
Вопрос: Что нужно знать разработчику на Python?
Ответ: Программист должен иметь представление о следующих понятиях: алгоритмы, Git, SQL и базы данных, алгоритмы на графах, рекурсия, агрегатные функции, Docker, структуры данных, а также обладать некоторыми soft skills.
Вопрос: Как стать Python разработчиком?
Ответ: На первом этапе рекомендуется самостоятельно изучить базовые понятия, овладеть стандартными для программиста навыками. Для этого можно заняться самообразованием (например, прочитать учебники по разработке, посмотреть обучающие материалы), поступить в университет или же пойти на онлайн-курсы. Затем начинающий специалист может проходить собеседования на вакансию junior.
Вопрос: Сколько зарабатывает Питон-программист?
Ответ: Из-за высокой востребованности специалистов зарплаты разработчиков в данном направлении весьма солидный. Начинающий специалист в России может получать от 40 000 рублей в месяц, тогда как миддлы и сеньоры претендуют на зарплату от 70 до 350 тысяч рублей в месяц. Заработная плата за рубежом, как правило, еще выше.
Вопрос: Что делает Python developer?
Ответ: В зависимости от сферы деятельности, специалист может работать с анализом данных, нейросетями и машинным обучением, в веб-разработке, тестировании и т.д.
Вопрос: Питон или Пайтон — как правильно?
Ответ: Правильное и каноничное произношение — пайтон, однако в нашей стране получила широкое распространение версия «питон». Собственно, так это слово и переводится, поэтому возможны 2 варианта произношения и написания.
Вместо вывода
Таким образом, Python-разработчик сегодня — это одна из самых востребованных и уважаемых профессий в IT с солидной зарплатой как в России, так и за рубежом. Ежедневно появляется масса новых вакансий, на которые может претендовать даже начинающий специалист.
В данном направлении низкий порог входа — другими словами, овладеть профессией с нуля можно в течение года. Получить базовые навыки программиста можно самостоятельно или пойти учиться на онлайн-курсы/поступить в ВУЗ. Выбор здесь зависит только от вас.
Главный плюс Python в том, что у него нет привязки к какому-то одному виду деятельности. Мобильная разработка, создание игр, веб-разработка или машинное обучение — все это возможно с данным языком программирования.
Язык программирования Python – обзор
Python – универсальный язык программирования (ЯП), главными преимуществами которого являются высокая производительность и структурированный, хорошо читаемый код.
Описание и отличительные особенности
История создания
Как и где используется
Какие компании пользуются «питоном»
Перспективы и стоит ли учить
Обзор рынка труда: прогнозы и зарплаты
Карьерный путь «питониста»
Курсы по Python
Плюсы и минусы языка
Сравнение «питона» с другими языками
Примеры кода
Подводим итоги
Его синтаксис максимально облегчен, что позволяет освоить базовые навыки в кратчайшие сроки.
Описание и отличительные особенности
Python является распространенным ЯП, который используется в IT-сферах широкого спектра. Машинное обучение, разработка программных приложений, написание скриптов автоматизации и многое другое – пожалуй, это один из самых универсальных инструментов у программистов.
Это высокоуровневый язык, который доминирует во многих областях. За все время своего существования «питону» удалось:
- занять лидерские позиции в сфере машинного обучения;
- плотно осесть на рынке десктопных приложений;
- охватить львиную долю рынка веб-разработки.
Благодаря своей универсальности, Python нередко называют языком программирования №1. А актуальные рейтинги и сервисы статистики только подтверждают это. Например, в PYPL, TIOBE и statista.com «питон» стабильно находится в тройке лидеров вот уже несколько лет подряд.
Многие веб-специалисты считают, что Python существенно упрощает процесс написания кода.
Отчасти, так оно и есть Более того, использование данного ЯП увеличивает скорость разработки. Программирование стало более динамичным благодаря следующим особенностям «питона»:
- Динамическая типизация. Типизация бывает статической и динамической. В случае с последней у разработчика нет необходимости указывать тип переменных – ЯП назначит его самостоятельно.
- Удобный возврат функцией нескольких значений. Разработчик может перечислить значения через запятую – в этом случае они преобразуются в список автоматически.
- Автоматическое выделение памяти. Программисту не нужно самостоятельно выделять память – Python это сделает самостоятельно. Да, это немного снижает контроль над программой, но здесь есть один существенный плюс – разработка ускоряется в разы.
- Автоматическая сборка мусора. Данная опция оптимизирует память и существенно упрощает процесс разработки.
- Привязка типа данных. В «питоне» тип данных привязывается к значению, а не к переменным.
Помимо этого, в Python удобно работать со списками, массивами и другими контейнерами. И еще одна важная особенность ЯП – его интерпретируемость.
Фактически, это означает, что у разработчика отпадает надобность к компиляции – достаточно запустить Python, чтобы получить мгновенный результат.
История создания
Разработка универсального языка программирования началась в конце 80-х годов. Над ним работал программист Гвидо ван Россум. На тот момент он работал в центре информатики и математики в Голландии. Разработка «питона» велась в свободное от работы время. В качестве основы использовался ABC.
Хронологию Python можно разделить на три этапа:
- 1991 год. Исходный код публикуется на alt.sources. На тот момент Python поддерживал ООП, работал с классами, функциями, наследованием, обработкой исключений и поддерживал основные структуры данных.
- 2000 год. Появляется обновленная версия Python, в которой появились необходимые для веб-разработчика инструменты (сборщик мусора, поддержка Юникода и т.д.).
- 2008 год. Выходит третья версия, которая и по сей день является основной. Ряд особенностей сделали ее совместимой с предыдущими Python. Некоторые разработчики перешли на нее, другие остались на второй версии с целью поддержки старых проектов.
Стоит сказать несколько слов о том, как появилось название языка. Здесь не обошлось без доли юмора. Создатель Python назвал свое детище в честь комедийного шоу, которое пользовалось популярностью в Соединенном Королевстве в 70-х годах прошлого столетия. Речь идет о «Monty Python».
Как говорил сам автор, это шоу помогало ему расслабиться и отвлечься от созидательного труда, связанного с разработкой ЯП.
Как и где используется
Как мы уже и говорили, Python отличается широкой сферой применения. Основными областями являются:
- Веб-разработка. Абсолютно все серверную часть сайта можно писать на «питоне». Но не на чистом, а на популярных фреймворках, которые, в свою очередь, написаны на Python. Тот же Django или Flask, например, упрощают процесс генерации html-страниц.
- Визуальный интерфейс. В области графики многие процессы также решаются посредством Python. Если нужно адаптировать интерфейс под стилистику ОС, можно использовать «питон» с дополнительными графическими библиотеками.
- Базы данных. Последняя версия ЯП создавалась так, чтобы максимально упростить взаимодействия с любыми базами данных.
- Системное программирование и администрирование. У Python есть интерфейсы для управления службами различных операционных систем, в которых он работает. Поэтому с помощью данного языка программирования можно писать портативные приложения для ПК.
- Сложные расчеты. В области вычислительного программирования Python продвинут не хуже C++ или Fortran. Для сложных математических вычислений создано расширение NumPy, которое работает с уравнениями, массивами данных и другими математическими форматами.
- Машинное обучение. В данной сфере активно используется не только основной функционал Python, но и различные фреймворки и вспомогательные библиотеки. На «питоне» пишется большинство программ, с помощью которых работают системы распознавания лица и голоса.
- Автоматизация бизнес-процессов. Одна из самых широких сфер использования, в которой Python применяется для написания коротких скриптов с целью автоматизации ряда рабочих процессов. Например, короткий код, который автоматически сортирует входящие письма по заданным ключевым фразам.
Как видите, сфера использования Python более чем обширна. Отдельно стоит сказать несколько слов о применении ЯП в индустрии игр. Именно эта отрасль привела к возникновению полезных гаджетов, а также дала мощный толчок развитию цифровой графики.
Создать серьезный проект на одном лишь «питоне» вряд ли получится. Но нем можно писать мелкие приложения или инди-игрушки.
Какие компании пользуются «питоном»
Если вы еще сомневаетесь, нужен ли вам Python, советуем обратить внимание на крупные компании, которые активно пользуются этим языком:
- «Питон» или «Пайтон» – один из официальных языков веб-разработчиков Google.
- Известный сервис стриминговой музыки – Spotify. Чтобы предоставить своим пользователя рекомендации, сервси анализирует большой колиество данных. В общей сложности, в работе Spotify задействовано более 6 000 сервисов Python.
- Самый популярный поставщик фильмов и сериалов – Netflix – использует Python с той же целью, что и предыдущая компания.
Будущее Python – предмет спора многих экспертов и программистов. Одни утверждают, что лучше этого языка нет ничего и в ближайшее время не появится. Другие наоборот– утверждают, что эра Python уходит в прошлое.
Перспективы и стоит ли учить
По мнению пользователей, Python сейчас находится на пике своей популярности. По мнению экспертов, ситуация будет такой же, как минимум лет 5-10. И вот главные причины:
- «Питон» перечеркнул мифы о сложности программирования. Язык отличается простым и интуитивно понятным синтаксисом, основанным на английском языке. Python легко читать и точно так же легко на нем писать.
- Низкий порог входа и огромное количество информации. При желании и усидчивости освоить базовые навыки Python-программирования сможет человек, который до этого ни разу не сталкивался с веб-разработкой.
- Большое количество инструментов. Помимо базового функционала, для Python создано большое число фреймворков, библиотек и расширений, которые упрощают решение многих задач.
- Минимализм и лаконичность. Разработчику не придется писать полотнища лишнего кода. Динамическая типизация и другие опции языка существенно упрощают процесс разработки.
Еще один момент, который говорит о перспективе ЯП – это востребованность специалистов.
Даже, если вы только сейчас начнете изучать Python, то в ближайшие 5 лет точно сможете найти себе работу.
Обзор рынка труда: прогнозы и зарплаты
Многие эксперты в один голос утверждают, что толковый «питонист» без работы точно не останется. А заработной платы хватит не только на хлеб с маслом.
Новички могут зарабатывать около 100 тысяч рублей уже в первые месяцы работы, мидлы могут рассчитывать на 120-150 тысяч, а специалисты уровня Senior – около полумиллиона рублей в год.
Карьерный путь «питониста»
Не обязательно начинать с истории создания языка и подробного разбора всех его версий. Достаточно начать процесс обучения с синтаксиса. На этом этапе нужно не заучивать все наизусть, а пытаться понять алгоритм. Чтобы последовательно изучить Python необходимо действовать последовательно, придерживаясь поэтапного алгоритма:
- Основы программирования. Тем, кто ни разу не писал код, следует заложить фундамент. Можно почитать статьи о базовом программировании или пройти бесплатные курсы.
- Выбор редактора кода. Освоим азы, нужно выбрать и установить инструмент, посредством которого и будет происходить написание кода. Интегрированная среда разработки называется IDE – редактор, предназначенный для написания кодов. Их можно писать и в самом обычном «блокноте», но лучше привыкать к специализированной среде, которая и подскажет название переменной, и скобки правильно поставит, и отформатирует списки.
- Изучить литературу по программированию на Python. В сети полно толковой информации. Одним из самых удачных пособий считается «Укус Питона». Одного чтения недостаточно – нужно вникать, практиковаться, пытаться воспроизвести код по памяти и неоднократно повторять пройденный материал.
- Практика. Теперь, пройдя все три этапа, можно приступать к практическому использованию полученных знаний. К этому моменту начинающий программист уже должен помнить базовый синтаксис и типичные конструкции.
Еще один способ можно сравнить с методикой, которую используют отцы, когда хотят научить своих детей плавать – просто бросают в воду. Можно начинать с создания собственных pet-проектов, самых простых и крохотных.
Просто берите тему, которая вам нравится и пытайтесь сделать из нее минимально жизнеспособный продукт.
Курсы по Python
Платить за курсы или нет – решать вам. С одной стороны, начинающему программисту с головой хватит бесплатных ресурсов и доступной литературой, которой полно в сети. Веб-разработчику, который стремится стать лучшим и получить престижную и хорошо оплачиваемую должность, можно пройти и платную программу обучения.
Платные курсы
В тройке лидеров:
- Факультет Python-разработки – GeekBrains. Стоимость – около 200 тысяч рублей. Продолжительность курса – 16 месяцев. Формат обучения: онлайн вебинары и занятия в записи; проверка домашних задание; общение с наставником.
- Профессия Python-разработчик – Skillbox. Стоимость обучения – 145 тысяч рублей. Продолжительность – 12 месяцев. Подходит как для начинающих разработчиков. Наставники обещают пройти весь путь до создания персонального проекта, который впоследствии можно использовать в своем портфолио.
- Fullstack-разработчик на Python – Нетология. Стоимость – 120 тысяч рублей. Продолжительность обучения – 18 месяцев. Процесс обучения осуществляется по государственной лицензии. Разработчики обещают содействие в дальнейшем трудоустройстве.
Есть масса и других курсов с более демократичным ценником и непродолжительным сроком обучения. Эта тройка лидеров была отобрана на основании отзывов и популярности.
Рейтинг:
- Python для начинающих – GeekBrains. Длительность – 120 минут.
- Python – вредные советы (разработчик – GeekBrains). Продолжительность онлайн-курса составляет 1,5 часа.
- Видеокурс Основы языка Python – GeekBrains. Продолжительность курса – 1 месяц. Программа состоит из 17 занятий.
- Программирование на Python – Stepik. Программа состоит из 28 онлайн-уроков.
- «Python: основы и применение» – Stepik. Программа состоит из 19 онлайн-уроков.
В бесплатных курсах нет ничего зазорного. Новичкам следует начинать именно с них, чтобы понять, есть ли увлеченность и желание развиваться дальше.
Плюсы и минусы языка
Основными достоинствами Python являются:
- Легкость изучения. Сложный синтаксис – это не про «питон». Если вы владеете английским, то все получится.
- Востребованность. В 2020 году в рейтинге IEEE Spectrum «питон» занял первое место.
- Использование в технологиях искусственного интеллекта и машинного обучения.
- Универсальность. На Python можно написать мобильное и web-приложение, программу для ПК и многое другое.
- Открытый исходный код и доступность ЯП на официальном сайте.
- Независимость от ОС.
Несмотря на огромное количество плюсов, у Python есть и парочка недостатков:
- Заторможенность в работе. Python практически не подходит для разработки высокопроизводительных приложений, поэтому для этой цели лучше сразу выбрать другой язык.
- Нехватка возможностей для процессорных оптимизаций.
- Не самым лучшим образом подходит для разработки мобильных приложений.
«Питон» не отличается шустростью. Не хватает в нем и возможностей для статического анализа кода.
Сравнение «питона» с другими языками
Уделим чуть больше внимания новичкам, которые только начинают свой путь в программировании. Они и задаются вопросом о том, что лучше Python и Java. Давайте сравним оба ЯП
У них есть много общего – поддержка объектно-ориентированного программирования и кроссплатформенность. Сравним по другим критериям:
- Типизация. У Java она статическая, у Python – динамическая.
- Компиляция. Python – интерпретируемый язык, Java использует и компиляцию, и интерпретацию.
- Скорость. Здесь шайба на стороне Джавы. Скорость – одно из самых слабых мест Python.
- Синтаксис и читаемость. У Java синтаксис достаточно сложный и многословный. А от витиеватости языка страдают не только новички. Python в этом плане существенно превосходит своего соперника.
- Область применения. Java – явный лидер в сфере разработки мобильных приложений. Python чаще используется для машинного обучения, автоматизации, искусственного интеллекта и веб-разработки.
Категорично сказать, какой язык программирования лучше, нельзя. Каждый находит для себя наиболее подходящий инструмент, находя способы нивелирования некоторых недостатков.
Примеры кода
Как мы уже и говорили, Python является одним из самых простых в чтении и написании. Убедиться в этом можно на примере кодов:
- печать строки N раз
- вычисление времени выполнения
- используемая память
FAQ
Сколько платят «питонистам»?
Опытным разработчикам могут предложить 200 тысяч рублей в месяц. Новички смогут найти предложения за 30-70 тысяч. Некоторые компании ищут толковых специалистов и готовы предложить им оклад в размере 500 000 рублей.
Легко ли учить Python?
Одно из главных достоинств «питона» – его простота. Это гибкий «всепрощающий» ЯП с минималистическим синтаксисом.
Используется ли Python для написания игр?
Многие игрушки были частично написаны на «питоне». Среди разработанных хитов – EVE OnLine, World of Tanks, Battlefield 2 и другие.
Подводим итоги
Python – относительно молодой и динамично развивающийся язык программирования с большим количеством библиотек и фреймворков.
Отлично подходит для начинающих разработчиков.
Главные минусы – низкая скорость работы и слабая адаптированность к мобильным приложениям.