Explorar o código

Merge branch 'master' of http://213.155.192.79:3001/ypv/ISRPO

ypv hai 1 semana
pai
achega
5589f70df8
Modificáronse 35 ficheiros con 570 adicións e 0 borrados
  1. BIN=BIN
      Лекции/DevOps/devops_title.jpg
  2. 53 0
      Лекции/DevOps/Савичев_DevOps.md
  3. 9 0
      Лекции/DevOps/Савичев_Вопросы.md
  4. BIN=BIN
      Лекции/DirectX/directx_logo.png
  5. 43 0
      Лекции/DirectX/Савичев_DirectX.md
  6. 9 0
      Лекции/DirectX/Савичев_Вопросы.md
  7. BIN=BIN
      Лекции/Git/Git_Мирчук/p1.png
  8. BIN=BIN
      Лекции/Git/Git_Мирчук/p2.png
  9. 14 0
      Лекции/Git/Git_Мирчук/Вопросы.md
  10. 49 0
      Лекции/Git/Git_Мирчук/Что_такое_Git.md
  11. BIN=BIN
      Лекции/Godot/godot_engine_title.png
  12. 45 0
      Лекции/Godot/Савичев_Godot.md
  13. 9 0
      Лекции/Godot/Савичев_Вопросы.md
  14. BIN=BIN
      Лекции/Java/Java_Мирчук/p1.png
  15. BIN=BIN
      Лекции/Java/Java_Мирчук/p2.png
  16. 14 0
      Лекции/Java/Java_Мирчук/Вопросы.md
  17. 58 0
      Лекции/Java/Java_Мирчук/Что_такое_Java.md
  18. BIN=BIN
      Лекции/SQL/SQL_Мирчук/p1.png
  19. BIN=BIN
      Лекции/SQL/SQL_Мирчук/p2.png
  20. 14 0
      Лекции/SQL/SQL_Мирчук/Вопросы.md
  21. 36 0
      Лекции/SQL/SQL_Мирчук/Что_такое_SQL.md
  22. BIN=BIN
      Лекции/SQL/sql_title.jpg
  23. 44 0
      Лекции/SQL/Савичев_SQL.md
  24. 9 0
      Лекции/SQL/Савичев_Вопросы.md
  25. BIN=BIN
      Лекции/UX_UI_дизайн/UX_UI_дизайн_Мирчук/p1.png
  26. BIN=BIN
      Лекции/UX_UI_дизайн/UX_UI_дизайн_Мирчук/p2.png
  27. 14 0
      Лекции/UX_UI_дизайн/UX_UI_дизайн_Мирчук/Вопросы.md
  28. 52 0
      Лекции/UX_UI_дизайн/UX_UI_дизайн_Мирчук/Что_такое_UX_UI_дизайн.md
  29. BIN=BIN
      Лекции/Unity/unity_title.png
  30. 44 0
      Лекции/Unity/Савичев_Unity.md
  31. 9 0
      Лекции/Unity/Савичев_Вопросы.md
  32. BIN=BIN
      Лекции/Ассемблер/Ассемблер_Мирчук/p1.png
  33. BIN=BIN
      Лекции/Ассемблер/Ассемблер_Мирчук/p2.png
  34. 14 0
      Лекции/Ассемблер/Ассемблер_Мирчук/Вопросы.md
  35. 31 0
      Лекции/Ассемблер/Ассемблер_Мирчук/Что_такое_язык_ассемблера.md

BIN=BIN
Лекции/DevOps/devops_title.jpg


+ 53 - 0
Лекции/DevOps/Савичев_DevOps.md

@@ -0,0 +1,53 @@
+# Методология DevOps
+
+![DevOps Title](devops_title.jpg)
+
+## 1. Что такое DevOps?
+**DevOps** (development + operations) — это культурная и профессиональная концепция, направленная на взаимодействие разработчиков (Dev) со специалистами по информационно-технологическому обслуживанию (Ops). Основная цель — сократить время разработки, повысить частоту выпусков ПО и обеспечить высокую надежность продукта.
+
+---
+
+## 2. Основные этапы (CI/CD)
+Процесс DevOps обычно представляется в виде бесконечной петли:
+1. **Планирование**
+2. **Создание**
+3. **Тестирование**
+4. **Релиз**
+5. **Развертывание**
+6. **Эксплуатация**
+7. **Мониторинг**
+
+---
+
+## 3. Преимущества и Недостатки
+
+### Преимущества
+* Быстрый выход продукта на рынок (Time-to-Market).
+* Автоматизация тестирования снижает количество ошибок.
+* Управление инфраструктурой как кодом (IaC).
+* Разрушение барьеров между отделами.
+
+### Недостатки / Трудности
+* Требует полной перестройки культуры компании.
+* Необходимость покупки платных инструментов и обучения персонала.
+* При быстрой доставке можно упустить уязвимости (решается внедрением DevSecOps).
+
+---
+
+## 4. Где используется и применяется
+* Для постоянного обновления функционала без остановки сервиса.
+* Для управления сотнями мелких компонентов.
+* Где важна скорость обновлений при строгом контроле качества.
+* Автоматизация обучения моделей и обработки данных.
+
+---
+
+## 5. Популярные инструменты
+| Категория | Инструменты |
+| :--- | :--- |
+| **CI/CD** | Jenkins, GitLab CI, GitHub Actions |
+| **Контейнеризация** | Docker, Kubernetes |
+| **Управление конфигурацией** | Ansible, Terraform |
+| **Мониторинг** | Prometheus, Grafana, ELK Stack |
+
+---

+ 9 - 0
Лекции/DevOps/Савичев_Вопросы.md

