Przeglądaj źródła

Merge branch 'master' of u20-24mahotkina/ISRPO into master

ypv 1 tydzień temu
rodzic
commit
7a06ca92f7

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


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
Лекции/Java/Java_Мирчук/p1.png


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
Лекции/SQL/SQL_Мирчук/p1.png


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
Лекции/UX_UI_дизайн/UX_UI_дизайн_Мирчук/p1.png


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
Лекции/Ассемблер/Ассемблер_Мирчук/p1.png


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)