Course "Middle Python Developer" - course 110,000 rub. from Yandex Workshop, training 6 months, date January 11, 2024.
Miscellaneous / / November 28, 2023
Free 3 hours. Entrance test
Here you will learn about how the training works and take a test of questions about backend development.
0 module 5 hours. Intro module
A series of lessons about code requirements, working with Git, the learning process of the course and the first practical task.
— Small onboarding
— Introduction to Git
- Requirements
1 module 115 hours. Admin Panel + ETL services
Creating and customizing an admin panel for an online movie theater in Python using Django. A detailed study of the most used Django components - the admin panel and ORM. Familiarity with indexes, migrations, and query optimization. Relational database design. Docker device and Nginx operation. Getting to know the ETL architectural pattern and creating your own ETL to transfer data from PostgreSQL to Elasticsearch.
Sprint 1
— Database design, familiarization with indexes and memory consumption
— Familiarity with the process of data insertion, dataclasses and working with time in databases
— Introductory information about databases without SQL, criteria for choosing a framework and a detailed study of Django: from installation to admin panel
Sprint 2
— Deep study of ORM technology
— Implementation of the API in collaboration with Django and testing the result
— A detailed introduction to Docker
— Processing requests in a production environment and configuring Nginx
Sprint 3
— In-depth study of Elasticsearch, full-text search and ETL architecture
- Python + UWSGI + Django
- PostgreSQL
- Nginx
- Docker
- ETL
- Elasticsearch
+ 1 project in the portfolio
Online cinema admin + ETL for data transfer
Module 2 80 hours. Async API service
Dive into asynchronous Python and how it works and put the Fast API into practice. Introduction to iterators, generators and coroutines. Analysis of multithreading and multiprocessing.
Students work in teams of 2-3 people. The development process imitates development in a real product company - teams have a team lead, code reviews and weekly demos with mentors.
Sprint 4
— Principles of work in the command module and technical specifications for the sprint
— Description of the principle of work in Git
— Introduction to the asynchronous approach, iterators, generators and coroutines
— Analysis of asynchronous frameworks: Twisted, AIOHTTP and FastAPI
— Detailed study of FastAPI
Sprint 5
— A detailed description of the general principles of code review
— The difference between solid and undignified code
— Functional tests for the service and test infrastructure
— Concept of API and instructions for writing documentation
- Python
- ASYNCIO
- FastAPI
- Redis
- Iterators and generators
- Coroutines
+ 1 project in the portfolio
Online cinema API
Module 3 80 hours. Authorization service
Development of a service responsible for creating, storing and logging a user profile. It will allow users to register at the cinema and manage their account. A detailed analysis of how to properly store passwords and ensure the security of user data.
Students independently design the service architecture, defending their solutions in a review. They think through the system of interaction between services, paying attention to error handling and the possible shutdown of one of the services.
Diving into synchronous frameworks using Flask as an example and working with relational databases using PostgreSQL as an example. Focus on computer security and proper organization of data collection, protection and storage.
Sprint 6
— Explanation of why the Auth service is needed
— Analysis and collection of requirements, working with sensitive data, security, encryption, hashing and resource access management
— Studying authorization methods and developing service requirements. Continued learning of Flask and Redis
Sprint 7
— A detailed story about the work of OAuth 1.0, OAuth 2.0 and openID
— Working with captcha and two-factor authentication
— Studying communication between microservices. Configuring service resistance to loads and API changes, implementing authorization in AsyncAPI, managing load levels and quickly finding problems
- Python + FlaskPython + Flask
- Redis
- PostgreSQL (replicas/shards)
- OpenID
- oauth2
- jwt
- сaptcha + Proof-of-Work
+ 1 project in the portfolio
User authorization service with data protection
Module 4 80 hours. UGC service
The service allows users to create their own content in your cinema - leave likes, comments, reviews of films. Students need to organize the collection and storage of data on user activity.
Independent selection of an asynchronous framework and data storage for the service. Conducting your own research on the performance of different data warehouses. Defense of the results obtained, conclusions and decisions made in a demo with a mentor.
Sprint 8
— What is UGC and why is it needed. Service planning
— Description of the architecture and useful tips for its design
— Selection of storage, event-based work with data and work with Kafka
— Approaches to storing and processing data that does not fit on one server. Local rise of a computing cluster and working with data inside it
Sprint 9
— Another distributed storage, data storage and optimization of storage and processing
— CI/CD: Building continuous integration for the application
— Introduction to logging in microservice architecture
- Python
- Mongo
- ApacheKafka
- Clickhouse
- Apache Spark
- CI/CD
- ELK
+ 1 project in the portfolio
Organization of collection and storage of data on user activity
Module 5 60 hours. Notification service
The notification service is responsible for communication with the user via Email, mobile push notifications, websocket in the browser. This is a frequently solved business problem in commercial development—business performance depends on proper communication with the user.
Study of architectural problems of web development. Independently navigate the path from a business problem to a working solution. Independent choice of technology stack and drawing of service architecture.
New technologies: message brokers using the example of RabbitMQ and Websocket.
Sprint 10
— Description of the operating principle of the notification service
— Mechanism for sending messages to users and a unified contact policy
— Communication system design
— Email device and template engines. Learning which protocols or technologies can be applied in different situations when you need to contact a client
- Using the RabbitMQ message broker. Transactional mailing services and shortened links
— Return to the CI/CD process
- Python
- FastAPI
- RabbitMQ
- CI/CD
+ 1 project in the portfolio
Notification service via Email, mobile push notifications, websocket in the browser
The finish line is 80 hours. Graduation project
Students choose a business problem themselves or invent one, plan their time, design a solution architecture, select and research technologies, then defend the developed application.
The final point is the defense of the diploma project, where graduates show the results of their team’s work.
Sprint 11
— Preparation for the final straight. Organization of work in the diploma module
— Ideas for a diploma. Ready-made ideas for implementation in a diploma project
— Working through the problem with the customer. Requirements for development and types of customers. Project decomposition and independent preparation of technical specifications for the customer
— Organization of working hours. Useful tips on how to organize working hours and establish transparent processes in a team
— Architecture and planning. Risks and planning of project tasks
Python + Framework (students choose the framework themselves)
Students choose the data storage and other technologies themselves
+ 1 project in the portfolio
Service to choose from
Career track 1 week. Employment program
The career track is divided into seven blocks. First, the student thinks whether he really needs to change his place, and determines his own criteria for comfortable work. Next, he compiles a resume together with experienced HR consultants and carefully prepares for all types of interviews, and we will offer current partner vacancies.
J
john smith
05.04.2021 G.
Python-middle - now I definitely know more!
Advantages: a wide range of studied technologies, tools, analysis of best-practice solutions. Disadvantages: typos in theory Hello everyone, I work as a python programmer, and at some point I was puzzled my competence, because I was not sure of it, and decided to see what the online education market offered. Almost all courses offered an entry-level level, which was not at all interesting...