Содержание

онлайн-обучение языку программирования Python (питон) для начинающих — Яндекс Практикум

Итак, прошло две недели с окончания курса.

Меня буквально на днях спросили, а нужны ли эти курсы, можно же самому всё выучить и стать программистом… Я бы хотел повторить то, что сказал в тот раз: выучить весь материал без курсов конечно возможно, но это очень сложно. Это связано с тем, что при самостоятельном изучении нет обратной связи, не понятно где и что делаешь правильно, а что нет. Не любой написанный код выполняющий требуемые задачи написан правильно, множество аспектов останутся не рассмотренными. Я в интернете встречал очень много кода работающего и выдающего требуемый результат, но написанного в учебных целях, в разрез с устоявшимися правилами. Очень много технологий вообще не будет рассмотрено при самостоятельном изучении в связи с тем, что в учебных задачах не появляется необходимости в их применении.

Так же очень сильно мотивирует к работе горящие сроки и дедлайны. Они настраивают на рабочий лад, на умение оценивать сложность задачи и оценивать время необходимое на её решение.

Я специально не говорю конкретики с примерами так как понимаю, что эта конкретика для каждого направления будет своя.

Лично мне именно общение с наставниками и ревьюерами дало гораздо больше чем решение примеров и задач, предложенных на курсе.

Теперь пара слов о наболевшем: я часто запинался на формулировках задач. Иногда они написаны были достаточно двусмысленно и попадались задачи в которых при написании кода строго по заданию не получалось пройти тест, оказывается имелось ввиду что-то другое. В некоторых местах алгоритмам проверки не хватало гибкости, требовалось вставить ответ строго по заявленному шаблону в то время как код написанный чуть иначе выдавал ровно тот же результат, который требовался, но не проходил проверок.

Зубная и головная боль – Яндекс.Контекст – это просто что-то с чем-то. Формулировки задачь написанные в контексте приходилось очень часто переводить с контекстовского на русский и далеко не всегда это удавалось. Некоторые аспекты вообще в условиях не были упомянуты, приходилось догадываться.

По структуре – лично мне кажется, что некоторые части находятся не на своём месте, но я не уверен на 100%, возможно в таком порядке была своя какая-то логика которую я упускаю. По моему мнению «Углублённый Python» должен был идти сразу после «Основы Python». Этот материал явно дан не вовремя, с опозданием.

Отдельно я бы не упирал только на Google API в «Python для бизнеса», а скорее перечислил бы существующие API в целом и какие-то их особенности если они есть. В частности, не плохо было бы в текущих условиях рассмотреть поглубже продукты экосистемы Яндекса, Google, банковские API, ещё что-то в том же направлении. Может быть взаимодействие с государственными службами. Но это опять же уже моё мнение и мой взгляд на «Python для бизнеса».

В завершении могу сказать, что не жалею о выборе данных курсов, так как они сэкономили мне на изучении очень много времени, а моё время – это тоже деньги.

Я научился смотреть на поставленные задачи шире, чем раньше, научился искать информацию, разбираться в проблемах и ошибках. Я понимаю тот набор технологий, которые сейчас присутствуют на рынке и понимаю что смогу самостоятельно изучить те, которые не затрагивались на курсах, опираясь на полученные знания и навыки.

Я в очередной раз убедился, что настоящий программист – это тот, кто не зная какой-то технологии или языка программирования сможет написать на нём программу опираясь на документацию. На Яндекс Курсах учат именно этому, учат разбираться и искать ответ самостоятельно, быстро и качественно, учат не бояться ошибок и разбираться в поставленных задачах. А для лучшего результата в любой момент на помощь придут очень грамотные и знающие люди.

Как изучать язык Python для веб-разработки в 2023 году. Общие ориентиры / Хабр

Привет, Хабр!

Меня зовут Тимофей, я Python Engineer с опытом в 3+ года.

Тимофей

Python Engineer в компании Fenion GmbH

Недавно я опубликовал статью на Хабре о том, как я докатился до такой жизни и стал разработчиком на Python. Там я упоминал некоторые материалы, которые помогали мне в изучении. За последнее время нашлись люди, которые спрашивали у меня, как лучше вкатиться в веб‑разработку, изучив Python: с чего начать, в каком порядке и какие материалы использовать и т. д.

Я бы не назвал данную статью полноценным роадмэпом в том понимании, в котором это слово обычно используют. В статье нет сроков изучения, отсутствует подробный план, затрагивающей все темы и подтемы. Да и зачем нужен еще один роадмэп «под копирку», когда в сети и так хватает качественных предложений.

Скорее, я хотел бы составить абстрактный план обучения, который сможет задать общий ориентир, а также будет коррелировать с роадмэпом вроде roadmap.sh. Кроме этого, я смогу дать несколько полезных советов из своего опыта, а также составлю списки полезных ресурсов для изучения языка, сопутствующих инструментов и технологий, которые в свое время помогли или же помогают мне самому.

