Python django developer roadmap

Ультимативный Roadmap для Python-разработчика в 2023 году + источники знаний

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

Рисунок от mdjrn

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

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

Основы Python:

  • Типы данных и структуры (целые числа, дробные числа, строки, списки, кортежи, словари, множества)
  • Переменные и выражения
  • Условные операторы (if / else)
  • Циклы (for / while)
  • Функции
  • Ввод / вывод (print, input) Мощный и хороший курс по базе PythonТуториал по Питону от создателейБаза от Тимофея Хирьянова В целом пройдя первый курс и просмотрев лекции от Тимофея вы сможете покрыть значительную часть перечисленных далее пунктов.

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

  • Классы и объекты
  • Наследование
  • Полиморфизм
  • Инкапсуляция
  • Абстракция
  • Переменные класса и объекта Введение в ООПКурс на Youtube про ООП

Функциональное программирование:

  • Чистые функции
  • Функции высшего порядка
  • Рекурсия
  • Лямбда-выражения
  • Map, filter, reduce, zip Про функциональное программирования на канале Тимофея ХирьяноваПро функциональное программирование подробнееПро Map, filter, reduce, zip

Модули и библиотеки:

  • Импортирование модулей
  • Создание модулей
  • Использование сторонних пакетов (pip)
  • Написание документации (docstrings) Про модули с документацииИнтересные библиотеки python

Работа с файлами:

  • Открытие и чтение файлов
  • Запись в файлы
  • Закрытие файлов
  • Работа с CSV / JSON / XML-файлами Про работу с файламиCSV

Разработка графических интерфейсов (GUI):

Регулярные выражения:

  • Поиск шаблонов
  • Метасимволы
  • Квантификаторы
  • Группы
  • Подстановка Плейлист про регулярные выражения на Youtube

Тестирование:

  • Модульное тестирование (unittest)
  • Интеграционное тестирование
  • Разработка через тестирование (TDD)
  • Отладка Про unittestХороший гайд на Хабре
Читайте также:  Как включить javascript на tor

Управление версиями в GIT:

  • Рабочий процесс и управление версиями в системе Git
  • Ветвление и объединение
  • Запросы на слияние и обзоры кода
  • Управление конфликтами слияния Полный гайд по GitПро гит подробнееCтатья на Хабре про Git

Оптимизация:

  • Профилирование
  • Управление памятью
  • Анализ времени выполнения
  • Рефакторинг кода Статья про оптимизацию кодаНа Youtube про рефакторинг кодаУправление памятью

Параллельное выполнение:

Управление базами данных:

  • SQL
  • Реляционные базы данных (MySQL, PostgreSQL)
  • Нереляционные базы данных (MongoDB)
  • Объектно-реляционное отображение (ORM) Курс по базам данных от VK team на YoutubeМой roadmap по SQL

Сетевое программирование:

  • Программирование сокетов
  • Подключения TCP / UDP
  • Отправка / получение электронной почты (smtplib, imaplib) Про сокеты и т.п.Про TCP и UDP

Развертывание:

  • Виртуальные среды (venv)
  • Распространение пакетов (wheel)
  • Непрерывная интеграция / непрерывное развертывание (CI / CD)
  • Docker Про venvDocker
  • Интерфейс командной строки (Click)
  • Работа с API-интерфейсами
  • Сериализация / десериализация данных (pickle, json, yaml) Pickle

Веб-разработка(опционально):

  • HTML / CSS
  • Запросы HTTP
  • Flask / Django
  • REST API
  • Веб-скрапинг (BeautifulSoup) DjangoHTML & CSSREST API

Анализ данных(опционально):

  • NumPy / SciPy
  • Pandas
  • Matplotlib / Seaborn
  • Обработка естественного языка (NLTK) Введение в PandasNumPyMatplotlib

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

Структуры данных и алгоритмы:

  • Базовые структуры данных (стеки, очереди, связные списки, деревья, графы)
  • Поиск и сортировка алгоритмов
  • Анализ сложности (нотация O большое)
  • Динамическое программирование
  • Рекурсия Структуры данных и алгоритмыРекурсия

Решение проблем и критическое мышление:

  • Анализирование проблем и требований
  • Разбиение проблем на более мелкие части
  • Генерация творческих решений

