Как стать Python Middle Developer?
1. Нужно стать middle developer. Для этого нужно уметь программировать, а не уметь программировать на python. Это сложно и даётся не всем. Нужно понимать с самых низов — что такое память, как данные в ней хранятся и почему 1, «1» и 1.0 в памяти лежат совсем по-разному. И до верхов: как спроектировать легко расширяемую систему, не падать в обморок при слове solid, понимать паттерны и как их можно применить в реальном коде и на вопрос «какие паттерны ты знаешь?» не отвечать «синглтон»
2. Знать особенности питона
Из книг 100% прочитать и понять: Роберта Мартина, Макконнелла, Fluent Python и, конечно же, паттерны банды четырёх.
Ответ написан более трёх лет назад
Нравится 3 6 комментариев
А в чём преимущество от знания паттернов?
Владимир Олохтонов, это какая-то шутка?
Roman Kitaev, нет, мне действительно интересно.
Про них часто упоминают как о необходимой вещи, но на моей практике основной наблюдаемый эффект от них — чрезмерное число абстракций и абсолютно нечитаемый код.
Возможно они лучше проявляют себя когда проект разрабатывают больше десяти человек или когда в команде большая текучка, например?
Владимир Олохтонов, на моей практике, паттерны помогали уменьшить связанность кода и сложность отдельных юнитов. Конечно, при этом неминуемо растёт число абстракций, но это соразмерная плата за снижение сложности кода и повышения его атомарности.
Но я начал использовать паттерны задолго до того, как прочитал ту самую книжку. Они появлялись сами собой и были очень логичными. На то они и называются так — это просто best practices для решения шаблонных задач.
Честно говоря, я не могу придумать адекватную замену, например, шаблону «посетитель», чтобы было меньше абстракций, но код при этом был более читабельным и расширяемым (или хотя бы остался на уровне).
Roman Kitaev, у меня примерно так же получилось, я их сам придумывал и они были к месту.
Посетитель — пожалуй действительно один из немногих примеров паттерна, который приносит пользу и который при этом не придумывается на лету 🙂
К сожалению, неопытные разработчики, начитавшись книг про паттерны, начинают пихать их везде, к месту и не к месту.
Поэтому мне и кажется, что про них лучше прочитать спустя несколько лет, а не сразу.
Владимир Олохтонов, Не могу не согласиться. Однако, в моём понимании, middle разработчик — это уже опытный разработчик с 3+ годами (в среднем, есть и вундеркинды, кто может за год стать) опыта, который постоянно развивается и вот сейчас находится на той стадии, когда может себя так называть. При этом, он уже должен уметь буквально всё, хотя бы в теории.
Неопытных мидлов не бывает. Вернее, бывают те, кто (или кого) называют себя мидлами просто за то, что он 3+ лет штаны просиживал в разработчиках, но это ненастоящие мидлы.
Конечно, лепить паттерны везде только потому, что книгу прочитал — это как в поговорке про «в руках молоток». Но мидл так не будет делать.
От стажера до миддла: как вырасти Python-разработчику
Илария Белова, ведущий Python-разработчик отдела качества рекламы Яндекса, рассказывает, какие навыки отличают хорошего мидла от стажёра.
Илария Белова
Ведущий Python-разработчик отдела качества рекламы Яндекса и преподаватель Школы анализа данных
Мидл — следующий этап развития разработчика после стажёра или джуна. Ему доверяют больше интересных проектов и ответственных задач, у него чаще спрашивают совета, ему больше платят. Илария Белова, ведущий python-разработчик отдела качества рекламы Яндекса и преподаватель Школы анализа данных, рассказывает, что отличает хорошего мидла от стажёра.
Необходимый минимум
Когда стажёр только начинает работать, ему достаточно владеть базовыми инструментами и навыками:
- знать базу языка и устройство структур данных в нём;
- уметь работать в командной строке;
- уметь работать с системой контроля версий.
После устройства на работу стажёр сначала учится работать в экосистеме проекта с выполнением всех best practices: пишет тесты и документацию, работает с трекером задач, собирает, принимает и выкатывает изменения. Обычно этому учит ментор, который сопровождает стажёра. И когда всё это усвоено, стажёр становится полноценной боевой единицей — джуном.
Как быстрее перейти в мидла
Однажды к нам в Яндекс пришёл стажёр, которого быстро подняли до мидла без стадии джуна. Его отличало то, что он сам инициировал задачи, которые нужно сделать: «Здесь у вас плохо. Можно сделать вот так, и станет лучше». Мы отвечаем: «Хорошо. Если это не мешает твоим основным задачам — делай». И он всё успевал делать в рабочее время и разумные сроки — не было такого, что взялся за что-то и не сделал.
Ещё из важных качеств — он адекватно реагировал на критику и быстро вносил правки. Некоторые стажёры могли тратить на небольшие исправления два-три дня. Но этот парень приносил исправления уже через пару часов. И даже если он снова что-то делал не так, то оперативно всё менял.
Он не боялся переписать собственный или чужой код, чтобы получить результат. Был самостоятельным и инициативным, доделывал всё до конца, и его не надо было пинговать. В итоге через полгода после начала стажировки мы его сразу подняли до мидла, а спустя два года он уже претендует на старшего разработчика. Хотя до нас он был бывшим студентом, который где-то поработал всего полгода.
Таких примеров мало, и чаще всего стажёры не понимают, чего на самом деле от них ожидают. Поэтому я расскажу о ключевых навыках, которые помогут быстрее вырасти в джуна или даже сразу в мидла.
Разбираться в структуре проекта
Начинающий разработчик ещё не может охватить весь проект целиком и выделить зоны ответственности разных частей кода. Например, он может задублировать уже существующую в проекте функциональность. Если это так и оставить, то в будущем правки придётся вносить в двух местах, почти наверняка про это будут забывать — и код начнёт разъезжаться.
Другая проблема — добавление ненужных зависимостей. Часто начинающие разработчики импортируют лишние библиотеки, порождают неявные связи и циклические зависимости. Чтобы сделать небольшую легковесную утилиту, не нужно добавлять в зависимости половину внутренних библиотек Яндекса. Всё это замедляет сборку и усложняет структуру проекта.
Умение разбираться в экосистеме проекта приходит с опытом. Чем больше разработчик погружается в проект, тем лучше он понимает его структуру. Но важно не просто «работать над проектом», а интересоваться им, пытаться понять, почему сделано именно так и для чего нужна та или иная штука. Также помогает участие в разных проектах: чем больше проектов видит разработчик, тем быстрее он учится разбираться в них.
Не бояться править чужой код
Если начинающего разработчика попросить написать функцию, он сделает ровно то, что сказали. Не посмотрит соседний код, а просто реализует то, что от него просили, даже если это будет криво вписываться в существующее решение. Стажёры боятся править чужой код, ведь его писал «гуру программирования, который разбирается в этом лучше». И даже если стажёр чувствует какую-то проблему, всё равно он боится взять на себя ответственность за исправление.
Опытный разработчик смотрит чужой код и пытается понять, какой смысл в нём заложен и как его поправить так, чтобы ничего не сломать и красиво вписать своё решение. Начинающему сделать это тяжело, но он может подсветить проблему или пообщаться с автором кода и обсудить возможную модификацию. Главное — не пытаться молча «закостылить» своё решение.
Писать чисто
Важно думать о тех, кто будет читать код после вас. Чаще всего наши стажёры — бывшие студенты, а в университете не
заморачиваются с долгоживущим кодом: там можно выполнить задачу, сдать и забыть. Из-за этого стажёры не придерживаются code style, не пишут документацию к функциям, оставляют в коде много мусора, а ошибки обрабатывают с текстом «Sorry, fail». На код-ревью приходится от этого отучать.
Мы прививаем следующий подход: сделал функциональность — напиши на неё тесты, обнови документацию, поправь аннотации, сделай user-friendly тексты ошибок. Если сделал костыль и он правда нужен, то напиши об этом подробный комментарий и объясни своё решение.
Не делать фичи «на всякий случай»
Иногда стажёры хотят сделать максимум функциональности и побольше фич. Они создают ненужные методы и классы, добавляют обработку множества опций и параметров «просто на всякий случай». Но если ни сейчас, ни в обозримом будущем эта функциональность не нужна, то и делать её не нужно. Этот «случай» может никогда и не наступить, а поддерживать этот код придётся всё время.
Брать на себя ответственность
Есть несколько видов ответственности: за принятие решений и за доставку конечного продукта.
Когда во время ревью мы находим ошибки, то спрашиваем: «Почему ты сделал это именно так?» Частый ответ: «Не знаю» или «А как надо было?». Это показывает, что разработчик не пытался оценить разные варианты решения и выбрать из них. Опытный разработчик прорабатывает в голове все возможные варианты и corner-кейсы, выбирает самое целесообразное решение и несёт ответственность за свой выбор. Разница между начинающим и опытным в том, что второй перебирает больше вариантов и делает более осмысленный выбор.
Я часто предлагаю стажёрам несколько вариантов решения проблемы и объясняю плюсы-минусы каждого. Но финальное решение оставляю за самим разработчиком, и важно, чтобы он сумел его объяснить. Даже ответ «Я выбрал этот вариант, потому что его реализовать быстрее, а у нас горит дедлайн» — хорошее обоснование.
У нас были начинающие разработчики, код которых разваливался после запуска в продакшен. Но проблема была не в том, что он разваливался, а в том, что разработчики даже не интересовались, как их код доехал до прода. Опытный разработчик сопровождает свой код с момента написания до доставки: выясняет, на какие графики нужно смотреть, какие логи проверить, и удостоверяется, что в продакшене всё заработало.
Развивать критическое мышление
Бывает, ставишь стажёру задачу, а он молча начинает её делать. Если потом спросить его: «Ты понимаешь, над какой проблемой работал? Для кого ты делал задачу? Что она должна решать?», то, скорее всего, внятного ответа не будет. Это может быть чревато тем, что задачу сделали, но никакой проблемы она не решает. Например, если формулировка была неполной или не учли подводные камни. Также в голове не образуется связки, которая учит в будущем идентифицировать проблемы и подбирать адекватные решения.
Ещё нередкая ситуация, когда извне прилетают задачи, которые на самом деле делать не нужно. В таких ситуациях нужно посмотреть на задачу, понять её суть и сказать: «Тебе поможет не эта фича, а вот эта. Такое решение есть, и тебе лучше обратиться к другому отделу, вот к этому». Это отличает начинающего разработчика от опытного: смотришь на задачи, отсекаешь ненужное и фокусируешься на важном.
Изучать и следовать best practices
Для развития начинающего разработчика очень важно хорошее код-ревью. Например, в ШАД ревьюеры тщательно смотрят код, оставляют подробные комментарии, делятся своим опытом и объясняют, почему что-то не сработает. Не просто «Поправь тут», а «Это важно с точки зрения потребления памяти. Сейчас здесь мало данных, и код работает нормально. Но когда объём возрастёт в 10 раз, это может выстрелить».
Не во всех командах можно найти хорошего ревьюера и наставника. У меня его тоже не было, поэтому я просила помощи у друзей и знакомых, которые рассказывали мне best practices. Для тех, кто привык работать самостоятельно, лучше всего читать документацию и PEP.
К статьям на «Хабре» и к видео с конференций стоит относиться критически, потому что при нехватке опыта тяжело выделить полезные доклады. Идентифицировать хорошую статью можно по тем же критериям, что и новую фичу: есть ли в ней хорошие ответы на вопросы, какую проблему решает, правда ли решаемая проблема актуальна, какие альтернативные решения были?
Что почитать, послушать и посмотреть
Курс «Язык Python» от ШАД. Мы рассказываем про устройство языка, структуры данных, тестирование, документирование, а также затрагиваем прикладные темы: MapReduce, асинхронность, работу с сетью. На каждую тему есть много заданий, решения которых мы затем разбираем. Курс поможет не только освоить все необходимые навыки, но и разобраться в различных сферах применения языка, выбрать себе специализацию, подготовиться к собеседованию. Это задаст необходимый вектор роста.
«Чистый код» и «Чистая архитектура» (Роберт Мартин), «Совершенный код» (Стив Макконнелл). Эти три книги будут полезны для всех разработчиков. Они не привязаны к конкретному языку, но объясняют основные принципы хорошего и компактного кода. Такого, который принято использовать в промышленной разработке для упрощения поддержки и масштабирования.
«Head First Design Patterns» (Эрик Фримен, Элизабет Робсон). Это весёлая книга для тех, кто хочет узнать
больше про паттерны, но с трудом понимает академический текст. В книге собраны проверенные временем паттерны, которые используют разработчики для создания гибкого кода.
Refactoring.guru. Тут есть и про паттерны, и про best practices на разных языках, в том числе на Python, а ещё и с картинками. Много понятных примеров, на которые будет полезно взглянуть.
Как стать Python разработчиком. План действий для начинающих
Python — один из самых популярных языков программирования среди украинских разработчиков, имеющий широкую область применения. Язык имеет сравнительно простой синтаксис и его легко изучить, поэтому Python часто выбирают новички в качестве первого языка для входа в IT.
В рамках рубрики для начинающих «Код профессии» рассказываем о том, как выучить Python и найти первую работу. Для этого мы пообщались с опытными Python-разработчиками Владимиром Обризаном, Виталием Мирошниченко, Сергеем Галабурдой и Михаилом Кашкиным и собрали их советы в один материал.
Что такое Python
Python — интерпретируемый объектно-ориентированный язык программирования высокого уровня со строгой динамической типизацией. Разработал его в 1990 году Гвидо ван Россум.
Сфера применения языка достаточно широка. Python используют в веб-разработке, для машинного обучения и работы с данными, для автоматизированного тестирования. На Python пишут игры, сервисы, веб-приложения, крон-скрипты для бекапа, программы по юнит-тестированию, с его помощью учат нейросети. В проектах Python используются и как основной язык программирования, и для создания расширений и интеграции приложений. Также его активно используют для создания прототипов будущих программ.
Согласно последнему рейтингу языков программирования от DOU, Python — на месте среди языков, которые опрошенные ИТ-специалисты используют для работы, — на нем пишут 11,2% специалистов. Среди языков, которые используются как дополнительные, Python на третьем месте.
По этой ссылке можно посмотреть средние зарплаты Python-разработчиков с разным опытом.
На момент публикации медианная зарплата Python-разработчика составляет $2600. Зарплата Trainee: $330-900; Junior: $700-1163; Middle: $2000–3500; Senior: $4000-6000.
А здесь можно найти открытые вакансии в категории Python. На момент публикации статьи открыто 185 вакансий.
Почему язык Python стоит выбрать начинающему
Для новичков, не имеющих опыта программирования на других языках, изучение Python является хорошим способом освоить часть базовых концептов (таких как арифметические операции, разветвления, циклы, функции) языков программирования и прокачать логику.
Рассмотрим преимущества языка для начинающих по порядку:
- Python сравнительно легко выучить, у него простой и понятный синтаксис. Легко подключать сторонние библиотеки.
- Есть много литературы, образцов кода, онлайн-курсов, видео, вопросов и ответов на Stack Overflow, поэтому новичок не останется без информации.
- Большое сообщество разработчиков, поскольку Python является одним из самых популярных языков. Это облегчает поиск ментора или чата поддержки.
- У Python-разработчиков есть много вариантов развития. Этот язык используют для автоматизации рутинных дел системные администраторы, инженеры по тестированию используют Python для автоматизации тестирования вебсайтов (Selenium), программисты пишут программы для ПК (PyQT), вебсайтов (Django), вебсервисов (Flask, FastAPI и т.д.), для обработки данных (Pandas , NumPy), даже можно писать новые плагины для больших программ (QGis, Gimp). И это не исчерпывающий список!
- На рынке труда достаточно предложений работы как в Украине, так и удаленно.
Поскольку мы видим, что язык подходит для начинающих, перейдем к вопросу о том, как его изучить.
Какие технологии следует изучить в рамках Python
Прежде всего нужно выучить синтаксис языка. Важно, что язык развивается, поэтому сегодня нужно учить примеры кода, разработанные для Python 3.10 или выше.
Также следует знать:
- Алгоритмы и структуры данных, а также их реализацию в стандартных пакетах Python.
- Многопоточность (concurrency) — для того, чтобы узнать о программировании многопоточных приложений и то, почему у Python многопоточность ограничена.
- Flask, FastAPI — чтобы создать свой первый сервис для обработки HTTP-запросов.
- NumPy, pandas для работы с данными и математическими расчетами (визуализация данных, умножение матриц и т.п.).
Следует использовать следующие инструменты:
- Black — автоматическое форматирование кода программы.
- Pylint — проверка базовых правил написания кода, проектирование и подсказка типичных ошибок в коде. Это важно для начинающих, потому что сначала ошибок будет очень много, нужно, чтобы этот инструмент вовремя подсказал, где именно.
- Unittest, Pytest — автоматическая проверка программы. Хорошие инструменты, чтобы писать надежный код без логических ошибок.
- Mypy — проверка корректного употребления типов.
- Git — система управления версиями файлов и совместной работы.
Кроме того, на выбор технологий влияет запрос разработчика. Если вы планируете заниматься анализом данных или созданием искусственного интеллекта, следует изучать визуализацию и обработку данных, а также математику. Если хотите создавать приложения, нужно больше внимания уделить изучению библиотек и технологий, связанных с бэкендом, и многопоточности.
Если речь идет о профессиональном применении языка, то в разных направлениях есть свой обязательный минимум технологий.
Автоматизация тестирования: unittest, pytest, Selenium, HTML, CSS.
Программирование для ПК: PyQT.
Разработка веб-сайтов: Django, HTML, JavaScript, SQL.
Разработка веб-сервисов: Flask, FastAPI, JSON, SQL.
Как лучше учить язык программирования — на курсах или самостоятельно
Этот вопрос индивидуален и ответ зависит от возможностей, времени, желания и других факторов. Можно выучить язык самостоятельно, на курсах или во время стажировки в компании.
Чтобы легче определиться с тем, как лучше учиться, поговорим о преимуществах и недостатках каждого из способов.
Самостоятельное обучение
Достоинства:
- Материалов в интернете много, и есть огромный выбор доступных и качественных гайдов.
- Это бесплатно или дешево (по стоимости книги или подписки на определенный ресурс).
- Скорость и темп обучения вы контролируете сами, можете заниматься, когда вам удобно, и не подстраиваться под кого-либо.
- Если у вас уже есть опыт в разработке, сможете потратить меньше времени на изучение языка, чем если бы пошли на курсы, продолжающиеся полгода или год.
- Можно выбирать формат потребления информации — видео или текстом.
Недостатки:
- Без ментора может быть сложно распознать и понять свои ошибки, а с каждой последующей задачей может снижаться и мотивация к обучению.
- Сложно разобраться, что и за чем учить, где и как найти необходимые ресурсы.
- Сложно понять, достигли ли вы уже уровня, с которым можно идти на стажировку или искать работу.
- Изучение языка может затянуться, если нет навыков самоорганизации.
Опытные разработчики советуют найти ментора, если вы выбрали путь самостоятельного изучения языка. Поскольку на определенном этапе вы можете попасть в тупик и не найти решения. Кроме того, иногда самому трудно увидеть свои ошибки, а ментор подскажет, как сделать код более чистым и качественным, объяснит особенности его написания на примере каждой отдельной ситуации. Впрочем, хороший ментор — это дорого.
Курсы
Достоинства:
- Вы находитесь в коллективе людей, которые изучают то же самое, могут поделиться знаниями и опытом, помочь избежать блокеров или проблем.
- У вас есть преподаватель или ментор, который может ответить на ваши вопросы.
- Вы попадаете в окружение мотивированных людей, что позволяет поддерживать надлежащий уровень вдохновения.
- График занятий на курсе не даст вам «забить» на обучение.
- Если курсы проводит IT-компания, есть большие шансы, что вас научат именно тому, что нужно этой компании, и вы сможете претендовать на стажировку или должность в ней.
Однако разработчики советуют серьезно отнестись к выбору курсов: читать отзывы, расспросить тех, кто там учился, узнать достижения учеников, будущего преподавателя. Больше информации о том, какие в Украине есть IT-курсы и как их выбрать, вы можете найти на DOU по тегу «курсы». Советуем обратить внимание на статью «Инструкция по выбору IT-курсов для начинающих».
Недостатки:
- Курсы — это дорого. Длительные курсы могут стоить как семестр обучения в университете, а такие деньги есть не у всех.
- Если вы недостаточно мотивированы, учиться будет трудно, а отстав от остальных есть большой шанс все бросить.
- Курсы не гарантируют трудоустройства и карьеры (самостоятельное обучение тоже не гарантирует, но вы хотя бы не платите за это деньги).
- Курсы могут длиться долго, около года.
- На обучение нужно будет находить время и подстраиваться под график.
- Чтобы попасть на бесплатные курсы при IT-компаниях, нужно иметь базовые знания и часто хорошее владение английским.
Полезные ресурсы для изучения Python
«Learning Python» Марка Лутца. Есть два тома: первый рассказывает о синтаксисе и базовых возможностях языка, второй — об объектно-ориентированном программировании. Книга большая — более 1500 страниц, автор должен многое рассказать начинающему.
Официальный туториал языка, который изначально пошагово демонстрирует возможности языка.
Pycharm Edu. Это бесплатная версия среды для разработки для Python. Здесь много задач для начинающих с автоматической проверкой.
Learn Python in Y minutes. Справочник по изучению языка.
LeetСode. Для решения алгоритмических задач.
LearnPython. Минималистичный интерактивный туториал.
Python for Absolute Beginners! Бесплатный курс на Udemy для абсолютных начинающих.
Python Lectures. Набор лекций по Python от Rajath Kumar в виде Jupyter notebooks.
Pylot.me. Курс Михаила Кашкина для начинающих.
Полезные статьи на DOU
Как искать работу начинающему в Python
Перед поиском работы разработчики советуют реализовать два-три простеньких проекта и залить их на GitHub. Возможность на этапе отбора кандидатов взглянуть на код может стать вашим преимуществом.
Также тренируйтесь решать задачки и будьте готовы это делать во время интервью. Не отказывайтесь выполнять тестовое задание. Сейчас есть множество сервисов, где можно потренироваться. К примеру: LeetCode, Codewars, HackerRank.
Подтяните свой английский. В реалиях украинского IT-рынка хороший английский значительно увеличивает шансы найти работу.
Еще одним альтернативным источником для опыта может быть открытый код программного обеспечения. Периодически, проекты с открытым кодом имеют задачи для людей без опыта, но с желанием работать. Иногда такую работу даже оплачивают — вам нужно серфить GitHub в поисках интересных проектов и полезного опыта.
✅ Что следует указать в резюме
- Должность, на которую вы претендуете.
- Технологии, с которыми имели дело, даже если это стандартные пакеты Python.
- Все выполненные задачи с указанием технологий и пакетов. Залейте свой код в публичный репозиторий GitHub и укажите ссылку. Например: «Написал программу, которая читает CSV-файл выписки с карточного счета «ПриватБанка» и делает аналитику по разным группам расходов. Результат в виде Excel-файла или PNG-графика. Использовал пакеты: CSV, pyexcel, Matplotlib, pytest, Pylint.
- Стажировка, если где-то проходили. Опишите, что там делали, какие были задачи и чего добились.
- Курсы и обучение, образование. Они не гарантируют ваших знаний, но показывают рекрутеру, что вы хотя бы ориентируетесь в сфере.
- Английский язык — его знания на старте карьеры могут компенсировать пробелы в понимании языка.
- Soft skills. Умение работать под давлением или в сжатые сроки, быть командным игроком или разрешать конфликты, заменить определенные процессы.
❌ О чем лучше не писать
- Опыт, который вообще не связан с позицией — не нужно в резюме на бэкенд-разработчика писать о том, как вы работали барменом, официантом и т.д.
- Негатив о предыдущей работе или коллегах — таких кандидатов стараются избегать.
- Не допускайте грамматических ошибок. Если вы сомневаетесь, попросите вычитать резюме редактора/корректора.
Больше о том, как написать хорошее резюме, читайте в этих статьях:
- Як оформити резюме, щоб конкурувати з найкращими кандидатами. Поради на реальному прикладі.
- Как помочь работодателю выбрать ваше резюме. Советы тимлида.
- Як Junior-спеціалісту створити перше резюме. Покрокова інструкція з поясненнями.
Также следует перед подготовкой к собеседованию обратить внимание на статью «Співбесіда з Python. 100+ запитань для Junior, Middle, Senior».
Работу разработчики советуют искать на Djinni и DOU. На DOU есть раздел «Первая работа» с курсами, стажировками и вакансиями только для начинающих. Также следует создать аккаунт в LinkedIn и добавить в друзья как можно больше разработчиков и рекрутеров. О том, как правильно заполнять LinkedIn-профиль, читайте здесь. После первых отказов спрашивайте у интервьюеров, что следует подтянуть.
Желаем удачи в изучении Python и верим, что у вас все получится!
Раньше мы писали о том, как изучить JavaScript. Напишите в комментариях, о каком языке вы хотели бы почитать в следующий раз.
Все про українське ІТ в телеграмі — підписуйтеся на канал DOU
Подобається Сподобалось 30
До обраного В обраному 35
Схожі статті
Як стати .NET-розробником. План дій для початківців
Ivanna Tkachuk 15 липня 2022
Як стати PHP-розробником. План дій для початківців
Ivanna Tkachuk 1 вересня 2022
Як стати Rust-розробником. План дій для початківців
Ivanna Tkachuk 28 листопада 2022
25 коментарів
Oleksandr Tykhonruk Technical Lead в private entrepreneur 17.06.2022 15:06
Черговиий клікбейтний крео рівня емсітудей, який формує якісь дивні очікування у починаючих. До чого на початку статті про те, як стати Python-розробником, приводити поточні зарплати? Це повинно якось вплинути на вибір першої мови програмування, ви серйозно? Для початку, ви забули сказати, що для розробника мова програмування, навіть основна, це у кращому випадку третина необхідних навичок. Навіть якщо у вакансії написано «Python розробник» (максимально тупо, ну але ок, це реалії місцевого ринку), від розробника все ж очікується вміння вирішувати досить широкий спектр проблем, і далеко не всі взагалі пов‘язані безпосередньо з програмуванням. Навіщо так д****и на окремі мови? Навіщо пов‘язувати зарплати з мовами? (підказка: кореляції немає. Є кореляція зі складністю завдань, які ви вирішуєте, та рівнем відповідальності; від технологій це безпосередньо не залежить).
Oleksandr Strelnykov Former Lead Editor в DOU.ua 17.06.2022 15:08
Олександре, вітаю! Все ж зарплати відображають поточні реалії ринку і можуть вплинути на вибір мови. Ми не ставимо за мету просунути думку «йдіть туди, де більше платять».
Mikhail Kashkin Python expert в Pylot 16.06.2022 20:38
Иванна, большое спасибо за приглашение поучаствовать в написании этой статьи и за вопросы, которые задали. Очень люблю работать и вообще любые коммуникации с командой ДОУ. К моему сожалению, статья на ДОУ вышла чуть раньше, чем мы успели со своими планами. В этом году вообще планы вторичны.
В дополнение к нашим профессиональным курсам на Pylot.me в июле я запускаю бесплатный вводный курс по Python’у. Специально для тех, кто еще определяется в каком направлении двигаться, возможно у меня получится убедить вас, что Python — это лучшее направление. Пока нет какой-то страницы с анонсом, но лекции будут выкладываться на моем канале www.youtube.com/. /UCzClGkSdFfjursCUsp6T_bQ. Или подписывайтесь в фейсбуке и там буду держать в курсе www.facebook.com/mkashkin
Юлія Лещенко PR & Marketing Manager в CyberBionic Systematics, ITVDN 16.06.2022 17:06
Безкоштовний курс Python Стартовий українською мовою.
Олександр Корж Senior Python Developer в UST / ITernal 16.06.2022 15:32
Посоветую еще webformyself и skillbox видео курсы, качал бесплатно с торрента.
А сколько из 185 вакансий готовы взять без коммерческого опыта? Это же статья для новичков, верно? А как этот опыт получить, если всем сейчас нужны с опытом 100+ лет?
Mikhail Kashkin Python expert в Pylot 16.06.2022 21:39
Это простой вопрос, но ответ нравится далеко не всем. Собственно причина, по которой я создал свои курсы обучению заключается в том, что большинство курсов, книжки и сайты дают только кусок теории, редко дают немного практики. Хотя при этом для того, чтобы получить полноценный навык надо 3 составляющие:
— теория, которая тянет максимум процентов на 15% от времени, которое надо потратить на приобретения навыка. Хотя кажется, что на собеседованиях вас будут спрашивать именно ней. С теорией есть известная проблема, что ее слишком много, а новичок, введя слово python на любом книжном сайте получит сотни названий. Но тут вам может помочь дерево навыков, или матрица компетенций. Курсы, которые воруют друг у друга программы, а потом дают читать джунам, не сильно помогают в этом деле.
— практика, все это слышали, все понимают. Те, кто не понял, но поймут, то поймут сразу. Меня очень неприятно удивило, что многие из бесплатных или платных платформ, которые дают практику требуют реализацию каких-то зубодробильных и замудренных алгоритмов, которые не имеют отношения к рабочей практике. Такое впечатление, что синдром советского препода перепрыгнул сразу в наше цифровое время.
— экспертное мышление. Часть, которую вообще игнорируют очень многие школы пытаясь как можно быстрее впарить свои курсы. И то, что вообще невозможно получить из учебников. Это совместное общение и совместное решение проблем с человеком который повидал некоторое дерьмо в этой сфере.
И теперь после куска этой душещипательной теории вернусь к вопросу о прохождении собеседований на вакансии джунов. Джунов без года опыта работы стараются не брать на работу. Но что же отличает этих джунов с годом опыта и тех, у кого его нет? Ну вот допустим человек прочитал книги, сделал практические проекты, даже за пиво попросил ревью своего кода у бывшего одноклассника и даже выложил код на гитхаб. Вроде бы прошелся по всем трем направлениям: теория, практика, экспертное мышление.
Помимо навыка, который называется хард-скиллом нужна вторая часть. Возможно, вы слышали, что берут на работу за хард-скиллы, а увольняют за софт-скиллы. Как открыть тикет, как закрыть тикет, что такое код-ревью, как проходят коммуникации в компаниях и какие виды их бывают. Даже банально как не опаздывать, как распознать работодателя, о котором потом будут писать на кохане.айті. Как правильно оформить резюме чтобы оно выглядело как от человека, которому можно доверять. Как не бояться проходить собеседования, какие вопросы задают, как устроен процес найма и т.д. Это все о коммуникациях и это называется софт-скиллы.
Я этому уделяю половину времени вебинаров на наших курсах. Уже накопилось часов разбора этих вопросов. Собственно, работодатель объективно не хочет тратить на них свое время. Во-первых, не везде готовы обучать новичков, а во-вторых, мало кто умеет объяснять и вообще развивает навык объяснять так чтобы было понятно, нужно быстрее грести. Проще дождаться чтобы кто-то потратил это время на человека, а потом его уже можно брать. Даже можно выдать почетную грамоту стронг-джуна.
И вот возвращаюсь к первому предложению. Оказывается, помимо учебника, чтобы стать программистом и получать триста тысяч сыров в секунду за нажатие кнопки надо еще уметь общаться, уметь производить впечатление, выглядеть как надежный партнер.
Но чтобы мои рассуждения не выглядели как какая-то сложная и непробиваемая история.
Я провел за свою жизнь много интервью думаю около 2000. Бывало, по 200 и более год, на позиции от джунов до СТО. И, конечно, проходил собеседования сам. И не однократно попадал в ситуации, когда компании приглашали собеседовать закомплексованных и неуверенных в себе людей, вместо проверки просто самоутверждались в попытке поднять свою самооценку. По сути это направленная агрессия и хорошо бы уметь с ней разбираться. Но в любом случае — это опыт. Да, вам может попасться что-то типа Интеллиас, и если вы без опыта успешных собеседований, то будете думать, что проблема в вас. Мусорных компаний в Украине много. Но вы дотачиваете свой опыт и это отражается на вас. Прохождение собеседований — это навык. Как ездить на велосипеде. У кого-то быстрее, у кого-то медленнее, а кому-то приходится этому учиться по учебнику. Но вы можете управлять процессом и потратив нужное количество часов вы сможете проехать первый круг.
Устроим middle python-программистом: ещё до того, как вы закончите курс
Ещё до окончания обучения вы получите сильные проекты для вашего резюме — на полноценной коммерческой стажировке. После неё мы устроим вас мидлом с зарплатой не ниже 110 000 рублей и возможностью работать удалённо. Если не устроим — вернём деньги.
Пришлем подробности о курсе-профессии и Тестовом уроке на выбранный вами мессенджер.
Даю согласие на обработку персональных данных
Гарантируем, что вы начнёте получать доход раньше, чем закончится этот курс
Мы делаем из вас программиста с первого урока. На Тестовом уроке с ментором Вы познакомитесь с платформой, сделаете одно задание вместе с преподавателем и решите — подходит ли Вам эта профессия и наш курс.
Практика с первого урока до последнего
Вы будете участвовать не только в индивидуальных, но и командных проектах. Постепенно вы научитесь программировать, как настоящий специалист — не ради кода, а ради продукта. Во главе разработки будет стоять настоящий продакт менеджер.
6 учебных проектов с PM во главе
Три последних месяца обучения — это коммерческая разработка. На реальных заказах, которые будем искать мы. Вы будете выполнять работу с нашим техлидом и менеджером. Лучшая школа жизни!
Коммерческая разработка под нашим присмотром
Опыт последних трёх месяцев поможет вам усилить CV, показав потенциальному работодателю ваши практические навыки. А мы, в свою очередь, поможем найти для вас вакансии и подготовим к собеседованиям.
Помощь с трудоустройством
Наша программа обучения на курсе
«От новичка до Middle Python/Django разработчика»
Вы начнёте новичком со знанием синтаксиса, а закончите уже на настоящей работе middle-разработчиком
От новичка до джуна
Учеба состоит из нескольких форматов. Ментор составляет индивидуальный план, учитывая, что в нём должны быть все активности в нужной для каждого ученика пропорции.
- Проходим уроки из курсов:«API веб-сервисов»,«Вёрстка для питониста»,«Знакомство с Django: ORM».
- Дополнительно проходим уроки из курсов по работе с«Git и GitHub»и«Командной строкой»
- Начиная со второго месяца вы участвуете в командных проектах с продакт-менеджером во главе. В команде 2-3 человека. Срок на проект — неделя. За 5 месяцев этапа «От новичка до джуна» вы попадете в 3-4 проекта. Учим вас разбираться с бизнес-задачей, работать с коллегами, писать коммерческий работающий код, управлять своими решениями.
- Сторонний тренажёр по SQL — основному языку запросов к базе данных. Знания обязательно проверяют на собеседованиях, особенно в крупные проекты, где критически важна скорость.
- Тренажёр по техническому английскому. Учим свободно читать документацию и статьи по рабочим вопросам. Набираем новую лексику.
От джуна до стажировки
Как и в прошлые 5 месяцев, учеба от уровня «джун» состоит из тех же форматов обучения. Но сложность внутри каждого задания и тренажера растет.
- Самые быстрые ученики смогут пройти дополнительно часть уроков из«Асинхронный Python».
- В конце каждого месяца в течение недели готовим командный проект с продакт-менеджером. За 7 месяцев этапа «От Джуна до стажировки» вы попадете в 3 командных проекта. Продолжаем качать ваши soft & hard skills. Проекты становятся всё интереснее и интереснее. .
- Тренажёр по SQL. Продолжаем.
- Технический английский.Продолжаем читать, запоминать и становиться круче.
Стажировка и трудоустройство
Помещаем вас в команду коммерческого проекта, под нашим присмотром, но уже с настоящим клиентом.
Нужно выделить на работу не менее, чем 4 часа в день.
Будет настоящая мидловая работа с мозговыми штурмами, проектированием модели данных, выбором фреймворков и технологических решений, с их защитой перед техлидом и закладыванием точек роста функциональности.
Наши ученики используют накопленный коммерческий опыт этих трех месяцев в своих CV.
И успешно устраиваются не только к нашим партнерам, но и в компании, которые сами присмотрели. Когда вы дойдете до конца курса, мы обязательно подскажем, как это сделать. Покажем лучшие работающие варианты.
Параллельно поможем найти для вас вакансии и подготовим к собеседованиям.
Профессия «От новичка до мидла»
15 месяцев
Тут выдаём диплом джуна
Профессия «От джуна до мидла»
10 месяцев
Старт обучения
Тут выдаём диплом мидла
Ступень «С Нуля до Новичка»
Тут выдаём диплом Джуна
Ступень «От Джуна до Мидла»
Тут выдаём диплом Мидла
Ступень «От Новичка до Джуна»
10 месяцев
Ступень «С Нуля до Новичка»
Дополнительная ступень в нашем курсе
«От Новичка до Мидла» для тех, кто впервые видит Python 🙂
Продолжительность: 4 месяца
- Модуль: Основы Python
- Модуль: Git и GitHub
- Модуль: Командная строка
- Модуль: Дебаг
- Тренажёры для отработки навыков
СКАЧАТЬ ПОДРОБНУЮ ПРОГРАММУ .PDF
Ступень «От Новичка до Джуна»
На этой ступени Вы научитесь плотно работать с API, познакомитесь Django ORM и поучаствуете в Командных проектах с PM и другими разработчиками!
Продолжительность: 5 месяцев
- Модуль: API веб-сервисов
- Модуль: Вёрстка для питонистов
- Модуль: Знакомство с Django: ORM
- Модуль: Чтение и документирование кода
- Технический английский
СКАЧАТЬ ПОДРОБНУЮ ПРОГРАММУ .PDF
- Практика: 3 командных проекта
- Дополнительные уроки с углубленными знаниями
Ступень от «От Джуна до Мидла»
Уже есть, чем похвастаться на GitHub, но хочется меньше конкуренции при поиске работы? Дальше — больше!
Продолжительность: 10 месяцев
- Модуль: Чат-боты на Python
- Модуль: Django
- Модуль: Docker
- Модуль: Kubernetes
- Технический английский
СКАЧАТЬ ПОДРОБНУЮ ПРОГРАММУ .PDF
- Практика: 3 командных проекта
- Дополнительные уроки с углубленными знаниями
- Тренажёр: SQL
- Модуль: Подготовка к техническому интервью
3-х месячная СТАЖИРОВКА и получение ДИПЛОМА
Мы сократили путь обучения от новичка до мидла до 15 месяцев
Мы решили, что у вас нет времени, чтобы долго учиться и ждать, когда же ваше образование начнёт окупаться. Мы разработали крутые методики обучения, протестировали их на учениках и запустили быстрый и эффективный курс-профессию до мидла
Мы искренне убеждены, что просмотр видео-лекций — это пустая трата вашего времени.
Профессиональные программисты учатся всю жизнь, осваивают новые технологии, но они никогда этого не делают по видосам. Интересно, почему? 🙂
В сущности, никакую профессию нельзя получить по видео-лекциям.
Никаких видосов
Мы находимся в постоянном поиске — как лучше и интереснее научить вас.
Через практику? Ок, мы придумываем такие задачи, на которых вы не заскучаете.
Проекты? Начинаем накидывать вам фичи, которые хочет заказчик.
Теория? Сделаем 500+ ANKI-карточек, чтобы вы всё запомнили.
Работа с гипотезами? Придумаем свой инструмент в виде дебаг-таблиц.
Крутые практические тренажёры
Столько мы попросим вас уделять обучению. Распределить часы по неделе вы сможете любым удобным для вас способом.
Вы будете двигаться по своему индивидуальному плану.
Если у вас будет возможность выделить на обучение больше времени, и вы захотите закончить курс раньше — мы вам поможем.
Этим займутся ваш личный ментор и администратор. А ещё с вами будут работать продакт-менеджер и техлид.
15 часов в неделю
Вы сможете сократить своё обучение до middle python-разработчика с помощью нашего курса.
Мы пропустили его через жёсткие фильтры: отжали 100% пользу. Поэтому тут нет ничего лишнего, но и ничего не упущено.
В конце обучения мы устроим вас на коммерческую стажировку, в рамках которой вы сможете максимально продемонстрировать то, чему научились на курсе.
А это означает, что у вас в CV появится опыт коммерческой разработки — то, чего так хотят работодатели.
Устроим на работу
Зачем учиться сразу до мидла?
Почти все курсы предлагают обучение только до джуна. Наша программа гарантирует качественный трек сразу до мидла, со стажировкой и трудоустройством ещё во время обучения.
Полный трек
Зарплата мидл-разработчика стартует от 110 000 рублей в месяц. Джуниор-разработчик может претендовать на 50 000 — 60 000 рублей.
Высокая зарплата
Мидл-разработчиков охотнее берут на удалёнку — идеально, если вы не хотите переезжать.
Джунов почти всегда берут в офис, потому что придётся ещё долго и упорно расти внутри команды.
Вакансии джунов — это всегда огромная очередь из желающих начать карьеру в IT. Мидлы встречаются реже и ценятся выше → у вас будет крутой выбор вакансий и больше шансов устроиться.
Шансы выше
Сколько может зарабатывать
junior и middle-разработчик
Зарплата
от 50 000 рублей в месяц
Джуниор-разработчик
Зарплата
от 110 000 рублей в месяц
Мидл-разработчик
Требуют коммерческий опыт
А его нет на обычных курсах.
Часто берут только в офис
Придётся переезжать, если живете в маленьком городе. Все крутые компании, которые ищут джунов — в Москве, Питере и крупных городах.
Большая текучка
кадров среди джунов внутри одной компании.
Не самая интересная работа
Вам будут отдавать всю рутину, увы.
Высокая конкуренция
при устройстве на работу.
Много предложений
на удалёнку. Можно остаться жить там, где комфортно или путешествовать.
Более уверенные собеседования
Ведь у вас за плечами прочные навыки, знания и коммерческие проекты.
Быстрый рост
и почёт внутри команд.
Интересные задачи
и право самостоятельно принимать решения.
Невысокая конкуренция
Вакансий больше, чем программистов, поэтому найти работу легко.
Сколько стоит обучение?
Проще всего начать с Тестового урока и определиться, подходит ли вам наш формат. Запишитесь и уточните менеджеру, на какой уровень вы хотите попасть.
от 6 417 ₽/месяц
Стоимость программы может отличаться в зависимости от способа оплаты
и ступени, с которой Вы начинаете обучение. Лучший способ выяснить Ваш уровень — это записаться на бесплатный Тестовый урок с одним из наших Менторов!
При рассрочке на 24 месяца
Как проходит обучение?
Наши учебные процессы выстроены так, чтобы сломать классический порядок образования. Никакой теории в отрыве от задач. Вы пишете код с первого урока и до последнего.
Каждый урок — это не просто набор упражнений, а «заказ» от «клиента», с его требованиями к продукту и пожеланиями «сделать хорошо».
Это лучший способ научить — сразу выполнять реальные проекты. Сначала простые и игрушечные, а в конце — реалистичные и сложные. А ещё по таким урокам просто интересно учиться.
Мы учим так, как будто вы уже работаете в IT-компании
Это отмечают все ученики, прошедшие «Девман». Наше код-ревью — это секретное оружие и преимущество.
Каждую проверку делает опытный программист. Он даёт подробную обратную связь с подсказками, но не готовыми ответами.
Иногда код-ревью не заканчивается после первой проверки. Но в случае, если у вас будет серьезная проблема, вы можете написать проверяющему или куратору, и они объяснят всё более подробно.
У нас крутое код-ревью и помощь преподавателей
Мы устроим вас на работу мидлом — с зарплатой не ниже 110 000 рублей
Как мы это сделаем?
— Обеспечим коммерческий опыт в CV
На стажировке вы будете выполнять коммерческий заказ на разработку, в составе нашей команды. Условия будут боевые, но мы не дадим провалиться ни на одном из этапов. Вы сдадите один большой или несколько средних коммерческих проектов. Этот опыт вы укажите в резюме. Плюс — за всё время обучения у вас на GitHub появится портфолио из 50+ небольших и 9 полноценных проектов.
— Поможем с подбором вакансий и подготовкой резюме
Утрясём ваше портфолио и резюме. Подскажем, на какие вакансии вам стоит реагировать и как. Всё это будет встроено в учебный процесс последних 3 месяцев.
— Устроим вас — крепкого мидл разработчика — к нашим партнерам
Партнеры — это российские и зарубежные компании, которые занимаются веб-разработкой и охотно берут наших учеников на работу. Иногда наши уже устроившиеся ученики специально ждут других выпускников «Девмана» к себе в команды.
— Если вы не устроитесь на работу, мы вернём вам деньги за обучение