Программист Python
Программист Python (Python Developer) использует высокоуровневый язык программирования «Пайтон» (Python) для создания приложений client — server, программных продуктов, микросервисов, сайтов, простых игр, ботов для социальных сетей. Занимается не только созданием ПО, но и технической поддержкой, интеграцией, оптимизацией, обучает персонал компании работать с программами и сервисами. Кстати, недавно центр профориентации ПрофГид разработал точный тест на профориентацию, который сам расскажет, какие профессии вам подходят, даст заключение о вашем типе личности и интеллекте.
Читайте также
profguide.io
Краткое описание
Python Developer пишет коды, интегрирует и тестирует приложения, исправляет ошибки, запускает и сопровождает разработанные им на «Пайтоне» программные продукты.
Python создал в начале 90-х годов прошлого века голландский разработчик Гвидо Ван Россум. Несмотря на почтенный для языков программирования возраст, «Пайтон» и сейчас уверенно занимает верхние строчки мировых рейтингов популярности (индекс TIOBE, индекс PYPL, IEEE Spectrum и др.). Его используют такие гиганты, как Mail.ru (VK), Google, Яндекс, Pinterest, Youtube, Intel и Microsoft, NASA, и многие другие крупные компании. Кстати, у Профгида есть тест «Какой курс Python для начинающих выбрать?».
Опытные программисты Python выделяют такие сильные стороны языка и плюсы работы с ним:
- расширяемость языка, интеграция с C/C++;
- упрощенный синтаксис, поддержка Unicode;
- кроссплатформенность;
- динамическая типизация;
- возможность оперативно создавать самый сложный код;
- огромное количество сред разработки и библиотек для любых целей;
- можно использовать для написания всех видов программных продуктов;
- упрощенное сопровождение созданного ПО;
- свободная лицензия;
- большое сообщество грамотных программистов.
Основным недостатком Python считается его «медлительность». Производительность «Пайтона» в несколько раз ниже, чем у более молодых языков. Тем не менее высокая производительность современных серверов и компьютеров практически нивелирует относительную неторопливость операций на Python — настолько, что приложение загружается 0,1 секунды вместо 0,001 секунды. Пользователь вряд ли замечает эту разницу.
В последние годы смартфоны оттесняют ПК с Олимпа пользовательских симпатий, и все больше программ и приложений разрабатывается на языках, лучше подходящих или вовсе специально созданных для мобильной разработки (например C++). Хотя на Python тоже можно разрабатывать мобильные приложения (с использованием Kivy).
Особенности профессии Python-программиста
Python — язык программирования настолько широкого назначения, что на нем можно написать практически всё. Он используется в веб-разработке, создании приложений, аналитике данных, системах автоматизации.
Кем работать
Программист на Python может работать на самых разных позициях:
- Разработчик ПО (Software Developer).
- Fullstack-разработчик на Python (Fullstack Python Developer).
- Инженер ПО (Software Engineer).
- Системный программист (System Programmer).
- Специалист по обработке данных (Data Scientist).
- Аналитик данных (Data Analyst).
- DevOps-инженер (DevOps Engineer).
- Автоматизация бизнес-процессов (Business Process Automation (BPA) Developer/Analyst или Robotic Process Automation (RPA) Developer).
- Веб-разработчик (Web Developer).
- Системный администратор (System Administrator).
- Тестировщик ПО (Quality Assurance Tester).
- Биоинформатик (Bioinformatician). В «Пайтоне» есть специальные инструменты для обработки данных и вычислений в молекулярной биологии – Biopython).
- GIS-аналитик (GIS Analyst).
- Билд-инженер (Build/Release Engineer).
- Специалист по машинному обучению (Machine Learning Specialist (ML Specialist))
- Разработчик нейронных сетей (Neural Network Developer).
- Младший научный сотрудник (Research Assistant).
- Инди-разработчик (Indie Game Developer). Можно создавать небольшие игрушки, серьезные игры пишут на C#.
Разработчик Python — это программист-универсал с большими карьерными возможностями.
Плюсы и минусы профессии
Плюсы:
- Возможность обучаться самостоятельно.
- Быстрое обучение.
- Большое русскоязычное сообщество программистов.
- Красивый и простой код языка, что существенно ускоряет процесс разработки.
- Небольшое количество программистов, хорошо владеющих Python.
- Востребованность, поэтому работы будет много.
Минусы:
- Для трудоустройства, кроме знанания Python, обычно требуются навыки работы и с другими языками (Java, C/C++).
- Программисты Python востребованы в крупных компаниях, базирующихся в Москве, СПб и других крупных городах. Поэтому с поиском работы в отдаленных регионах у разработчика, который владеет только одним языком программирования, могут возникнуть проблемы.
Читайте также
profguide.io
Важные личные качества
- Терпеливость.
- Трудолюбие.
- Решительность.
- Инициативность.
- Целеустремленность.
- Самоуверенность.
- Внимательность.
- Самоконтроль.
Обучение на программиста Python
Чтобы освоить профессию Python-программиста, достаточно школьных знаний. Главное достоинство «Пайтона» для новичков – низкий порог входа. Это значит, что научиться работать с Python может практически каждый, кому в принципе интересно программирование. Если знаете английский, будет намного проще: Python похож на английский больше, чем другие языки разработки.
Профессию программиста можно получить в колледжах и вузах. Для тех, кто решил самостоятельно освоить Python: в Интернете есть огромное количество полезных материалов: книги и учебники, видеоматериалы, русскоязычные сообщества, переведенные инструкции. Кстати, у Профгида есть онлайн-тест «Какой курс Python для начинающих выбрать?».
Программист на Python: кто такой и как им стать
Современные профессии для многих людей старшего поколения являются уже чем-то запредельным, так как полностью основываются на компьютерах, различной технике и всем, что с ними связано. А вот подростки или молодежь, которая только заканчивает учебу и хочет попробовать себя в чем-то перспективном и прибыльном, с удовольствием начинает постигать азы принципиально новых направлений в работе. Ярким примером является профессия программиста/разработчика на Python. Что же это за специалист, какой набор задач он решает и чего может достичь в данной сфере? Сегодня мы расскажем об этом поподробнее.
Что такое Python и где он применяется
Python — универсальный многоуровневый язык программирования, широко применяемый в IT-сфере. Он был создан еще в 1991 году. Правильнее будет произносить «Пайтон». Именно такое имя дал его разработчик — голландский программист Гвидо ван Россумом. Но в нашей стране его обычно произносят как «Питон».
Чаще всего Python используют для backend-разработки, так как он идеально подходит для программирования на стороне сервера. Его довольно просто изучать и работать на нем по сравнению с большей частью других языков за счет минимального набора специальных символов. Из-за своей универсальности он может быть использован:
Для разработки игр, вычислительных программ и нейросетей
Сопровождения ПО
Анализа данных
Написания и автоматизации скриптов и плагинов
Создания онлайн-сервисов, различных приложений для мобильных телефонов
Язык имеет массу преимуществ. Однако многие разработчики, имеющие большой стаж работы с разными крупными проектами, также отмечают его сравнительную медлительность. Python имеет более низкую производительность, если обратить внимание на показатели других современных языков.
Скачайте пошаговый план развития и сохранению мотивации у детей
При нажатии на кнопку вы соглашаетесь с
политикой конфиденциальности
Что входит в обязанности программиста на Python
Такого специалиста можно смело назвать «универсальным солдатом». Разработчики даже на начальном уровне очень востребованы на рынке труда, потому что имеют широкий профиль. В обязанности программиста на Python входят следующие пункты:
- создание многопоточных приложений;
- настройка отдачи данных в модуль машинного обучения;
- написание вычислительных программ разной степени сложности и функциональности;
- написание новых парсеров для сбора данных с интернет-ресурсов;
- взаимодействие с сетевыми протоколами HTTPS и HTTP;
- исправление написанных другими разработчиками парсеров в случае изменения каких-либо данных;
- активное участие в создании и реализации новых проектов, веб-сайтов;
- умение работать с технической документацией и корректировать ее;
- настройка связи с базами данных и внешними сервисами;
- использование системы контроля версий;
- эффективное взаимодействие с остальными членами команды разработчиков;
- тестирование и обнаружение ошибок (багов);
- оптимизация функционирования веб-сайта или приложения;
- администрирование парсеров;
- написание ПО для сбора и грамотного структурирования данных.
Как видите, возможностей очень много. Поэтому на сегодняшний день масса компаний стремится заполучить в свою команду опытного программиста на Python.
Какими навыками и знаниями должен обладать разработчик на Python
Разумеется, чтобы активно развиваться в данном направлении и иметь возможность занять выгодную должность в крупной компании, разработчик на Python должен соответствовать определенным требованиям и ожиданиям. Все зависит от уровня подготовки и практических навыков. Список того, что должен знать и уметь каждый, кто хочет развиваться в этой сфере, довольно широк. В него входит:
Понимание сути и предназначения MVC
Знание JavaScript, HTML, CSS (знать на уровне не ниже среднего)
Умение самостоятельно составлять технические задания для остальных членов команды
Чтение и понимание технической документации на английском языке (знать его на начальном уровне)
Знание контроля версий Git
Практический навык веб-верстки
Умение работать с такими базами данных, как PgSQL, MySQL
Знание ключевых фреймворков — Django, Flask (знать на уровне не ниже среднего)
Умение писать ботов
Понимание устройства современных Unix-систем
Хотя бы минимальный практический опыт написания читаемого кода на Python на уровне «Джуниор» или «для себя»;
Базовое знание математики и логики (знать на начальном уровне)
Умение читать, понимать, грамотно анализировать и корректировать чужой код, а также грамотно писать свой.
Все это кажется сложным и непостижимым только со стороны. На самом деле молодой ум намного более гибкий и отлично справляется с изучением тонкостей подобной профессии. Именно поэтому должность программиста или разработчика на Python особенно популярна среди юных талантов. У них достаточно базовой информации, так что даже начинающие специалисты, ищущие работу сразу после обучения, очень быстро находят клиентов в удаленном формате или же получают хотя бы начальную должность разработчика на Python в какой-нибудь фирме.
Личные качества, которыми должен обладать программист на Python
Если человек хочет построить успешную карьеру и планирует претендовать на высокую должность в сфере IT, он должен обладать следующими чертами характера:
- Четкий самоконтроль
- Ответственность
- Аналитический склад ума
- Самостоятельность
- Способность к самообучению
- Терпеливость
- Усидчивость
- Умение работать в команде, а не только в одиночку
- Инициативность
- Умение в нужный момент взять все в свои руки
- Предельная точность и внимательность
- Амбициозность
- Вера в собственные силы
- Трудолюбие
- Логическое мышление
- Адекватное восприятие критики в свой адрес
- Отсутствие страха рутинной работы
- Желание и стремление постоянно развиваться, получать новые скилы, выходить на более высокий уровень своих способностей
- Решительность
- Умение возглавлять и грамотно направлять команду для реализации единого проекта (навыки лидера, актуально для «Сеньоров»)
- Логичность и последовательность действий
- Хорошая память
Все эти качества не являются какими-то запредельными. Их вполне можно развить на обучающих курсах с качественной программой. Главное — найти хорошую онлайн-школу и грамотного педагога. Также не последнее значение имеет и само желание человека развиваться в данной сфере, а не просто монотонно работать.
Уровень заработной платы программиста на Python
На сегодняшний день размер з/п в среднем по РФ составляет порядка 150 тысяч рублей. Неплохой показатель, если сравнить со стандартным заработком среднеуровневого финансиста, бухгалтера или инженера. Это не самый топ зарплат среди разработчиков, знающих разные языки программирования.
Самый высокий показатель з/п по данному направлению относится к Москве, СПб. и Воронежу (по данным hh.ru). Однако это вовсе не означает, что сразу после прохождения курсов человек обязан куда-то переехать. На деле многие фирмы ищут сотрудников именно на удаленку. А это значит, что разработчик на Python всегда будет иметь возможность выгодно устроиться независимо от своего местоположения.
Уровень зарплат сильно варьируется в зависимости от набора полезных навыков и реального опыта. Вот такие показатели выходят в среднем:
- «Джуниор» — от 50 до 100 тысяч рублей в месяц
- «Мидл» — от 200−300 тысяч рублей в месяц (зависит от фирмы и типа задач, которые ему поручат)
- «Сеньор» — от 300 тысяч рублей в месяц (предела не существует, так как некоторые компании готовы платить действительно внушительные суммы денег, лишь бы у них в штате был человек с исключительными компетенциями в сфере Python и демонстрировал классные результаты).
Как видите, цифры действительно достойные. Не зря же сфера IT-технологий на сегодняшний день считается одной из наиболее прибыльных и перспективных. Так что раннее погружение в программирование на Python и прохождение соответствующих курсов с мощной программой — это самый настоящий финансовый вклад в светлое будущее вашего ребенка.
Преимущества профессии
Как и у любой другой специализации, у этой также имеются свои плюсы и минусы. Но стоит отметить, что первых все-таки значительно больше. Поэтому пробовать себя в данной сфере и учиться работе с Python однозначно можно и нужно. Вот перечень основных преимуществ данной специальности.
Возможность быстрого обучения
Обычно освоение той или иной профессии отнимает у человека не год и не два (в среднем от 4 лет, если говорить о вузах). С освоением «Питона» все несколько проще. Если присутствует стремление к обучению и развитию, устроиться разработчиком на Python можно будет сразу после окончания профильных курсов, которые в среднем длятся 1−2 года.
Не нужно изучать другие способы программирования
Специалисту в данном случае понадобятся глубокие скилы только касательно Python. Все остальные языки можно оставить другим программистам. Сконцентрироваться только на чем-то одном гораздо проще, чем учиться всему и сразу.
Возможность удаленной работы
Люди, посвятившие себя изучению Python, могут трудиться как в офисе компании, так и из дома. А если разработчик захочет работать фрилансером, то у него появится возможность брать сразу несколько проектов от разных заказчиков. И это, разумеется, положительно повлияет на его зарплату. По сути, ограничений здесь нет вообще никаких. Каждый может заниматься любимым делом, не покидая стен собственной квартиры.
Распространенность профессии в России
Программистов на Python сейчас немало. Поэтому можно легко найти школы с онлайн-курсами и профильные сообщества, где опытные разработчики подскажут насчет непонятных моментов в работе.
Отсутствие серьезной конкуренции
А вот настоящих профи в данной сфере можно практически по пальцам пересчитать (утрируем, но суть все же такая). Поэтому столкнуться с серьезной конкуренцией получится только на самом старте работы. Разработчиков на Python с твердым уровнем «Мидл» совсем немного. Поэтому получить хорошую должность с достойной зарплатной будет не так сложно.
Простота самого кода
Python по праву признан одним из наиболее простых и доступных для изучения языков программирования. Человек вполне способен освоить разработку собственными силами. Однако ценные советы, поддержку и качественную обратную связь (развивающую) можно получить только на специальных курсах. Хотя они тоже не покажутся слишком заумными, так как Python сильно уступает по перегруженности символами другим языкам.
Востребованность специалистов
Многие компании с удовольствием принимают к себе даже «Джуниоров» (начинающих спецов по разработке), которые совсем недавно окончили курсы Python и только начали практиковаться. Судя по статистике, человеку достаточно разместить резюме на одном из веб-сайтов по поиску вакансий и начать откликаться на предложения потенциальных работодателей.
Высокая скорость написания кода
Это очень важно, когда приходят крупные и многоступенчатые задачи. Ведь чем быстрее завершится разработка, тем скорее можно взяться за новую. И вот количество задач постепенно увеличивается, а зарплата потихоньку начинает покидать пределы среднестатистических значений.
Недостатки профессии
А вот и немного минусов. Прежде чем начать осваивать данную профессию, рекомендуется предварительно ознакомиться с ее возможными недостатками. Спойлер: их совсем мало и они не особо серьезные.
Вакансий для знающих дополнительные языки больше
Несмотря на всю популярность Python, знатоков его «собратьев» вроде C, C++ и Java больше. Поэтому обладание только этим языком программирования пусть и ненамного, но все равно сокращает число потенциальных вакансий.
Потребность территориального нахождения в крупном городе
Когда речь идет о действительно крупном и очень ответственном проекте, например создании полномасштабной многопользовательской игры, работодатель вполне может поставить условие: заниматься разработкой исключительно в офисе среди остальных специалистов.
Многозадачность
Не все люди способны работать в таком режиме, когда нужно проверять работу за другими сотрудниками, держать под контролем собственные действия, а также выполнять дополнительные поручения. Поэтому разработчику на Python, который искренне хочет достичь высот в своей профессии и стать «Сеньором», придется развить в себе многозадачность.
Как получить профессию программиста на Python
Так как же осуществить свою мечту и стать востребованным разработчиком на Python с хорошей зарплатой в год? Есть несколько вариантов, каждый из которых имеет свои плюсы и минусы.
Подойдет только для чрезвычайно мотивированных личностей с идеальной самоорганизацией, которые точно знают, что хотят стать именно разработчиком на Python. Получать скилы в этом случае непросто, так как придется купить много дорогостоящей литературы, пересмотреть массу бесплатных роликов, перечитать статей. Но оценить качество информации вряд ли получится, придется брать на веру и учиться на своих ошибках (что часто отнимает много времени). Да и актуальные в конкретном случае советы и развивающую обратную связь никто особо не даст, как и не поможет с проверкой процесса разработки.
Самообучение
Это идеальный вариант для всех, кто ценит свое время и деньги, а также качество обучения. Как правило, программа идеально структурирована, содержит только актуальную и понятную информацию в сжатом формате, а преподаватели имеют практический опыт программирования на Python. Поэтому учиться у них легко и интересно.
Курсы (онлайн или офлайн)
Получить официальный диплом специалиста в сфере IT можно и в профильном вузе. Однако там не будут учить работать только с языком программирования Python. Придется осваивать довольно обширную программу, большая часть которой человеку просто не пригодится потом (речь о смежных дисциплинах, в том числе гуманитарных). А еще это довольно затратное дело, отнимающее несколько лет жизни.
Профессия Python разработчик: чем занимается и сколько зарабатывает?
Python – один из языков программирования, который советуют осваивать новичкам. Выучить его относительно просто, даже если вы никогда не работали программистом. Команды на Питоне интуитивно понятны, особенно людям, знающим английский.
При этом разработчики на Python востребованы, поскольку популярность технологии растет. Есть мнение, что в области веб-разработки он даже теснит язык PHP.
Помимо описания профессии, ее плюсов и минусов, в статье вы найдете бесплатные уроки для изучения Питона и полезные материалы для новичков.
Кто такой Python программист и чем он занимается?
Питон считается универсальным языком, который имеет широкое применение. Однако чаще всего он используется в следующих сферах:
- Машинное обучение. Например, различные рекомендательные алгоритмы, поиск могут быть написаны на Питоне. Активно данный язык используется в Яндексе.
- Написание скриптов, которые встраиваются в программы, написанные на других языках. Например, в играх на Питоне пишут алгоритмы взаимодействия персонажей, обработку событий и запуск сцен. Код на Питоне есть в таких популярных играх, как World of Tanks, Battlefield 2.
- Анализ и визуализация данных. Многие аналитики сегодня должны знать Python, чтобы проводить вычисления, выявлять закономерности и делать анализ данных.
Помимо перечисленных областей, Python разработчики востребованы:
- В веб-разработке. Часто бэкенд-часть сайтов (которая взаимодействует с сервером) написана на Питоне. На этом языке активно пишут парсеры, то есть программы, которые собирают различные данные с сайтов.
- В мобильной разработке. Например, серверная часть приложения Инстаграм написана на этом языке.
- В разработке десктоп программ. Например, на Питоне создана программа GIMP, а также софт для разработки 3D-графики Blender.
- Активно данный язык программирования используется в различных устройствах, например, банкоматах, ЧПУ-станках, телекоммуникационном оборудовании.
Python-разработчик может заниматься созданием программ, сайтов, приложений в указанных областях, а также доработкой уже созданных программных продуктов, их развитием и поддержкой.
Есть множество онлайн-курсов, на которых можно освоить профессию с нуля, даже не имея опыта в программировании. Например, обучением занимаются университет Skillbox и Нетология (здесь лучшим выпускникам помогают со стажировкой).
Плюсы и минусы профессии
- Язык программирования Питон подходит для новичков, его относительно легко и просто выучить даже человеку, не работавшему в ИТ.
- Много литературы и документации на русском языке, большое сообщество русскоязычных специалистов.
- Быстрое обучение, поскольку команды языка и сам код интуитивно понятны.
- Популярность языка продолжает расти, что обеспечивает Python программистам хорошую востребованность среди работодателей.
- Python разработчики работают в крупных компаниях, например, такие вакансии есть в Яндекс, Майл.ру, Facebook, Yahoo, Instagram.
- Высокие зарплаты.
- Часто работодатели ищут сотрудников, которые помимо Python, знают другие языки программирования, например, Java. Это связано с тем, что Питон обычно используется для создания части программного продукта, а для другой части необходимо знать дополнительные языки.
- Вакансий программистов на Python больше в Москве и Санкт-Петербурге. Если вы живете в регионе, скорее всего, вам потребуется искать удаленную работу или заказы на фрилансе.
- Новичкам сложнее найти работу, чем опытным специалистам. Как решить эту проблему, расскажем в статье ниже.
Сколько зарабатывают Python-программисты?
Средняя зарплата начинающего программиста (Junior) – от 60 тыс. рублей в месяц. Разработчик с опытом работы 2-3 года (Middle) получает от 120 тыс. рублей в месяц. Зарплата специалиста уровня Senior достигает 200 тыс. рублей в месяц и выше.
На фрилансе заработки тоже хорошие, особенно если работать на иностранных биржах. Ставки разработчиков на Питоне на англоязычных сайтах могут доходить до 50-80 долларов за час работы. За 6-ти часовой день специалист может заработать порядка 30 тыс. рублей. Российские заказчики платят меньше, но получить 1000-1500 руб. в час тоже можно.
Как стать Python разработчиком, что нужно знать и уметь?
Поскольку язык программирования востребован в разных областях, то необходимый стек технологий зависит от сферы, где вы планируете работать, и даже конкретного заказчика. Если говорить о новичках, то в первую очередь необходимо знать:
- Сам язык программирования: синтаксис, операторы, выражения, циклы, массивы, функции. Базовую подготовку можно получить в Skillbox. Здесь есть 6-ти месячный курс для новичков.
- Алгоритмы.
- Фреймворк Django, если планируете трудиться в веб-разработке.
- Освоить работу с базами данных.
- Иметь представление, что такое ООП (объектно-ориентированное программирование).
- Тестирование кода.
- Знать, как работать с API сторонних сервисов.
Где учиться программировать на Python? Бесплатные и платные уроки
Быстро освоить Питон можно на курсах. Вы общаетесь с преподавателем, можете задавать вопросы, выполняете задания. Это ускоряет процесс изучения языка, особенно для начинающих.
Примеры платных онлайн-курсов для взрослых и детей:
Название и ссылка на программу
Описание, чему обучают
Базовая 4-х месячная программа в Skillbox. Включает изучение основ языка: операторы, выражения, циклы, числа, базовые коллекции, массивы, функции, алгоритмы, работу с файлами, ООП и многое другое. Подходит новичкам. Включает теорию и практику. Занятия идут онлайн, учиться можно через интернет.
Более объемный курс в Skillbox. Вы научитесь писать более сложные программы и создавать веб-приложения, верстать сайты, использовать Git и PyCharm, фреймворк Django, тестировать код. По сути освоите профессию с нуля.
Курс в Нетологии. Включает программу помощи с трудоустройством: лучшие выпускники попадают на стажировку в ИТ-компании. Плюсы обучения в Нетологии — много практики, работа над реальными задачами, известные преподаватели.
Специальная программа для детей в возрасте от 11 до 14 лет. Создана совместно с ИТ-лагерем INNOcamp. Помимо изучения основ языка, включает уроки по разработке сайтов. Занятия проводятся в формате вебинаров.
Здесь изучают только фреймворк. Если вы уже знаете язык, то прохождение курса повысит вашу востребованность в сфере веб-разработки.
Здесь можно пройти курсы программирования на Питоне и освоить профессию с нуля. У каждого ученика есть наставник. Помогают с поиском стажировки и вакансий.
Помимо платных курсов, есть бесплатные варианты, как можно научиться данной профессии:
- Освоить все самостоятельно по материалам на бесплатных сайтах, где обучают программированию. Если вы уже работаете программистом, это оптимальный путь, поскольку базу уже знаете и вам просто нужно разобраться в синтаксисе нового языка.
- Для обучения языку Python написано много книг и самоучителей, которые помогут новичку. Например, можно прочитать книгу «Изучаем Python. Программирование игр, визуализация данных, веб-приложения» Эрика Мэтиза.
- Посмотрите бесплатные уроки с YouTube:
- Уроки Python для начинающих (21 видео)
- Анализ данных на Python в примерах и задачах
- Программирование на Python (9 лекций)
- Образовательные каналы по ИТ на YouTube (обзор)
Как найти работу начинающему специалисту?
Освоив азы языка, можно устроиться стажером в небольшую компанию и попробовать себя в области веб-разработки или машинного обучения. Как правило, стажерам очень мало платят, зато обучают и подтягивают до уровня Junior-программиста. Проработав стажером 4-6 мес., вы уже сможете претендовать на обычную зарплату для ИТ-специалиста.
Если у вас уже есть опыт работы, то добавьте свое резюме на сайты для программистов. Вас будут звать на собеседования и предлагать выполнять различные задачи. Смотрите, с чем вы не справляетесь и подтягивайте знания, затем снова идите на собеседования. Рано или поздно вас возьмут на работу. Некоторые начинающие программисты ищут первую работу по 3-4 месяца и даже больше, но затем получают необходимый опыт и процесс поиска нового работодателя идет быстрее.
Когда вы станете уверенным разработчиком, то сможете брать заказы на фрилансе и зарабатывать как частный специалист. Это даст хорошую прибавку к зарплате в офисе. Искать заказы на фрилансе можно на биржах.
Где найти Python-разработчика на проект?
- Если вам нужен специалист на удаленную работу или разовый заказ, добавьте проект на сервис www.kadrof.ru/work Это бесплатный сайт, где публикуются вакансии для фрилансеров.
- Найти частного специалиста можно в каталоге веб-разработчиков. Там есть фильтры, позволяющие выбрать программистов, знающих определенные технологии.
- Посмотрите статью, где найти хорошего программиста. Там вы найдете много полезных сайтов, куда можно добавить вакансию для поиска Python-программиста.
Кто такой Python-разработчик. Обзор изнутри от Александры Воронцовой
Про профессию рассказывает Александра Воронцова, наставник курса «Python-разработчик» в Яндекс. Практикуме.
Продолжаем цикл материалов про ИТ-специальности. Каждую описывает «типичный представитель» — опытный специалист и просто авторитетный коллега, тот самый человек, который знает все тайные уголки своей профессии. Мы надеемся, эти материалы помогут школьникам, студентам, переквалификантам, джуниорам и всем тем, кто заинтересован в выборе ИТ-специальности. Цикл не только поможет оценить перспективы, но и даст возможность лучше понять индустрию и особенности профессии изнутри. Обсуждайте и дополняйте материал в комментариях, чтобы сделать его еще полезней.
Что надо знать Python-разработчику
Нужно базово знать язык программирования. В моем понимании к базовым знаниям относятся:
- типы и структуры данных: чем они отличаются друг от друга, например, в каких случаях лучше использовать списки, а когда ― кортежи,
- как хранятся переменные,
- что такое условные конструкции, циклы и функции.
При этом список нужных для работы скиллов отличается от направления, в котором вы хотите развиваться. Конкретнее расскажу про два самых популярных: веб-разработка и анализ данных.
Веб-разработка
- Фреймворки. Первый — Flask, с его помощью можно быстро запрограммировать что-то работающее. Но все дополнительные функции нужно подключать и скачивать отдельно, если они нужны, конечно.
- Django. С ним надо познакомиться хотя бы чуть-чуть, потому что долгое время он был одним из самых популярных. Поэтому велика вероятность, что, придя разработчиком на Python в какую-нибудь компанию, вы застанете проект на Django, и его надо будет поддерживать. Основное отличие Django от Flask — всё, что вам может потребоваться, встроено в сам фреймворк.
На старте нужно знать хотя бы один из этих фреймворков. Остальной набор зависит от того, в каком направлении вы хотите развиваться и какие задачи ставит перед вами тимлид. Обычно третьим советуют изучить асинхронный фреймворк. Например, Async IO либо Fast API.
Асинхронность нужна, чтобы обойти проблемные места, связанные с загрузкой процессора. При синхронной разработке пользователь не сможет взаимодействовать со страницей, пока не придет ответ от сервера. Асинхронность решает эту проблему: один поток подгружает интерфейс, а второй — ждет ответ от сервера.
- Устройство Unix-систем (хотя бы на базовом уровне). Перед собеседованием поработайте с Linux, поэкспериментируйте с командой стройкой и попробуйте какое-то время пользоваться только ей, без графического интерфейса. Вероятно, что когда вы придете на первую работу, единственным способом коммуникации с сервером, на котором запущено ваше приложение, будет командная строка. Этот навык осваивается очень быстро: день на то, чтобы прочитать документацию, и буквально неделя на то, чтобы закрепить знания.
- SQL и базы данных. Начинающему python developer-у не нужны глубокие знания в этой области, но нужно понимать, что такое база данных, и как в ней хранится информация. Будет здорово, если перед первым собеседованием вы развернете какую-нибудь базу данных и попробуете составить к ней несколько запросов.
Анализ данных
- Математика. Перцентили, нормальное распределение, векторы и матрицы — всё это нужно понимать, чтобы знать, что вы считаете. Обычно сложные вычислительные операции можно реализовать с помощью готовых функций, но без понимания, что и зачем используется, высока вероятность получить на выходе что-то ненужное вместо полезных данных.
- Pandas. Это библиотека Python, которая часто применяется в анализе данных. Ее используют в работе практически каждый день, поэтому нужно знать, как с ней работать.
- Визуализация данных станет огромным плюсом для начинающего разработчика. Например, базовая библиотека — Matplotlib. Еще есть Seaborn, которая расширяет возможности первой и в основном служит для более простых данных, например, корреляции или анализа одномерного или двумерного массива.
Soft skills
Хорошие soft skills порой важнее hard skills. Самое важное — умение и готовность задавать вопросы. У меня есть алгоритм, которым я делюсь со своими студентами. Он поможет подготовиться к обсуждению проблемы со старшим коллегой и сэкономить его время. Для этого нужно ответить на четыре вопроса.
- Что я хочу сделать? Кратко описать задачу и что именно вы хотите сделать. Например: я хочу вывести среднее число по конкретному массиву.
- Как сейчас работает программа? На каком этапе вы зашли в тупик, какое сообщение об ошибке всплывает или какой результат вместо ожидаемого она выводит.
- Что я уже пытался сделать, чтобы исправить ошибку? Например, поискал ошибку в поисковике или пробовал написать другую функцию.
- Конкретный вопрос, чем может помочь наставник или руководитель: посмотреть конкретный фрагмент кода или подсказать, какую функцию лучше использовать.
Готовность учиться и воспринимать замечания. Нужно уметь услышать позицию другого человека и понять, почему более опытный разработчик считает так или иначе. При этом абсолютно нормально, если джуниор вступает в дискуссию с такими аргументами: «Я слышал, что…», а не «Я знаю, что надо так, и точка». Нужно показать свои знания и спросить, почему старший разработчик думает иначе. В дальнейшем это позволит быстрее набрать базу знаний, дорасти до middle-разработчика и принимать более взвешенные решения.
Важно, чтобы с человеком было приятно работать в одном кабинете и поговорить не только о работе.
Где учиться на Python-разработчика
Высшее образование
Я ступаю на скользкую дорожку, но считаю, что не всем будет полезно высшее образование в ИТ. Вуз полезен, если решите идти дальше в Computer Science, чтобы заниматься программированием более фундаментально: не создавать новые сервисы, а изучать, каким образом писать эффективнее, или программировать более низкоуровневые системы. Например, университетский курс полезен, чтобы писать операционные системы, среду разработки или базы данных.
Еще вуз помогает уложить знания в структуру, потому что расписанием занимаются методисты. Они продумывают, в каком порядке и какие курсы давать, и обозначают спектр вопросов, на которые студент в дальнейшем должен уметь ответить на госэкзаменах.
Огромный плюс обучения в университете — возможность ездить по зарубежным стажировкам. При этом ваш возраст и этап обучения совсем не важен. Без вуза, скорее всего, такого шанса не будет.
Хорошие советы о том, как проходить собеседования на стажировки в крупные компании, например Google, Apple, Microsoft, Amazon, Facebook и Palantir Technologies, есть в книге Cracking the Coding Interview («Карьера программиста»).
Минус в том, что на это нужно потратить как минимум четыре года и вас, скорее всего, не научат продакшн-разработке. А ещё не все вузы позволяют совмещать учебу и работу.
Курсы для Python-разработчика
Есть много курсов на Coursera, Stepik, EdX. Поищите лекции на YouTube, а вопросы задавайте в комментариях. Еще можно читать Хабр. Правда, полезно там далеко не все. Но за неделю можно найти пару хороших статей, которые расширят кругозор и могут однажды пригодиться на собеседовании.
Проблема такого подхода в том, что надо обладать ненулевой мотивацией и очень хотеть что-то изучить, потому что никто не будет за вами бегать и проверять домашние задания. И так как вы не заплатили за это деньги, пропадает ответственность за результат. В такой ситуации может сложиться плохой паттерн: вы начинаете учиться и бросаете на середине. Мозг привыкает, что когда становится тяжело, сложно или просто нет времени, легко можно на что-то забить.
Ментор
Ещё вариант — работа с ментором. Рядом с вами будет человек, который заинтересован, чтобы вы прошли курс и получили конкретные знания. Если повезет и вы будете хорошим учеником, вам предложат устроиться в компанию или, как минимум, передадут ваше резюме менеджеру.
Когда вы учитесь с конкретным человеком один на один и хотите решить какую-то задачу, ментор берет на себя декомпозицию проблемы, помогает с выбором конкретной технологии, подсказывает, что читать и как отвечать на вопросы. Он же проведет код ревью.
Но ментора надо искать так же внимательно, как психотерапевта. Даже если наставник хороший специалист, может оказаться, что вам с ним неприятно работать. Из-за отсутствия методиста полученные знания могут оказаться однобокими и плохо сбалансированными. Например, если ментор посчитает неважным изучать unix, вы его не затроните.
Платные курсы. Я преподаю в Яндекс. Практикуме, где дается большое количество теоретического материала и есть учебные проекты, на которых можно тренироваться. Кураторы и наставники заботятся, чтобы разработчики получили релевантный опыт, трудоустроились в компанию и начали карьеру в ИТ. Они всегда отвечают на вопросы и помогают сориентироваться в неизвестной теме. Но задания одинаковы для всех студентов. Поэтому если вы хотите что-то конкретное, придется заниматься этим дополнительно, а не вместо проектов курса.
Мне нравится подход, когда платные курсы становятся бейзлайном — основной линией, по которой идет обучение. Но всегда будут темы, которые понятны не до конца или оставляют новые вопросы. Чтобы восполнить эти пробелы, можно найти материалы на YouTube, Хабр или в книге, попросить совета у наставника, почитать и дополнительно разобраться.
Параллельно я преподаю на Learn Python. Здесь не помогают трудоустроиться, но зато можно разобраться, подходит ли мне эта профессия и захочу ли я заниматься этим в будущем. Там есть материалы, которые рассчитаны на всех, а дальше идут самостоятельные проекты. Студент выбирает, что хочет реализовать за условные восемь недель, и параллельно с наставником работает над проектом.
Как подготовиться к собеседованию
Когда я искала свою первую работаю, поступила просто: искала в интернете вопросы для junior Python-разработчика. Так вы понимаете, с чем придется столкнуться и оцениваете свой уровень. Например, на какие-то вопросы сможете ответить сразу, а какие-то — придется погуглить. Соответственно, продолжаете заниматься, через пару месяцев смотрите этот список и пытаетесь дать честный ответ, как ответили бы на собеседовании.
Тогда же я составила себе список для middle-разработчика, чтобы определить траекторию дальнейшего обучения и не тратить потом на него время. А еще дополнительные знания иногда помогают получить более хорошее предложение на старте.
Если получится, найдите знакомого, который совсем ничего не понимает в программировании, чтобы он задавал дополнительные вопросы. Это называют методом Фейнмана. Свое кредо он описал так: «Если вы ученый, квантовый физик, и не можете в двух словах объяснить пятилетнему ребенку, чем вы занимаетесь, — вы шарлатан».
Хорошим показателем готовности к собеседованию будет наличие работающего проекта на GitHub, который вы можете использовать в своей жизни. Я уже писала в начале про бота, который помогает составить список покупок. Если есть такой или другой аналогичный по сложности проект, вы его написали и сами пользуетесь, выкладывайте на GitHub и рассылайте резюме с сопроводительными письмами. Это уже хороший старт.
Что почитать
Telegram-каналы
- Библиотека программиста — публикуют подборки книг и инструментов, инструкции, аналитику и все остальное, что помогает погрузиться в ИТ-сферу и освоить разработку.
- NOP:Nuances of programming — авторские материалы и переводы статей, связанных с программированием.
Книги
- «Карьера программиста», Макдауэлл Лакман. Автор пишет о своем опыте собеседований в крупнейшие ИТ-компании. В книге 189 задач и вопросов, которые помогут восполнить пробелы в знаниях и подготовиться к интервью.
- «Совершенный код», Макконнелл Стив. Внутри много советов и рекомендаций, которые научат писать код лучше и чище, проектировать с максимальной продуктивностью, быстро находить в проекте проблемы и разрабатывать качественнее.
- «Чистая архитектура», Мартин Роберт. Книга про архитектуру и дизайн кода. Автор объясняет, что и почему нужно делать, чтобы стать успешным программистом. Много рассказывается про объектно-ориентированное программирование, но внутри используется Java.
Еще советую пару раз в неделю читать статьи на Habr по любым темам, чтобы не выпадать из состояния «я изучаю программирование».