Жизненный цикл разработки программного обеспечения:

  • Анализ требований
  • Проектирование архитектуры программного обеспечения
  • Реализация кода
  • Тестирование и отладка кода
  • Развертывание и поддержка
  • Методологии Agile-разработки (например, Scrum) Статья на ХабреAgile

Качество кода:

  • Обзоры кода и лучшие практики чистого кодирования
  • Справочники по стилю кодирования (например, PEP8)
  • Тестирование и разработка через тестирование
  • Рефакторинг кода для улучшения качества и обслуживаемости PEP8

Коммуникация и сотрудничество:

  • Написание четкой и краткой документации
  • Средства совместной работы, такие как Jira
  • Эффективное общение с коллегами и заинтересованными сторонами
  • Работа в команде с использованием систем управления версиями, таких как Git Кратко про документациюКраткий курс по Jira

И самое главное — непрерывное обучение:

  • Дополнительное образование, такое как статьи, книги и онлайн-курсы,
  • Слежение за тенденциями в индустрии и обновлениями в Python и связанных технологиях,
  • Изучение лучших практик и новых подходов к разработке.
Читайте также:  Css все для ксс

Хорошая книга по Python — «Изучаем Python» от Марка Лутца

Учебник по алгоритмам и структурам данных: https://habr.com/ru/post/241696/

Больше практики по Python:

Таким получился Roadmap. Спасибо за твое доверие, если ты будешь следовать по нему.

Так же можете ознакомиться с моим roadmap по SQL.

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

abdukhashimov/python-django-simple-roadmap

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of Web development, so you can focus on writing your app without needing to reinvent the wheel. It’s free and open source.

PythonDjango

The road map to become successful Python-Django engineer

I am assuming that you already have following knowladge

  • Basics of Python
  • Basics of OOP
  • Basics of Git — commit, push, pull, clone, branch, revert
  • A bit of Data structures
Читайте также:  Javascript test which browser

Before starting learn about followings

  • What is Database (relational)
    • What is Table
    • What is Row
    • What is Column
    • Primary Key
    • Unique Key
    • Foreign Key
    • Install virtualenv
    • Activate environment
    • Deactivate environment
    • Then about why do we need a virtualenv
    • Install Django
    • Install DRF
    • Learn about Django structure
    • Learn about Settings File
    • Learn about Django ORM existing fields
    • Create simple Model
    • Migrate it
    • Register it to Admin Panel
    • Learn about Model Serializer
    • Learn about Serializer
    • Visit DRF — Django Rest Framework website and look through it’s getting started tutorial
    • Test your API with Postman
    • AutoPEP8
    • Flake8

    Congratulations you are now more than just entry level developer. Now it is time to get into depth

    • Learn about API design principles
    • Learn DRF Serializers in depth (Relations (1toM, MtoM), Nested Serializers, List Serializers)
    • Filtering and Paginating the results
    • Documenting your Endpoints
      • Django Rest Framework-Yet Another Swagger Generator
      • Authentication vs Authorization
      • Learn different types of authorization
        • Session Based
        • Token Based
        • OAuth2 — just the info is enough, it is better to integrate it using Firebase
        • What is JWT and how it works
          • Django_rest_simplejwt package and basic user log in
          • Custom Permissions
          • WSGI and unix sockets
          • NGINX and web servers
          • Domain Name Service (DNS)
          • HTTP vs HTTPS
          • Docker
          • Docker Compose
          • CI/CD
          • Pipelines

          Now you are already at the level of Junior or Strong Junior (based on how you have learned above listed things). Now I recommend you to build two or three good projects. Your project and codebase the thing that describes you as a developer that’s why do it with all your attention. Below I list some easy projects to get started

          1. Todo app
          2. Blog
          3. Simple e-commerce
          4. Q&A (Question and Answer) webplatform
          5. .

          Please choose one field in the starting point. It can either be Back-end or Front-end or Dev-Ops or may be QA. You do not have to know all the things when starting, it just slows your learning speed. So Implementing just back-end for above projects is quite enough to get started with job or startup

          TLDR: Just implement back-end

          Whenever you can please espace monolithic hell and migrate towards microservices

          Источник

Оцените статью