@@ -0,0 +1,9 @@
+1. Что является основной целью внедрения методологии DevOps в компании? Основная цель — сократить время разработки, повысить частоту выпусков программного обеспечения и обеспечить высокую надежность продукта за счет тесного взаимодействия разработчиков (Dev) и специалистов по эксплуатации (Ops).
+
+2. Какой концепцией решается проблема возможных уязвимостей безопасности при очень быстрой доставке кода? Эта проблема решается внедрением подхода DevSecOps, который интегрирует практики безопасности непосредственно в процесс DevOps.
+
+3. Что означает термин «IaC» в контексте преимуществ DevOps? IaC (Infrastructure as Code) — это управление инфраструктурой как кодом, что позволяет автоматизировать настройку и развертывание окружения, делая его воспроизводимым и масштабируемым.
+
+4. Какие основные категории инструментов используются в DevOps для автоматизации CI/CD? Для автоматизации CI/CD чаще всего используются такие инструменты, как Jenkins, GitLab CI и GitHub Actions.
+
+5. Почему внедрение DevOps часто называют сложным процессом для компаний? Это требует не только покупки инструментов, но и полной перестройки корпоративной культуры, а также обучения персонала работе по новым принципам взаимодействия.

BIN=BIN
Лекции/DirectX/directx_logo.png


+ 43 - 0
Лекции/DirectX/Савичев_DirectX.md

@@ -0,0 +1,43 @@
+# Технология Microsoft DirectX
+
+![DirectX Logo](directx_logo.png)
+
+## 1. Что такое DirectX?
+**DirectX** — это набор программных интерфейсов (API), разработанных корпорацией Microsoft для решения задач, связанных с программированием игровых и мультимедийных приложений. Он позволяет программам напрямую взаимодействовать с графическим и звуковым оборудованием, обеспечивая высокую производительность и совместимость.
+
+---
+
+## 2. История создания и эволюция
+Технология DirectX была представлена компанией Microsoft 30 сентября 1995 года как решение проблемы фрагментации игрового рынка. В то время разработчики игр предпочитали создавать проекты для MS-DOS, так как она предоставляла прямой и быстрый доступ к аппаратным ресурсам компьютера, в то время как операционная система Windows 95 была слишком закрытой и медленной для обработки сложной графики. Создание DirectX позволило разработчикам получить низкоуровневый доступ к «железу» напрямую через Windows, что в итоге сделало эту ОС основной платформой для компьютерных игр. 
+
+Первые версии API были довольно ограниченными, но с выходом DirectX 7.0 в 1999 году появилась аппаратная поддержка трансформаций и освещения, что стало огромным шагом вперед. Позже версия DirectX 9.0c, вышедшая в 2004 году, стала настоящей классикой индустрии, удерживая позиции стандарта на протяжении многих лет. Эволюция технологии продолжалась в сторону снижения нагрузки на центральный процессор: представленный в 2015 году DirectX 12 принес концепцию низкоуровневого управления ресурсами видеокарты, что позволило играм эффективнее использовать многоядерные процессоры. Сегодня актуальной версией является DirectX 12 Ultimate, который объединил передовые функции, такие как аппаратное ускорение трассировки лучей (Ray Tracing), затенение с переменной скоростью (Variable Rate Shading) и технологии меш-шейдеров, обеспечивая фотореалистичную графику в современных играх.
+
+---
+
+## 3. Ключевые компоненты
+* Основной компонент для отрисовки 3D-графики.
+* Обработка данных с игровых контроллеров, мышей и клавиатур.
+* Управление звуковыми эффектами и музыкальным сопровождением.
+* Интерфейсы для организации многопользовательского сетевого взаимодействия.
+
+---
+
+## 4. Преимущества и Недостатки
+
+### Преимущества:
+* Единый интерфейс для всех производителей видеокарт.
+* Прямой доступ к ресурсам графического процессора (GPU).
+* Поддержка передовых технологий, таких как DLSS и трассировка лучей.
+
+### Недостатки:
+* Поддержка только операционных систем Windows и игровых консолей Xbox.
+* Современные версии требуют от программистов высокого уровня навыков для правильной оптимизации кода.
+
+---
+
+## 5. Где применяется
+* Основа графических движков вроде Unreal Engine и Unity.
+* Обработка видео и аудио в профессиональном ПО.
+* Инженерные программы и симуляторы, требующие высокой детализации.
+
+---

+ 9 - 0
Лекции/DirectX/Савичев_Вопросы.md

@@ -0,0 +1,9 @@
+1. Почему изначально разработчики игр предпочитали MS-DOS вместо Windows? MS-DOS предоставляла прямой и быстрый доступ к аппаратному обеспечению компьютера, в то время как ранняя Windows была закрытой и неэффективной для работы с графикой.
+
+2. Какую главную задачу решила компания Microsoft при создании DirectX? Microsoft хотела сделать Windows привлекательной платформой для игровых разработчиков, предоставив им API для прямого доступа к ресурсам видеокарт и звуковых карт.
+
+3. Какая версия DirectX считается «легендарным стандартом», удерживавшим лидерство долгие годы? Версия DirectX 9.0c, выпущенная в 2004 году, стала классическим стандартом индустрии на очень длительный период.
+
+4. Что принципиально нового предложил разработчикам DirectX 12? Он предложил низкоуровневый доступ к ресурсам графического процессора, что позволило значительно эффективнее распределять вычислительную нагрузку между ядрами процессора.
+
+5. Какие современные графические технологии поддерживает актуальная версия DirectX 12 Ultimate? Она поддерживает аппаратное ускорение трассировки лучей, затенение с переменной скоростью и технологии меш-шейдеров для высокой детализации графики.

BIN=BIN
Лекции/Git/Git_Мирчук/p1.png


BIN=BIN
Лекции/Git/Git_Мирчук/p2.png


+ 14 - 0
Лекции/Git/Git_Мирчук/Вопросы.md

@@ -0,0 +1,14 @@
+**1. Что такое Git?**
+Ответ: Git — это распределённая система контроля версий для управления изменениями в коде.
+
+**2. Кто создал Git и в каком году?**
+Ответ: Линус Торвальдс в 2005 году.
+
+**3. Что такое репозиторий в Git?**
+Ответ: Репозиторий — это хранилище проекта со всей историей изменений файлов.
+
+**4. Что такое коммит?**
+Ответ: Коммит — это сохранённое состояние проекта в определённый момент времени.
+
+**5. Какое главное преимущество распределённой системы Git?**
+Ответ: Каждый разработчик имеет полную копию репозитория и может работать автономно.

+ 49 - 0
Лекции/Git/Git_Мирчук/Что_такое_Git.md

