> For the complete documentation index, see [llms.txt](https://vladimirzubavlenko.gitbook.io/mephi-kaf42-web-dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vladimirzubavlenko.gitbook.io/mephi-kaf42-web-dev/master.md).

# Основы веб-программирования

### Привет, студент!

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

В 5 семестре мы научимся разрабатывать Single Page Applications с помощью экосистемы библиотеки ReactJS, а также REST API с помощью фреймворка express(nodejs).

В 6 семестре мы будем разрабатывать и фронт, и бэк на языке Typescript. Фронтенд на Angular, бэкэнд на NestJS.

В конце 5 семестра вас ждет зачет, а в конце 6 экзамен.

5 семестр состоит из 14 лекций и 14 лабораторных работ. По 7 на frontend и backend. На 8 и 16 занятиях у вас будет возможность досдать долги по лабораторным, а также будут проведены тестирования, проверяющие ваши знания.

6 семестр подразумевает цикл из 14 лекций и самостоятельную командную разработку курсового проекта по 2 человека. Один из вашей команды примерит на себя роль фронтендера, а второй - бэкендера. В случае сдачи проекта в срок(15 неделя), вы получаете оценку за экзамен автоматом.&#x20;

{% hint style="info" %}
В случае, если на 15 неделе вы не готовы защищать ваш проект, вам необходимо получить допуск к экзамену путем сдачи проекта на 16 неделе, а затем сдать теоретический экзамен по билетам с вопросами за оба семестра курса. В случае, если вы не успеваете защитить ваш проект на 16 неделе, допуск будет происходить на самом экзамене(/пересдаче/комиссии).
{% endhint %}

### В данном топике будут описаны лабораторные работы, а с курсом вы можете ознакомиться в соответствующих разделах данного gitbook:

1. ReactJS - <https://vladimirzubavlenko.gitbook.io/reactjs/>
2. NodeJS - <https://vladimirzubavlenko.gitbook.io/nodejs-express/>
3. Angular - <https://vladimirzubavlenko.gitbook.io/angular/>
4. NestJS - <https://vladimirzubavlenko.gitbook.io/nestjs-doc-ru/>

### О чем вы сможете указывать в своем резюме после успешного прохождения курса:

* Вёрстка: HTML5, CSS3
* Языки программирования: JavaSript, Typescript
* Библиотеки и фреймворки: Angular, React, NestJS, Express
* Концепции и использование ООП и ФП
* Паттерны проектирования, DI, принципы, SOLID
* СУБД: SQL и NoSQL - PostgreSQL, MongoDB
* Система контроля версий - Git
* Контейнеры - Docker
* Конфигурация веб-сервера Nginx
* Deploy
* Опыт работы с linux
* Реализованные проекты на Github
* Опыт: уверенный Junior или начальный Middle

### Рекомендуемая литература:

* С. Макконнелл "Совершенный код"
* Р. Мартин "Чистый код"
* А. Бэнкс, Е. Порселло "React и Redux. Функциональная разработка"
* Л. Атенсио "Функциональное программирование на Javascript"
* Р. Мартин "Чистая архитектура. Искусство разработки программного обеспечения"