Также хотел отметить, что все написанное в данной статье является моим субъективным взглядом, основанным на личном опыте. Я не являюсь истиной в последней инстанции, поэтому, в конечном счете, решение следовать данному плану или нет, конечно же, остается за вами.

В любом случае, я надеюсь, что данная статься окажется полезной и вы сможете подчеркнуть что‑нибудь, что поможет вам в изучении языка Python и веб‑разработки в целом.

Что такое язык Python и где он используется

Python — это высокоуровневый интерпретируемый язык программирования, который был впервые выпущен в 1991 году(Не все знают, но язык даже старше Java!). Он известен своей простотой, удобочитаемостью и удобством использования, что делает его популярным выбором для широкого спектра приложений, от веб‑разработки до научных вычислений.

Python может быть использован для многих целей, включая:

  • Веб‑разработка: Python широко используется для создания серверной части веб‑приложений с использованием таких фреймворков, как Django, Flask или FastAPI.

  • Анализ данных и машинное обучение: Python стал фактическим языком для анализа данных, машинного обучения и искусственного интеллекта благодаря своему богатому набору библиотек, таких как NumPy, Pandas и Scikit‑learn.

  • Написание скриптов: Простота и удобство использования Python делают его популярным выбором для написания сценариев для автоматизации задач, таких как системное администрирование и сетевое программирование.

  • Разработка десктопных приложений: Python также можно использовать для создания настольных приложений с использованием библиотек GUI, таких как PyQt.

  • Разработка игр. Конечно, ААА‑проектов на питоне не делают, что что‑то простое — вполне. На YouTube есть интересный канал, на котором автор периодически выкладывает свои Pygame‑проекты.

  • Образование: Простой в освоении синтаксис Python и широкий спектр приложений делают его популярным выбором для вводных курсов в программирование в университетах и школах.

В целом, Python — это универсальный язык, который может использоваться для широкого спектра целей, от простых скриптов до сложных приложений.

Важное предисловие и некоторые советы

У меня для вас хорошая новость: любой человек может достичь хорошего уровня владения Python или же любым другим языком, благодаря правильному подходу, а именно синергией заинтересованности, мотивации и дисциплины.

Могу предположить, что некоторые люди пытаются попасть в ИТ в первую очередь из‑за денег. Не будем лукавить: денежная мотивация занимает далеко не последнее место и это вполне естественно: труд должен соответствующе оплачиваться. На одной лишь мотивации, а особенно на денежной, в принципе долго выезжать не получится. В данной сфере нужно очень много учиться. Причем делать это нужно постоянно. А какой нормальный человек сможет тратить огромное количество своего драгоценного времени на изучение того, что ему не интересно? Естественно, бывают разные программисты, я даже лично знаю некоторых, кто с трудом ориентируется в базовом синтаксисе языка, хотя уже несколько месяцев работают в ИТ‑компании. Мы же хотим стать хорошими специалистами, так?

Будучи новичком, я не сразу обрел истинный интерес к языку. На своих первых курсах мы решали математические задачки при помощи этого языка, и скажу вам так: это меня совсем не заинтересовало. Прошел достаточно продолжительный период времени(около года), прежде чем я вернулся к языку. Я вспоминал основы, после чего начал изучать фреймворк Django и сопутствующие технологии прямо во время процесса разработки.

Перейдя на любую вакансию новичок вполне может ужаснуться от списка технических требований к кандидатам: уверенное знание языка, опыт работы с N количеством фреймворков и библиотек, SQL, REST API, GIT, Docker. И данный список может расширяться в зависимости от конкретной вакансии.

Как же все выучить, работать эффективно, не потерять интерес и не сойти с ума?