@@ -0,0 +1,49 @@
+# Что такое Git
+**Git** — распределенная система контроля версий, созданная Линусом Торвальдсом в 2005 году для разработки ядра Linux. За прошедшие годы Git эволюционировал из узкоспециализированного инструмента в универсальный стандарт управления кодом практически для любого проекта — от простых личных экспериментов до крупнейших корпоративных систем.
+
+В отличие от централизованных систем, таких как SVN, Git хранит полную копию репозитория на компьютере каждого разработчика. Это обеспечивает автономность работы и значительно ускоряет большинство операций, поскольку они выполняются локально.
+
+## В основе Git лежит несколько ключевых концепций:
+
+- **Репозиторий** — хранилище кода проекта со всей его историей изменений
+- **Коммит** — снимок состояния проекта в определенный момент времени
+- **Ветка** — независимая линия разработки, позволяющая изолировать изменения
+- **Индекс** — промежуточная область для подготовки коммита
+- **HEAD** — указатель на текущий коммит, с которым вы работаете
+
+Git отслеживает изменения на уровне содержимого файлов, а не только имен, что позволяет эффективно обрабатывать переименования и перемещения. Система использует хеширование SHA-1 для идентификации каждого объекта, обеспечивая целостность данных и защиту от случайных изменений.
+
+![p1.png](p1.png)
+
+## Распределенная разработка: преимущества Git для команд 
+
+Распределенная природа Git кардинально меняет подход к совместной работе над кодом. В отличие от централизованных систем, где существует единая точка истины, Git предоставляет каждому разработчику полную копию репозитория. Этот фундаментальный принцип открывает множество возможностей для командной работы.
+
+### Ключевые преимущества Git для команд разработчиков:
+- **Параллельная работа** — каждый разработчик работает в собственной копии репозитория, не блокируя файлы для других
+- **Автономность** — возможность работать без постоянного соединения с сервером
+- **Резервирование** — каждая локальная копия служит резервной копией всего репозитория
+- **Гибкие рабочие процессы** — поддержка различных моделей разработки: централизованной, интеграционной, диктаторской
+- **Масштабируемость** — одинаково эффективен для команд из 2 и 2000 человек
+
+В крупных проектах Git позволяет организовать иерархические структуры интеграции кода. Разработчики могут обмениваться изменениями напрямую между собой, формируя подгруппы по функциональным областям, а затем интегрировать эти изменения в общий репозиторий. 
+
+![p2.png](p2.png)
+
+### Для эффективной командной работы с Git важно установить четкие процессы и правила:
+
+- **Соглашения об именовании веток** — например, feature/user-authentication, bugfix/login-error
+- **Стандарты сообщений коммитов** — структурированные сообщения по типу: fix: resolve user authentication timeout
+- **Процесс проверки кода** — обязательные ревью через pull/merge requests перед слиянием
+- **Политика защиты веток** — ограничение прямых коммитов в основные ветки
+- **Автоматизация** — интеграция с CI/CD, автоматические тесты, линтеры
+
+### Современные платформы для хостинга Git-репозиториев, такие как GitHub, GitLab и Bitbucket, предоставляют дополнительные инструменты для командной работы:
+
+- **Pull/Merge Requests** — формализованный процесс проверки и интеграции изменений
+- **Code Review** — инструменты для комментирования кода и обсуждения изменений
+- **Issue Tracking** — отслеживание задач и ошибок, интегрированное с репозиторием
+- **Webhooks и API** — возможность интеграции с внешними сервисами и автоматизации процессов
+- **Wiki и документация** — хранение документации проекта рядом с кодом
+
+Распределенная природа Git также обеспечивает отказоустойчивость процесса разработки. Даже при полном отказе центрального сервера команда может продолжать работу и обмениваться изменениями напрямую, что особенно ценно для географически распределенных команд и в условиях нестабильного соединения. 

BIN=BIN
Лекции/Godot/godot_engine_title.png


+ 45 - 0
Лекции/Godot/Савичев_Godot.md

@@ -0,0 +1,45 @@
+# Игровой движок Godot Engine
+
+![Godot Engine Title](godot_engine_title.png)
+
+## 1. Что такое Godot Engine?
+**Godot Engine** — это бесплатный игровой движок с открытым исходным кодом, который позволяет разработчикам создавать 2D- и 3D-игры для различных платформ. Он предоставляет полный набор инструментов, включая графический редактор, физический движок, систему анимации и собственный скриптовый язык GDScript (похожий на Python). Отличительной особенностью Godot является его система сцен и нодов, которая делает разработку гибкой и интуитивно понятной.
+
+---
+
+## 2. История создания и философия
+Разработка Godot началась аргентинскими разработчиками Хуаном Линецким и Ариэлем Мансуром в 2007 году как внутренний движок для их игровой студии. Он был выпущен в открытый доступ под лицензией MIT в 2014 году, что стало поворотным моментом. Философия Godot заключается в предоставлении разработчикам полной свободы и контроля. Будучи открытым исходным кодом, он не имеет скрытых платежей, подписок или роялти, что делает его крайне привлекательным для инди-разработчиков и студий, работающих с ограниченным бюджетом. Сообщество играет огромную роль в развитии движка, постоянно внося вклад в его улучшение и расширение функционала.
+
+---
+
+## 3. Основные особенности:
+* Гибкая иерархическая структура, где каждый элемент игры (персонаж, уровень, интерфейс) является сценой, состоящей из нодов (узлов).
+* Легкий в освоении, динамически типизированный скриптовый язык, оптимизированный для Godot. Также поддерживаются C#, C++, VisualScript и другие.
+* Экспорт игр для Windows, macOS, Linux, Android, iOS, Web (HTML5) и игровых консолей (через сторонние порты).
+* Отличная поддержка 2D-графики с уникальными инструментами, а также мощный 3D-рендерер.
+* Мощный, интуитивно понятный редактор с возможностью расширения функционала плагинами.
+
+---
+
+## 4. Преимущества и Недостатки
+
+### Преимущества
+* Отсутствие роялти и полная свобода использования.
+* Компактный размер движка и низкие системные требования.
+* Система сцен и нодов позволяет быстро прототипировать и масштабировать проекты.
+* Большая база знаний, туториалов и постоянная поддержка.
+
+### Недостатки
+* Хотя и развиваются, пока уступают Unity/Unreal в некоторых аспектах высокобюджетной 3D-графики.
+* Экосистема магазина ассетов уступает конкурентам.
+* Качество документации может варьироваться, хотя активно улучшается.
+
+---
+
+## 5. Где применяется
+* Самая популярная ниша благодаря бесплатности и гибкости.
+* Идеален для обучения геймдеву из-за простоты освоения.
+* Разработка игр без больших затрат на лицензии.
+* Быстрое создание концептов и демонстраций.
+
+---

