Кто пишет: Тимофей, автор Telegram-канала The Pythonic Way, Python-разработчик с 3+ годами опыта. Гуманитарий в душе, который самостоятельно изучил программирование.
Если вы самостоятельно изучили какой-то язык программирования, поделитесь своей историей с коммьюнити. Напишите нам на [email protected].
Общие рекомендации
- Выберите удобную IDE. Процесс разработки в первую очередь должен быть комфортным для вас самих. Лучшая IDE для разработки на Python — это Pycharm, но после войны JetBrains их продукты больше не доступны для покупки аккаунтам из Беларуси и России. Альтернатива — VS Code, достаточно шустрый редактор кода, благодаря плагинам в нем доступны большинство плюшек Pycharm.
- Обязательно делайте перерывы: дайте вашему мозгу шанс обработать и усвоить полученную информацию. Если у вас долго что‑то не получается — просто отдохните и отвлекитесь. Лучший отдых для меня — прогулка. Выработайте привычку заниматься каждый день.
- Теория + много практики. Теоретические знания — это безусловно хорошо, но без должного количества практики они ничего не значат. Часто бывает такое, что в теории вам все кажется очевидным и понятным, но как дело касается решения вы обнаруживаете, что сильно путаетесь и голова будто бы не работает. Это нормально! Пытайтесь, пока не получится.
- Не прыгайте между темами. Обучайтесь поэтапно и в комфортном для вас темпе. Никто не выиграет от того, что вы с утра до вечера будете сидеть за книгами и задачами, после чего сильно перегорите. Перегорание — это в целом распространенная проблема у программистов (и не только). Во время обучения и работы я тоже перегорал и знаю, что это такое. Но в итоге я нашел комфортный для себя темп и определил некоторые рабочие правила, вроде периодического отдыха.
- Не злоупотребляйте копипастом кода. Старайтесь думать сами. Это не значит, что вы не должны слушать автора, напротив, изучайте курс внимательно. Вы не должны слепо переписывать код и ждать чуда. Пытайтесь решить задачу сами, экспериментируйте, думайте над задачей вместе с автором.
- Если вам нужно решить большую или же непонятную задачу, декомпозируйте ее на более мелкие.
- Ищите сообщества — отличный способ сохранить мотивацию и учиться у других.
- Создавайте пет‑проекты — применяйте полученные знания на практике. Их можно добавить в резюме.
Начните с простых проектов: калькулятор или текстовая игра. Постепенно переходите к более сложным.
Шаг 1. Изучение основ языка + GIT
Начните с основ Python, таких как типы данных, переменные, циклы, функции и модули. Также хотел вынести сюда GIT — систему контроля версий. Данная технология обязательна к изучению всем разработчикам — удобно и используется повсеместно.
Для начала вам понадобятся несколько базовых команд:
git init # Инициализация репозитория
git add # добавление файлов в staging area
git commit # снимок текущих изменений проекта
git pull # стягиваем последние изменения с репозитория
git push # заливаем изменения после commit’а
Шаг 2. Объектно-ориентированное программирование
Python — это объектно‑ориентированный язык программирования, здесь все является объектом. Следовательно, важно изучить объектно‑ориентированные концепции, такие как классы, объекты, наследование, полиморфизм и инкапсуляция.
Концепции ООП практически всегда спрашивают на собеседованиях, поэтому вы должны хорошо в них ориентироваться. Помимо этого вы постоянно будете сталкиваться с классами в своих повседневных задачах.
Шаг 3. Алгоритмы
Для того, чтобы уметь решать поставленные задачи, нужно мыслить алгоритмически. А как это сделать? Правильно, практиковаться в решении различных задач.
В книге «Грокаем алгоритмы» доступнейшим языком рассказывается о различных базовых алгоритмах и понятиях, вроде времени выполнения и О‑большого. Параллельно с изучением данной книги, особенно рекомендую решать разные задачки на codewars или leetcode.
Материалы для изучения на данном этапе
- Знакомство с Python. Дэн Бейдер.
Дэн Бейдер считается одним из лучших авторов по Python. Он пишет очень просто и понятно, данная книга отлично подойдет новичкам. - «Изучаем Python». Марк Лутц
Многие питонисты считают данную книгу мастхэвом. Освоив материал, вы совершенно точно сможете решать с помощью Python самые разные задачи. Книга написана довольно сложным языком и довольно объёмная — около 1200 страниц. - Укус питона. Swaroop C.H
Противоположностью учебнику Лутца. Она маленькая (около 164 страниц), содержит в себе самые основы в формате «записок» автора. Книгу вполне можно изучать вместе с каким‑нибудь курсом, например из пункта 4. - Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих. Адитья Бхаргава
В книге «Грокаем алгоритмы» Адитья Бхаргава не просто показывает примеры таких решений с детальными иллюстрациями, но и учит читателя самостоятельно находить их в дальнейшем. Читатель знакомится с понятиями бинарного поиска, массивами, связанными списками, структурами данных, рекурсией.
Книга рассчитана на тех, кто уже знаком с основными азами программирования и интересуется алгоритмическими решениями. Автор старается доносить информацию понятным даже новичку языком, иллюстрирует все основные моменты. - Вся серия курсов «Поколение Python».
Очень хорошие курсы с большим количеством задач, которые познакомят вас с основными типами данных, циклами, условиями и т. д. - Руководство по языку Python. Вполне себе хорошее базовое руководство по языку. Рассматриваются все базовые темы, включая ООП. Сам когда‑то пользовался, было полезно.
- Git за полчаса: руководство для начинающих. Отличная статья, которая научит вас основам работы с системой контроля версий.
- Гуглите. Вы обучаетесь только тогда, когда сталкиваетесь с трудностями. Поиск решения задачи сильно прокачивает ваши скиллы. Ищите ответы на форумах, в статьях, видео на YouTube и т. д. Только путем проб и ошибок можно по‑настоящему понять изучаемую тему.
Шаг 4. Изучение основ SQL, работа с ORM
Работа с базой данный — неотъемлемая часть работы любого backend‑разработчика. Для начала изучите основы: что такое таблицы, поля, связи и запросы. Остальное за вас сделает ORM (Object‑Relational Mapping) — специальный инструмент, который позволяет разработчикам взаимодействовать с базами данных более объектно‑ориентированным образом.
Вместо написания необработанных SQL‑запросов для взаимодействия с базой данных разработчики могут определять классы, представляющие таблицы базы данных, и использовать эти классы для запроса данных к базе и манипулирования ими.
При помощи ORM вы можете делать все то же самое, что и в самом SQL: создавать таблицы, обновлять их, использовать индексы, писать различные запросы и т. д. Например, в Django используется удобная Django ORM. Сравните сами:
Допустим, у нас есть есть три таблицы: Students, Grade и Marks. Нам нужно вывести всех учащихся 7 класса, у которых оценки выше 4.
Примерно так бы выглядел SQL‑запрос, удовлетворяющий нашей задаче:
SELECT s.*
FROM Students s
INNER JOIN Grades g ON s.grade_id = g.id
INNER JOIN Marks m ON s.id = m.student_id
WHERE g.grade = 7 AND m.mark > 4;
А вот так в Django ORM:
from django.db.models import Q
from myapp.models import Students
students = Students.objects.filter (
Q (grade__grade=7) &
Q (marks__mark__gt=4)
).distinct ()
Вот еще пример:
Допустим, у нас есть две таблицы: Book и Author. Мы хотим вывести все книги, автором которых является Стивен Кинг.
SQL-запрос:
SELECT b.*
FROM Books b
JOIN Author a ON b.author_id = a.id
WHERE a.name = 'Steven King';
Django ORM:
from myapp.models import Book
Book.objects.filter (author__name='Steven King')
Материалы для изучения на данном этапе
- Разбираем SQL на примере PostgreSQL — SELECT, JOIN, GROUP, HAVING, Coalesce и др. YouTube канал Диджитализируй!
- Django ORM и его самые популярные фичи. Статья.
- Официальная документация Django ORM.
Шаг 5. Изучение верстки на базовом уровне
Сегодня без верстки никуда. Ее должен знать каждый, в том и числе и backend‑инженер. То же самое я бы мог сказать и о JavaScript, но на данном этапе изучать его необязательно. Вы всегда сможете вернуться к нему позже.
Материалы для изучения на данном этапе
- YouTube канал Евгения Андриканича «Фрилансер по жизни». Отличнейший канал, благодаря которому я также в свое время изучал верстку. Автор доступным языком объясняет различные концепции и штуки из верстки и фронтенда в целом. На канале очень много практики, которую Женя буквально «разжевывает» для зрителя.
- Ресурс W3 Schools. Полезный сайт, на котором содержится куча информации и практических примеров по всем html‑тегам, css‑селекторам и т. д.
- После знакомства с основными концепциями, я бы посоветовал набрать понравившихся макетов из тематических тг‑каналов, вроде этого и тупо верстать их. После нескольких таких макетов вы будете чувствовать себя уверенно и поймете, что верстка — это просто.
Шаг 6. Изучение фреймворка
После того, как вы изучите базовые конструкции Python, а также работу с SQL, переходите к изучению фреймворка. Параллельно стоит изучить работу веба в целом: как сервер взаимодействует с клиентом, как осуществляется сохранение данных на сервере, какие HTTP‑запросы существуют и т. д. Да, это займет у вас какое‑то время, но эти знания — обязательные.
На данный момент на Python существует три самых популярных решения для разработки веб‑приложений: Django, Flask и FastAPI. Какой из них выбрать — решать вам. В этой статье автор проводит понятное сравнение всех трех фреймворков.
В свое время я начинал с Django: меня подкупила популярность, наличие огромного множества библиотек, широкий функционал прямо из коробки, большое количество обучающего материала, а также большое комьюнити.
Чтобы понять, как устроен фреймворк, вы также должны знать о существовании паттернов разработки. Шаблон проектирования или паттерн в разработке программного обеспечения — это повторяемая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.
На самом деле существует огромное количество таких паттернов и подходов. Вам не нужно знать их все, но зачастую фреймворк использует тот или иной архитектурный паттерн, следовательно, вам стоит знать как он устроен.
Шаг 7. Создание первого проекта
Для начала вы можете делать проект с курса или книги, которые вы изучаете. После этого вам нужно будет написать что‑то свое. Подумайте. Может быть у вас есть хобби?
Может быть вы любите читать книги и хотите создать интернет‑магазин по их продаже. Любите играть в футбол, и хотите создать сайт о спортивных мероприятиях, матчах, командах и т. д. Выбор тут и вправду огромный, он ограничивается лишь вашей фантазией.
Шаг 8. Работа с API
Вам так или иначе придется научиться работать с API (Application programming interface) — интерфейсом, при помощи которого один сайт может взаимодействовать с другим.
Грубо говоря API — это набор операций и функций, доступный внешним клиентам.
Задачи backend‑разработчика так или иначе сводятся к созданию или работе с API‑интерфейсом, который далее будет использоваться frontend‑разработчиком.
В Django для проектирования API используется библиотека Django Rest Framework, которая предоставляет все нужные инструменты для создания API прямо из коробки.
Попробуйте поработать с API разных платформ: например, с API площадки Steam, при помощи которой вы можете получить данные о всех размещенных на ней играх.
Материалы для изучения
- Quickstart по Django Rest Framework. Официальная документация.
- Официальная документация по Django.
- Django3 by example. Antonio Mele
Новая обновленная версия книги Django2 by example. В книге автор разбирает создание различных проектов на Django: начиная от просто блога, заканчивая интернет‑магазином и образовательной платформой - Two Scoops of Django3. Daniel Roy Greenfeld, Audrey Greenfeld
В этой книге авторы познакомят вас с различными советами, хитростями, шаблонами, фрагментами кода и техниками, которым они научились за годы разработки на Django. Стоит отметить, что книга является обновлением и дополнением предыдущих изданий. - Django for APIs: Build web APIs with Python & Django
Django for APIs — это основанное на разработке проекта руководство по созданию современных веб‑API с использованием Django & Django REST Framework. Он подходит для начинающих, которые никогда раньше не создавали API, а также для профессиональных программистов, ищущих быстрое знакомство с основами Django и лучшими практиками. Стоит отметить, что материалы книги используют современные версии фреймворка: Django 4.0 и Rest Framework 3.13 - YouTube канал Django School. Автор на практике понятным языком объясняет как работать с Django. На канале есть несколько плейлистов по полноценной пошаговой разработке веб‑приложений, включая сайт по поиску фильмов.
Я бы мог еще долго перечислять различные инструменты и технологии, которые могут понадобиться вам в работе. Например Docker или принцип работы веб‑серверов, вроде Nginx.
Чтобы понять, что нужно изучить дополнительно, обязательно собеседуйтесь. Так вы сможете понять свой текущий уровень, и что вам нужно подтянуть. А также увидеть, какие хард-скиллы от вас ждет рынок.
Мнение автора может не совпадать с мнением редакции.
Вы потратили на этот материал две минуты. Потратьте ещё 15 секунд, пожалуйста.
dev.by, как и другим честным медиа, сегодня очень сложно: редакция работает за пределами страны, а наши рекламные доходы сократились в несколько раз.
Но мы справляемся — с вашей помощью. Это вы делитесь с нами инфоповодами, мнениями, опытом, временем и вниманием. А 170 читателей поддерживают нас донатами.
В 2023 году мы хотим собрать 1000 читателей-подписчиков.
Помочь нам можно через Patreon. Сейчас средний чек — около 10$, но мы рады любой сумме.
В Беларуси Patreon заблокирован. Мы будем добавлять другие способы.
Спасибо, что прочитали это сообщение.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.
роадмап класс)
https://devby.io/blogs/posts/roadmap.sh
Поправили, спасибо!
Порядок такой:
начинаем учить английский. https://stepik.org/course/67/syllabus https://stepik.org/course/512/syllabus можно глянуть https://youtube.com/playlist?list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW к этому моменту нужно знать базовый инглиш и пробовать читать https://docs.python.org/3/tutorial/index.html дальше больше https://docs.djangoproject.com/en/4.2/intro/tutorial01/ потом какой flask или fastapi https://www.postgresqltutorial.com/ https://www.postgresql.org/docs/current/tutorial.html дальше если вы не слились все остальное найдете сами
Пользователь отредактировал комментарий 10 мая 2023, 13:15
Комментарий скрыт за нарушение правил комментирования.
[censored - П. 4.1.2. Пользовательского соглашения — https://dev.by/pages/agreement]
Комментарий скрыт за нарушение правил комментирования.
[censored - П. 4.1.2. Пользовательского соглашения — https://dev.by/pages/agreement]
Комментарий скрыт за нарушение правил комментирования.
[censored - П. 4.1.2. Пользовательского соглашения — https://dev.by/pages/agreement]