Для ответа на этот вопрос, оставлю некоторые общие рекомендации:

  • Выберите удобную IDE. Процесс разработки в первую очередь должен быть комфортным для вас самих. Фактически, на рынке есть лучшая IDE для разработки на Python — это Pycharm. К сожалению, из‑за политики JetBrains их продукты больше не доступны для покупки аккаунтам из Беларуси и России. Альтернативой является VS Code, достаточно шустрый редактор кода, который благодаря плагинам оставляет большинство плюшек Pycharm.

  • Обязательно делайте перерывы: дайте вашему мозгу шанс обработать и усвоить полученную информацию. Вы можете удивиться, но эта штука практически всегда работает. Если вы видите, что у вас долго что‑то не получается — просто отдохните и отвлекитесь. Но данный отдых должен быть, в первую очередь, отдыхом для мозга. Лучшим отвлечением лично для меня является прогулка. Зачастую, после такого перерыва вы сможете по‑другому взглянуть на вашу задачу, у вас появятся новые мысли и вы увидите другие пути решения.

  • Выработайте привычку заниматься каждый день. Теория + много практики. Теоретические знания — это безусловно хорошо, но без должного количества практики они ничего не значат. Часто бывает такое, что в теории вам все кажется очевидным и понятным, но как дело касается решения вы обнаруживаете, что сильно путаетесь и голова будто бы не работает. Это нормально! Пытайтесь, пока не получится.

  • Не прыгайте между темами. Обучайтесь поэтапно и в комфортном для вас темпе. Никто не выиграет от того, что вы с утра до вечера будете сидеть за книгами и задачами, после чего сильно перегорите. Перегорание — это в целом распространенная проблема у программистов(и не только). Во время обучения и работы я тоже перегорал и знаю, что это такое. Но в итоге я нашел комфортный для себя темп и определил некоторые рабочие правила, вроде периодического отдыха.

  • Не злоупотребляйте копипастом кода. Особенно это касается проектов. Во всех курсах авторы закрепляют теорию практикой. В роли такой практики выступает создание проекта. Старайтесь думать сами. Это не значит, что вы не должны слушать автора, напротив, изучайте курс внимательно. Я говорю о том, что вы не должны слепо переписывать код и ждать чуда. Пытайтесь решить задачу сами, экспериментируйте, думайте над задачей вместе с автором.

  • Если вам нужно решить большую или же непонятную задачу, декомпозируйте ее на более мелкие подзадачи. Это работает. Так вы сможете намного быстрее найти нужное решение.

  • Присоединяйтесь к сообществу: присоединение к сообществу изучающих Python и разработчиков может быть отличным способом сохранять мотивацию и учиться у других.

  • Создавайте пет‑проекты. Создание пет‑проектов — очень важный аспект в обучении, а также способ применить полученные знания и получить практический опыт, который можно будет добавить в резюме. Начните с простых проектов, таких как калькулятор или текстовая игра, и постепенно переходите к более сложным.

Итак, после небольшого вступления вы определились с мотивацией и ознакомились со списком общих рекомендаций. Можем переходить к самим шагам.

Шаг 1. Изучение основ языка + GIT

Начните с основ Python, таких как типы данных, переменные, циклы, функции и модули. Для начало следует понять основы, уверенно ориентироваться в языке. Да, в какой‑то момент это может наскучивать, но без этих основ вы не сможете двигаться дальше.

Также хотел вынести сюда GIT — систему контроля версий. Данная технология обязательна к изучению всем разработчикам, т.к. во‑первых, это удобно, а во‑вторых, она используется повсеместно. Для начала вам понадобятся несколько базовых команд, вроде:

git init # Инициализация репозитория
git add # добавление файлов в staging area
git commit # снимок текущих изменений проекта
git pull # стягиваем последние изменения с репозитория
git push # заливаем изменения после commit'а

Шаг 2. Объектно-ориентированное программирование

Python — это объектно‑ориентированный язык программирования, здесь все является объектом. Следовательно, важно изучить объектно‑ориентированные концепции, такие как классы, объекты, наследование, полиморфизм и инкапсуляция. Концепции ООП практически всегда спрашивают на собеседованиях, поэтому вы должны хорошо в них ориентироваться. Помимо этого вы постоянно будете сталкиваться с классами в своих повседневных задачах.

Шаг 3. Алгоритмы

Для того, чтобы уметь решать поставленные задачи, нужно мыслить алгоритмически. А как это сделать? Правильно, практиковаться в решении различных задач. Книга «Грокаем алгоритмы» — это просто находка для знакомства с ними. В книге доступнейшим языком рассказывается о различных базовых алгоритмах и понятиях, вроде времени выполнения и О‑большого. Параллельно с изучением данной книги, особенно рекомендую решать разные задачки на codewars или leetcode.

Материалы для изучения. Шаг 1 — Шаг 3