+ 9 - 0
Лекции/Godot/Савичев_Вопросы.md

@@ -0,0 +1,9 @@
+1. Что является ключевой особенностью Godot Engine в сравнении с другими движками? Godot Engine является бесплатным игровым движком с открытым исходным кодом, что означает отсутствие роялти и полную свободу использования.
+
+2. Когда и кем был выпущен Godot Engine в открытый доступ? Он был выпущен в открытый доступ под лицензией MIT в 2014 году аргентинскими разработчиками Хуаном Линецким и Ариэлем Мансуром.
+
+3. На каком скриптовом языке чаще всего пишут код в Godot Engine? Чаще всего используется GDScript, который похож на Python.
+
+4. Какие платформы поддерживает Godot Engine для экспорта игр? Godot позволяет экспортировать игры для Windows, macOS, Linux, Android, iOS, Web (HTML5) и консолей (через сторонние порты).
+
+5. В чем главное преимущество системы «сцен и нодов» в Godot? Гибкая иерархическая структура сцен и нодов делает разработку интуитивной, позволяет быстро прототипировать и масштабировать игровые проекты.

BIN=BIN
Лекции/Java/Java_Мирчук/p1.png


BIN=BIN
Лекции/Java/Java_Мирчук/p2.png


+ 14 - 0
Лекции/Java/Java_Мирчук/Вопросы.md

@@ -0,0 +1,14 @@
+**1. Кто создал язык программирования Java и в каком году?**
+Ответ: Джеймс Гослинг и команда Sun Microsystems в 1995 году.
+
+**2. Что означает кроссплатформенность Java?**
+Ответ: Программы на Java могут работать на разных операционных системах благодаря Java Virtual Machine (JVM).
+
+**3. Что такое многопоточность в Java?**
+Ответ: Возможность выполнять несколько задач одновременно в одной программе.
+
+**4. Что такое сборка мусора?**
+Ответ: Это автоматическое освобождение памяти от неиспользуемых объектов.
+
+**5. Назовите одно преимущество и один недостаток Java.**
+Ответ: Преимущество — кроссплатформенность. Недостаток — более медленная работа по сравнению с C и C++.

+ 58 - 0
Лекции/Java/Java_Мирчук/Что_такое_Java.md

@@ -0,0 +1,58 @@
+# Что такое Java
+**Java** — это объектно-ориентированный язык программирования, который был создан в 1995 году Джеймсом Гослингом и его командой Sun Microsystems и успешно использовался для внедрения новых технологий и разработки уникальных приложений.
+
+Благодаря своей универсальности и кроссплатформенности Java стал одним из самых гибких и мощных языков программирования и до сих пор считается неотъемлемой частью большинства IT-проектов.
+
+![p1.png](p1.png)
+
+## Особенности языка программирования Java
+
+**1. Объектно-ориентированность**
+Java — это объектно-ориентированный язык программирования. То есть каждый компонент программы — «объект» — содержит в себе все необходимые данные, а также методы для их обработки. Благодаря этому появляется возможность легко использовать один и тот же код в разном программном обеспечении.
+
+**2. Кроссплатформенность**
+Работать приложение, созданное на Java, может на любой аппаратной платформе, которая поддерживает запуск Java Virtual Machine — Windows, Android, Linux. Причем это позволяет использовать приложение на разных платформах, даже не меняя его код. Именно кроссплатформенность стала одной из особенностей, благодаря которым начался резкий рост популярности Java.
+
+**3. Многопоточность**
+Это означает, что в рамках одного приложения на Java есть возможность работать сразу с несколькими задачами. Таким образом на Java можно создавать высоконагруженные, многозадачные программы, которые будут полезны, например, для использования на веб-серверах. Также подобные программы хороши для баз данных с большими объемами информации.
+
+**4. Сильная типизация**
+Хорошо проработанная типизация дает возможность избежать многих ошибок в коде на этапе компиляции. На Java каждая переменная должна иметь строго определенный тип данных. Поэтому любые операции над переменными проверяются на соответствие типов. В других языках по большей части подобных систем проверки нет.
+
+**5. Управление памятью через механизм сборки мусора**
+Такая функция позволяет управлять выделением памяти для различных задач в автоматическом режиме, то есть программистам не нужно прописывать это вручную. Хорошо реализованный механизм сборки мусора позволяет искать неиспользуемые объекты и освобождать память, выделенную под них.
+
+**6. Объемная библиотека классов**
+У Java обширная библиотека классов, в которой можно найти уже готовые решения для разных типов задач, как для простых — типа работы с файлами, так и для сложных — например, для работы с графическим интерфейсом. Такая библиотека позволяет разрабатывать приложения быстрее.
+
+## Плюсы и минусы Java
+### Плюсы
+- Хороший уровень безопасности благодаря продвинутым механизмам;
+- Простой для освоения синтаксис;
+- Кроссплатформенность и универсальность;
+- Большое сообщество и развитая экосистема;
+- Внушительная библиотека классов, облегчающая работу;
+- Многопоточность и параллельная разработка;
+- Java — объектно-ориентированный язык;
+- Хорошо организованный код, который легко поддерживать.
+### Минусы
+- Низкая скорость работы по сравнению с С и С++;
+- Повышенное потребление памяти из-за выполнения кода в виртуальной машине;
+- Не поддерживается низкоуровневое программирование;
+- Для работы с ООП нужно достаточно много опыта.
+
+## Легко ли Java-разработчикам найти работу и сколько они получают
+
+**Java-разработчик** — это хорошая профессия для старта в IT. Если изучить все тонкости программирования на Java, то с изучением других языков никаких проблем не будет, особенно если у них сходный синтаксис. И все же начинающим разработчикам найти первую работу не очень просто — сказывается достаточно высокий уровень конкуренции.
+
+Нужно регулярно рассылать свои резюме в как можно большее количество компаний и откликаться на множество вакансий: рано или поздно вы найдете работодателей, которых устроят ваши знания и опыт.
+
+Что касается заработной платы, то здесь ситуация неоднозначная. По данным HH.ru в Москве начинающий Java-разработчик может рассчитывать на зарплату в пределах от 70000 ₽ до 80000 ₽ в месяц до вычета налогов. У специалистов с опытом средняя заработная плата находится на отметке в 250000 ₽ в месяц.
+
+![p2.png](p2.png)
+
+## Подходит ли Java для начинающих
+
+В целом изучать Java проще, чем многие другие языки программирования. Обучение в первую очередь предполагает изучение синтаксиса и принципов, по которым строится код. Большая библиотека шаблонов даст возможность оптимизировать и ускорить дальнейшую работу на Java.
+
+Если вы уже работаете с каким-либо языком программирования, то освоить принципы Java у вас получится довольно легко. Для обучения подойдут даже курсы переквалификации. Также некоторые курсы позволяют изучить Java в качестве дополнительного языка программирования.

BIN=BIN
Лекции/SQL/SQL_Мирчук/p1.png


BIN=BIN
Лекции/SQL/SQL_Мирчук/p2.png


+ 14 - 0
Лекции/SQL/SQL_Мирчук/Вопросы.md

@@ -0,0 +1,14 @@
+**1. Что такое SQL?**
+Ответ: SQL — это язык запросов для работы с реляционными базами данных.
+
+**2. Для чего используется SQL?**
+Ответ: Для создания, получения, изменения и удаления данных в базе данных.
+
+**3. С какими базами данных работает SQL?**
+Ответ: С реляционными базами данных.
+
+**4. Как в базе данных называют столбец и строку?**
+Ответ: Столбец — атрибут, строка — запись или кортеж.
+
+**5. Какие специалисты используют SQL кроме программистов?**
+Ответ: Аналитики данных, маркетологи, тестировщики и менеджеры.

+ 36 - 0
Лекции/SQL/SQL_Мирчук/Что_такое_SQL.md

@@ -0,0 +1,36 @@
+# Что такое SQL
+**SQL** (Structured Query Language, или язык структурированных запросов) — это декларативный язык программирования (язык запросов), который используют для создания, обработки и хранения данных в реляционных БД.
+
+На чистом SQL нельзя написать программу — он предназначен только для взаимодействия с базами данных: получения, добавления, изменения и удаления информации в них, управления доступом и так далее.
+
+## В каких базах данных используют SQL
+
+Все БД можно поделить на два вида: *реляционные* и *нереляционные*. SQL работает с реляционными БД. Про реляционные БД часто говорят, что это набор двумерных таблиц. Прямо как в Excel: со столбцами, строками и ячейками. Это понятная визуализация, хотя и не совсем точная.
+
+Представим, что мы создаём базу данных для небольшой строительной фирмы. Она проектирует загородные дома и передаёт проекты подрядчикам, которые занимаются самим строительством:
+
+![p1.png](p1.png)
+
+### Чем же база данных отличается от таблицы? Тем, что в базе:
+
+- У столбцов и строк нет определённого положения. Нельзя сказать, что столбец status находится до или после столбца num_floors, а имя Анастасии Романиной — до или после имени Дмитрия Пожарова.
+- Каждый столбец диктует свой домен, то есть тип данных, к которому могут относиться его значения. Например, в столбцах cost и num_floors могут храниться только числа, а в столбце client — только строки.
+- Каждая строка должна быть уникальной и не может повторять какую-то другую строку.
+
+Из-за этих отличий применительно к базам данных используют другую терминологию. Столбец называется атрибутом, строка — записью или кортежем, а сама БД — их отношением друг к другу.
+
+## Где применяют SQL
+
+Без баз данных не будет ни сайтов, ни сетевых приложений, ни крупных информационных систем — нужно же где-то хранить всю информацию. При этом реляционных БД — большинство, а чтобы управлять ими, нужен SQL. Поэтому мало какая вакансия бэкенд-разработчика обходится без требования владеть SQL. По крайней мере, мы такой не нашли.
+
+Но умение работать с базами данных пригодится не только программисту.
+
+**Аналитики данных** напрямую работают с «сырой» информацией. Чем лучше и свободнее они общаются с БД, тем проще им добывать и обрабатывать нужные данные в нужном виде.
+
+**Маркетологам** SQL тоже будет полезен для решения аналитических задач.
+
+**Тестировщикам** понадобится обращаться к БД, потому что это важный компонент любого информационного продукта.
+
+**Руководители, менеджеры и бизнес-консультанты** благодаря информации из БД смогут лучше понимать, как функционирует их бизнес, и принимать более взвешенные решения.
+
+![p2.png](p2.png)

BIN=BIN
Лекции/SQL/sql_title.jpg


+ 44 - 0
Лекции/SQL/Савичев_SQL.md

@@ -0,0 +1,44 @@
+# Язык структурированных запросов (SQL)
+
+![SQL Title](sql_title.jpg)
+
+## 1. Что такое SQL?
+**SQL** (Structured Query Language) — это международный стандартный язык, предназначенный для управления данными в реляционных базах данных. Он позволяет создавать базы данных, извлекать, обновлять, удалять информацию и управлять правами доступа пользователей. В отличие от языков программирования общего назначения, SQL ориентирован именно на работу с наборами данных.
+
+---
+
+## 2. История и развитие
+Язык SQL был разработан в начале 1970-х годов сотрудниками компании IBM Дональдом Чемберленом и Рэймондом Бойсом в рамках проекта по созданию системы управления базами данных System R. Первоначально он назывался SEQUEL, что расшифровывалось как Structured English Query Language. В 1979 году компания Oracle представила первую коммерческую реализацию SQL. В 1986 году ANSI и ISO официально признали SQL стандартом для работы с реляционными базами данных. С тех пор язык постоянно эволюционировал, внедряя поддержку объектно-ориентированных концепций, XML-данных и аналитических функций, оставаясь фундаментом для большинства современных корпоративных приложений.
+
+---
+
+## 3. Основные группы команд
+Для работы с данными SQL использует несколько логических категорий команд:
+* Создание и изменение структуры базы (CREATE, ALTER, DROP).
+* Работа с самими данными (SELECT, INSERT, UPDATE, DELETE).
+* Управление правами доступа (GRANT, REVOKE).
+* Управление транзакциями (COMMIT, ROLLBACK).
+
+
+
+---
+
+## 4. Преимущества и Недостатки
+
+### Преимущества
+* Стандарт поддерживается практически всеми СУБД (PostgreSQL, MySQL, Oracle, SQL Server).
+* Способность работать с базами данных объемом в терабайты.
+* Вы просто описываете, *что* нужно получить, а не *как* это реализовать технически.
+
+### Недостатки
+* Написание неэффективных запросов может сильно замедлить работу всей системы.
+* SQL не является языком общего назначения, поэтому сложные алгоритмические задачи лучше решать на других языках программирования.
+
+---
+
+## 5. Где применяется
+* Хранение данных пользователей, контента и заказов в интернет-магазинах.
+* Формирование сложных отчетов, агрегация статистической информации.
+* Бухгалтерия, CRM-системы, ERP-решения.
+
+---

