in the future - u will be able to do some more stuff here,,,!! like pat catgirl- i mean um yeah... for now u can only see others's posts :c
Вчера общался с учеником, кто закончил мой Практический курс по Backend разработке на Python. Сейчас расскажу вам его историю.
Ученика зовут Никита. Он несколько месяцев назад закончил универ, а сейчас работает Backend разработчиком в крупной компании и разрабатывает на Python (FastAPI). 😍
Раньше он писал на Django пет-проекты и даже смог устроиться Python разработчиком на Django, но ему не хватало развития в техническом плане. Он хотел освоить более быстрый фреймворк и выбор пал на FastAPI. Никита хотел научиться писать качественный код, и ему сильно не хватало практики.
Как отметил Никита, в других онлайн-школах дают много ненужной теории, которую все равно забудешь, пока дойдешь до собеседования или реальной разработки. В то время как на Практическом курсе сделан фокус на получение практических навыков backend разработки, а теория дается лишь по мере необходимости простыми словами.
Никита каждый день день занимался по курсу — смотрел видеоуроки, решал все практические задания и сдал финальный проект всего за 1 месяц. После этого он пошел по собеседованиям, получил несколько офферов и через контроффер поднял на текущем месте зарплату на 40.000 рублей!💰
Несмотря на то, что Никита уже работал Junior разработчиком, курс помог выйти ему на уровень Middle разработчика и освоить современный стек, с которым он будет легко развиваться дальше.
👉 Если хочешь также, приходи на Практический курс по Backend (clck.ru/3EjfzM) и смотри бесплатный вводный урок "Почему FastAPI такой быстрый — сравнение асинхронного и синхронного подходов" в боте (t.me/ArtemShumeikoBot) по кодовому слову БЫСТРЫЙ FASTAPI
24 - 26
Практические навыки для работы Junior разработчиком
С тех пор, как я устраивался на первую работу разработчиком, прошло много лет, и сейчас на Junior специалиста спрашивают как на Middle 2 года назад.
В этом посте перечислю все основные технологии, опыт с которыми нужно иметь для прохождения собеседования и устройства на работу. Список составлен на основе вакансий на Junior разработчика с hh.ru (hh.ru/search/vacancy?text=python+junior)
🟣 HTTP и REST API
Это база, которую спрашивают на всех грейдах, даже Senior'ов. Нужно уметь перечислить и описать все HTTP методы, понимать разницу HTTP и HTTPS, и назвать пару принципов REST.
🟣 Docker
Важно иметь минимальный опыт работы с Docker, понимать разницу с Docker Compose, и конечно же знать, что такое volumes (solvit.space/questions/600)
🟣 Git
Уверен, что все вы пользуетесь гитом, но чтобы ответить на вопросы по Git, нужно знать в теории GitFlow (solvit.space/questions/500) (т.е. как с репозиториями работают в командах), и понимать, как происходит слияние веток.
🟣 Фреймворк
Для работы Junior Backend разработчиком вы обязаны знать хотя бы один фреймворк, на котором разрабатывают Backend в компании. На начальных этапах развития разработчика каждый новый фреймворк выглядит как нечто совершенно новое и неизведанное, и на его изучение уйдет много времени, поэтому компании почти всегда не готовы брать кандидатов без знания фреймворка.
🟣 База данных (PostgreSQL)
Самой популярной СУБД, бесспорно, является PostgreSQL. На начальном этапе вам достаточно знать ACID (solvit.space/questions/248), базовый синтаксис SQL, и уметь рассказать об индексации, ее плюсах и минусах.
🟣 Тестирование
За джунами никто не хочет перепроверять код, поэтому навык тестирования собственного кода очень ценится. Основная библиотека для тестирования — pytest.
В следующем посте расскажу, о чем нужно знать только в теории, в то время как многие думают, что нужно уметь этим пользоваться. Давайте наберем много 🔥 и пост выйдет быстрее
95 - 10
Как найти первую работу в разработке
Давайте поступим интереснее. Сейчас я расскажу, как я ищу стажеров/джунов для своего проекта Солвит (solvit.space/), а ваша задача — самостоятельно сделать выводы.
За время работы Солвит я успел нанять 4 начинающих разработчиков. Каждый раз я использовал один и тот же подход, который позволял мне найти разработчика за несколько дней.
1️⃣ Я целенаправленно ищу стажера или джуна, потому что задачи на проекте не сильно сложные, а предлагаемая зарплата многих устраивает
2️⃣ Я не размещаю вакансии на агрегаторах типа hh или в телеграм каналах, потому что это стоит денег
3️⃣ Я знаю, что стажеров и джунов на рынке очень много, поэтому размещаюсь на бесплатных ресурсах
4️⃣ Я знаю, что разработчики обитают в телеграм чатах/группах/сообществах, и раскидываю объявления туда
5️⃣ Я даю небольшое тестовое задание на 20-30 минут, чтобы отсеять зевак
6️⃣ Разработчики приходят в личку напрямую ко мне — собеседующему и будущему работодателю, а не к рекрутеру. В итоге процесс отбора гораздо быстрее
7️⃣ Я игнорирую тех, кто допускает грубые ошибки в переписке или проявляет неуважение — с таким человеком я точно не смогу эффективно коммуницировать
8️⃣ Для меня не играет большой роли образование и его наличие, если на все технические вопросы на собеседовании я получил качественный ответ
9️⃣ Самому молодому разработчику, который у меня работал — 18 лет
Такой флоу я использую при поиске разработчика.
Напишите в комментариях все выводы, что вы сделали после прочтения👇
P.S. Сейчас никого не ищем на проект 😬
18 - 3
Как понять, что вы готовы к переходу на Middle
Никак. Абсолютно никак. Есть небольшая вероятность, что проработав 1-2 года в одной компании, вас решат повысить по грейду и зарплате, но этот прирост скорее всего будет небольшим.
Спустя 1-1.5 года большинство задач внутри компании вам идеально знакомы - вы можете делать их закрытыми глазами, вы тратите не больше 3-4 часов в день на работу, а остальное время отдыхаете или делаете вид, что работаете. Если вы дошли до такого состояния, то это знак, что пора менять работу.
Да, выходить на рынок труда сложно: составление резюме, отклики на вакансии, общение с рекрутером и другими незнакомыми людьми, страх попросить большую зарплату – все это на самом деле отмазки, мешающие росту. За этими действиями стоит по-настоящему резкий карьерный рост и развитие ваших технических навыков через новые задачи, вызовы, освоение нового стека и новое окружение.
А теперь представьте, что вы стали Middle. Зарабатываете 150-250 тысяч, хорошо живете, но опять чувствуете, что задачи приелись, а недавно горевший огонь в глазах потихоньку затухает, и программирование уже не приносит былой радости.
Теперь перечитайте пост, только замените Middle на Senior — все повторяется вновь и вновь, это бесконечный процесс
45 - 4
Как учиться меркантильно
Что это вообще значит? Я про то, что учить надо те технологии, которые нужны на реальной работе.
"Ну это же очевидно!", - скажете вы. Никто не учит невостребованные технологии... или учит?
Через мои курсы и консультации прошли сотни людей, и поверьте, такое часто встречается.
1️⃣ Не будем далеко ходить, возьмем популярную тему ORM для работы с базой данных. Есть много решений: SQLAlchemy, Tortoise, Peewee и другие.
Давайте сравним звездочки на GitHub:
Peewee - 11 тысяч
SQLAlchemy - 10 тысяч
Tortoise - 5 тысяч
Можно подумать, что Алхимия и Peewee используются +- одинаково, а Tortoise всего в 2 раза мене популярна. Но это сильное заблуждение. На рынке СНГ доминирующую позицию занимает SQLAlchemy. Если заглянуть на агрегатор вакансий hh.ru, то увидим следующую ситуацию:
Peewee - 5 вакансий
Tortoise - 4 вакансии
SQLAlchemy - 256 вакансий (!!)
И тут мозг взрывается.. Как так?? Почему на Алхимию такой огромный спрос, он же не коррелирует с количеством звездочек на GitHub и тем, как часто обсуждают <мою любимую ORM>...
Таковы реалии рынка. Не всегда то, что "на хайпе", реально востребовано на рынке труда. Алхимия — самая мощная ОРМка из всех на рынке, и уже больше 20 лет помогает нам писать запросы в БД. Именно ее нужно учить, если цель — быстро найти работу разработчиком.
2️⃣ Теперь рассмотрим тему фоновых задач. Часто на проект нужно подключить фоновые задачи, которые не будут забивать основной поток/процесс. Последние лет 10 для выполнения фоновых задач применяется синхронная библиотека Celery, а в последнее время я все чаще вижу в чатах и сообществе (t.me/python_community_rus), что разработчики используют асинхронные аналоги, например, библиотеку taskiq, в которой не нужно костылить (как в Celery), чтобы вызвать асинхронный код.
Но если опять же обратиться к текущим требованиям на рынке:
Celery - 227 вакансии
Taskiq - 4 вакансии
Цифры говорят сами за себя. Если цель - побыстрее найти работу, нужно учить то, что просит рынок.
3️⃣ Последнее время также часто говорят об "убийце" FastAPI под названием Litestar, в котором есть встроенная интеграция с Алхимией, DI, CSRF мидлварь и прочее.
Фреймворк, действительно, работает быстрее FastAPI, но, опять же, если ваша цель — побыстрее найти работу, желательно с хорошей зарплатой, нужно подстраиваться под поисковые запросы рекрутеров и учить те технологии, что требуются на работе:
Litestar - 7 вакансий
FastAPI - 703 вакансии
Не тратьте свое драгоценное время на те технологии, которые еще не успели заюзать большинство компаний. Учите то, за что платят деньги.
Я понимаю, что есть те, для кого главное — не деньги, а получение удовольствия от программирования. Для вас у меня ничего нет, просто завидую :)
Ставь лайк, если полезно
47 - 9
Какие темы НЕ нужно учить начинающему разработчику
Я думаю, что многие согласятся с тем, что не нужно учить темы, которые никак не применяются на практике. Несмотря на это, часто мы увлекаемся какой-то темой и начинаем уделять ей излишне много времени.
Этот пост ориентирован только на тех, кто хочет быстрее вырасти в зарплате или найти первую работу. Если вы получаете удовольствие от изучения новых тем — это не плохо, просто пост не об этом.
1️⃣ Сети, сокеты, протоколы, TCP/IP
Часто, когда приходишь на работу разработчиком, все что ты делаешь - это клепаешь CRUDы, пишешь запросы на вставку или выборку данных в базу, и занимаешься реализацией бизнес-логики (что на самом деле занимает больше всего времени).
Как разработчик, ты чаще всего просто пользуешься готовыми библиотеками для работы с базой, апишкой, брокером и т.п. Все обертки уже написаны, и это очень удобно. Многие разработчики с комфортом работают, используя только HTTP и, может, SMTP.
Есть возражения? Пиши в комменты, обсудим 👇
2️⃣ Интерпретируемость, компилируемость, байт-код и пр.
Я всегда игнорировал теорию, которая не применяется на практике. Это относится к таким низкоуровневым темам как интерпретируемость, компилируемость или, например, "как под капотом работают потоки в Python" (кто-нибудь скажите, зачем использовать потоки в 2024 на новых проектах).
Такие знания не применимы на практике, и их изредка спрашивают на собеседованиях. Так зачем же учить эти темы?
3️⃣ Сложные алгоритмы и структуры данных
Вы наверняка встречались с задачами на связные списки, графы и деревья. Правда в том, что мизерная часть разработчиков применяет в работе эти структуры данных.
Эти структуры данных почти не спрашивают на собеседованиях и редко применяют на практике. Так зачем нарешивать задачки на литкоде по этим темам? Незачем.
4️⃣ Шаблоны проектирования и архитектуры
Можете закидывать помидорами, но это реалии разработки. Бизнес хочет от вас в первую очередь, чтобы продукт работал и удовлетворял желаниям пользователя. То, что вы наговнокодили, бизнес не волнует, если продукт приносит прибыль.
Буквально вчера ходил на собеседование, где основной задачей было поддерживать legacy проекты на 100к+ строк кода на Python 3.6. Как думаете, там идеальный код с повсеместным применением паттернов? Сомневаюсь. Продукт приносит прибыль и это единственное, что волнует бизнес.
P.S. На этапах Middle-Senior об архитектуре и паттернах, конечно, приходится задуматься. Этот пункт больше для начинающих разработчиков
Наоборот, есть темы, в которых вы должны разбираться, хотя это может быть для вас не очевидно. Написать пост об этом? Поставьте 🔥 здесь: t.me/artemshumeiko/194
65 - 8
Вышел мой первый подкаст
На канале Диджитализируй на днях вышел подкаст со мной. Обсудили поиск работы, прохождение собеседований, зарплаты, и как расти в IT без остановки
Много-много новой информации, даже для тех, кто давно со мной знаком. Обязательно посмотрите
https://www.youtube.com/watch?v=ccOMj...
12 - 0
🔥 Новая глава 🔥
Совершенно не ожидал такого предложения, но оно случилось.
🎉 С сегодняшнего дня я официально стал амбассадором компании @selectel 🎉
Selectel — это российский провайдер IT инфраструктуры. У компании есть свои собственные дата-центры и множество облачных сервисов для создания крутых IT-продуктов.
Я буду рад показать разработчикам, как можно пользоваться облачными сервисами Selectel, чтобы вы смогли применять их в своих проектах.
Что значит это партнерство для вас?
Теперь новые видео будут выходить каждую неделю 🔥
Все благодаря этому партнерству
В будущем я поделюсь с вами, какие сервисы можно развернуть через Selectel. Кстати, в моем проекте Солвит мы используем хранилища Selectel для бэкапов и хранения ваших аватарок.
Счастлив, что могу развиваться как преподаватель и IT-блогер. Это та сфера, к которой я по-настоящему неравнодушен. Спасибо Selectel и спасибо вам, дорогие зрители и читатели. Впереди много крутого материала 🔥🤝
110 - 15
Здесь можно найти ментора
Встречайте новый раздел на площадке Солвит — Менторы (solvit.space/mentors)! Теперь вы можете найти себе наставника или взять разовую консультацию, чтобы получить:
✅ Рекомендации, что учить и как расти профессионально
✅ Тестовое собеседование для оценки знаний
✅ Персональное доведение до трудоустройства
✅ Код-ревью вашего проекта
Ментор — это опытный разработчик, который понимает, какие технологии сейчас популярны, как составить резюме и попасть на работу. Ментор поможет вам достичь поставленной цели.
Найти ментора — solvit.space/mentors
Если вы давно хотели позаниматься с ментором, то это знак, что пора это сделать 😉
7 - 0
Обучение через практику
Вам знакомо чувство, когда посмотрел супер полезное видео или прочитал разжеванную до мелочей статью про брокеры сообщений, паттерны проектирования, CI/CD или *подставьте любую технологию*?
Мне это чувство безумно знакомо, потому что я часто так делал и уже через 2-3 недели напрочь забывал обо всем, что услышал или прочитал. Суть в том, что самый эффективный путь развития разработчика кроется в постоянной практике.
В своих новых продуктах я делаю на это особый акцент.
📌 КУРС: Персональный проект под моим руководством
В курсе все, кто дойдут до конца и сдадут финальное домашнее задание, получат возможность создать собственный проект под моим руководством. Мы вместе
— обсудим архитектуру приложения и базы данных
— выберем подходящие технологии
По завершении проекта я проведу полноценный код-ревью.
📌 МЕНТОРСТВО: Групповой проект под моим руководством
На менторстве я делаю большой упор на моделирование реальной коммерческой разработки, поэтому:
— все ученики будут разбиты на небольшие команды
— каждая команда выберет свой проект для реализации (с использованием FastAPI / aiohttp, PostgreSQL / MongoDB, RabbitMQ, Redis, Docker и по желанию: S3, Celery)
— для большего погружения будут проводиться Agile-церемонии
— я буду давать код-ревью во время написания проекта
— финальный проект защищается всей командой передо мной
⚡ За последние 8 месяцев, пока я руковожу командой разработчиков в своем проекте Солвит, я получил большой опыт в сфере управления, постановке задач, проверке решений и релизе продукта. Я буду использовать весь свой опыт работы тимлидом и разработчиком, чтобы ваше погружение прошло максимально комфортно.
Чтобы не пропустить запуск курса, заходите в моего телеграм бота t.me/artemshumeikobot — он отправит вам форму предзаписи в скором будущем
Те, кто посмотрел урок с курса в боте — напишите ваши впечатления в комментариях. Буду рад почитать 🤩
Не забывайте подписываться на телеграм канал, чтобы получать все новости в числе первых: t.me/artemshumeiko
13 - 3
Привет, друзья! Меня зовут Артём Шумейко. Я Senior Python Backend разработчик. На этом канале я помогаю разработчикам улучшать хард скиллы и развивать карьеру. По моим видео ты станешь крепким разработчиком и начнешь зарабатывать больше. Подпишись 🤟🏻
Сотрудничество: телеграм @artem_shumeiko_support или help.team.artem.shumeiko@gmail.com