Хотел бы сразу сказать, что я не говорю о том, что все материалы ниже обязательны к изучению. Я лишь оставляю список качественных и полезных на мой взгляд материалов, которые помогли мне и, возможно, помогут вам в процессе обучения.

  1. Знакомство с Python. Дэн Бейдер.

    Пытаетесь найти что‑нибудь для начинающих о языке Python в интернете? Не можете решить, с чего начать? Как структурировать это море информации? В каком порядке изучать? Если вы задаетесь подобными вопросами, потому что хотите заложить фундамент будущей карьеры питониста — эта книга для вас! Вместо скучного перечисления возможностей языка авторы рассказывают, как сочетать разные структурные элементы Python, чтобы сразу создавать скрипты и приложения. Книга построена по принципу 80/20: большую часть полезной информации можно усвоить, изучив несколько критически важных концепций. Освоив самые популярные команды и приемы, вы сразу сосредоточитесь на решении реальных повседневных задач.

    Вот что издатель пишет в описании книги, с чем я вполне соглашусь. От себя хотел добавить, что уже успел посмотреть книгу и оставила она только положительные впечатления. Дэн Бейдер в принципе считается одним из лучших авторов по тематике Python. Отличительной особенностью его работ является понятный стиль изложения. И данная книга не является исключением, она отлично подойдет для новичков.

  2. «Изучаем Python». Марк Лутц

    Многие питонисты считают данную книгу мастхэвом. И не зря, ведь данная работа уже считается классикой. Очень малое количество книг могут сравниться с Лутцом по глубине и подробности в описании своего предмета. Освоив материал книги, вы совершенно точно сможете решать с помощью Python самые разные задачи. Недостатком является форма изложения, которая зайдет далеко не всем, а также размер книги — около 1200 страниц.

  3. Укус питона. Swaroop C.H

    Книга является противоположностью учебнику Лутца. Она маленькая(около 164 страниц), совсем не является полноформатным учебником и содержит в себе самые основы в формате «записок» автора. Книгу вполне можно изучать вместе с каким‑нибудь курсом, например из пункта 4.

  4. Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих. Адитья Бхаргава

    Принято считать, что программирование — это очень сложно. Особенно если раз за разом наступать на одни и те же грабли, пытаться сделать по‑своему то, что уже и так было придумано до нас. Ведь практически для любой задачи есть готовый алгоритм решения, осталось только найти его и правильно использовать.

    В книге «Грокаем алгоритмы» Адитья Бхаргава не просто показывает примеры таких решений с детальными иллюстрациями, но и учит читателя самостоятельно находить их в дальнейшем. Читатель знакомится с понятиями бинарного поиска, массивами, связанными списками, структурами данных, рекурсией.

    Книга рассчитана на тех, кто уже знаком с основными азами программирования и интересуется алгоритмическими решениями. Автор старается доносить информацию понятным даже новичку языком, иллюстрирует все основные моменты.

  5. Вся серия курсов «Поколение Python» на степике. Очень хорошие курсы с большим количеством задач, которые познакомят вас с основными типами данных, циклами, условиями и т. д.

  6. Руководство по языку Python. Метанит. Вполне себе хорошее базовое руководство по языку. Рассматриваются все базовые темы, включая ООП. Сам когда‑то пользовался, было полезно.

  7. Git за полчаса: руководство для начинающих. Отличная статья, которая научит вас основам работы с системой контроля версий.

  8. Гуглите. Вы обучаетесь только тогда, когда сталкиваетесь с трудностями. Поиск решения задачи сильно прокачивает ваши скиллы. Ищите ответы на форумах, в статьях, видео на YouTube и т. д. Только путем проб и ошибок можно по‑настоящему понять изучаемую тему.

Шаг 3. Изучение основ SQL, работа с ORM

Работа с базой данный — неотъемлемая часть работы любого backend‑разработчика. На практике, вы будете работать с БД постоянно. Нет, на данном этапе вам не обязательно знать как руками написать JOIN запрос, в котором будут находится данные из 10 разных таблиц. Для начала, изучите основы, вроде: что такое таблицы, поля, связи и запросы. Остальное за вас сделает

ORM. Да, практически во всех современных фреймворках есть наличие 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')

Материалы для изучения

  1. Разбираем SQL на примере PostgreSQL — SELECT, JOIN, GROUP, HAVING, Coalesce и др. YouTube канал Диджитализируй!

  2. Django ORM и его самые популярные фичи. Статья.

  3. Официальная документация Django ORM.

Шаг 4. Изучение верстки на базовом уровне

Сегодня без верстки никуда. Ее должен знать каждый, в том и числе и backend‑инженер. То же самое я бы мог сказать и о JavaScript, но на данном этапе изучать его необязательно. Вы всегда сможете вернуться к нему позже.

Без знаний верстки вы не поймете как работает ваше приложение. Вы даже не сможете нормально отобразить данные на странице. Если я вас не убедил, то вот некоторые из причин, почему вам следует изучить верстку:

  • Понимание того, как работает Web. Backend‑инженеры обычно работают на стороне сервера, но они также должны хорошо понимать, как работает клиентская часть (т.  е. браузер). HTML и CSS являются основополагающими языками Интернета и необходимы для создания веб‑страниц. Знание того, как работать с HTML и CSS, помогает бэкенд‑инженерам понять весь процесс веб‑разработки.

  • Лучшее кооперирование с frontend‑разработчиками. Backend‑разработчики часто сотрудничают с frontend‑инженерами для создания веб‑приложений. Знание HTML и CSS облегчает им общение с разработчиками интерфейсов и понимание кода, над которым они работают. Это может привести к более эффективному сотрудничеству.

  • Отладка и устранение неполадок. Инженеры серверной части отвечают за обеспечение правильной работы веб‑приложений. Если есть проблемы с интерфейсом, такие как неработающий макет или смещенный элемент, знание того, как работать с HTML и CSS, может помочь backend‑разработчику быстрее диагностировать и устранять проблему.

  • Быстрое прототипирование. Backend‑инженерам часто приходится создавать быстрые прототипы или макеты веб‑страниц, чтобы протестировать их функциональность. Знание HTML и CSS позволяет им быстро и легко создавать простые веб‑страницы, не полагаясь на разработчика внешнего интерфейса.

  • Больше возможностей для трудоустройства: На современном рынке многие вакансии для бэкенд‑инженеров также требуют знания интерфейсных технологий, таких как HTML, CSS и JavaScript. Обладание этими навыками может сделать backend‑инженеров более востребованными на рынке и открыть больше возможностей для трудоустройства

Материалы для изучения Шаг 4

  1. YouTube канал Евгения Андриканича «Фрилансер по жизни». Отличнейший канал, благодаря которому я также в свое время изучал верстку. Автор доступным языком объясняет различные концепции и штуки из верстки и фронтенда в целом. На канале очень много практики, которую Женя буквально «разжевывает» для зрителя.

  2. Ресурс W3 Schools. Полезный сайт, на котором содержится куча полезный информации и практических примеров по всем html‑тегам, css‑селекторам и т. д.

  3. В целом, после знакомства с основными концепциями, я бы посоветовал набрать понравившихся макетов из тематических тг‑каналов, вроде этого и тупо верстать их. После нескольких таких макетов вы будете чувствовать себя уверенно и поймете, что верстка — это просто.

Шаг 5. Изучение фреймворка

После того, как вы изучите базовые конструкции Python, а также работу с SQL, вы можете переходить к изучению фреймворка. Во время изучения, параллельно стоит изучить как работает веб в целом: как сервер взаимодействует с клиентом, как осуществляется сохранение данных на сервере, какие HTTP‑запросы существуют и т. д. Да, это займет у вас какое‑то время, но эти знания являются обязательными.

На данный момент на Python существует три самых популярных решения для разработки веб‑приложений: Django, Flask и FastAPI. Какой из них выбрать — решать вам. В этой статье автор проводит понятное сравнение всех трех фреймворков.

В свое время я начинал с Django: меня подкупила популярность, наличие огромного множества библиотек, широкий функционал прямо из коробки, большое количество обучающего материала, а также большое комьюнити.

Для понимания того, как устроен фреймворк, вы также должны знать о существовании такого понятия, как паттерны разработки. Шаблон проектирования или паттерн в разработке программного обеспечения — это повторяемая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста. На самом деле существует огромное количество таких паттернов и подходов. Вам не нужно знать их все, но зачастую фреймворк использует тот или иной архитектурный паттерн, следовательно, вам стоит знать как он устроен.

Шаг 6. Создание первого проекта

Как я упоминал выше, в свое время я изучал Django прямо во время разработки своего первого веб‑приложения, а именно книжного интернет‑магазина. Если вы будете делать также, то таким образом сможете сразу подкреплять свои теоретические знания полезной практикой.

Не стоит бросаться в крайности. Не нужно 10 часов подряд изучать сухую теорию и никак не использовать ее на практике. Но, также, в свою очередь, для начала нужно изучить основные концепции и инструменты фреймворка, вроде моделей, представлений, контроллеров и т.  д., а также их взаимодействие между собой.

Итоговый совет такой: изучите основную концепцию инструмента: базовые вещи и из чего он состоит, а после следуйте примерному плану: изучили тему — внедрили функционал в свое приложение.

Как только вы подойдете к созданию пет‑проекта, у вас, как и у большинства новичков, сразу возникнет вопрос: «А какой вообще проект делать?». Тут все просто: не нужно придумывать велосипед.

Для начала вы можете делать проект с курса или книги, которые вы изучаете. После этого вам нужно будет написать что‑то свое. Подумайте. Может быть у вас есть хобби? Может быть вы любите читать книги и хотите создать интернет‑магазин по их продаже. А может вы любите играть в футбол и хотите создать сайт о спортивных мероприятиях, матчах, командах и т. д. Выбор тут и вправду огромный и он ограничивается лишь вашей фантазией.

Шаг 7. Работа с API

Вам так или иначе придется научиться работать с API (Application programming interface) — интерфейсом, при помощи которого один сайт может взаимодействовать с другим.

Грубо говоря API — это набор операций и функций, доступный внешним клиентам.

Задачи backend‑разработчика так или иначе сводятся к созданию или работе с API‑интерфейсом, который далее будет использоваться frontend‑разработчиком.

В Django для проектирования API используется библиотека Django Rest Framework, которая предоставляет все нужные инструменты для создания API прямо из коробки.

Попробуйте поработать с API разных платформ: например, с API площадки Steam, при помощи которой вы можете получить данные о всех размещенных на ней играх.

Материалы для изучения

  1. Quickstart по Django Rest Framework. Официальная документация.

  2. Официальная документация по Django.

  3. Django3 by example. Antonio Mele

    Новая обновленная версия книги Django2 by example. В книге автор разбирает создание различных проектов на Django: начиная от просто блога, заканчивая интернет‑магазином и образовательной платформой

  4. Two Scoops of Django3. Daniel Roy Greenfeld, Audrey Greenfeld

    В этой книге авторы познакомят вас с различными советами, хитростями, шаблонами, фрагментами кода и техниками, которым они научились за годы разработки на Django. Стоит отметить, что книга является обновлением и дополнением предыдущих изданий.

  5. 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

  6. YouTube канал Django School. Автор на практике понятным языком объясняет как работать с Django. На канале есть несколько плейлистов по полноценной пошаговой разработке веб‑приложений, включая сайт по поиску фильмов.

Прочие инструменты и технологии

Я бы мог еще долго перечислять различные инструменты и технологии, которые могут понадобиться вам в работе. Например Docker или принцип работы веб‑серверов, вроде Nginx. Для того, чтобы понять, что нужно изучить в дополнение к базовым знаниям, вам обязательно нужно ходить по собеседованиям в ИТ‑компании. Так вы сможете понять свой текущий уровень и что вам нужно подтянуть, а также увидеть то, чего от вас ждет рынок в плане хард‑скиллов.

Итоги

В данной статье я описал примерный список необходимых знаний для старта в разработке веб‑приложений на Python. Да, объективно он далеко не маленький. Любое обучение, а особенно осознанное — это в принципе дело не быстрое. Но если вы добросовестно изучите все темы, описанные выше, то получите необходимый фундамент, который поможет вам в дальнейшем.

Также, хотел еще раз отметить, что у вас не должно быть цели изучить все эти темы за месяц. Обучайтесь в комфортном для вас темпе, главное — регулярность. Кто‑то сможет осилить данный объем материала за условных 6 месяцев, а кто‑то за 12. В этом нет ничего плохого. Главное, чтобы обучение проходило качественно и приносило вам реальную пользу и результат.

Спасибо за внимание! Если статья оказалась для вас полезной и интересной, то можете подписаться на мой телеграм‑канал, где я рассказываю о разработке на Python и об ИТ в целом на основе своего рабочего опыта.

Руководство разработчика Python

Изменить эту страницу

Переключить боковую панель оглавления

Это руководство представляет собой исчерпывающий ресурс для внесения на Python — как для новых, так и для опытных участников. Это поддерживается тем же сообщество, поддерживающее Python. Мы приветствуем ваш вклад в Python!

Краткий справочник

Вот основные шаги, необходимые для настройки и внесения исправления. Это предназначено в качестве контрольного списка, когда вы знаете основы. Для полного инструкции см. в руководстве по установке.

  1. Установка и настройка Git и других зависимостей (подробную информацию см. на странице настройки Git).

  2. Разветвить репозиторий CPython в свою учетную запись GitHub и получите исходный код, используя:

     клон git https://github.com//cpython
    компакт-диск cpython
     
  3. Сборка Python, в UNIX и macOS используйте:

     ./configure --with-pydebug && make -j
     

    и в Windows используйте:

     PCbuild\build.bat -e -d
     

    См. также более подробные инструкции, как установить и построить зависимости, и страницы для конкретных платформ для UNIX, macOS и Windows.

  4. Запустить тесты:

     ./python -m тест -j3
     

    В большинстве систем macOS замените

    ./python . с ./python.exe . В Windows используйте python.bat .

  5. Создайте новую ветку, в которой будет проходить ваша работа над проблемой, например:

     git checkout -b fix-issue-12345 основной
     

    Если проблема еще не существует, создайте ее. Тривиальные проблемы (например, исправления опечаток) не требуют создания каких-либо проблем.

  6. После устранения проблемы запустите тесты, запустите , выполните проверку исправлений

    и, если все в порядке, коммит.

  7. Разместите ветку на своем форке на GitHub и создайте запрос на вытягивание. Включите номер выпуска, используя gh-NNNN в Описание пулреквеста. Например:

     gh-12345: исправлена ​​ошибка в спам-модуле.
     
  8. Добавить запись новостей в каталог Misc/NEWS.d в виде отдельного файла. запись новостей может быть создана с помощью аннотации, или инструмент аннотации и его аннотация добавить команда. Пожалуйста, прочитайте больше о рекламе в документации.

Примечание

Вступающие впервые должны будут подписать Лицензию участника Соглашение (CLA), как описано в разделе «Лицензирование» это руководство.

Быстрые ссылки

Вот несколько ссылок, на которые вы, вероятно, будете часто ссылаться во время участие в Python:

  • Система отслеживания проблем

  • Статус билдбота

  • Где получить помощь

  • PEP (предложения по улучшению Python)

  • Git Bootcamp и шпаргалка

Содействие

Мы призываем всех внести свой вклад в Python, поэтому мы разместили это руководство разработчика. Если у вас остались вопросы после ознакомления с материалом в этого руководства, то группа Core Python Mentorship доступна, чтобы помочь новым участников в процессе.

Несколько человек из сообщества Python внесли свой вклад в серию отличных руководств на Open Source Guides.