+ 9 - 0
Лекции/SQL/Савичев_Вопросы.md

@@ -0,0 +1,9 @@
+1. Какое полное название языка SQL и для чего он предназначен? SQL расшифровывается как Structured Query Language, он предназначен для управления данными в реляционных базах данных.
+
+2. Кто и когда разработал прототип языка SQL? Язык был разработан сотрудниками IBM Дональдом Чемберленом и Рэймондом Бойсом в начале 1970-х годов.
+
+3. К какой группе команд относятся операции SELECT и INSERT? Эти команды относятся к группе DML (Data Manipulation Language) — языку манипулирования данными.
+
+4. В чем заключается главное преимущество декларативности SQL? Декларативность позволяет пользователю описывать, какие именно данные нужно получить, не вникая в низкоуровневые алгоритмы поиска или сортировки.
+
+5. Почему важно уметь писать оптимизированные SQL-запросы? Неправильно составленные запросы могут стать «узким местом» и сильно замедлить работу приложения при больших объемах данных.

BIN=BIN
Лекции/UX_UI_дизайн/UX_UI_дизайн_Мирчук/p1.png


BIN=BIN
Лекции/UX_UI_дизайн/UX_UI_дизайн_Мирчук/p2.png


+ 14 - 0
Лекции/UX_UI_дизайн/UX_UI_дизайн_Мирчук/Вопросы.md

@@ -0,0 +1,14 @@
+**1. Что такое UX/UI-дизайн?**
+Ответ: Это процесс создания удобного, функционального и привлекательного интерфейса сайта или приложения.
+
+**2. Что означает UX-дизайн?**
+Ответ: UX — это проектирование удобства использования и навигации для пользователя.
+
+**3. Что означает UI-дизайн?**
+Ответ: UI — это внешний вид интерфейса: кнопки, цвета, шрифты и расположение элементов.
+
+**4. Почему пользователь является главным в UX/UI-дизайне?**
+Ответ: Потому что интерфейс должен быть удобным и понятным для людей, которые им пользуются.
+
+**5. Что такое прототип в UX/UI-дизайне?**
+Ответ: Это схема будущего интерфейса, показывающая расположение элементов на странице.

+ 52 - 0
Лекции/UX_UI_дизайн/UX_UI_дизайн_Мирчук/Что_такое_UX_UI_дизайн.md

