Faculty of development in C# - course 164,700 rub. from GeekBrains, training 12 months, Date: June 10, 2023.
Miscellaneous / / November 29, 2023
We've made it easier for you to learn a profession from scratch. Classes are held on Zoom: you can ask the teacher a question or exchange opinions with classmates at any time. You can review each lesson in the recording, even if you had to miss it.
Each quarter covers a set of skills required for successful employment. Upon completion of the course, you will be 100% ready to search for a job and pass interviews.
At the end of each quarter you will find practical tasks to reinforce the material. By completing tasks, you will implement 4 of your own projects, which you can add to your portfolio.
Main block - 3 months
Introduction to Programming
Become familiar with programming languages, understand the difference between language and programming, learn how to build flowcharts, and become familiar with data structures.
Mathematics and computer science
Repeat the school course in computer science, logic and mathematics.
Introduction to Version Control
Get acquainted with version control and principles of work in git and github, study the syntax of the Markdown language.
Introduction to the C# programming language
Introduction to the C# programming language: functions and arrays, recursion and two-dimensional arrays. Let's learn how not to write code.
Introduction to Databases
Get acquainted with the concept of “databases”, understand their types and basic approaches to working with data. You will learn methods for designing databases, as well as ways to modify their structure.
Career guidance
Let's study the wheel of competencies and Descartes' matrix. Let's get acquainted with the specializations and choose the further direction of development.
Specialization - 9 months
Introduction to the training track and directions: intro
Get acquainted with the format and track of training, understand the purpose of each course.
Python Basics
Get acquainted with the Python language, study data, functions and modules, and try to work with code.
Introduction to Web Technologies
Let's look at the basic concepts in web development. Let's get acquainted with the HTML document markup language, the basics of the CSS document styling language, the basics of JavaScript, the PHP and MySQL backend, as well as the JSON and XML data transfer formats.
Operating systems (Linux)
We will deal with a Linux-based server system, consider one of the most popular distributions, Ubuntu (built on Debian).
Linux server systems use a text interface, so graphical shells will not be used as basis, although the graphical interface can help in getting started with Linux (there is a Desktop version of the OS for this Ubuntu).
We will learn to understand the Linux file structure, work in the console, use basic commands, and work with a remote system via SSH.
We will separately consider the work of Linux as a platform for web applications; we will configure and launch a full-fledged stack of services for a website based on Nginx and PHP.
An important aspect of system administration is installing programs (packages) from repositories and automating actions (bash scripts) - we will cover all these topics in separate lessons.
In addition, security issues and the network subsystem of the Linux OS will be discussed.
Object-oriented programming
One of the main approaches to programming where objects come first. Used to simplify complex code. To do this, the program is divided into unique blocks called objects, the data within it is called properties, and the functions are called methods.
Algorithms and data structures
The course is aimed at gaining knowledge about data structures and algorithms that a novice programmer needs to start his career. Complexity of algorithms, O-notation.
Exceptions in programming and their handling
While the program is running, sometimes critical errors occur that lead to the program crashing. Most of these errors can be avoided if you teach the program to handle them correctly. So that the program knows what to do if some error occurs, exception handlers are used.
Unit tests
In addition to checking the user interface and the described user scenarios, it is very important to check the code to ensure that it works correctly in different situations. To solve this problem, unit tests are used - this is a program that checks the correct operation of a small part of the code. The presence of such tests allows developers to immediately check that the code works after making changes. true, which allows you to find critical errors in the code before direct testing, and only after that assign the task tester
Databases and SQL
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.
Containerization
During the course, you will learn the differences between microservice and traditional architecture, learn how to work with Docker and Docker Compose, and also create your own Dockerfile. Much of the course is devoted to Kubernetes, the most popular container orchestrator. After completing the course, the student will be able to deploy applications in Kubernetes, including using GitLab CI/CD.
Software architecture: SOLID principle, OOP design, clean architecture
After successfully completing this course, you will understand the universal principles of classical object-oriented design, master the SOLID approach, become familiar with the most commonly used software development patterns, master software design skills components. Learn the basic principles of designing “clean” architectures.
Version Control In-Depth (Git)
In this course we will study special Git commands, learn how to work with them in practice, learn how to use the Git version control system and work with a repository at an advanced level.
CI/CD organization
During the course, we will get acquainted with the basic concepts and tools of CI/CD and tools, consider the integration and interaction of CI/CD and Docker tools, and delve deeper into CI.
Programming Paradigms and Paradigm Languages
After successfully completing this course, you will begin to understand modern programming paradigms and understand how they are interconnected, you will be able to confidently talk about their advantages and disadvantages, you will gain a systematic understanding of the evolutionary development of approaches to software development. Thanks to all this, you will be able to make optimal decisions when choosing a paradigm depending on the task.
Career guidance by direction and languages
Let's look at the main areas - front-end, back-end and mobile development. Let's go through the main languages that are used in the directions. Let us guide you in choosing your further training track.
Technological specialization - 3 months
Backend development
Let's take a closer look at the backend direction, as well as the languages Python, Go, C#, C++
Advanced C#
Let's take a closer look at algorithms and data structures, as well as OOP for C#. Let's move forward in learning the language.
ASP.NET Core Web API microservices
This is exactly the block that gives an excellent start for Enterprise-level solutions.
First services, learning basic HTTP, controllers and how to work with databases from C#
ASP.NET Core Web Application
Use the knowledge you have gained and create a window file manager, as well as a simple database manager.
Project