Основные разработчики и участники найдут полезными следующие руководства:

  • Как внести свой вклад в Open Source

  • Создание доброжелательных сообществ

Руководство по разработке Python:

Авторы

Документалисты

Триагеры

Основные разработчики

Установка и строительство

Помощь с документацией

Система отслеживания проблем

Обязанности

Где получить помощь

Начало работы

Рассмотрение проблемы

Журнал разработчика

Жизненный цикл запроса на слияние

Руководство по стилю

Помощь в вопросах сортировки

Принятие запросов на вытягивание

Запуск и запись тестов

reStructuredText Primer

Указатель экспертов

Цикл разработки

Решение «простых» проблем (и не только)

Перевод

Ярлыки GitHub

Мотивы и связи

После разработки Python

Проблемы GitHub для пользователей BPO

Часы работы основных разработчиков

Git Bootcamp и шпаргалка

Группа сортировки

Указатель экспертов

Цикл разработки

Мы рекомендуем читать документы в этом руководстве по мере необходимости.

Ты можете остановиться там, где вам удобно, и сразу начать вносить свой вклад, не чтение и понимание этих документов одновременно. Если вы решите пропустить в документации, имейте в виду, что она написана с учетом предыдущего документация была прочитана, поэтому вам может понадобиться вернуться назад, чтобы заполнить недостающие понятия и терминология.

Предложение изменений в самом Python

Улучшение кода, документации и тестов Python — это текущие задачи, которые никогда не будет «закончен», поскольку Python работает как часть постоянно развивающегося система техники. Еще более сложная текущая задача, чем эти необходимая деятельность по техническому обслуживанию заключается в поиске способов сделать Python в виде стандартная библиотека и определение языка, еще лучший инструмент в инструментарий разработчика.

Хотя такие изменения происходят гораздо реже, чем описанные выше, они случиться, и этот процесс также описан в этом руководстве:

  • Добавление в стандартную библиотеку

  • Изменение языка Python

Другие реализации интерпретатора

Это руководство предназначено специально для поддержки эталонного интерпретатора Python, также известный как CPython (хотя большая часть стандартной библиотеки написана на Python, ядро интерпретатора написано на C и легче всего интегрируется с C и экосистемы С++).

Существуют и другие реализации Python, каждая со своей направленностью. Нравиться CPython, у них всегда есть больше вещей, которые они хотели бы сделать, чем они имеют разработчиков для работы над ними. Некоторые основные примеры, которые могут представлять интерес:

  • PyPy: интерпретатор Python, ориентированный на высокоскоростную (JIT-компиляцию) работу. на основных платформах

  • Jython: интерпретатор Python, ориентированный на хорошую интеграцию с Java. Среда виртуальной машины (JVM)

  • IronPython: интерпретатор Python, ориентированный на хорошую интеграцию с Общеязыковая среда выполнения (CLR), предоставляемая .NET и Mono

  • Stackless: интерпретатор Python, ориентированный на предоставление легкого микропотоки, оставаясь в значительной степени совместимыми со специфическими для CPython модули расширения

  • MicroPython: крошечный интерпретатор Python с небольшим подмножеством Python стандартная библиотека, оптимизированная для работы на микроконтроллерах и в стесненные среды.

  • CircuitPython: ответвление MicroPython, предназначенное для упрощения экспериментов. и обучение программированию на недорогих платах микроконтроллеров.

Ключевые ресурсы

Дополнительные ресурсы

  • Любой может клонировать исходники этого руководства. Видеть Помощь с Руководством разработчика.

  • Помощь с …
    • Изучение внутренних органов

    • Изменение грамматики CPython

    • Руководство по синтаксическому анализатору

    • Дизайн компилятора

    • Конструкция мусоросборника

  • Опора для инструмента
    • Опора GDB

    • Динамический анализ с Clang

    • Различные инструменты с файлами конфигурации, найденными в каталоге Misc

    • Информацию о редакторах и их конфигурациях можно найти в вики

  • обслуживание python. org

  • Искать в этом руководстве

Кодекс поведения

Обратите внимание, что все взаимодействия на Поддержка Python Software Foundation инфраструктура покрыта Кодексом поведения PSF, который включает в себя всю инфраструктуру, используемую при разработке самого Python (например, списки рассылки, средства отслеживания проблем, GitHub и т. д.). В целом это означает, что все должны быть открытыми, внимательными и уважать других, независимо от их положения в проекте.

Статус веток Python

Перемещено в Статус версий Python

Полное содержание

Среды разработки — Full Stack Python

Среда разработки — это комбинация текстовый редактор и реализация среды выполнения Python. Текстовый редактор позволяет вам писать код для ваших приложений. Время выполнения реализация, такая как CPython или PyPy, предоставляет метод для выполнения вашего кода.