@@ -0,0 +1,52 @@
+# Что такое UX/UI-дизайн
+**Графический интерфейс** — это совокупность элементов во внешнем виде сайта или приложения, с которыми может взаимодействовать пользователь. Парадокс, но хороший интерфейс — это не тот, что заставляет о нём думать. Наоборот: его задача — быть незаметным. Настолько, чтобы пользователь не отвлекался от своей цели, а быстро и без труда достиг её. А ещё лучше — заинтересовался чем-то ещё.
+
+За всё это отвечает особая ветвь разработки — UX/UI-дизайн.
+
+**UX/UI-дизайн** — это процесс, при котором специалист продумывает и создаёт удобный для пользователя, стильный и функциональный интерфейс. Эти специалисты — и есть UX/UI-дизайнеры. У них важная задача — создать такой интерфейс, который понравится пользователю и внешне, и функционально. Поэтому их работу можно разделить на две сферы: UX и UI.
+
+**UX-дизайн** (User Experience или пользовательский опыт) — это проработка грамотной навигации внутри сайта и добавление всех нужных функций именно там, где их ждёт пользователь. Представьте, что вы хотите купить новую игру в Steam, но нигде не можете найти кнопку корзины. Или нажимаете «Заказать», однако попадаете не на форму оплаты, а на страницу с отзывами. Это путает и раздражает. Чтобы такого не было, разработчики продумывают UX-дизайн.
+
+**UI-дизайн** (User Interface или интерфейс пользователя) — это создание привлекательного внешнего вида страницы по правилам дизайна и типографики. Интерфейс должен быть приятен глазу. Даже если все кнопки на сайте ведут куда надо, пользователь всё равно может уйти с него из-за обилия элементов, нечитаемых шрифтов или ярких оттенков.
+
+![p1.png](p1.png)
+
+## 3 принципа хорошего UX/UI-дизайна
+### Пользователь важнее всего
+Как бы сильно разработчик ни хотел показать себя, он должен помнить, для кого делает интерфейс. Нажимать кнопки и заполнять формы будет пользователь. А значит, важно сделать сайт или приложение так, чтобы с ним было удобно взаимодействовать. Это не поле для экспериментов. Здесь важно угодить.
+
+### Хороший интерфейс — это смесь психологии и типографики
+Чтобы добиться качественного результата, не нужно изобретать велосипед. Правила, как создать удобный и приятный интерфейс, давно придуманы — ими пользовались ещё при вёрстке бумажных газет. В них было просто найти глазами нужную колонку или раздел, что и есть главная задача крутого интерфейса.
+
+А теперь представьте, как человек оплачивает товар в интернете, и на его экране появляется окно с просьбой подтвердить заказ. Но кнопка «Подтвердить» красного цвета, а «Отмена» — зелёного. Скорее всего, человек автоматически нажмёт зелёную, потому что мозг воспринимает её как «да». И тогда он случайно отменит заказ и не поймёт, что произошло.
+Чтобы такого не случалось, UX/UI-дизайнеры изучают поведение людей и их реакцию на разные элементы.
+
+### Тренды
+Представьте ситуацию: вы создаёте интерфейс для сайта крупной инвестиционной компании и хотите сделать трендовый дизайн. Например, сочные оттенки, крафтовые иллюстрации или весёлые микроанимации на кнопках. В итоге заказчик недоволен работой, потому что это не вяжется с его брендом. Такой подход был бы в тему магазина одежды или кафе, но здесь это неуместно.
+
+Другая некрасивая сторона трендов — то, как быстро они распространяются. Как только кто-то найдёт свежее решение, будьте уверены — скоро многие подхватят его. И тогда интернет наполнится почти одинаковыми проектами. Поэтому сперва важно проанализировать всё и понять, стоит ли оно того.
+
+## Этапы работы UX/UI-дизайнера 
+
+**1. Анализ целевой аудитории**
+Чтобы понять, как построить грамотный интерфейс, этот специалист должен взглянуть в глаза тем, кто будет им пользоваться, узнать о желаниях пользователей, а значит — понять, как найти к ним подход.
+
+**2. Изучение конкурентов**
+Перед активной фазой работы UX/UI-дизайнеру важно проанализировать сферу и посмотреть на интерфейсы конкурентов. И нет, не для того, чтобы украсть чью-то идею. Специалист должен понять, какие подходы уже используют другие проекты, чтобы создать нечто новое и непохожее, но при этом уместное.
+
+**3. Работа с продуктом**
+На этой стадии UX/UI-дизайнеры пытаются вжиться в роль пользователя и продумать, как именно тот будет взаимодействовать с продуктом.
+
+**4. Разработка прототипа**
+Базовый прототип или вайрфрейм мало чем похож на готовый интерфейс. Он выглядит как схема страницы и показывает, где какие элементы будут расположены. На нём можно увидеть все кнопки, формы и разделы с информацией, но пока всё это — просто подписанные серые прямоугольники.
+
+![p2.png](p2.png)
+
+**5. Тестирование**
+Когда дизайн готов, важно проверить, что он подойдёт пользователям. Для этого разработчики собирают фокус-группу — людей из целевой аудитории — и дают им «потрогать» интерфейс. После теста фокус-группа рассказывает о своих впечатлениях и отвечает на вопросы. Это позволяет разработчикам внести правки в дизайн.
+
+**6. Поддержка**
+Это этап после релиза, на котором разработчики следят за состоянием проекта. И если что-то идёт не так, они вовремя исправляют ошибки, пока те ещё не успели отпугнуть пользователей.
+
+**7. Развитие**
+Это не совсем отдельная стадия — её проводят одновременно с поддержкой готового проекта. В это время разработчики ищут новые пути, которые помогут улучшить UX/UI-дизайн. А затем — тестируют гипотезы, создают и внедряют новые подходы. Это помогает проекту оставаться актуальным.

BIN=BIN
Лекции/Unity/unity_title.png


+ 44 - 0
Лекции/Unity/Савичев_Unity.md

@@ -0,0 +1,44 @@
+# Игровой движок Unity
+
+![Unity Title](unity_title.png)
+
+## 1. Что такое Unity?
+**Unity** — это кроссплатформенная среда разработки компьютерных игр, разработанная компанией Unity Technologies. На сегодняшний день это один из самых популярных игровых движков в мире. Он предоставляет разработчикам полный набор инструментов для создания как двухмерных (2D), так и трехмерных (3D) игр, интерактивных приложений, VR/AR-проектов и даже анимационных фильмов. Unity ценится за свою универсальность, огромную библиотеку готовых решений и возможность быстрого развертывания проектов практически на любую современную платформу.
+
+---
+
+## 2. История создания и развитие
+История Unity началась в 2005 году в Копенгагене, где разработчики хотели создать движок, доступный для широкого круга независимых авторов, а не только для крупных студий с огромными бюджетами. Первый релиз состоялся на конференции Apple WWDC, что сразу определило фокус на простоту и удобство разработки. В течение десятилетий Unity превратилась из скромного инструмента для Mac в мощный промышленный стандарт. Ключевым моментом в развитии стало внедрение системы визуального программирования, поддержка современных графических API (DirectX, Vulkan, Metal) и создание **Unity Asset Store** — огромного магазина, где разработчики могут купить или бесплатно скачать готовые модели, скрипты, звуки и эффекты, что радикально ускоряет создание игр.
+
+---
+
+## 3. Технологические особенности
+* Использование мощного объектно-ориентированного языка C# обеспечивает высокую производительность и гибкость кода.
+* Любой игровой объект в Unity — это «GameObject», к которому можно присоединять различные «Компоненты» (скрипты, физику, свет, звук), что делает систему очень модульной.
+* Unity предлагает выбор: URP (Universal Render Pipeline) для легких игр и мобильных устройств или HDRP (High Definition Render Pipeline) для топовой графики в играх ААА-класса.
+* Одна из лучших систем экспорта в индустрии — можно собрать игру под Windows, Android, iOS, PlayStation, Xbox, Nintendo Switch и WebGL одновременно.
+
+---
+
+## 4. Преимущества и Недостатки
+
+### Преимущества
+* Самый большой магазин ассетов в мире (Asset Store).
+* Миллионы уроков, документации и активное сообщество на форумах.
+* Подходит как для создания маленьких инди-проектов, так и для крупных мобильных хитов.
+* Интуитивно понятный редактор, где многие вещи можно настроить «мышкой» без написания кода.
+
+### Недостатки
+* Постоянное усложнение движка делает его тяжелым для освоения новичками.
+* В отличие от написанных «с нуля» движков, Unity требует тщательной оптимизации кода и настроек.
+* Изменения в политике лицензирования Unity Technologies в последние годы вызывали споры и недовольство среди разработчиков.
+
+---
+
+## 5. Сферы применения
+* Создание мобильных, браузерных и PC-игр любого жанра.
+* Unity является стандартом де-факто для разработки приложений виртуальной и дополненной реальности.
+* Использование движка для создания интерактивных визуализаций и симуляций дизайна.
+* Рендеринг анимационных фильмов и превизуализация сцен в кино.
+
+---

