Python programmer - course 124,500 rub. from GeekBrains, training 8 months, Date: June 10, 2023.
Miscellaneous / / December 04, 2023
Over the past two years, the demand for Python developers has grown by 20%. To master an in-demand profession, school knowledge will be enough for you. You will learn the basics of HTML/CSS and learn how to develop the server side of a website in Python and Django.
Video course Basics of the Python language. 1 month.
The Python Language Fundamentals course is perfect for both experienced programmers who want to get acquainted with a new development tool, and for complete beginners. We will go from the basics of programming (variables, loops, branching) to building programs using an object-oriented approach. Throughout the course we will look at various examples of using the language to solve practical problems. Let's dive into the world of Python and get inspired by its ideology and philosophy. The course uses Python version 3
Lesson 1. Introduction
Lesson 2. Introduction to Python
Lesson 3. Analysis of a practical task
Lesson 4. Built-in types and operations with them
Lesson 5. Analysis of a practical task
Lesson 6. Workshop. Game "Guess the number"
Lesson 7. Analysis of a practical task
Lesson 8. Functions
Lesson 9. Analysis of a practical task
Lesson 10. Modules and libraries
Lesson 11. Analysis of a practical task
Lesson 12. Working with files. Encodings
Lesson 13. Analysis of a practical task
Lesson 14. Useful tools. Exception Handling
Lesson 15. Analysis of a practical task
Lesson 16. Workshop. Console file manager
Lesson 17. Analysis of a practical task
Git. Basic course
Git Basics
13 videos will teach you the basics of working with the Git version control system. You'll learn why it's important in modern development. Learn the basic concepts: repository, commits, branches and tags. Master key operations: creating and cloning a repository, merging branches, querying change history, and much more. After training, you'll be ready to use Git to prepare homework assignments for programming courses in any language. Plus, you'll get closer to the interview, where several questions usually focus on version control.
Lesson 1. Introduction to Git
Lesson 2. Installing and Configuring Git
Lesson 3. Basic terminal commands
Lesson 4. Working with repositories in Git
Lesson 5. Repository File Management
Lesson 6. History of changes
Lesson 7. Working with repository branches
Lesson 8. Publishing a repository
Lesson 9. Branch merges
Lesson 10. Version management
Lesson 11. Creating a pull request
Lesson 12. Complex operations
Lesson 13. Working with Fork repositories
Python Language Basics. 1 month.
From programming basics to building programs using OOP
The Python programming language is a powerful tool for creating programs for a wide variety of purposes, accessible even to beginners. It can be used to solve various types of problems. The Python Basic course is perfect for both experienced programmers who want to get acquainted with a new development tool, and for beginners. We will go from the basics of programming (variables, loops, branching) to building programs using an object-oriented approach. Throughout the course we will look at various examples of using the language to solve practical problems. Let's dive into the world of Python and get inspired by its ideology and philosophy.
Lesson 1. Introduction to Python
The lesson contains the basic information necessary for a successful start in Python development, including a description of installing the interpreter in various operating systems and development environments. Also included in the course is a description of the concept of dynamic typing, features of the use of arithmetic and logical operations. Separate sections of the lesson are devoted to ways of formatting strings, following, branching and loops. At the end there is a list of the main developer errors and ways to solve them.
Lesson 2. Built-in types and operations with them
This lesson describes the key built-in data types implemented in Python. The developer can perform operations on traditional data types such as strings, numbers, and booleans. Lists, sets, tuples, and dictionaries are considered. Also, as part of the lesson, we will become familiar with the concepts of the ternary operator and the is operator. We will definitely touch on some operations performed with data of basic types, and learn about tricks that a developer can use to increase the brevity of the code.
Lesson 3. Functions
It's time to get acquainted with the mechanism for grouping lines of code into blocks - functions. They provide the ability to reuse these blocks of code anywhere in the program. Functions can be named or anonymous, take parameters and return a result. An important concept in this lesson is the scope of variables. Functions can be documented to describe their purpose, the parameters they accept, and the result they return. Finally, functions can be built-in or custom (custom-written).
Lesson 4. Useful tools
The lesson is dedicated to tools that will make your code more concise and simplify the solution of many standard problems. The lesson also describes the capabilities of a number of additional modules used when writing algorithms. The features of the mechanism for launching scripts with parameters and gaining access to parameters from the program code are given. The use of the presented tools refers to a more advanced programming style and increases the status of the developer.
Lesson 5. Working with files
The current lesson discusses aspects of working with files to extract data and record the results of the program. Mechanisms for reading and writing data and modes of working with files are considered. Such an important concept as a context manager is considered, and common errors when working with files are described. The features of determining the position of the pointer in a file, possible parameters of file objects, and features of the implementation of printing to a file are given.
Lesson 6. Object-oriented programming
It's time to get acquainted with the most important programming paradigm - object-oriented programming, which plays an important role in Python and allows you to form the program structure from separate components. Important concepts of the paradigm are class, constructor, attribute, method, class instance. Also included in the lesson are the most important properties of OOP: encapsulation, inheritance and polymorphism. A description of the mechanisms for overloading and overriding methods is given.
Lesson 7. OOP. Advanced level
In this lesson, we will analyze the features of implementing operator overloading, i.e., changing the mechanism of operation of language operators using special methods. Also, as part of the current assignment, we will become familiar with the concept of method overriding, i.e., we will learn to modify the logic of methods of base classes. We'll introduce the concept of an interface and learn how to create our own iterator objects. At the end of the lesson, we will learn what the @property decorator is used for and the most important features of implementing the OOP paradigm in Python.
Lesson 8. OOP. Useful additions
The eighth lesson of the course covers important additions that extend the capabilities of the OOP paradigm in Python, such as static methods and class methods. In addition, we will talk about built-in attributes and methods inherent in classes. In this lesson, we will also look at the step-by-step process of writing a simple program based on the OOP paradigm and learn how to create our own exceptions. To wrap up this tutorial, we'll talk about some tricks to make your code more concise and explore a number of useful libraries.
Fundamentals of relational databases. MySQL. 1.5 months.
Get familiar with the SQL query language. Learn to write queries, do calculations and work with tables. Learn the main limitations of SQL. You will work with MySQL and get acquainted with alternative databases: MongoDB, Redis, ElasticSearch and ClickHouse.
Lesson 1. Webinar. Setting up the environment. DDL commands
Types of databases. Fundamentals of relational databases. MySQL DBMS. Clients. Database management.
Lesson 2. Video tutorial. Database management. SQL Query Language
Introduction to SQL. Data types. Indexes. CRUD operations
Lesson 3. Webinar. Introduction to Database Design
Database design.
Lesson 4. Webinar. CRUD operations
CRUD operations.
Lesson 5. Video tutorial. Operators, filtering, sorting and limiting. Data Aggregation
Grouping data. Aggregation functions. GROUP BY, HAVING and WITH constructs. Operators. Conditional and limited sampling. Predefined functions.
Lesson 6. Webinar. Operators, filtering, sorting and limiting. Data Aggregation
Grouping data. Aggregation functions. GROUP BY, HAVING and WITH constructs. Operators. Conditional and limited sampling. Predefined functions.
Lesson 7. Video tutorial. Complex queries
Multi-table queries. UNION. Nested queries. JOIN joins. Foreign keys.
Lesson 8. Webinar. Complex queries
Multi-table queries. UNION. Nested queries. JOIN joins. Foreign keys.
Lesson 9. Video tutorial. Transactions, variables, views. Administration. Stored procedures and functions, triggers
Transactions. Variables. Temporary tables. Prepared expressions. Representation. Administration. User rights. Replication Stored procedures and functions. Parameters and variables. Branch operators and loops. Triggers.
Lesson 10. Webinar. Transactions, variables, views. Administration. Stored procedures and functions, triggers
Transactions. Variables. Temporary tables. Prepared expressions. Representation. Administration. User rights. Replication Stored procedures and functions. Parameters and variables. Branch operators and loops. Triggers.
Lesson 11. Video tutorial. Query optimization. NoSQL
Types of tables. Query optimization. Indexes. NoSQL databases. Document-oriented DBMS. Columnar DBMS. DBMS key-value. DBMS Full-text search.
Lesson 12. Webinar. Query optimization
Types of tables. Query optimization. Indexes. NoSQL databases. Document-oriented DBMS. Columnar DBMS. DBMS key-value. DBMS Full-text search.
Algorithms and data structures in Python. Basic course. 1 month.
Efficient solutions to computing problems
Students will deepen their programming base in Python and improve their algorithmic thinking. The course teaches you to understand fundamental algorithms and use them to solve practical problems. Introduces data analysis methods in Python and all necessary libraries.
Lesson 1. Introduction to algorithmization and implementation of simple algorithms in Python
Introduction to algorithmization. Solving practical problems.
Lesson 2. Cycles. Recursion. Functions.
Cycles – repeated repetition of the same type of actions. Recursive search. Euclid's algorithm. The Sieve of Eratosthenes is an algorithm for determining prime numbers. Using functions.
Lesson 3. Arrays. Tuples. Multitudes. Lists.
Concept of array, tuple, set and lists. Processing of sequences, one-dimensional and two-dimensional arrays. Working with associative arrays (data tables). Binary search for an element in an array.
Lesson 4. Empirical evaluation of algorithms in Python
Running time measurements using timeit. Profiler.
Lesson 5. Collections. List. Queue. Dictionary.
Collection concept. Basic types of collection. Standard methods for working with collections. Examples of using collections to solve practical problems.
Lesson 6. Working with dynamic memory
Representation of collections in memory. Memory management.
Lesson 7. Sorting algorithms
Bubble sort. Quick sort. Shell sort. Sorting complex structures using a key. Reverse sorting. Sorting using the attrgetter function.
Lesson 8. Trees. Hash function
Binary search trees. Walking through a tree. Hash function.
HTML/CSS. Interactive course. 1 month.
HTML/CSS is a hypertext markup language, the basis for studying server-side languages. By learning HTML, you can create a responsive web page or website. CSS - cascading style sheets - will allow you to design your website the way you want. You will be able to watch the video course at a convenient time and if you have any questions, contact a mentor who will monitor your progress. The format encourages communication and self-discipline in learning. In a month you will learn: * layout of responsive websites, * valid cross-browser layout, * flexbox layout, * performing basic operations in Figma, * using SASS and Bootstrap preprocessors. Your homework must be graded before you can move on to the next lesson in the course. This will show that you understood the previous lesson and will easily learn new knowledge. The task can be checked by both the mentor and classmates whose knowledge you trust, and receive an achievement for it. With each check, the number of achievements grows, and the skill of working with other people's code increases. The level of the final certificate depends on the number of achievements: the more there are, the higher the status. This somewhat game mechanic makes classes even more interesting.
Lesson 1. Basic concepts in web development
Introduction, introductory information, setting up visual studio code, hotkeys, installing extensions. Creating an html document Structure of an html document. Types and attributes of tags Browser debugger
Lesson 2. HTML Document Markup Language Basics
Lists in html Special characters and comments Hyperlinks (local, absolute, anchors) Types of images for the web; Forms and their elements. View, edit, search for errors through the browser debugger
Lesson 3. Basics of the CSS document styling language
Introduction to styles Methods for connecting styles Selectors Basic properties of styles (px, %, background, color, border) part 1 Basic style properties (width, height, font, list-style, text) Nesting, inheritance and grouping properties
Lesson 4. Basic tags for layout, Pseudo-classes and pseudo-elements
Basic tags div, span, creating a block structure Element indents Flow elements Pseudo-classes Pseudo-elements Tables
Lesson 5. Positioning basics, working with Flexbox
Display property What is flexbox (horizontal and vertical layout) Display order, multi-line, offset of a separate block Setting flexible sizes for blocks Position: relative and absolute
Lesson 6. Working with a design mockup in Figma format
What is a layout and what types of layouts are there? Getting to know the Figma program, cutting the layout Determining the sizes of blocks, creating a block structure Adding styles from the layout Creating a website based on the layout. Part 1 Creating a website based on the layout. Part 2
Lesson 7. Basics of creating a responsive website
Flexible block sizes, responsive website Mobile device emulation Media queries Footer squeezing to the bottom of the screen Practice of creating a responsive website Practice of creating a responsive website part 2
Lesson 8. Web standards and supporting tools
Developer Tools. Part 1 Uploading projects to the server Cross-browser Introducing Boostrap Introducing the Sass preprocessor Practical use of the Sass preprocessor
Basic JavaScript course. 1 month.
Interactive web applications at ECMASCRIPT 2016
Students learn the basics of JavaScript, which makes web pages interactive. Learn to create dynamic pages and applications using HTML coding experience. Practice JavaScript programming skills by developing mini-games.
Lesson 1. JavaScript Language Basics
Syntax; code structure; external scripts and the order of their execution; variables and data types; Hello world; modern standards.
Lesson 2. Basic JavaScript Operators
Operators and operands; priority of operations; conditional statements; functions; recursion; workshop; game "Guess the number".
Lesson 3. Loops, arrays, data structures
Loops in JavaScript; arrays in JavaScript; data structures; workshop; game "Bulls and Cows".
Lesson 4. Objects in JavaScript
Introduction to the concept of objects; objects in JavaScript; working with objects; enumeration of values; workshop; game "Quest".
Lesson 5. Introduction to DOM
Concept of DOM; DOM in JavaScript; DOM manipulation in JavaScript; workshop; game "Quest 2.0".
Lesson 6. Handling Events in JavaScript
The concept of an event; click processing; browser events; workshop; game "Tic Tac Toe".
Lesson 7. Workshop lesson
Implementation of the game "Snake".
Lesson 8. Anonymous functions, closures
In-depth study of how functions work; functions and functional expressions; anonymous functions; short circuits; default browser actions.
Django Framework Basics. 1 month.
Website creation
During the course, students will learn how to create a website in Python using the Django framework. During practical development, novice programmers will learn to use the capabilities of Django, which speeds up writing code and allows you to quickly and efficiently translate an idea into a working IT project. At the end of the course, students will learn to create secure websites, implement the MVC design pattern, implement user authorization and registration, admin panel and asynchronous content updating. They will create a personal project and portfolio.
Lesson 1. Getting to know the framework
Why do you need Django? Strengths of the framework. Installation and configuration. General information about the project structure. Introduction to urlpatterns. The first page and its display.
Lesson 2. Template + Context = html
Django template engine (tags, filters and inheritance). Working with static content and links on pages. Sending content to templates and loading it into controllers from external sources.
Lesson 3. Models + ORM = data
Brief theory of databases. Introduction to Django-ORM. Connecting and creating a database. A few words about migrations. Working with data. Built-in admin. Namespaces.
Lesson 4. User authentication and registration
Loading data into the database from files. User model. Authentication procedure. Forms in Django. CRUD mechanism when working with models.
Lesson 5. User + product = cart
Executing queries using ORM. Working with the menu. Creating a cart.
Lesson 6. Cart + AJAX + decorators
Working with the basket. Adding dynamics to the “hot offer”. Creating a product page. Restricting access to the cart. AJAX: Making asynchronous requests.
Lesson 7. Own admin panel
Integration of a new application into the project. Restricting access to the admin panel. Implementation of the CRUD mechanism for users and product categories.
Lesson 8. Useful: page output, template filters, CBV
Implementation of the CRUD mechanism for products. page-by-page display of objects. CBV: ready-made controllers. Template filters.
Django Framework. Optimization tools. 1 month.
Website development in Python
Continuing to study Django, students will develop a personal project: create a context processor, add confirmation of user registration by email. They will continue to get acquainted with the Django ORM mechanism, solving problems of data aggregation, complex queries, caching, and optimizing work with the database. They will learn to use form sets (fromsets) to simultaneously create several instances of one model, for example, adding several entries to a category on a page in the admin panel. We will look at the mechanism for linking static files (CSS, JS) to forms in Django. After development is completed, any project must be tested and deployed on a production web server - these issues will be studied in the course.
Lesson 1. Sending email. Context processors
Let's move to Django 2.0. We send a message with the user activation code. We work with context processors using the example of a shopping cart.
Lesson 2. Registration through a social network. Django-ORM: one-to-one communication
Register in the store via VKontakte. We create a user profile and fill it with data from the social network.
Lesson 3. Working with user order: CBV, Django formsets
We create the ordersapp application. Working with Django formsets using CBV.
Lesson 4. Working with a user's order: updating product balances, adding jQuery code
We adjust the quantity of goods when working with the cart and order. We update order statistics when editing it. Working with a form set using jQuery and django-dynamic-formset.
Lesson 5. Deploying a Django project on VPS from REG.RU
We are preparing the project for deployment. Let's switch to the PostgreSQL database. We simulate working with VPS - install and configure the Ubuntu Server 17 server. Let's implement the “nginx” + “gunicorn” combination.
Lesson 6. Profiling and load testing of the project, optimization of work with the database
Let's look at the work of the project from the inside. Finding slow controllers. We carry out load testing. We optimize work with the database.
Lesson 7. Even faster: caching in Django
Decorator “@cached_property”: cache model methods. “With” tag – we cache variables in templates. We cache functions, template fragments and controllers using “Memcached”.
Lesson 8. Advanced work with Django-ORM. Testing in Django
Working with model attributes at the database level. Objects "F" and "Q". Implement complex logic using “Case” and “When”. The TestCase class is the basis of tests in Django. Smoke testing. Testing the authentication application. Controller test.
Client-server applications in Python. 1 month.
The course will help you master the advanced capabilities of the Python language - a powerful tool for creating programs of various profiles. The development of an application that provides information management from design to testing is considered step by step. Students will practice writing a multi-threaded program by developing their own messenger.
Lesson 1. Information Storage Concepts
Features of storing symbols in computer memory. Disadvantages of ASCII encoding. Introduction to Unicode. Unicode in Python 3. Converting bytes and strings - concept and examples. Conversion errors.
Lesson 2. File data storage
Introduction to file-based data storage. Use CSV files when saving data. JSON files as a means of data exchange. Working with YAML files when processing and saving data.
Lesson 3. Network Programming Basics
Introduction to networking and its protocols. Sockets as the basis for network applications. Exchange protocols in the course project.
Lesson 4. Testing Basics
Introduction to testing. assert statement. Unit testing and unittest module.
Lesson 5. Logging
Event logging and the logging module.
Lesson 6. Decorators and continuing to work with the network
Decorator. Decorator with parameter. Network programming (continued).
Lesson 7. Select module, slots
Features of using the select module. Slots, their purpose and application.
Lesson 8. Streams
Introduction to threads. Introduction to multithreaded programming. Threading module Synchronization primitives. Queue module. Multiprocessing module.
Internship at GeekBrains. 2 months.
In webinar format
During the internship, students will have to work remotely on an Open Source project or startup. Students will be asked to choose from a set of projects available for development. Students will learn to work in a team, communicate with other developers, product and project managers, designers, will study flexible methodologies, the SCRUM framework, and master the principles remote work. The result of the internship is the ability to work in a team, the addition of a portfolio, and the opportunity to indicate work on a project as core work experience in your resume. The internship takes place in the format of part-time remote work, weekly status meetings with the teacher in webinar format.
Lesson 1. Getting to know each other, choosing a project
What roles are there in development? Product Manager, Project Manager, developer, designer. What is MVP. Architecture of modern service. How developers interact with each other. REST API, Web Socket. Backend, Frontend, mobile applications. Microservice architecture. Basics of remote work. Sign up for teams.
Lesson 2. Development methodologies
Review of methodologies. Cascade (waterfall), Agile manifesto, Kanban, Scrum. Where and for what they are used. Mixed methodologies.
Lesson 3. SCRUM methodology
Work using SCRUM. Sprint planning. Backlog grooming. Sprint goal. Increment. Flexible methodology in remote working conditions. Task trackers (Trello, Favro)/
Lesson 4. User Story Mapping
Types of tasks. Decomposition of tasks. Mapping user stories. Working on user stories. Working with technical specifications using waterfall and flexible methodologies.
Lesson 5. Responsibility, motivation, personal growth
What and how to motivate yourself. What are the levels of motivation? How not to burn out at work. And how not to forget about work.
Lesson 6. Writing a resume
How to write a resume so that HR doesn’t reject it. How to interest an employer. How to demonstrate the skills acquired in your studies if you don’t yet have relevant work experience.
Lesson 7. Preliminary summing up, preparation for project defense
Analysis of student resumes. Preliminary summary. A little about startups, monetization, investors.
Lesson 8. Summing up, demonstrating the final project
Demonstration of a working prototype by students. Discussion of the results obtained. Feedback from the teacher. Parting words.