Текстовый редактор может быть таким же простым, как Блокнот, работающий в Windows, или более сложный интегрированная среда разработки (IDE) с проверка синтаксиса, встроенный запуск тестов и подсветка кода. Пара распространенных IDE для разработки на Python: PyCharm и VSCode, оба из которых работают на любом основном Операционная система.

Зачем нужна среда разработки?

Код Python должен быть написан, выполнен и протестирован для сборки Приложения. Текстовый редактор предоставляет способ написания кода. интерпретатор позволяет его выполнить. Тестирование, чтобы увидеть, делает ли код то, что вы хотите, может быть сделано вручную или с помощью модульных и функциональных тестов.

Изучая среды разработки, обязательно ознакомьтесь с информацией о Vim и Emacs.

Пример среды разработки

Вот что я (автор Full Stack Python, Matt Makai) используют для разработки большей части моего Python Приложения. У меня есть Macbook Pro с Mac OS X в качестве базовой операционной системы. система. Ubuntu 18.04 LTS виртуализирован сверху с параллелями. Мой код написан на vim и выполняется с помощью Выпуск Python 3.6 через командную строку. я использую виртуалэнв для создания отдельных интерпретаторов Python с собственным изолированным зависимости приложений и виртуальная обертка для быстрого переключения между интерпретаторами, созданными virtualenv.

Это обычная настройка, но вы, безусловно, можете написать отличный код с большим менее дорогая установка или облачная среда разработки.

Среды других разработчиков

Часто лучший способ понять, как освоиться в собственной среды разработки, чтобы увидеть примеры того, как другие опытные разработчики настроили свои конфигурации. Следующие посты содержат инструменты, редакторы и рабочие процессы, на которые разработчики потратили время публично документировать.

  • Моя среда разработки Python имеет настройку с Sublime Text, Anaconda, PyCharm и рабочий процесс автора, как использовать разные редакторы для разных целей.

  • Моя среда разработки Python, издание 2018 г. объясняет Джейкоб Каплан-Мосс (один из первых создателей Веб-фреймворк Django) локальная установка.

  • Полное руководство по настройке моего рабочего пространства Python ориентирован на использование Python для науки о данных, но руководство остается полезен для настройки вашей системы для любого типа работы с Python. Есть несколько полезных советов в посте о том, как не фальсифицировать ваш глобальный Python установки, а также как разделить множество виртуальных сред для Python 2 и 3.

Облачные среды разработки

В прошлом появилось несколько облачных сред разработки несколько лет. Эти размещенные среды могут хорошо работать, когда вы учитесь или застрял на машине с веб-браузером, но без административного права на установку собственного программного обеспечения. Большинство из них имеют бесплатные уровни для начать работу, а затем требовать оплаты по мере расширения вашего приложения.

  • CodeAnywhere — это облачная IDE, которую можно использовать в веб-браузере или на устройстве iOS или Android.

  • Cloud9 начиналась как независимая компания, а теперь принадлежит Amazon как часть Amazon Web Services.

  • code.xyz — это текстовый онлайн-редактор, созданный Stdlib, который может интегрироваться с внешними веб-API.

  • Веб-IDE GitLab интегрирован в веб-приложение GitLab для изменения вашего Файлы репозитория Git прямо в вашем браузере.

Общие ресурсы среды разработки

Среды разработки уникальны для каждого программиста, поскольку Python используется для самых разных целей. Следующие руководства варьируются от веб-разработка для DevOps и от приступить к науке о данных. Несмотря на то, что ваши требования к среде уникальны, вы должны быть в состоянии найти кого-то, кто настроил что-то похожее на то, что вам нужно. Используйте это конфигурацию в качестве отправной точки и настроить ее оттуда.

  • В сабреддите Python была хорошая ветка с разработчиками, дающими спецификации для своих сред разработки Python в этом посте на Что находится в вашей среде разработки Python?

  • У

    Real Python есть отличный подробный пост на настройка среды Sublime Text 3 как полноценная IDE.

  • Как загрузить проект Python охватывает использование virtualenv, где хранить ваши файлы, какую версию Python использовать и добавить библиотеки метрик кода для проверки синтаксиса.

  • PyCharm: хорошие стороны показывает, как повысить эффективность и продуктивность работы с этой IDE, если она ваш выбор для написания кода Python.

  • Требуется блог JetBrains PyCharm чтение, если вы используете IDE или планируете попробовать ее. Один из у основных разработчиков также есть интервью о Подкаст «Поговори со мной о Python» это стоит послушать.

  • Радость среды рабочего стола Linux рассказывает о средах для настольных компьютеров , а не конкретно о разработке средах, но дает объяснение, почему ядро ​​операционной системы Linux system великолепна тем, что она отделена от самой среды рабочего стола. Вы можете изменить среду рабочего стола только из командной строки без оконной системы в полноэкранную систему, предоставляемую Gnome, KDE или Unity для использования системы и выполнения вашей работы по программированию.

  • Путеводитель по Python для автостопщиков имеет страницу, посвященную средам разработки.