+ 9 - 0
Лекции/Unity/Савичев_Вопросы.md

@@ -0,0 +1,9 @@
+1. Какой язык программирования является основным в движке Unity? Основным языком программирования в Unity является C#.
+
+2. Что такое Unity Asset Store и какую роль он играет в разработке? Это магазин, где разработчики могут приобретать или брать бесплатно готовые компоненты (модели, звуки, скрипты), что значительно ускоряет процесс разработки игр.
+
+3. В чем суть компонентно-ориентированной архитектуры Unity? Она позволяет строить игровые объекты (GameObject) путем присоединения к ним различных функциональных компонентов, что делает процесс сборки игры модульным и гибким.
+
+4. Для каких целей предназначены конвейеры рендеринга URP и HDRP? URP используется для оптимизации игр под мобильные устройства и легкие платформы, а HDRP предназначен для создания максимально реалистичной графики высокого разрешения.
+
+5. Почему Unity считается стандартом для AR/VR индустрии? Благодаря мощным инструментам интеграции, поддержке всех актуальных VR-шлемов и кроссплатформенности, Unity позволяет быстро развертывать интерактивные проекты в виртуальной реальности.

BIN=BIN
Лекции/Ассемблер/Ассемблер_Мирчук/p1.png


BIN=BIN
Лекции/Ассемблер/Ассемблер_Мирчук/p2.png


+ 14 - 0
Лекции/Ассемблер/Ассемблер_Мирчук/Вопросы.md

@@ -0,0 +1,14 @@
+**1. Что такое язык ассемблера?**
+Ответ: Ассемблер — это язык программирования низкого уровня, который позволяет напрямую управлять работой процессора.
+
+**2. Где обычно используется язык ассемблера?**
+Ответ: В системном программировании, встроенных системах и при оптимизации кода.
+
+**3. Почему программисту на ассемблере важно знать архитектуру процессора?**
+Ответ: Потому что каждая команда ассемблера соответствует инструкции процессора.
+
+**4. Назовите одно преимущество языка ассемблера.**
+Ответ: Высокая скорость выполнения программ.
+
+**5. Назовите один недостаток языка ассемблера.**
+Ответ: Сложность изучения и разработки программ.

+ 31 - 0
Лекции/Ассемблер/Ассемблер_Мирчук/Что_такое_язык_ассемблера.md

@@ -0,0 +1,31 @@
+# Что такое язык ассемблера
+Введение в основы программирования на ассемблере представляет собой уникальную возможность понять, как работают компьютеры на самом низком уровне. Язык программирования низкого уровня позволяет разработчикам управлять ресурсами и процессами с предельной точностью. Понимание этого этапа важно для того, чтобы освоить более сложные концепции и платформы. Язык **программирования ассемблера** часто используется в ситуациях, где необходим прецизионный контроль над аппаратным обеспечением. Он широко применяется в системном программировании, разработке встроенных систем и оптимизации кода.
+
+![p1.png](p1.png)
+
+Изучать **язык ассемблера** полезно по многим причинам. Во-первых, это открывает доступ к механике работы процессоров и памяти, что может существенно повысить ваши навыки программирования. Во-вторых, такие знания помогут вам лучше разбираться в работе операционных систем и специализированного софта. В-третьих, способность писать эффективный и компактный код становится особенно важной в условиях ограниченных систем, где ресурсы строго ограничены.
+
+**Программирование на ассемблере** требует внимания к деталям и дисциплины, что способствует развитию аналитического мышления и понимания основ вычислительных процессов. Этот опыт даст вам навыки, которые трудно получить через высокоуровневые языки программирования. Начав с базовых концепций и продолжая к более сложным задачам, вы сможете освоить этот язык и применять его в различных областях IT. 
+
+## Архитектура процессоров и ассемблер 
+
+**Процессор** - это центральный элемент компьютера, выполняющий машинные команды. Архитектура процессоров определяет, какие команды он может выполнять и как данные обрабатываются внутри него. Это описание включает в себя набор инструкций, регистры, кэш-память и остальные компоненты, влияющие на работу программы.
+
+Почему знание архитектуры важно? Оно позволяет программисту на ассемблере *создавать более эффективные и быстрые программы*, точно рассчитанные под аппаратные возможности системы. Понимание внутреннего устройства процессоров дает возможность использовать их ресурсы наиболее рационально.
+
+Работа с **ассемблерным языком программирования** тесно связана с архитектурой процессора. Каждая команда языка соответствует конкретной машинной инструкции, которую процессор исполняет. Поэтому знание процессорной архитектуры позволяет глубже понять и прогнозировать поведение программ. Это делает программирование на низком уровне по-настоящему крутым искусством.
+
+## Преимущества и недостатки
+
+### Преимущества
+- **Высокая производительность:** Программы, написанные на ассемблере, исполняются напрямую процессором, что обеспечивает максимальную скорость выполнения инструкций.
+- **Контроль над аппаратными ресурсами:** Ассемблер позволяет напрямую управлять регистровыми и памятью, что позволяет более оптимально использовать ресурсы и добиться высокой эффективности.
+- **Малый размер программного кода:** Приложения, написанные на ассемблере, занимают минимальное количество памяти, что особенно важно для устройств с ограниченными ресурсами.
+- **Отслеживание и устранение багов:** Низкоуровневый подход к программированию помогает глубже понять, как работает компьютер, что может упростить процесс отладки и оптимизации. 
+### Недостатки
+- **Сложность изучения:** Работа на ассемблере требует глубоких знаний архитектуры компьютера и процессора, что делает его менее доступным для новичков в программировании.
+- **Трудоемкость разработки:** Написание кода на ассемблере занимает больше времени по сравнению с высокоуровневыми языками программирования из-за необходимости работы с низкоуровневыми деталями.
+- **Отсутствие переносимости:** Программы, написанные на ассемблере, сильно зависят от архитектуры конкретного процессора, что затрудняет перенос программ на другие платформы.
+- **Ограниченные библиотеки и инструменты:** Ассемблер менее поддерживается современными интегрированными средами разработки (IDE) и имеет меньше доступных библиотек и фреймворков.
+
+![p2.png](p2.png)