uz
Feedback
ITmozg

ITmozg

Kanalga Telegram’da o‘tish

Программисты, дизайнеры, новости из мира IT. Официальный канал. (vk.com/itmozg, ITmozg.ru)

Ko'proq ko'rsatish
2 674
Obunachilar
-124 soatlar
+17 kunlar
+3530 kunlar
Postlar arxiv
ITmozg
2 674
🖥 Пишем свою операционную систему с нуля. Серьезно. Многим кажется, что создание ОС это черная магия, доступная только избра
🖥 Пишем свою операционную систему с нуля. Серьезно. Многим кажется, что создание ОС это черная магия, доступная только избранным инженерам из Microsoft или создателям Linux. Но на самом деле, разобраться в том, как "железо" оживает после нажатия кнопки питания, может каждый разработчик. На GitHub лежит легендарный репозиторий os-tutorial, который буквально за руку проведет вас от пустого файла до работающего ядра. Это не теоретический учебник на 1000 страниц. Это набор последовательных шагов (от 01 до конца), где каждый новый урок наслаивается на предыдущий. Вы начинаете с того, что учите компьютер выводить "Hello World" без всякой ОС, и заканчиваете написанием простейшей файловой системы. Что вы изучите на практике: 🔴Boot sector: Как работает загрузочный сектор и почему в нем всего 512 байт. 🔴Assembly: Основы ассемблера x86 (без боли, только необходимое). 🔴Режимы процессора: Переход из 16-битного Real Mode в 32-битный Protected Mode. 🔴C Kernel: Как запустить C-код на "голом" железе. 🔴Драйверы: Написание простых драйверов для экрана и клавиатуры. 💡 Главная фишка: Автор объясняет почему мы делаем то или иное действие, а не просто дает код для копирования. Это идеальный способ понять, как работает компьютер "под капотом". Для старта не нужны глубокие знания, только Linux (или WSL), QEMU и желание разобраться. 🔗 Ссылка на репозиторий: https://github.com/cfenollosa/os-tutorial ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
Стив Джобс полная биография и история успеха Это видео представляет собой подробный биографический обзор, посвященный жизни и профессиональным достижениям Стива Джобса. В видео освещаются ключевые этапы его пути: от рождения в Сан-Франциско и воспитания в приемной семье до создания таких технологических гигантов, как Apple и Pixar. Особое внимание уделяется истории разработки революционных продуктов, включая Macintosh, iPod и iPhone, которые изменили индустрию персональной электроники. Так же мы расскажем про личную жизнь предпринимателя, его кратковременный уход из Apple в NeXT и триумфальное возвращение в компанию. Завершается обзор описанием его наследия, многочисленных наград и мирового признания после смерти в 2011 году. Это комплексное описание позволяет понять вклад Джобса в современную культуру и мировую экономику. 📺 Смотреть на youtube ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
Сборка C++ проектов. Оптимизации компилятора. Inline, constexpr, alignment. Game Engine серии 0:00:00 - Введение 0:02:26 - Дизассемблер 0:09:31 - Общие оптимизации 0:20:46 - Inline 0:35:24 - Constexpr 0:45:28 - Compile-time raytracer 0:52:40 - Internal vs. external linkage 0:55:18 - Выравнивание структур 1:06:46 - Pragma optimize источник ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
Как выполняются SQL-запросы 👨‍💻 Порядок выполнения SQL-запроса определяет последовательность выполнения различных частей запроса SQL. Этот порядок важен, потому что он определяет, как данные фильтруются, группируются и упорядочиваются. Вот упрощённое объяснение порядка выполнения SQL: 🔴FROM / JOIN - оператор FROM указывает таблицы, из которых будут извлечены данные. JOIN может использоваться для объединения данных из нескольких таблиц. 🔴WHERE - оператор WHERE используется для фильтрации данных по заданным условиям. 🔴GROUP BY - оператор GROUP BY группирует данные по одной или нескольким колонкам. 🔴HAVING - оператор HAVING фильтрует уже сгруппированные данные по условиям. 🔴SELECT - оператор SELECT определяет столбцы, которые будут возвращены в результат. 🔴DISTINCT - ключевое слово DISTINCT используется для возврата только уникальных строк. 🔴ORDER BY - оператор ORDER BY сортирует результаты по возрастанию или убыванию. 🔴LIMIT - оператор LIMIT ограничивает количество возвращаемых строк. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
Теория «мёртвого интернета» всё меньше похожа на теорию. По данным Cloudflare Radar, впервые в истории на ботов приходится бо
Теория «мёртвого интернета» всё меньше похожа на теорию. По данным Cloudflare Radar, впервые в истории на ботов приходится больше половины мирового интернет-трафика — около 57%. Глава Cloudflare Мэтью Принс заявил, что это произошло раньше, чем он ожидал. По его прогнозам, такой сценарий должен был наступить только к 2027 году. Суть теории «мёртвого интернета» в том, что публичная сеть постепенно превращается в симуляцию, где значительная часть контента и взаимодействий создаётся ботами, нейросетями и ИИ-агентами, а живые пользователи становятся меньшей частью общей активности. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
🔌 API против SDK: В чем реальная разница? Мы часто слышим эти аббревиатуры вместе, но это не одно и то же. Давайте разберем
🔌 API против SDK: В чем реальная разница? Мы часто слышим эти аббревиатуры вместе, но это не одно и то же. Давайте разберем шпаргалку с картинки. 1️⃣ API (Application Programming Interface) На картинке сверху. Это «мессенджер». Набор правил, по которым одна программа может попросить что-то у другой. 🔴Задача: Обеспечить общение (To Communicate). 🔴Как это работает: Вы отправляете запрос (Request) на конкретный адрес (Endpoint) с определенными параметрами. Сервер отвечает (Response) данными (обычно JSON) или кодом ошибки. 🔴Пример: Ваше приложение доставки еды «стучится» в Google Maps API, чтобы просто показать точку на карте. Оно не строит карту само, оно просит её у Google. 2️⃣ SDK (Software Development Kit) На картинке снизу. Это «ящик с инструментами». Полноценный комплект для создания приложений под конкретную платформу (Android, iOS, Windows). 🔴Задача: Дать инструменты для стройки (Tool Box to Build Apps). 🔴Что внутри: SDK - это «старший брат». Он гораздо больше и обычно включает в себя API, а также библиотеки кода, документацию, дебаггеры и примеры. 🔴Пример: Чтобы написать приложение под Android на Kotlin, вам нужен Android SDK. Вы берете этот чемоданчик, достаете оттуда готовые кнопки, окна и инструменты для вызова API. 💡 Главное отличие в одной фразе: API - это интерфейс для взаимодействия с сервисом (как меню в ресторане), а SDK - это набор инструментов для создания чего-то нового (как полностью оборудованная кухня). ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
Анатомия Kubernetes - как это работает изнутри? ☸️ Часто мы используем kubectl, не задумываясь, что происходит «под капотом».
Анатомия Kubernetes - как это работает изнутри? ☸️ Часто мы используем kubectl, не задумываясь, что происходит «под капотом». На этой схеме отлично разложено устройство кластера Kubernetes. Давайте разберем три главных уровня архитектуры. 1. Control Plane (Панель управления) - «Мозг» кластера 🧠 Это центр принятия решений. Именно здесь определяется, что и где должно работать. 🔴API Server (в центре): Единая точка входа. Все компоненты общаются только через него (и вы через CLI тоже). Примечание: на схеме иконка подписана как Kube-Scheduler, но функционально и визуально (надпись API) это именно API Server. 🔴etcd: «Память» кластера. Надежное хранилище типа «ключ-значение», где лежит вся конфигурация и текущее состояние системы. 🔴Kube-Scheduler: Логист. Решает, на какую именно ноду (узле) запустить новый Pod, исходя из свободных ресурсов. 🔴Controller Manager: Смотритель. Следит, чтобы текущее состояние кластера совпадало с желаемым (например, если упал под - он его перезапустит). 🔴Cloud-Controller Manager: Связной с облаком. Управляет ресурсами, специфичными для облачного провайдера (AWS, Azure, GCP). 2. Worker Nodes (Рабочие узлы) - «Мускулы» кластера 💪 Здесь крутятся ваши приложения. 🔴Pod (Под): Минимальная единица в K8s. Внутри пода живет один или несколько контейнеров. 🔴Container Runtime (Docker): Движок, который фактически запускает контейнеры. 🔴Kubelet: Главный агент на узле. Получает задачи от Control Plane и гарантирует, что контейнеры в поде запущены и работают. 🔴Kube-Proxy: Сетевой регулировщик. Отвечает за сетевые правила и проброс трафика к подам. 3. Kubernetes Extensions - Инструменты 🛠 То, с чем взаимодействуем мы или системы мониторинга: 🔴CLI: Консольная утилита (kubectl). 🔴Web Admin UI: Дашборд для визуального управления. 🔴DNS: Для обнаружения сервисов внутри кластера. 🔴Monitoring: Сбор метрик ресурсов. 💡Control Plane командует, Worker Nodes исполняют, а Extensions помогают нам этим управлять. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
FTXUI Простая кроссплатформенная библиотека C++ для пользовательских интерфейсов на базе терминала! • Функциональный стиль • Простой и элегантный синтаксис • Создаваемые консольные UI поддерживают навигацию с помощью клавиатуры и мыши • Поддержка UTF8 • Поддержка анимации • Поддержка рисования • Нет зависимостей • Кроссплатформенность: Linux/MacOS, WebAssembly, Windows https://github.com/ArthurSonzogni/FTXUI ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv Bash Советы https://max.ru/sysadminof Книги для админов, полезные материалы https://max.ru/i_odmin_book Библиотека Системного Администратора https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др. https://max.ru/tipsysdmin Типичный Сисадмин Excel лайфхак 📌 https://t.me/Excel_lifehack Excel лайфхак 1C разработка 📌 https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С Программирование C++📌 https://max.ru/cpp_lib Библиотека C/C++ разработчика Программирование Go📌 https://max.ru/golang_lib Библиотека Go (Golang) разработчика Программирование React📌 https://max.ru/react_lib React Программирование Python 📌 https://max.ru/python_of Python академия. https://max.ru/BookPython Библиотека Python разработчика Java разработка 📌 https://max.ru/bookjava Библиотека Java разработчика GitHub Сообщество 📌 https://max.ru/githublib Интересное из GitHub Базы данных (Data Base) 📌 https://max.ru/database_info Все про базы данных Фронтенд разработка 📌 https://max.ru/frontend_1 Подборки для frontend разработчиков Библиотеки 📌 https://max.ru/programmist_of Книги по программированию https://max.ru/proglb Библиотека программиста https://max.ru/bfbook Книги для программистов Программирование 📌 https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻 Шутки программистов 📌 https://max.ru/itumor Шутки программистов Защита, взлом, безопасность 📌 https://max.ru/thehaking Канал о кибербезопасности https://max.ru/xakkep_1 Хакер Free Книги, статьи для дизайнеров 📌 https://max.ru/odesigners Статьи, книги для дизайнеров Математика 📌 https://max.ru/Pomatematike Канал по математике https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике Вакансии 📌 https://max.ru/progjob Вакансии в IT Мир технологий 📌 https://max.ru/mir_teh Канал для любознательных Бонус 📌 https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга https://max.ru/mockva_life Свежие новости Москвы https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП

ITmozg
2 674
💡7 обязательных стратегий для масштабирования вашей базы данных. 1 - Индексация: Проверьте шаблоны запросов вашего приложени
💡7 обязательных стратегий для масштабирования вашей базы данных. 1 - Индексация: Проверьте шаблоны запросов вашего приложения и создайте подходящие индексы. 2 - Материализованные представления: Предварительно вычислите результаты сложных запросов и сохраните их для быстрого доступа. 3 - Денормализация: Уменьшите количество сложных соединений (join), чтобы улучшить производительность запросов. 4 - Вертикальное масштабирование: Увеличьте мощность вашего сервера базы данных, добавив больше ЦП, оперативной памяти или хранилища. 5 - Кэширование: Сохраните часто запрашиваемые данные в более быстром слое хранения, чтобы снизить нагрузку на базу данных. 6 - Репликация: Создайте реплики вашей основной базы данных на разных серверах для масштабирования чтений. 7 - Шардинг: Разделите таблицы базы данных на более мелкие части и распределите их по серверам. Используется для масштабирования как записей, так и чтений. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
DBDiagram Бесплатный, простой инструмент для построения ER-диаграмм путем простого написания кода. Предназначен для разработчиков и аналитиков данных. https://dbdiagram.io/home ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
Облачные базы данных: Шпаргалка В современном мире, основанном на данных, выбор правильной базы данных имеет решающее значени
Облачные базы данных: Шпаргалка В современном мире, основанном на данных, выбор правильной базы данных имеет решающее значение и в то же время сложен. Сейчас облако предлагает больше возможностей для структурированных, полуструктурированных и неструктурированных баз данных, чем когда-либо. Эта шпаргалка поможет выбрать наиболее подходящую для ваших нужд. Структурированные базы данных📌 Структурированные базы данных организуют данные в предопределенные схемы и модели. Реляционные базы данных, такие как MySQL и PostgreSQL, хранят данные в таблицах со строками и столбцами. Колоночные базы данных, такие как Amazon Redshift и Google BigQuery, также имеют структурированную модель данных, но хранят их по-другому, оптимизируя для аналитических запросов. Преимущества: - Эффективные SQL-запросы - Возможность применения ограничений и валидации - Последовательность там, где это необходимо Примеры использования: CRM-системы, управление запасами, бухгалтерский учет, аналитика Полуструктурированные базы данных📌 Полуструктурированные базы данных обеспечивают гибкость, храня данные без соблюдения формальной схемы. Данные часто хранятся в виде JSON или других гибких форматов. Примеры включают в себя документ-базы данных, такие как MongoDB, графовые базы данных, наподобие Neptune, широкие колоночные хранилища, такие как ScyllaDB, и хранилища ключ-значение, такие как DynamoDB. Преимущества: - Гибкость для изменяющихся данных - Масштабируемость на разных серверах Примеры использования: Электронная коммерция, ленты социальных сетей, данные IoT Неструктурированные базы данных📌 Неструктурированные базы данных оптимизированы для хранения и обработки огромных объемов разнородных данных, таких как документы, изображения, видео. Примеры: AWS S3, Azure Blob Storage. Преимущества: - Хранение огромных объемов данных - Высокая масштабируемость Примеры использования: Медиарепозитории, управление контентом, океаны данных, журнальные данные, резервное копирование. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv Bash Советы https://max.ru/sysadminof Книги для админов, полезные материалы https://max.ru/i_odmin_book Библиотека Системного Администратора https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др. https://max.ru/tipsysdmin Типичный Сисадмин Excel лайфхак 📌 https://t.me/Excel_lifehack Excel лайфхак 1C разработка 📌 https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С Программирование C++📌 https://max.ru/cpp_lib Библиотека C/C++ разработчика Программирование Go📌 https://max.ru/golang_lib Библиотека Go (Golang) разработчика Программирование React📌 https://max.ru/react_lib React Программирование Python 📌 https://max.ru/python_of Python академия. https://max.ru/BookPython Библиотека Python разработчика Java разработка 📌 https://max.ru/bookjava Библиотека Java разработчика GitHub Сообщество 📌 https://max.ru/githublib Интересное из GitHub Базы данных (Data Base) 📌 https://max.ru/database_info Все про базы данных Фронтенд разработка 📌 https://max.ru/frontend_1 Подборки для frontend разработчиков Библиотеки 📌 https://max.ru/programmist_of Книги по программированию https://max.ru/proglb Библиотека программиста https://max.ru/bfbook Книги для программистов Программирование 📌 https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻 Шутки программистов 📌 https://max.ru/itumor Шутки программистов Защита, взлом, безопасность 📌 https://max.ru/thehaking Канал о кибербезопасности https://max.ru/xakkep_1 Хакер Free Книги, статьи для дизайнеров 📌 https://max.ru/odesigners Статьи, книги для дизайнеров Математика 📌 https://max.ru/Pomatematike Канал по математике https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике Вакансии 📌 https://max.ru/progjob Вакансии в IT Мир технологий 📌 https://max.ru/mir_teh Канал для любознательных Бонус 📌 https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга https://max.ru/mockva_life Свежие новости Москвы https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП

ITmozg
2 674
📌 Топ-10 алгоритмов на графах, которые должен знать каждый разработчик Графы окружают нас повсюду: от социальных сетей и рек
📌 Топ-10 алгоритмов на графах, которые должен знать каждый разработчик Графы окружают нас повсюду: от социальных сетей и рекомендательных систем до маршрутизации трафика и поиска уязвимостей в коде. Понимание базовых концепций работы с ними - это то, что отличает Senior-инженера от вечного Джуна. Сохраняй визуальную шпаргалку-гайд по главным алгоритмам на графах: 1. Поиск в глубину (DFS) & 2. Поиск в ширину (BFS) База из базы. • DFS (Depth-First Search) идет «вглубь» до упора. Идеален для обхода дерева решений, поиска циклов и топологической сортировки. • BFS (Breadth-First Search) обходит граф «слоями» (уровнями). Лучший выбор, если нужно найти кратчайший путь в невзвешенном графе. 3. Топологическая сортировка (Topological Sort) Линейное упорядочивание вершин ориентированного графа, где для каждого ребра (u, v) вершина u идет строго перед v. Используется везде, где есть зависимости: от компиляции исходного кода (Makefile, пакетные менеджеры) до планирования задач в CI/CD и ETL-пайплайнах. 4. Система непересекающихся множеств (Union-Find / DSU) Мощная структура данных, которая позволяет эффективно (почти за O(1)) объединять множества и проверять, принадлежат ли два элемента одному множеству. Незаменима для динамического анализа связности. 5. Поиск циклов (Cycle Detection) Критически важная задача в программировании. Цикл в графе зависимостей - это дедлок в многопоточности или бесконечная петля в логике приложения. Реализуется через DFS (поиск обратных ребер) или Union-Find. 6. Связные компоненты (Connected Components) Позволяет разбить граф на изолированные подграфы, где из любой вершины можно добраться до любой другой внутри этой же группы. Применяется в анализе сетей и кластеризации данных. 7. Двудольные графы (Bipartite Graphs) Граф, вершины которого можно разделить на два независимых множества так, чтобы ребра соединяли только вершины из разных множеств. Классический пример - задача о назначениях (поиск соответствия между исполнителями и задачами). 8. Алгоритм заливки (Flood Fill) Тот самый алгоритм, который работает в инструменте «Ведро с краской» в графических редакторах, или используется для поиска путей в лабиринтах/матрицах игр. По сути - кастомизированный DFS/BFS на двумерном массиве. 9. Минимальное остовное дерево (MST - Minimum Spanning Tree) Поиск подмножества ребер, соединяющих все вершины без циклов и с минимальным суммарным весом. Алгоритмы Крускала и Прима - классика для проектирования телекоммуникационных сетей, дорог и оптимизации инфраструктуры. 10. Кратчайший путь (Shortest Path) Поиск оптимального маршрута во взвешенном графе (например, с учетом расстояния, пробок или стоимости). Тут правят бал алгоритм Дейкстры (для положительных весов) и алгоритм Беллмана-Форда (если есть отрицательные веса). 📂 Интересный факт: Многие из этих концепций лежат в основе современных инструментов автоматизации, распределенных баз данных и систем сетевой безопасности. #алгоритмы #graphs #cs #dev #programming #шпаргалка ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
std::exception — это базовый класс для всех стандартных исключений в C++ Почему стоит наследоваться от std::exception? • Един
std::exception — это базовый класс для всех стандартных исключений в C++ Почему стоит наследоваться от std::exception? • Единообразие в обработке исключений: Когда вы наследуетесь от std::exception, ваш класс исключения приобретает интерфейс, который делает его совместимым с другими стандартными исключениями • what() метод: std::exception предоставляет важный метод what(), который возвращает строковое представление исключения. Это позволяет вам предоставлять информативные сообщения об ошибке при обработке исключений • Легкость в поддержке кода: Если вы используете сторонние библиотеки или фреймворки, они также могут ожидать обработку исключений, производных от std::exception • Стандартные типы исключений: std::exception имеет несколько стандартных подклассов, таких как std::runtime_error, std::logic_error и другие. Вы можете использовать эти подклассы вместо базового std::exception, чтобы более точно определить характер ошибки ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
Челлендж по обработке миллиарда строк на Go: от 1 минуты 45 секунд до 4 секунд Пару недель назад я прочитал о запавшем мне в
Челлендж по обработке миллиарда строк на Go: от 1 минуты 45 секунд до 4 секунд Пару недель назад я прочитал о запавшем мне в душу челлендже по обработке миллиарда строк, поэтому захотел решить его на Go. Я немного опоздал, соревнования проводились в январе. И на Java. Меня не особо интересует Java, зато давно интересует оптимизация кода на Go. Этот челлендж был очень прост: обработать текстовый файл названий метеорологических станций и температур, и для каждой станции вывести минимальное, среднее и максимальное значение. Чтобы упростить задачу, было ещё несколько ограничений, однако я проигнорировал те, что относятся только к Java. https://habr.com/ru/articles/798215/ ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
RustDesk Клиентское программное обеспечение для удаленного рабочего стола с открытым исходным кодом, написанное на Rust. Рабо
RustDesk Клиентское программное обеспечение для удаленного рабочего стола с открытым исходным кодом, написанное на Rust. Работает "из коробки", настройка не требуется. Отличная альтернатива TeamViewer и AnyDesk! Вы полностью контролируете свои данные, не беспокоясь о безопасности. Вы можете использовать сервер разработчика или настроить свой собственный сервер или написать свой собственный сервер для рандеву/ретрансляции https://github.com/rustdesk/rustdesk ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
🚀 Big O Notation (О-большое) в одной картинке: как оценить сложность алгоритма Каждый айтишник рано или поздно сталкивается
🚀 Big O Notation (О-большое) в одной картинке: как оценить сложность алгоритма Каждый айтишник рано или поздно сталкивается с проблемами производительности. Если ваш скрипт автоматизации, парсер или SQL-запрос начал безбожно тормозить при росте нагрузки, скорее всего, вы случайно написали алгоритм со сложностью O(n²) или хуже. 😅 🟢 Зеленая зона (Идеал и почти идеал):O(1) - Константное время. Скорость не зависит от объема данных. Пример: чтение значения из массива по индексу или из хэш-таблицы. • O(log n) - Логарифмическое время. Очень быстро работает даже на огромных объемах. Пример: бинарный поиск или поиск в сбалансированном дереве (B-Tree в базах данных). 🔵 Синяя/Зеленая зона (Нормально):O(n) - Линейное время. Время растет пропорционально количеству данных. Пример: простой перебор массива циклом for или поиск максимума/минимума. • O(n log n) - Линеарифмическое время. Лучшее, что мы можем выжать из алгоритмов сортировки общего назначения (Quick Sort, Merge Sort). 🟣/🔴 Красная зона (Опасно на больших данных):O(n²) и O(n³) - Квадратичное и кубическое время. Те самые вложенные циклы. На тысячах записей отработает, на миллионах - положит сервер. • O(2^n) и O(n!) - Экспоненциальное и факториальное время. Растет катастрофически быстро. Применяется только для очень специфических задач (например, задача коммивояжера) и на минимальных объемах данных. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
Шпаргалка по матрицам и операциям с ними ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
Шпаргалка по матрицам и операциям с ними ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 674
50 веб сайтов по изучению C/C++ В этой статье я расскажу о 50 сайтах, которые, по моему мнению, должен знать и добавить в зак
50 веб сайтов по изучению C/C++ В этой статье я расскажу о 50 сайтах, которые, по моему мнению, должен знать и добавить в закладки каждый разработчик на Си или Си++. В этом списке представлены прямые ссылки на исходные коды программ вместе с их описанием. https://www.mycplus.com/featured-articles/50-c-cpp-source-code-websites/ ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg