<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <language>ru</language>
    <title>Анализ данных</title>
    <description/>
    <link>https://tproger.ru/tag/analiz-dannyh</link>
    <atom:link href="https://tproger.ru/tag/analiz-dannyh/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Fri, 23 Oct 2026 17:06:22 GMT</lastBuildDate>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>12</sy:updateFrequency>
    <image>
      <title>Анализ данных</title>
      <link>https://tproger.ru</link>
      <url>https://tproger.ru/apple-touch-icon.png</url>
    </image>
    <item>
      <title>NULL в SQL: почему запрос отрабатывает и молча отдаёт неверное число</title>
      <link>https://tproger.ru/articles/null-v-sql-pochemu-zapros-otrabatyvaet-i-molcha-otdayot-nevernoe-ch</link>
      <comments>https://tproger.ru/articles/null-v-sql-pochemu-zapros-otrabatyvaet-i-molcha-otdayot-nevernoe-ch?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Tproger]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/null-v-sql-pochemu-zapros-otrabatyvaet-i-molcha-otdayot-nevernoe-ch</guid>
      <description><![CDATA[<p>Почему WHERE x = NULL не находит строки, как одно пустое значение обнуляет весь NOT IN и на что делится среднее. Разбираем на примерах Postgres.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/null-v-sql-pochemu-zapros-otrabatyvaet-i-molcha-otdayot-nevernoe-ch">NULL в SQL: почему запрос отрабатывает и молча отдаёт неверное число</a>»</p>]]></description>
      <category><![CDATA[Лучшая практика]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[PostgreSQL]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 08 Sep 2026 06:08:25 GMT</pubDate>
      <content:encoded><![CDATA[<p>В SQL деление на ноль Postgres остановит с ошибкой. Приведение строки «abc» к числу тоже. А деление на NULL пройдёт, и запрос вернёт результат. Просто не тот, которого вы ждали.</p><p>Это главная особенность работы с отсутствующими значениями: ошибок нет, есть тихо неправильные числа. Разбираем, откуда они берутся в фильтрах, в арифметике, в агрегатах и в соединениях, и какими операторами это лечится.</p><p>Отправная точка одна: NULL — не значение, а отметка «неизвестно». Неизвестность распространяется дальше по всему выражению: через сравнения, арифметику, склейку строк, агрегаты, оконные функции и условия отбора. Результат при этом строго определён правилами языка, он просто может не совпасть с тем, что вы имели в виду.</p><p>В SQL три логических исхода, а не два: истина, ложь и неизвестность. Условие отбора оставляет только строки с истиной, поэтому неизвестность отбрасывается наравне с ложью.</p><p>Сравнение = NULL не почти верно, а отвечает на другой вопрос. Для проверки на отсутствие есть отдельные операторы, которые сравнением не являются.</p><p>Одно значение NULL в списке для NOT IN обнуляет всю выдачу целиком, а не сужает её.</p><p>Соединение по равенству отбрасывает строки, где ключ отсутствует с обеих сторон, и то же самое делает проверка уникальности.</p><p>Запрос, который отработал, прошёл только проверку грамматики. Число становится верным, когда с вопросом совпали строки, фильтры и знаменатель.</p><h2>Три логических исхода вместо двух</h2><p>Начнём с простого случая. В таблице клиентов у одного из них не заполнен телефон, и это прямо видно глазами. Запрос находит ноль строк:</p><p>Условие phone = NULL спрашивает: «равно ли это неизвестное значение тому неизвестному значению?» Ответить на такое нельзя, поэтому <a href="https://dev.to/systemcraftdev/why-where-x-null-never-works-in-sql-and-what-to-use-instead-3p4h">для каждой строки возвращается неизвестность</a>, включая ту самую строку с пустым телефоном. А отбор оставляет только строки, где условие истинно. Неизвестность не проходит ровно так же, как не прошла бы ложь.</p><p>Правило действует единообразно: NULL = NULL тоже не истина, а неизвестность. Отсюда и главный вывод — оператор равенства нельзя «подправить», чтобы он здесь заработал. Он не почти прав, он отвечает на другой вопрос.</p><p>В Postgres это проверяется одной строкой. Что вернёт такое выражение?</p><p>Оба внутренних сравнения неизвестны, поэтому внешнее сравнивает неизвестность с неизвестностью и тоже даёт неизвестность. Операторы сравнения возвращают NULL, если хотя бы одна сторона неизвестна. Именно поэтому в языке есть отдельный оператор проверки на отсутствие: узнать, равны ли две неизвестности, нельзя, а узнать, является ли значение неизвестным, можно.</p><h3>Как ведут себя И, ИЛИ и НЕ</h3><p>Логические связки тоже работают в трёх значениях, и запомнить стоит два исключения:</p><p>То есть ИЛИ всё ещё истинно, если истинна вторая сторона, а И всё ещё ложно, если ложна вторая сторона. Всё остальное с участием неизвестности схлопывается в неизвестность.</p><p>Последствия неочевидны. Вот запрос, который отбрасывает строку, которую вы почти наверняка хотели оставить:</p><p>В обычной двузначной логике «активно или не активно» — тавтология, утверждение, истинное при любом значении. В SQL это не так.</p><h3>Операторы, которые никогда не возвращают неизвестность</h3><p>Лечится это выходом из трёхзначной логики. Сначала решите, что NULL означает в вашей предметной области, а потом скажите это явно:</p><p>Проверки IS TRUE, IS NOT TRUE, IS FALSE, IS NOT FALSE и IS UNKNOWN никогда не возвращают неизвестность, поэтому строку не потеряют.</p><p>Аналог того же для равенства — IS NOT DISTINCT FROM. Обычное равенство спрашивает, известно ли, что значения совпадают. Этот оператор спрашивает, одно ли это значение, обращаясь с отсутствием как с полноценным состоянием. Две неизвестности неразличимы, поэтому предикат истинен.</p><p><b>Где это пригодится:</b><br />Соединение по условию равенства отбрасывает строки, где ключ отсутствует с обеих сторон. Если два отсутствующих ключа должны считаться совпадением, замените равенство на IS NOT DISTINCT FROM. То же касается проверок уникальности и условий отбора, где «отсутствует» должно означать «отсутствует», а не «неизвестно».</p><h2>Ловушка NOT IN, из-за которой пропадает вся выдача</h2><p>Это самый дорогой из всех эффектов, потому что он не сужает результат, а стирает его целиком. Операторы IN и NOT IN разворачиваются в цепочки сравнений, а NOT IN — в цепочку через И:</p><p>Разберём оба исхода. Если значение совпало с одним из перечисленных, срабатывает то самое правило «И спасает ложь справа», и выражение честно ложно. Если не совпало ни с одним, множитель со сравнением с пустым значением делает всё выражение неизвестным.</p><p>Для условия отбора разницы между этими исходами нет: оно оставляет только истину, а ложь и неизвестность отбрасывает одинаково. Поэтому итог один — если в списке или в подзапросе есть хотя бы одно отсутствующее значение, NOT IN не вернёт ни одной строки. Никакой ошибки при этом не будет.</p><p>Обычный IN ведёт себя мягче, поскольку разворачивается в цепочку через ИЛИ: совпадение остаётся истиной независимо от того, что ещё есть в списке. В простом условии отбора пустое значение в списке вообще ничего не меняет: несовпавшая строка отсеется что при неизвестности, что при лжи. Разница вылезает там, где результат сравнения используется дальше: под отрицанием, в выражении CASE или в ограничении целостности.</p><p>Надёжная замена — NOT EXISTS, который работает через равенство внутри условия отбора и потому никогда не трактует сравнение с отсутствующим значением как совпадение. Тот же смысл выражает антисоединение, которое вдобавок часто даёт лучший план:</p><p>Вычистить отсутствующие значения из подзапроса тоже можно, но это помогает, только если вы уверены, что их следует игнорировать. Вариант с NOT EXISTS делает это намерение явным, а не подразумеваемым.</p><h2>Арифметика: одно значение NULL обнуляет строку</h2><p>Любая арифметическая операция с участием отсутствующего значения даёт отсутствующее значение. Сложение, умножение, деление, модуль, возведение в степень — результат один.</p><p>В отчётах это выглядит как пустые ячейки, а в обновлениях данных как стёртые колонки. Классический пример, который каждый когда-нибудь писал:</p><p>Подставлять значение по умолчанию нужно в той точке, где вам известно правило предметной области, а не механически везде. В разборе Кристофера Уинслетта из Crunchy Data приводится удачная иллюстрация: <a href="https://www.crunchydata.com/blog/postgres-calculations-and-the-ambiguity-of-null">отсутствующее количество почти всегда означает ноль, отсутствующая ставка налога тоже, а вот отсутствующая цена нулём не является</a> и должна оставаться неизвестной, пока её кто-нибудь не заполнит.</p><h2>Агрегаты и оконные функции считают не то, что кажется</h2><p>Здесь отсутствующие значения ведут себя иначе, чем везде: агрегаты их пропускают. Функция COUNT(*) считает строки, а COUNT(колонка) — только непустые значения; SUM, AVG, MIN и MAX пропускают пустые входы.</p><p>У товара с двумя незаполненными оценками среднее и сумма пусты, а число строк равно двум. Отсюда практическое правило, которое экономит часы разбирательств с аналитикой: среднее — это сумма, делённая на количество непустых значений, а не на количество строк. Смешивать SUM(x) / COUNT(*) и ожидать совпадения со средним нельзя.</p><p>Оговорка про типы тоже важна: если сумма и счётчик целочисленные, деление усечёт дробную часть. Шесть, делённое на два, случайно даст ровно три, а оценки 5, 1 и 2 дадут при целочисленном делении двойку вместо 2,67.</p><h3>Где ломаются оконные функции</h3><p>Суммирование и усреднение в окне пропускают отсутствующие значения так же, как при группировке, а ROW_NUMBER считает строку в любом случае. Расхождение начинается у функций, которые смотрят в конкретную позицию окна: LAG, LEAD, FIRST_VALUE, LAST_VALUE и NTH_VALUE.</p><p>Такая функция возвращает то, что лежит в запрошенной позиции. Если там пусто, результат пуст. Ближайшее реальное значение она не ищет, и на рядах измерений с пропущенным отсчётом это даёт разрывы там, где ожидалась непрерывность.</p><h2>Проверка чужого запроса, включая сгенерированный</h2><p>Всё описанное складывается в одну проблему: запрос, который отработал, прошёл только проверку грамматики. База ловит опечатку в имени таблицы. Она не ловит суммирование не той колонки, соединение, задваивающее строки, и фильтр, поставленный не на том этапе. Каждая из этих ошибок — синтаксически корректный SQL.</p><p>Со сгенерированными запросами есть <a href="https://dev.to/michaelnocito/how-to-review-ai-generated-sql-before-you-trust-the-number-19ek">отдельная сложность</a>: они беглые. Псевдонимы аккуратные, форматирование чистое, форма выглядит как работа внимательного человека. Беглость читается как правильность, хотя это разные вещи.</p><h3>Проверка первая: посчитайте строки до того, как поверите сумме</h3><p>Задача звучала как «чистая выручка по завершённым заказам». Полученный запрос:</p><p>Он отрабатывает и возвращает 1830. Правильный ответ 1330, и это легко проверить руками: валовая сумма одиннадцати завершённых заказов равна 1605, возвраты составляют 275.</p><p>Виновато соединение. Два заказа возвращались частями, по две записи на каждый, поэтому одиннадцать строк превращаются в тринадцать, а сумма по заказам считает эти два заказа дважды: 2105 вместо 1605. Лишние 500 — это ровно стоимость задвоенных заказов. Явление называется размножением строк: соединение множит строки всякий раз, когда ключ на другой стороне встречается больше одного раза.</p><p>Проверка стоит двух запросов:</p><p>Одно это сравнение всё решает. Второе число выросло, значит, соединение размножило строки, и любая сумма или среднее по колонкам левой таблицы под подозрением. Число совпало — соединение безопасно, идём дальше.</p><h3>Проверка вторая: ищите отсутствующие значения в каждом фильтре</h3><p>Следующая просьба звучала как «та же выручка, но без служебных аккаунтов», и запрос получился такой:</p><p>Он возвращает пустоту, полученную из нуля строк. Не меньшее число, а вообще ничего. Механизм вы уже знаете: в справочнике служебных аккаунтов есть одна строка с незаполненным идентификатором, а справочники в реальной жизни такими и бывают. Одна такая строка бесшумно опустошает результат целиком.</p><h2>Что забрать с собой</h2><p>Правила про отсутствующие значения не сложны, они просто действуют не там, где их ждут. Из фильтра строка пропадает молча, арифметика превращает результат в пустоту, соединение по равенству теряет пары без ключа, а среднее делит на другой знаменатель. Ошибки при этом нигде не возникает, и потому такие дефекты живут в отчётах годами.</p><p>Самый надёжный способ не разбираться со всем этим каждый раз — не хранить отсутствующие значения там, где они не нужны. Если колонка обязана иметь значение, скажите это в схеме. Ограничение NOT NULL выглядит формальностью ровно до первого расследования, почему выручка в отчёте оказалась на пятьсот единиц больше настоящей.</p><p>Материалы разбора: <a href="https://dev.to/systemcraftdev/why-where-x-null-never-works-in-sql-and-what-to-use-instead-3p4h">почему сравнение с NULL никогда не срабатывает</a>, <a href="https://www.crunchydata.com/blog/postgres-calculations-and-the-ambiguity-of-null">поведение NULL в вычислениях Postgres</a> и <a href="https://dev.to/michaelnocito/how-to-review-ai-generated-sql-before-you-trust-the-number-19ek">проверка сгенерированного SQL до того, как поверить числу</a>.</p><p>Откройте последний отчёт, который вы отдавали наружу, и сравните в нём количество строк до и после соединений. Проверка занимает пять минут и иногда меняет цифру, на которую уже сослались в переписке.</p>]]></content:encoded>
    </item>
    <item>
      <title>Polars 2.0 RC переводит LazyFrame на потоковый движок и ломает тихие касты</title>
      <link>https://tproger.ru/news/polars-2-0-rc-perevodit-lazyframe-na-potokovyj-dvizhok-i-lomaet-t</link>
      <comments>https://tproger.ru/news/polars-2-0-rc-perevodit-lazyframe-na-potokovyj-dvizhok-i-lomaet-t?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Tproger]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/polars-2-0-rc-perevodit-lazyframe-na-potokovyj-dvizhok-i-lomaet-t</guid>
      <description><![CDATA[<p>Первый release candidate Polars 2.0: LazyFrame.collect() идёт через streaming-движок, порядок строк в join и group_by не гарантирован, is_in и concat больше не молчат об ошибках типов. Как проверить свой код.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/polars-2-0-rc-perevodit-lazyframe-na-potokovyj-dvizhok-i-lomaet-t">Polars 2.0 RC переводит LazyFrame на потоковый движок и ломает тихие касты</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 03 Sep 2026 06:53:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Команда Polars 2 сентября <a href="https://pola.rs/posts/announcing-polars-2/">выпустила</a> первый release candidate версии 2.0 библиотеки для работы с таблицами на Python и Rust. Финальный релиз обещан «в ближайшие недели». Главное изменение одно: любой вызов collect() у LazyFrame теперь по умолчанию выполняется потоковым движком, который обрабатывает промежуточные данные порциями и, по словам авторов, заметно снижает расход памяти. Автор библиотеки Ричи Винк пишет, что новых функций в 2.0 почти нет, а мажорная версия нужна, чтобы избавиться от старых архитектурных решений и поменять дефолты.</p><p>Для тех, кто гоняет Polars в пайплайнах, это значит два дела на сегодня. Во-первых, после обновления часть запросов может вернуть строки в другом порядке: потоковый движок не гарантирует порядок для join, group_by и unpivot, если явно не попросить. Во-вторых, код, который годами «работал» на неявных приведениях типов и молчаливом заполнении пропусков, начнёт падать с ошибкой. Разработчики называют это осознанной политикой: ошибка сразу лучше неверного результата через двадцать минут работы пайплайна.</p><ul><li>RC ставится командой pip install polars==2.0rc1; финальный 2.0 выйдет в ближайшие недели, точной даты нет.</li><li>LazyFrame.collect() по умолчанию идёт через streaming-движок; по ожиданиям авторов, в совокупности он «легко в 5 раз быстрее» старого in-memory и заметно экономит память; независимых замеров RC нет.</li><li>Порядок строк после join, group_by и unpivot больше не гарантирован; для join и group_by порядок возвращает параметр maintain_order, для unpivot нужен явный sort; старый движок включается через pl.Config.set_engine_affinity("in-memory") или collect(engine="in-memory").</li><li>is_in с разными типами, горизонтальный concat с разной высотой, касты строк в даты и целых в Enum теперь бросают исключение вместо тихого приведения.</li><li>Большинство удалённых методов и параметров отвечают типизированными ошибками AttributeRemovedError и ArgumentRemovedError с подсказкой, чем заменить.</li></ul><h2>Почему потоковый движок потребовал мажорной версии</h2><p>Polars давно развивает два движка. Классический in-memory собирает результат каждой операции целиком в памяти. Потоковый разбивает данные на куски и прогоняет их через план запроса конвейером, поэтому промежуточные результаты не раздуваются. До 2.0 потоковый движок нужно было включать явно; теперь режим engine="auto" выбирает именно его.</p><p>Цена такого дефолта в порядке строк: потоковый движок для ряда операций его не гарантирует. Старый движок порядок сохранял, и на это молча полагалось много кода: например, брали первую строку после группировки и считали её «самой ранней». В 2.0 такие места нужно найти и явно попросить порядок (у join и group_by есть параметр maintain_order, после unpivot остаётся явный sort):</p><p>Заявление о скорости стоит читать как оценку вендора: «в сумме мы ожидаем, что потоковый движок будет легко в 5 раз быстрее», со ссылкой на <a href="https://pola.rs/posts/benchmarks/">собственные бенчмарки</a> Polars. Независимых замеров на RC пока нет, и выигрыш зависит от запроса: на маленьких таблицах, которые целиком помещаются в кеш, разница будет меньше, чем на группировках по десяткам гигабайт.</p><h2>Где код перестанет молчать об ошибках</h2><p>Вторая тема релиза сформулирована в посте так: ошибки должны подниматься заранее, а не через 20 минут работы пайплайна, и неявное поведение при несовпадении данных должно включаться явно, а не быть дефолтом. Авторы отдельно отмечают, что строгость стала ценнее с приходом ИИ-агентов: агент может вызвать collect_schema(), проверить типы без чтения данных и быстро получить обратную связь. Примеры из поста и <a href="https://docs.pola.rs/releases/upgrade/2/">руководства по миграции</a>:</p><ul><li>is_in с разными типами. Раньше Int64 и Float64 приводились к общему супертипу, даже если это теряло точность. В примере из поста идентификатор 9007199254740993 при касте в float64 округлялся до 9007199254740992 (граница, до которой float64 представляет все целые точно), и проверка по списку «помеченных» аккаунтов давала ложное совпадение. В 2.0 это InvalidOperationError: кастовать нужно самому и осознанно.</li><li>Горизонтальный concat. Таблицы высотой 5 и 4 раньше склеивались, а недостающая ячейка молча становилась null; типичный сценарий из поста: тихо упавшая задача за один из дней. Теперь ShapeError, а старое поведение включается через how="horizontal_extend".</li><li>Касты заменены специализированными методами. Целые в Enum или Categorical и обратно: вместо cast() нужны .cat.to() и .cat.physical(). Строка в дату: вместо cast(pl.Date) методы .str.to_date() и .str.to_datetime(), которым можно явно задать формат. Кастовать плоскую колонку в List через cast(pl.List(...)) тоже нельзя, для этого есть pl.list().</li><li>Булевы операторы между Boolean и целыми числами теперь ошибка; std() и var() для Duration удалены, сначала переводите в микросекунды через .dt.total_microseconds().</li><li>Каст между Struct с разным числом полей при strict=True (дефолт) падает, а не обрезает лишние поля; руководство помечает это отдельным предупреждением, потому что раньше данные терялись молча.</li></ul><p>Отдельный набор изменений касается чтения CSV. При сканировании набора файлов схема теперь выводится по первым 10 файлам, а не по всем (параметр infer_schema_files). Автоматические имена колонок для файлов без заголовка начинаются с column_0, а не column_1; это же касается read_excel и read_ods. Пользовательская схема в scan_csv сопоставляется с файлом по именам колонок, а не по позиции: раньше первая запись схемы молча получала данные первой колонки файла, даже если имена не совпадали. Для лишних и недостающих колонок появились параметры extra_columns и missing_columns, по умолчанию оба бросают ошибку.</p><h2>Что будет со старым кодом</h2><p>Для большинства удалений библиотека получила два типизированных исключения (документация предупреждает, что часть удалённого по-прежнему даёт обычные AttributeError и TypeError): polars.exceptions.AttributeRemovedError для удалённых методов и атрибутов и polars.exceptions.ArgumentRemovedError для удалённых параметров. Оба сообщения указывают на замену:</p><p>По словам Винка, большая часть удалённого давно помечена как deprecated, и у тех, кто обновлялся регулярно, пайплайны пострадать не должны. Команда просит сообщать, если из библиотеки убрали что-то, на что реально полагались. Смена движка не затрагивает eager-API DataFrame: выигрыша в скорости там не будет, потому что дефолт меняется только у LazyFrame. Остальные несовместимости на eager распространяются полностью: строгий concat, новые правила read_csv, убранные касты и удалённые методы.</p><h2>Как проверить свой проект до финального релиза</h2><ol><li>Поставьте RC в отдельное окружение: pip install polars==2.0rc1. В прод его тащить рано, это кандидат в релиз.</li><li>Прогоните тесты и посмотрите на исключения AttributeRemovedError, ArgumentRemovedError, InvalidOperationError и ShapeError: каждое сообщение содержит подсказку с заменой.</li><li>Найдите места, где код полагается на порядок строк после join, group_by или unpivot: сортировки «по умолчанию», head(1) после группировки, сравнение с эталоном по позициям. Добавьте maintain_order (join, group_by) или явный sort (unpivot).</li><li>Если результат обязан совпадать со старым до байта, зафиксируйте старый движок на время миграции: pl.Config.set_engine_affinity("in-memory").</li><li>Проверьте чтение CSV без заголовка (сдвиг нумерации колонок на единицу) и scan_csv с явной схемой (сопоставление по именам).</li></ol><p>В планах ветки 2.x, о которых команда, по её словам, «недостаточно говорила публично»: полноценная out-of-core обработка для потокового движка, новая архитектура IO-плагинов, собственный читатель S3, расширенное покрытие SQL, планировщик на основе оценки стоимости с переупорядочиванием join и отказ от mmap, после которого конвейер станет асинхронным от начала до конца. Сроков по этим пунктам нет. Замечания по RC команда принимает в <a href="https://github.com/pola-rs/polars/issues">issues на GitHub</a>.</p><p>Источники: <a href="https://pola.rs/posts/announcing-polars-2/">Pre-release of Polars 2.0 (блог Polars, Ritchie Vink)</a>, <a href="https://docs.pola.rs/releases/upgrade/2/">Руководство по переходу на Polars 2.0</a>, <a href="https://pola.rs/posts/benchmarks/">Бенчмарки Polars</a></p><p>Изображение на обложке: Логотип: Polars</p>]]></content:encoded>
    </item>
    <item>
      <title>GoCloud 2026: Cloud.ru открывает регистрацию на конференцию про AI и облачные технологии</title>
      <link>https://tproger.ru/articles/gocloud-2026--cloud-ru-otkryvaet-registraciyu-na-konferenciyu-pro-</link>
      <comments>https://tproger.ru/articles/gocloud-2026--cloud-ru-otkryvaet-registraciyu-na-konferenciyu-pro-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вика Овсянникова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/gocloud-2026--cloud-ru-otkryvaet-registraciyu-na-konferenciyu-pro-</guid>
      <description><![CDATA[<p>Открыта регистрация на технологическую конференцию GoCloud 2026 от Cloud.ru в Москве 9 апреля. Искусственный интеллект как сервис, AI-агенты, кибербезопасность GenAI. Участие онлайн или офлайн.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/gocloud-2026--cloud-ru-otkryvaet-registraciyu-na-konferenciyu-pro-">GoCloud 2026: Cloud.ru открывает регистрацию на конференцию про AI и облачные технологии</a>»</p>]]></description>
      <category><![CDATA[Новости]]></category>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Облачные технологии]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 10 Feb 2026 11:05:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloud.ru открыл регистрацию на ежегодную конференцию GoCloud 2026. Тема конференции в этом году — искусственный интеллект как сервис и простые, безопасные инструменты для работы с AI и AI-агентами.</p><h2>Главное о формате</h2><p>Конференция пройдет 9 апреля в Москве на площадке кинотеатра «КАРО 11 Октябрь» в гибридном формате: часть сессий будет транслироваться онлайн, а практические воркшопы и ряд сессий будут доступны офлайн-посетителям. Всего ожидается около 15 live-демозон с сервисами Cloud.ru и партнеров.</p><p>Регистрация на мероприятие открыта <a href="https://cloud.ru/gocloud?utm_source=tproger&amp;utm_medium=pr&amp;utm_campaign=gocloud2026_conf_gocloud2026_brand" rel="nofollow">на сайте конференции</a>.</p><h2>Ключевые треки конференции</h2><p>Программа конференции в 2026 году объединит четыре тематических трека:</p><ul><li>AI. Участников ждут сессии о том, как сделать AI удобным инструментом для команд: работать с AI-агентами, AI-workflow и генеративными моделями через простые интерфейсы. Эксперты расскажут про обновление цифровой среды AI Factory для работы с GenAI.</li><li>App &amp; Dev. Трек посвящен инструментам, которые ускоряют запуск продуктов и упрощают весь цикл разработки: от архитектуры и написания кода до тестирования, эксплуатации и поддержки в продакшене.<br /></li><li>Data &amp; Analytics. Этот трек объединит доклады и дискуссии экспертов рынка о том, как сделать управление данными экономически эффективным и какие ключевые data-тренды будут определять 2026 год.<br /></li><li>Core Infra. На сессиях эксперты и клиенты Cloud.ru обсудят импортонезависимые AI- и облачные решения enterprise-уровня и объяснят, как добиться стабильности и безопасности высоконагруженных систем.<br /></li></ul><h2>Для кого это мероприятие</h2><p>Конференция рассчитана на CEO, СTO, DevOps-, AI/ML- и дата-инженеров, а также SRE-специалистов, архитекторов и разработчиков.</p>]]></content:encoded>
    </item>
    <item>
      <title>17 месяцев, 7 человек и бесплатный мониторинг: как собрали систему управления IT-инфраструктурой с нуля</title>
      <link>https://tproger.ru/articles/17-mesyacev--7-chelovek-i-besplatnyj-monitoring--kak-sobrali-siste</link>
      <comments>https://tproger.ru/articles/17-mesyacev--7-chelovek-i-besplatnyj-monitoring--kak-sobrali-siste?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Соколова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/17-mesyacev--7-chelovek-i-besplatnyj-monitoring--kak-sobrali-siste</guid>
      <description><![CDATA[<p>«Гравитон» за 17 месяцев сделал систему мониторинга без агентов. Она работает через обычные сетевые протоколы, шлёт уведомления в Telegram и показывает всё в реальном времени.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/17-mesyacev--7-chelovek-i-besplatnyj-monitoring--kak-sobrali-siste">17 месяцев, 7 человек и бесплатный мониторинг: как собрали систему управления IT-инфраструктурой с нуля</a>»</p>]]></description>
      <category><![CDATA[Микросервисы]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Инфраструктура]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 02 Feb 2026 09:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p><b>⭐ Участник Продуктовой Премии Tproger 2025 — проголосовать за кейс <a href="https://tprg.ru/14rv">можно по ссылке</a></b></p><p>Когда в компании несколько сотен серверов, виртуальных машин и рабочих станций, мониторинг превращается в жуткую боль и беготню между разными системами. Обычно на каждое устройство ставят своего агента, настраивают подключения, обновляют клиенты — и всё это одновременно на сотнях машин. Мы используем агентов только для ПК, ноутбуков и моноблоков.</p><p><a href="https://tprg.ru/TxZr" rel="nofollow">«Гравитон»</a> за 17 месяцев сделал систему мониторинга без агентов. Она работает через обычные сетевые протоколы, шлёт уведомления в Telegram и показывает всё в реальном времени. Команда из 7 человек написала всё с нуля и выпустила бесплатно.</p><h2>Задача: мониторить всю инфраструктуру без установки агентов на каждый сервер</h2><p><b>Бизнес</b> хочет, чтобы вся инфраструктура работала без сбоев — серверы, виртуальные машины, рабочие станции. Администраторы должны знать, что происходит: сколько загружен процессор, какая температура, не заканчивается ли место на дисках, все ли сервисы работают.</p><p><b>Техническая часть</b> — сделать систему, которая подключается к устройствам без установки дополнительного софта. Использовать те протоколы, которые уже есть в оборудовании. Показывать проблемы сразу, а не через пять минут. Дать возможность не только смотреть, но и управлять удалённо.</p><h2>Параметры проекта</h2><ul><li>Срок разработки: март 2024 — август 2025 (17 месяцев)</li><li>Команда: 7 человек</li><li>Статус: продукт на рынке 5 месяцев, предоставляется бесплатно на первый год использования</li><li>Первый проект: мониторинг нескольких сотен моноблоков</li><li>Интерес рынка: несколько десятков запросов на тестирование с момента запуска</li></ul><p>Поддерживаемое оборудование: виртуальные машины, серверы, системы хранения данных, клиентские устройства (персональные компьютеры, моноблоки, многофункциональные устройства «Гравитон»).</p><h2>Архитектура: микросервисы и протоколы без агентов</h2><p>Систему собрали из микросервисов — каждый отвечает за свою часть:</p><p>Устройства в сети</p><p>→ Подключение через WebSocket, Redfish, IPMI, SNMP, Prometheus</p><p>→ Сервисы, которые собирают и обрабатывают данные</p><p>→ SQL для настроек, Prometheus для метрик по времени</p><p>→ PromQL для правил уведомлений</p><p>→ Веб-интерфейс с графиками</p><p>→ Уведомления в Telegram</p><p>Главное — для серверов и сетевого оборудования система не ставит агентов. Подключается к тому, что уже есть в устройствах. Агенты используются только для пользовательских устройств — ПК, ноутбуков и моноблоков.</p><h2>Пять главных фишек</h2><p><b>1. Всё в реальном времени через WebSocket</b></p><p>WebSocket — это двусторонняя связь. Устройство может само отправить сигнал, когда что-то меняется. Температура выросла, диск заканчивается — администратор видит это мгновенно в интерфейсе. При сканировании сети результаты появляются сразу, не нужно ждать и обновлять страницу.</p><p>Чем быстрее узнал о проблеме — тем быстрее починил.</p><p><b>2. Всё написано с нуля</b></p><p>Команда не взяла готовые библиотеки для важных частей. Авторизация, управление пользователями, уведомления — всё своё. Это дало полный контроль и возможность подстроить под российский рынок без зависимости от чужого кода.</p><p><b>3. Никаких агентов</b></p><p>Система использует протоколы, которые уже есть в оборудовании. Redfish для современных серверов, IPMI для управления на аппаратном уровне, SNMP для сетевых устройств, Prometheus для Linux-серверов. Не нужно ничего устанавливать, настраивать, обновлять на каждой машине.</p><p><b>4. Интеграция с Telegram для уведомлений</b></p><p>Вместо email-рассылок или SMS, которые легко пропустить, система отправляет уведомления о проблемах прямо в Telegram. Администратор получает сообщение на телефон: «Температура процессора сервера srv-db-01 достигла 85°C» или «Диск /dev/sda на сервере srv-web-03 заполнен на 95%». Можно настроить отдельные каналы для разных типов событий или разных команд.</p><p><b>5. PromQL для гибких условий мониторинга</b></p><p>Для составления выражений, которые запускают уведомления, используется PromQL — язык запросов Prometheus. Администратор может создавать сложные условия: «уведомить, если загрузка процессора выше 80% в течение 5 минут» или «предупредить, если свободное место на диске меньше 10% и скорость его уменьшения больше 1 ГБ в час». Это не просто пороговые значения, а гибкие правила с учётом трендов и контекста.</p><h2>Главная трудность: CORS и удалённое управление KVM</h2><p><b>🔴 Проблема: запуск KVM через браузер</b></p><p>KVM (клавиатура, видео, мышь) — технология удалённого управления сервером на уровне «железа», как будто вы сидите перед монитором с клавиатурой. Запуск инструмента KVM из веб-интерфейса системы мониторинга столкнулся со сложностями из-за ограничений CORS (Cross-Origin Resource Sharing) — механизма безопасности браузеров, который блокирует запросы между разными доменами.</p><p><b>✅ Решение: корректная авторизация, поддерживаемая сервером</b></p><p>Команда реализовала метод авторизации, который поддерживается сервером управления и корректно обрабатывается браузером с учётом политик CORS. Это позволило безопасно запускать KVM-сессии прямо из веб-интерфейса системы мониторинга без установки дополнительных приложений на компьютер администратора. Теперь можно подключиться к серверу и управлять им через браузер, даже если операционная система на сервере не загружается.</p><h2>Результаты и конкуренция на рынке</h2><p>Первый проект — мониторинг нескольких сотен моноблоков в коммерческой эксплуатации. Система показала стабильность работы и справилась с нагрузкой. С момента запуска пришло несколько десятков запросов на тестирование продукта от компаний с разной инфраструктурой.</p><p>Продукт на рынке 5 месяцев, в то время как конкуренты работают более 5 лет и имеют устоявшуюся клиентскую базу. По отзывам клиентов собран перечень функционала, который необходимо реализовать для успешной конкуренции: расширение набора метрик, поддержка большего числа типов оборудования, специфические интеграции с корпоративными системами.</p><p>Стратегия выхода на рынок — дать базовый функционал бесплатно, чтобы компании могли попробовать продукт без барьеров. В течение 2026 года появится дополнительный платный функционал для крупных инсталляций и специфических задач.</p><h2>Планы развития: от мониторинга к предсказанию проблем</h2><p>Команда <a href="https://tprg.ru/TxZr" rel="nofollow">«Гравитон»</a> развивает продукт по семи направлениям.</p><ol><li>Больше метрик и функций управления — новые показатели, управление питанием, настройка устройств удалённо.</li><li>Поддержка большего числа устройств — работа с оборудованием от разных производителей.</li><li>Платные функции — расширенная аналитика, интеграция с корпоративными системами, отчёты для проверок.</li><li>Предсказание поломок — анализ данных по времени, чтобы понять, когда диск или блок питания выйдет из строя. Замена до того, как сломалось.</li><li>Автоматизация — система сама делает что-то при проблемах. Процессор перегружен — перезапустить сервис. Диск заполнен — почистить логи.</li><li>Настройка интерфейса — каждый видит свои дашборды. Администратор — технические метрики, руководитель — сводки, топ-менеджмент — общую доступность.</li><li>Карта серверной — схема, где какой сервер стоит в стойках, с привязкой к состоянию. Видно, где проблемный сервер и что рядом с ним.</li></ol><p><i>Реклама. ООО «Ревотех», ИНН 9731071780, erid: 2W5zFJx4cjB</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Как стать аналитиком данных  за 6–12 месяцев [гайд]</title>
      <link>https://tproger.ru/articles/kak-stat-analitikom-dannyh--za-6-12-mesyacev--gajd-</link>
      <comments>https://tproger.ru/articles/kak-stat-analitikom-dannyh--za-6-12-mesyacev--gajd-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Валерия Турчак]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-stat-analitikom-dannyh--za-6-12-mesyacev--gajd-</guid>
      <description><![CDATA[<p>В статье — полный разбор профессии: от ключевых навыков (SQL, Python, статистика) до карьерного пути и зарплат по регионам.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-stat-analitikom-dannyh--za-6-12-mesyacev--gajd-">Как стать аналитиком данных  за 6–12 месяцев [гайд]</a>»</p>]]></description>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Образование]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Soft Skills]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Бизнес-аналитика]]></category>
      <category><![CDATA[Data Science]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[faq]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 16 Dec 2025 15:50:05 GMT</pubDate>
      <content:encoded><![CDATA[<p><b>Обновлено:</b> Январь 2025. Проверено практикующим руководителем аналитики.</p><p>Аналитик данных — специалист, который превращает сырые данные в понятные выводы и рекомендации для бизнеса. Он собирает и очищает данные, строит отчеты и дашборды, проверяет гипотезы и помогает принимать решения, влияющие на выручку, продукт и процессы.</p><p>«Дата-аналитик извлекает, очищает, обрабатывает и анализирует данные, предоставляя бизнесу полезную информацию для решений» — hh.ru (2024).<a href="https://career.hh.ru/article/analitik-dannyh" rel="follow"> https://career.hh.ru/article/analitik-dannyh</a></p><h2>Кто такой аналитик данных и что такое анализ данных?</h2><p>Аналитик данных — специалист по анализу данных (data analyst), который помогает компаниям принимать решения на основе фактов, а не догадок. Профессия для тех, кто умеет превращать цифры в смысл.</p><h3>Что это значит на практике?</h3><p>Data-аналитик взаимодействует с данными: извлекает их из разных источников, очищает от ошибок и дубликатов, обрабатывает и изучает. Цель — предоставить полезную информацию для бизнеса или науки. Аналитика данных выявляет закономерности, объясняет, что происходит и почему, показывает, что делать дальше.</p><h3>Кто это в компании?</h3><p>Data-аналитик строит отчеты, проверяет гипотезы, находит инсайты. Подсказывает командам, как улучшить продукт и бизнес-процессы. Стоит между бизнесом и датасайнс: применяет методы анализа данных, статистику и визуализацию, чтобы дать понятные рекомендации, а не просто таблицы.</p><p>«В 2025 году объём мировых данных достигнет 181 зеттабайта — вдвое больше, чем в 2022-м» — hh.ru (2024).</p><h3>Почему профессия актуальна в 2025?</h3><p>Компании буквально тонут в информации. Им нужны те, кто умеет из этого хаоса вытащить ценное. По данным HeadHunter, только за последние десять лет количество вакансий по анализу данных и машинному обучению в России увеличилось почти в 30 раз.</p><p>Впечатляет, правда?</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-12-10/eeb9c91b-e207-4438-a551-9ce7ec1b1ade.png" alt="" /></figure><h2>Что делает аналитик данных: основные обязанности и задачи</h2><p>В реальной работе аналитик отвечает на вопрос «что делает и чем занимается специалист по анализу данных» через конкретные бизнес-задачи. Обязанности аналитика данных — перевод бизнес-требований в метрики, сбор данных, обработка и интерпретация результатов анализа для отчётов и решений в компании.</p><h3>Вот типичный рабочий процесс:</h3><ul><li><b>Сбор данных.</b> Извлечение информации из баз данных и других источников с помощью SQL-запросов или API. Аналитик документирует, откуда приходят данные, чтобы коллеги понимали, насколько им можно доверять.</li><li><b>Обработка и очистка. </b>Нормализация форматов, контроль качества, устранение дубликатов и пропусков. Самая рутинная, но критически важная часть работы. Без чистых данных любой анализ превращается в гадание на кофейной гуще.</li><li><b>Интерпретация.</b> Формулировка инсайтов и объяснение причинно-следственных связей. Не просто "продажи упали на 15%", а "продажи упали на 15% из-за сбоя в платёжной системе 12 января, об этом говорит резкий всплеск отказов на этапе оплаты". <br />Чувствуете разницу?</li><li><b>Визуализация и отчеты.</b> Дашборды в BI-системах (Power BI, Tableau), презентации для команд и руководства. Хороший дашборд должен быть понятен даже тому, кто увидел его впервые.</li><li><b>Проверка гипотез. </b>A/B-тесты, статистические проверки, оценка эффектов изменений. Например, "если поменять цвет кнопки с синего на зелёный, вырастет ли конверсия?"</li><li><b>Перевод бизнес-задачи в метрики.</b> Определение KPI/OKR, дизайн экспериментов. Умение понять, что на самом деле нужно бизнесу, и выразить это через измеримые показатели.</li><li><b>Коммуникация результатов анализа. </b>Рекомендации, приоритизация, оценка рисков и потенциального влияния (impact). Результаты анализа становятся реальными решениями только когда их понимают и применяют.</li></ul><h2>Ключевые навыки и инструменты, которые нужно знать аналитику данных</h2><h3>Технические навыки (Hard Skills)</h3><h4>Статистика и методы анализа — фундамент</h4><p>Распределения, t-тесты, доверительные интервалы, регрессия. Без этого вы не поймёте, случайны ли ваши выводы или действительно значимы.</p><h4>Работа с базами данных и SQL-запросы — ядро профессии</h4><p>JOIN, оконные функции, CTE (Common Table Expressions). Если не умеете вытащить нужные данные из базы, вы не аналитик. Просто человек с Excel.</p><h4>Python для анализа данных (pandas, numpy)</h4><p>Для тех, кто хочет автоматизировать рутину и работать с большими объёмами. Jupyter-ноутбуки позволяют документировать анализ так, чтобы его мог повторить кто угодно.</p><h4>Excel/Google Sheets</h4><p>Для быстрых расчётов и прототипов. Сводные таблицы, ВПР, условное форматирование. Не стоит недооценивать таблицы — иногда это самый быстрый путь к ответу.</p><h4>BI-инструменты (Power BI, Tableau)</h4><p>Для визуализации и дашбордов. Здесь важен навык работы с данными так, чтобы отчёты были наглядными и информативными, а не превращались в хаос графиков.</p><h4>Основы А/В-тестирования</h4><p>Методы анализа экспериментов, статистическая значимость, понимание размера выборки и ошибок I и II рода.</p><p>«Владение SQL, Python или R, BI-системами, электронными таблицами и хорошая статистика — основа профессии аналитика данных» — skgroups.ru (2024). <a href="https://blog.skgroups.ru/kto-takoj-analitik-dannyh-i-chem-on-zanimaetsja/" rel="follow">https://blog.skgroups.ru/kto-takoj-analitik-dannyh-i-chem-on-zanimaetsja/</a></p><h3>Гибкие навыки (Soft Skills)</h3><h4>Коммуникация и сторителлинг</h4><p>Умение объяснить выводы без жаргона. Бизнесу не нужны формулы — им нужны решения и понятные истории.</p><h4>Критическое мышление</h4><p>Проверка предположений и источников данных. "А точно ли эти цифры верны? Может, тут артефакт?"</p><h4>Бизнес-ориентированность</h4><p>Понимание ценности метрик для продукта и прибыли. Хороший аналитик не просто считает, а понимает, зачем он это делает.</p><h4>Тайм-менеджмент и приоритизация задач</h4><p>В работе аналитика всегда больше вопросов, чем времени на ответы.</p><h4>Внимание к деталям</h4><p>Качественные данные и корректные выводы. Одна ошибка в SQL-запросе — и весь анализ летит в мусорку.</p><h4>Работа в кросс-командах</h4><p>Продукт, маркетинг, разработка. Аналитик — связующее звено между разными отделами.</p><h3>Основные инструменты аналитика</h3><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-12-16/896f5160-bf34-406a-bb81-1fd424cb690c.jpg" alt="" /></figure><h2>Виды аналитиков данных: специализации в работе с данными</h2><p>Здесь мы говорим о специализациях внутри аналитики данных. Бизнес-аналитик и системный аналитик — смежные, но отдельные профессии, о которых речь пойдёт позже.</p><p>«Специализации: продуктовая, маркетинговая, бизнес-аналитика и BI-аналитика; задачи и инструменты различаются» — practicum.yandex.ru (2024). <a href="https://practicum.yandex.ru/blog/napravleniya-analitiki-kakuyu-specializaciyu-vybrat/" rel="follow">https://practicum.yandex.ru/blog/napravleniya-analitiki-kakuyu-specializaciyu-vybrat/ </a></p><h4>Продуктовый аналитик</h4><p>Продуктовый аналитик исследует поведение пользователей и влияние изменений на метрики продукта: активация, ретеншн, LTV (lifetime value). Формулирует и проверяет гипотезы, ставит трекинг событий, проектирует A/B-тесты, интерпретирует результаты. Помогает приоритизировать бэклог.</p><p>Это data-аналитик с сильной бизнес-ориентацией, влияющий на roadmap и рост продукта. В его зоне ответственности — понимание, что заставляет пользователей возвращаться и платить.</p><h4>Маркетинговый аналитик</h4><p>Маркетинговый аналитик помогает бизнесу привлекать клиентов: анализирует данные по кликам и поведению пользователей, даёт рекомендации относительно продвижения и рекламы. Советует, как скорректировать маркетинговую стратегию и оптимально распределить бюджет.</p><h4>Веб-аналитик</h4><p>Веб-аналитик (часто digital analyst) измеряет воронку трафика и конверсии. Источники трафика, поведение на сайте/приложении, эффекты SEO/SEA/CRM. Работает с системами веб-аналитики (Google Analytics 4, AppMetrica), UTM-разметкой, атрибуцией и сквозной аналитикой.</p><p>Задача — повысить эффективность маркетинга и конверсии, выявляя точки роста и проблемные места пути пользователя. "Почему люди уходят на этапе оформления заказа?" — типичный вопрос веб-аналитика.</p><h4>BI-аналитик</h4><p>BI-аналитик (Business Intelligence аналитик) проектирует системы для анализа и хранения данных, тестирует гипотезы, автоматизирует отчётность. Помогает бизнесу моделировать различные ситуации, делать правильные выводы и распределять ресурсы между отделами.</p><h4>Финансовый аналитик</h4><p>Финансовый аналитик оценивает доходы/расходы, прогнозирует денежные потоки, строит модели P&amp;L (profit and loss), юнит-экономику, сценарный анализ. Применяет статистику и Excel/BI, визуализирует KPI для управленческой отчетности.</p><p>Помогает принимать решения о ценообразовании, инвестициях и оптимизации затрат. Сильная математика и аккуратность критичны — ошибка в финансовой модели может стоить компании миллионов.</p><h4>Гейм-аналитик</h4><p>Гейм-аналитик — специалист, рекомендации которого позволяют постоянно развивать игровой продукт, увеличивать заинтересованность пользователей, а следовательно — и прибыльность компании. Многопрофильный специалист — должен разбираться в программировании, звуке, графике и других нюансах разработки игр.</p><h4>Аналитик баз данных (Database Analyst)</h4><p>Аналитик баз данных проектирует и оптимизирует БД для качественного анализа. Моделирование данных, нормализация, индексы, производительность запросов. Обеспечивает доступность, целостность и корректность данных, документирует схемы.</p><p>Помогает аналитикам и инженерам, чтобы анализ данных был быстрым и надежным, без искажений и узких мест. Тот человек, который следит, чтобы "база не легла" и запросы не выполнялись по три часа.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-12-16/a6d0f1a6-34de-41e5-8f02-3cf4104592ad.jpg" alt="" /></figure><h3>Смежные роли: бизнес-аналитик и системный аналитик</h3><p>Бизнес-аналитик и системный аналитик — отдельные профессии, которые часто путают с аналитиком данных.</p><p><b>Бизнес-аналитик: </b><b></b>переводит цели компании в требования и формирует метрики успеха. Описывает бизнес-процессы, согласовывает изменения со стейкхолдерами и считает экономический эффект. Работает на стыке аналитики данных и управленческого консалтинга: собирает требования, моделирует сценарии "как есть/как будет", помогает принимать решения, оформляет спецификации для команд разработки.</p><p><b>Системный аналитик </b>фокусируется на структурировании требований к IT-системам. Описывает сущности и связи, интеграции, потоки данных и ограничения. Обеспечивает непротиворечивость и полноту требований, участвует в проектировании API и схем БД, готовит спецификации, юз-кейсы и диаграммы.</p><p>Если бизнес-аналитик отвечает на вопрос "что нужно?", то системный — "как это технически реализовать?".</p><h3>Аналитик данных vs Data Scientist vs BI-аналитик: в чем разница?</h3><p>«Data Analyst ориентирован на оперативную аналитику и визуализацию; Data Scientist создаёт и внедряет модели машинного обучения» — dtf.ru (2024).</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-12-16/b44f901f-95d9-45aa-b9a1-6ae3514b93ac.jpg" alt="" /></figure><p><b>Главное различие: </b>Data Analyst анализирует прошлое и настоящее, чтобы объяснить причины. Data Scientist строит модели для предсказания будущего. BI-аналитик создаёт инфраструктуру отчётности.</p><p>На старте карьеры лучше начинать с аналитика данных — вы освоите фундаментальные навыки работы с данными, научитесь формулировать вопросы и искать ответы. А потом, если захотите, сможете специализироваться в Data Science или BI-разработке.</p><h2>Карьера и зарплата аналитика данных: от начинающего до ведущего специалиста</h2><p>Карьерный путь обычно проходит ступени junior → middle → senior → lead/head of analytics.</p><h4>Начинающий аналитик</h4><p>Быстро набирает опыт работы на поддержке отчетности и простых анализах. Выполняет типовые SQL-запросы, помогает готовить дашборды, учится формулировать гипотезы.</p><h4>Middle</h4><p>Ведет полноценные задачи аналитика и проекты самостоятельно — от формулировки вопроса до презентации результатов. Умеет проектировать A/B-тесты, выбирать методы анализа, объяснять выводы бизнесу.</p><h4>Старший аналитик</h4><p>Управляет приоритетами, влияет на архитектуру данных, менторит команду. Принимает стратегические решения о том, какие метрики важнее, как строить систему аналитики в компании.</p><h4>Ведущий аналитик (Head of Analytics)</h4><p>Влияет на стратегические решения компании, формирует культуру работы с данными, управляет командой аналитиков.</p><h3>Средняя зарплата аналитика данных в России в 2025 году</h3><p>Зарплата аналитика данных растет вместе с компетенциями: навык работы с SQL/Python, владение BI-системами, статистикой и продуктовыми метриками, умение объяснять "что делать дальше" — ключ к росту.</p><p>На доход также влияют регион (Москва платит больше Воронежа), отрасль (финтех и e-commerce щедрее госсектора), масштаб компании и зона ответственности.</p><p>«Зарплаты: Junior 60–100 тыс., Middle 100–180 тыс., Senior от 180 тыс.; уровень зависит от региона и специализации» — hh.ru (2024).<b><a href="https://career.hh.ru/article/analitik-dannyh"></a></b></p><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-12-16/19dc193b-82e8-4253-81e6-076acb8daf65.jpg" alt="" /><figcaption>Источник: hh Карьера, данные на январь 2025. Методика: медианные значения по активным вакансиям с указанием зарплатной вилки.</figcaption></figure><p>Средняя зарплата по России: 112 000 ₽ в месяц. Чаще всего зарплаты находятся в диапазоне от 68 000 до 155 000 ₽. Минимальная зафиксированная зарплата — 50 000 ₽, максимальная — 450 000 ₽.</p><h2>Спрос на аналитиков данных: рынок труда в России</h2><p><b>По данным HeadHunter (январь 2025):</b></p><ul><li>Более 14 тысяч активных вакансий с запросом «аналитик данных»</li><li>Более 40 тысяч вакансий по ключевому слову «аналитик»</li><li>15% вакансий предлагают полностью удалённый формат работы</li><li>За последние 10 лет количество вакансий по анализу данных и ML в России увеличилось почти в 30 раз</li></ul><p>«На HeadHunter более 14 тысяч вакансий для аналитиков данных» — Skillbox Media (2024).</p><p><b>Топ-5 отраслей с наибольшим спросом:</b></p><ol><li>IT и разработка ПО (35% вакансий)</li><li>Финансы и банки (22%)</li><li>E-commerce и ритейл (18%)</li><li>Телеком (12%)</li><li>Маркетинг и реклама (8%)</li></ol><p>Доля удалённых вакансий: 15% — полная удалёнка, 42% — гибридный формат (данные hh.ru, январь 2025).</p><p><b>Топ-3 навыка в вакансиях:</b></p><ol><li>SQL — упоминается в 87% вакансий</li><li>Python — 62% вакансий</li><li>Power BI/Tableau — 54% вакансий</li></ol><h2>Как анализ данных помогает принимать эффективные бизнес-решения</h2><p>Анализ данных снижает неопределенность и ускоряет принятие решений в компании. На основе анализа бизнес видит, какие каналы трафика реально окупаются, какие фичи продукта улучшают метрики, где теряются деньги в воронке продаж.</p><p>Результаты анализа превращаются в бизнес-решения:</p><ul><li>Корректировка цен на основе эластичности спроса</li><li>Перераспределение маркетингового бюджета в пользу эффективных каналов</li><li>Приоритизация бэклога разработки: какие функции принесут максимальный рост конверсии</li><li>Оптимизация логистических процессов для снижения издержек</li></ul><p>Для бизнеса это — повышение эффективности, рост прибыли и управляемость рисков. Когда метрики связаны с целями (KPI/OKR), аналитика помогает выбрать действия с максимальным эффектом при минимальных затратах.</p><p><i>Пример: Интернет-магазин видит в дашборде, что 40% пользователей бросают корзину на этапе ввода адреса доставки. Аналитик копает глубже — оказывается, форма требует слишком много данных и долго грузится на мобильных устройствах. После упрощения формы конверсия выросла на 12% за месяц.</i></p><h2>Как стать аналитиком данных: обучение и курсы</h2><p>Чтобы стать аналитиком данных с нуля, нужно выбрать формат обучения, отвечающий вашим целям и стилю жизни. Есть несколько путей:</p><ol><li><b>Ускоренные интенсивы</b> — 3-6 месяцев погружения в профессию с менторами, проектами и поддержкой в трудоустройстве. Подходят тем, кто хочет быстро сменить сферу деятельности.</li><li><b>Модульные курсы с проектами</b> — более гибкий формат, где можно учиться в своем темпе. Обычно длятся 6-12 месяцев.</li><li><b>Самостоятельное обучение по дорожной карте</b> — для самых дисциплинированных и мотивированных. Бесплатно, но требует железной воли и умения находить качественные материалы.</li></ol><h3>Что должна покрывать хорошая программа обучения</h3><p>Хорошая программа обучения аналитике данных покрывает:</p><ul><li>Основы статистики (распределения, гипотезы, доверительные интервалы)</li><li>SQL (от базовых SELECT до оконных функций)</li><li>Python для анализа данных (pandas, numpy, matplotlib)</li><li>Excel/Google Sheets (сводные таблицы, формулы)</li><li>Power BI/Tableau (дашборды и визуализация)</li><li>A/B-тестирование (методология, интерпретация результатов)</li><li>Работу с базами данных и понимание структуры данных</li><li>Портфолио-проекты на реальных датасетах</li></ul><h3>Сравнение форматов обучения</h3><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-12-16/325fb1f6-aeaf-49e3-8108-b8295333aaed.jpg" alt="" /><figcaption>Данные: агрегированная информация по основным образовательным платформам России на январь 2025</figcaption></figure><p>Выбирайте курсы аналитика данных, где много практики, код-ревью, менторство и поддержка трудоустройства — так вы быстрее получите профессию аналитика данных и сможете уверенно войти на рынок.</p><p>Например,<a href="https://sky.pro/courses/analytics/data_analytics" rel="follow"> курс аналитика данных</a> от Sky.pro включает все эти элементы: от базовой статистики до построения дашбордов, с наставниками-практиками и помощью в трудоустройстве после завершения. Программа рассчитана на 12 месяцев и покрывает весь необходимый стек — SQL, Python, BI-инструменты, статистику и A/B-тестирование. В процессе обучения вы соберёте портфолио из реальных проектов, которое потом покажете работодателям.</p><h2>Как стать аналитиком данных с нуля: пошаговый план</h2><h4>Шаг 1: Изучите основы (математика и статистика)</h4><p>Без них никуда. Фокус на описательной статистике (среднее, медиана, стандартное отклонение), вероятностях, проверке гипотез, интерпретации p-value и доверительных интервалов.</p><p>Не нужно погружаться в матан с головой — достаточно понять базовые принципы. Ресурсы: Khan Academy, Coursera (курсы по статистике), учебник "Practical Statistics for Data Scientists".</p><h4>Шаг 2: Освойте ключевые инструменты (SQL, Excel, Python)</h4><ul><li>SQL — начните с базовых SELECT, WHERE, JOIN. Потом переходите к GROUP BY, подзапросам, оконным функциям. Практика на SQL Zoo, LeetCode, HackerRank.</li><li>Excel/Google Sheets — сводные таблицы, ВПР, условное форматирование. Попробуйте решить несколько кейсов на обработку данных.</li><li>Python — начните с библиотек pandas (работа с таблицами) и numpy (математика). Jupyter-ноутбуки для документирования анализа.</li><li>Ежедневная практика — ключ. Даже 30 минут в день дадут результат через несколько месяцев.</li></ul><h4>Шаг 3: Пройдите курс или учитесь самостоятельно</h4><p>Если выбираете курсы — смотрите на программу (покрывает ли все необходимое), отзывы выпускников, наличие менторства и практических проектов.</p><p>Если учитесь сами — составьте дорожную карту, найдите публичные датасеты (Kaggle, data.gov), решайте задачи, изучайте чужие решения.</p><p>Важны код-ревью и обратная связь. Если учитесь сами — ищите комьюнити (Reddit, Telegram-чаты аналитиков), делитесь своими решениями, просите фидбэк.</p><h4>Шаг 4: Соберите портфолио</h4><p>Проекты на реальных датасетах — ваша визитная карточка. Kaggle, публичные API (Twitter, OpenWeatherMap), открытые данные правительств.</p><p>Примеры проектов для портфолио:</p><ul><li>Анализ розничных продаж с прогнозом на следующий квартал</li><li>Исследование факторов, влияющих на отток клиентов</li><li>Дашборд с метриками сайта (трафик, конверсия, источники)</li><li>A/B-тест изменения на сайте с расчётом статистической значимости</li></ul><p><b>Структура портфолио-проекта на GitHub:</b></p><p>project-name/</p><p>├── README.md (описание, цели, выводы)</p><p>├── data/ (сырые данные или ссылки)</p><p>├── sql/ (SQL-скрипты для выгрузки)</p><p>├── notebooks/ (Jupyter-ноутбуки с анализом)</p><p>├── dashboards/ (скриншоты или файлы BI)</p><p>└── docs/ (дополнительная документация)</p><p>Для каждого проекта — описание задачи, ход решения, выводы и рекомендации. Оформите на GitHub или в Jupyter-ноутбуке.</p><h4>Шаг 5: Подготовьтесь к собеседованию и начните поиск</h4><p><b>Алгоритм:</b></p><ol><li>База SQL/статистики — решайте задачи на LeetCode/HackerRank</li><li>Разбор кейсов — подготовьте истории из портфолио в формате STAR (Situation, Task, Action, Result)</li><li>Мок-интервью — потренируйтесь с друзьями или менторами</li><li>Вакансиймейкинг — откликайтесь на позиции junior/стажёр, не бойтесь отказов</li></ol><p><b>Типичные вопросы на собеседовании:</b></p><ul><li>Как посчитать median через SQL без функции MEDIAN?</li><li>Объясните разницу между LEFT JOIN и INNER JOIN</li><li>Как проверить, значимо ли отличие конверсий в A/B-тесте?</li><li>Расскажите про ваш проект из портфолио</li></ul><h3>15 типовых вопросов для подготовки</h3><h4>SQL</h4><p>1. Как вывести топ-3 товара по продажам за последний месяц?</p><p>2. В чём разница между HAVING и WHERE?</p><p>3. Что такое оконные функции и когда они нужны?</p><h4>Статистика</h4><p>4. Что такое p-value и как его интерпретировать?</p><p>5. В чём разница между корреляцией и причинно-следственной связью?</p><p>6. Как рассчитать размер выборки для A/B-теста?</p><h4>Продукт и метрики</h4><p>7. Как посчитать retention 7-го дня?</p><p>8. Что такое когортный анализ?</p><p>9. Чем отличается MAU от DAU?</p><h4>Практические кейсы</h4><p>10. Конверсия в оформление заказа упала на 20%. С чего начнёте?</p><p>11. Как проверить, что новая фича увеличила время в приложении?</p><p>12. Как определить, какой канал трафика самый выгодный?</p><h4>Визуализация</h4><p>13. Когда использовать столбчатую диаграмму, а когда — линейный график?</p><p>14. Как построить дашборд для CEO?</p><p>15. Что такое dashboard fatigue и как его избежать?</p><h2>Плюсы и минусы профессии аналитика данных</h2><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-12-16/5215baf9-1478-4ea6-b5bc-95f15e47f88f.jpg" alt="" /></figure><h2>Типичный рабочий день аналитика данных</h2><p><b>Утро (9:00–11:00): </b>Синхронизация с командой (стендап/созвон), проверка алертов по метрикам. Если что-то упало или выросло аномально — копаем причины.</p><p><b>До обеда (11:00–14:00):</b> SQL/Python, подготовка данных, краткий исследовательский анализ (EDA). Проверка гипотезы из вчерашнего дня: ""А правда ли новая версия приложения повлияла на конверсию?""</p><p><b>После обеда (14:00–17:00): </b>Визуализация в BI-системе, подготовка отчета или презентации для команды продукта. Иногда — созвон с маркетингом, где объясняешь, почему их последняя кампания не окупилась.</p><p><b>Вечер (17:00–18:00): </b>Обсуждение рекомендаций с владельцами задач (product manager, маркетологи), планирование экспериментов на следующую неделю. Запись выводов и следующих шагов в Notion/Confluence.</p><p>Конечно, каждый день — разный. Иногда весь день уходит на расследование одной аномалии в данных. Иногда — на подготовку презентации для топ-менеджмента. А иногда просто сидишь и ждёшь, пока выполнится тяжёлый SQL-запрос.</p><h2>Часто задаваемые вопросы (FAQ)</h2><h3>Нужен ли диплом программиста или математика, чтобы стать аналитиком данных?</h3><p>Нет, не обязательно. Но базовая математика и статистика — обязательны. Диплом можно компенсировать портфолио проектов, курсами и реальным опытом работы. Работодатели смотрят на навыки, а не на корочки.</p><h3>Можно ли войти в профессию после 30 или 40 лет?</h3><p>Да, абсолютно. Рынок ценит опыт в предметной области (финансы, логистика, маркетинг), системное мышление и результаты. Возраст — не барьер, если есть мотивация и готовность учиться.</p><p>Многие успешные аналитики пришли в профессию после 35, имея опыт в совершенно других сферах — и это стало их преимуществом, потому что они лучше понимают бизнес-контекст.</p><h3>Сколько времени занимает обучение на аналитика данных?</h3><p>3–6 месяцев интенсивно с менторством (если учитесь на курсах с поддержкой) или 6–12 месяцев при самостоятельном обучении. Всё зависит от стартового уровня и времени, которое вы готовы вкладывать ежедневно (рекомендуется 8–10 часов в неделю).</p><p>Если у вас есть техническое образование или опыт работы с Excel/SQL — будет быстрее. Если начинаете с нуля — запаситесь терпением и дисциплиной.</p><h3>Где аналитику-новичку искать первую работу?</h3><p>Стажировки, junior-вакансии (на hh.ru, LinkedIn), проектная работа, фриланс-проекты на Upwork/Kwork. Упор на портфолио и пет-проекты — покажите, что вы умеете делать.</p><p>Не бойтесь отказов. Первые 10-20 откликов могут остаться без ответа — это нормально. Продолжайте учиться, дорабатывайте портфолио, пробуйте снова.</p><p><b>Также полезно:</b></p><ul><li>Участвовать в хакатонах и data-челленджах</li><li>Публиковать анализы на GitHub/Kaggle</li><li>Писать статьи на Habr/Medium о своих проектах</li><li>Нетворкинг в профессиональных комьюнити (митапы, Telegram-чаты)</li></ul><h3>Нужен ли английский язык?</h3><p>Для чтения технической документации желателен уровень Pre-Intermediate (A2-B1). Многие библиотеки, фреймворки и best practices описаны на английском. Для работы в международных компаниях потребуется уровень Intermediate (B1-B2) и выше.</p><h2>Заключение</h2><p>Аналитик данных — профессия для тех, кто любит копаться в цифрах, задавать вопросы и искать ответы. Не просто ""человек с Excel"", а специалист, который помогает бизнесу принимать обоснованные решения и расти.</p><p>В 2025 году спрос на аналитиков продолжает расти вместе с объёмами данных. Зарплаты достойные, перспективы — широкие (можно расти вертикально до Head of Analytics или горизонтально в Data Science/Product Management).</p><p>Чтобы стать аналитиком данных с нуля, нужно освоить SQL, Python, статистику, BI-инструменты, собрать портфолио и научиться объяснять выводы простым языком. Это реально за 6-12 месяцев при должной мотивации.</p><p>Да, будут сложности: рутина с очисткой данных, ответственность за правильность выводов, необходимость постоянно учиться. Но если вам нравится разбираться в сложном и влиять на решения — эта профессия для вас.</p><p><b>Что делать в ближайшие 30 дней:</b></p><ol><li>Пройдите бесплатный вводный модуль курса по аналитике данных</li><li>Решите 5-10 задач по SQL на LeetCode/HackerRank</li><li>Выберите публичный датасет на Kaggle и попробуйте сделать простой анализ</li><li>Создайте репозиторий на GitHub для своих проектов</li><li>Вступите в 2-3 Telegram-чата для аналитиков</li><li>Прочитайте "Статистика и котики" или "Naked Statistics"</li></ol><p>Начните с малого: пройдите бесплатный курс по SQL, попробуйте проанализировать открытый датасет, соберите первый дашборд. Через несколько месяцев вы удивитесь, как далеко продвинулись.</p><p>Удачи! И помните: каждый эксперт когда-то был новичком, который не знал разницы между LEFT JOIN и INNER JOIN.</p><p><i>Ерид: 2SDnjcnJk3q РД: ОАНО ДПО «СКАЕНГ» ИНН 9709022748</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Uber запустил подработку для водителей: разметка данных ИИ</title>
      <link>https://tproger.ru/news/uber-prevrashhaet-voditelej-v-data-lejblerov-ii--pilot-v-indii</link>
      <comments>https://tproger.ru/news/uber-prevrashhaet-voditelej-v-data-lejblerov-ii--pilot-v-indii?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/uber-prevrashhaet-voditelej-v-data-lejblerov-ii--pilot-v-indii</guid>
      <description><![CDATA[<p>Uber запустил пилот в 12 городах Индии: водители размечают данные для ИИ прямо в приложении, получая допдоход. Инициатива Uber AI Solutions может масштабироваться глобально.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/uber-prevrashhaet-voditelej-v-data-lejblerov-ii--pilot-v-indii">Uber запустил подработку для водителей: разметка данных ИИ</a>»</p>]]></description>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 08 Sep 2025 14:17:50 GMT</pubDate>
      <content:encoded><![CDATA[<p>В Uber <a href="https://m.economictimes.com/tech/artificial-intelligence/uber-offers-driver-partners-a-side-hustle-ai-data-labelling/amp_articleshow/123684094.cms">решили</a> превратить простои своих водителей в новый источник дохода. Компания запустила пилотную программу в 12 индийских городах, где 1,4 млн водителей-партнёров могут выполнять микрозадачи по маркировке данных прямо в приложении Uber.</p><p>Теперь, помимо поездок, водители отмечают объекты на фотографиях, сортируют текст или классифицируют чеки для платформы Uber AI Solutions. Эти данные используются для обучения моделей ИИ в таких сферах, как генеративный AI, автономный транспорт и цифровые сервисы. Среди клиентов сервиса — Niantic и Aurora.</p><p><i>«Uber AI Solutions запускает пилотную программу в 12 городах Индии, которая позволяет водителям увеличивать свой доход, выполняя цифровые задания прямо в приложении Uber. До сих пор в Индии и других странах такие задачи, как маркировка, классификация текста, подсчёт предметов и оцифровка чеков, выполнялись независимыми подрядчиками вне приложения»,</i> — написала Мегха Йетхадка, глобальный руководитель Uber AI Solutions.</p><p>По словам главы Uber AI Solutions, программа позволяет водителям зарабатывать дополнительно во время простоев, а для Uber — расширять бизнес в области ИИ-услуг. Если пилотный проект окажется успешным, инициативу планируют вывести на другие рынки.</p><p>Рост интереса к этой сфере связан и с перестройкой рынка: после покупки Scale AI компанией Meta (запрещена в России) за $14,3 млрд многие крупные клиенты (включая Google и OpenAI) ищут альтернативных партнёров для разметки данных. Uber намерен занять освободившуюся нишу.</p>]]></content:encoded>
    </item>
    <item>
      <title>Устраиваем свой Data QA с PyTest и фикстурами</title>
      <link>https://tproger.ru/articles/kak-testirovat-perenos-i-transformaciyu-dannyh-bez-boli</link>
      <comments>https://tproger.ru/articles/kak-testirovat-perenos-i-transformaciyu-dannyh-bez-boli?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Елизавета Якушева]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-testirovat-perenos-i-transformaciyu-dannyh-bez-boli</guid>
      <description><![CDATA[<p>Рабочий подход к тестированию трансформации данных в ETL-процессах. На примере Python-проекта с pytest, allure и psycopg2 демонстрируется, как автоматизировать создание и наполнение таблиц, хранить схемы и данные, а затем сравнивать результат. </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-testirovat-perenos-i-transformaciyu-dannyh-bez-boli">Устраиваем свой Data QA с PyTest и фикстурами</a>»</p>]]></description>
      <category><![CDATA[Алгоритмы и структуры данных]]></category>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Форматы хранения данных]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 01 Sep 2025 12:00:04 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Как тестировать перенос и трансформацию данных без боли</h2><p>Я всё думаю над тем, о чём говорить на своём канале. Казалось бы, инфы в интернете — вагон и маленькая тележка: бери, читай, вдохновляйся. Но вот что удивительно — про то, как тестировать данные, как они перетекают из одной таблицы в другую и не превращаются в тыкву, пишут мало.</p><p>А зря.</p><p>За свою практику я встречала разные подходы к организации Data QA. В этой статье я расскажу про самый простой и быстрый вариант, который можно «собрать на коленке», а потом уже развивать. С примерами кода и тем, зачем SQL нам нужен в этой жизни.</p><p>И небольшой дисклеймер. Если вы знаете, как сделать это на Python стильно модно молодежно, обязательно напишите мне об этом в комментариях, я с удовольствием почитаю про ваш подход.</p><p>Также подписывайтесь на мой ТГ, который я почти не веду. <br /><br /></p><h2>Базовый сценарий</h2><ol><li>Есть таблица-источник source_table.</li><li>Разработчик запускает свой код (Spark, Airflow или что у него там), и данные магическим образом перекладываются + преобразуются.</li><li>На выходе получаем result_table.</li></ol><p>Вопрос: как это тестировать?</p><h3>Самый быстрый и простой путь</h3><p>Подготовка:</p><ol><li>Создаём таблицу-источник.</li><li>Наполняем её данными (синтетика или реальные примеры с прода).</li></ol><p>Действие:</p><ol><li>Запускаем ETL код.</li><li>Сравниваем данные «как было» и «как стало».</li></ol><p>После теста:</p><ol><li>Удаляем таблицу-источник.</li><li>Удаляем таблицу-приёмник.</li></ol><p>На коленке это можно собрать так:</p><ol><li>CREATE TABLE …</li><li>INSERT INTO …</li><li>Ручной запуск пайплайна (Spark/Airflow).</li><li>Какой-нибудь скрипт для сравнения результатов.</li></ol><p>Рабочая схема? Да.</p><p>Удобная? Нет.</p><h2>Где хранить эти скрипты?</h2><p>Можно, конечно, прилепить их к задаче в Jira в виде файликов. Но выглядеть это будет как «фигня на палке». Через месяц никто не вспомнит, что это было и зачем.</p><p>Поэтому я решила собрать свой Python-проект для автоматизации. А вы можете склепать себе такой же, и жизнь сразу станет легче.</p><h3>Архитектура проекта</h3><h3>Минимальный стек</h3><h3>1. Utils — мелкие, но полезные</h3><p>Здесь мы храним всякую мелочёвку. Например, функцию для открытия JSON:</p><p>Важно отметить, что данные я всегда стараюсь хранить в виде массива с json. Так удобнее использовать.</p><h3>2. APIClient — для триггеров</h3><p>Здесь всё максимально тривиально: клиент для вызова API и запуска ETL джоб.</p><h3>3. PostgreSQLClient — основной игрок</h3><p>Класс для подключения, запросов, создания таблиц, вставки данных и удаления.</p><h2>Фикстуры (conftest.py)</h2><h3>API фикстуры</h3><p>Я показываю пример, как поднимаю один API клиент. Но у вас их может быть много: например, разные сервисы или разные перекладчики.</p><h3>DB фикстура</h3><p>Пример для дефолтной PostgreSQL, но вы можете добавить фикстуры для поднятия GreenPlum или ClickHouse.</p><h2>Как хранить данные?</h2><p>А теперь самый сок, которым я обмазываюсь сейчас.</p><p>Конечно, можно создать отдельный скрипт на чистом sql для создания и редактирования своих табличек: больших и маленьких. Но, если честно, это так *цензура* неудобно.</p><p>Поэтому я придумала хранить схему и данные в отдельных json файлах и налету генерить скрипты. Да, Америку я вновь не открываю, и очень жаль.</p><p>В директории тестов я создала папку resources, где храню эти файлы.</p><p>Конечно, в таком виде вы не передадите ничего в Postgres и ничего не слепите. Так что я услужливо предоставляю вам код, чтобы вы его копировали и вдохновлялись.</p><p>Вы можете взять и пропихнуть эти куски кода прямо в тело теста, но я предпочитаю оборачивать это дело в фикстуры-управленцы, которые будут делать это за меня и записывать отдельными шагами в Алюр:</p><p>Отдельное удовольствие мне даёт вот эта строчка кода db_client:PostgreSQLClient.Она значит, что если так вышло, что у меня есть куча разных PostgesSql, я могу в эту фикстуру прокинуть нужный мне клиент без дополнительных приседаний. И это, конечно, прекрасно.</p><h3>Пример: подготовка данных</h3><p>Самые внимательные уже заметили, что в примере выше я поднимала postgres-клиента.</p><p>Так что разницы почти никакой (ну, кроме тех случаев, когда внезапно очень даже есть 🙃).</p><h3>И сам тест</h3><p>Конечно, можно сравнивать всё это дело через всякие прослойки типа Pandas.</p><p>Но, камон, у меня что, куча времени сидеть, читать доки и писать суперсложные датафреймы ради пары простых проверок? Нет.</p><p>Позвольте мне радостно строчить свой первозданный код с дефолтными проверками и быть довольной этим минимализмом.</p><p>Это я отвлеклась. Вот такой код у меня получается. Я не очень люблю сверять даты и названия таблиц, у меня генерит тест на лету:</p><h2>Итог</h2><ul><li>Ручные скрипты → боль и страдания.</li><li>Автоматизация через Python+pytest → быстро, удобно, воспроизводимо.</li><li>JSON-файлы позволяют хранить схемы и данные в читаемом виде.</li><li>Allure даёт красивые отчёты.</li></ul><p>В итоге у вас появляется настоящий фреймворк для Data QA, который легко расширять и масштабировать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Газпромбанк.Тех и Научно-технологический университет «Сириус» запускают интенсив по анализу данных и машинному обучению</title>
      <link>https://tproger.ru/news/gazprombank-teh-i-nauchno-tehnologicheskij-universitet--sirius--zapuskayut-intensiv-po-analizu-dannyh-i-mawinnomu-obucheniyu</link>
      <comments>https://tproger.ru/news/gazprombank-teh-i-nauchno-tehnologicheskij-universitet--sirius--zapuskayut-intensiv-po-analizu-dannyh-i-mawinnomu-obucheniyu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/gazprombank-teh-i-nauchno-tehnologicheskij-universitet--sirius--zapuskayut-intensiv-po-analizu-dannyh-i-mawinnomu-obucheniyu</guid>
      <description><![CDATA[<p>Газпромбанк.Тех совместно с Научно-технологическим университетом «Сириус» объявляет о старте отбора на образовательный интенсив для будущих специалистов в области анализа данных и машинного обучения. Участие в программе полностью бесплатное.  </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/gazprombank-teh-i-nauchno-tehnologicheskij-universitet--sirius--zapuskayut-intensiv-po-analizu-dannyh-i-mawinnomu-obucheniyu">Газпромбанк.Тех и Научно-технологический университет «Сириус» запускают интенсив по анализу данных и машинному обучению</a>»</p>]]></description>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Обучающие курсы]]></category>
      <category><![CDATA[Образование]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 15 Aug 2025 17:36:42 GMT</pubDate>
      <content:encoded><![CDATA[<p>Газпромбанк.Тех совместно с Научно-технологическим университетом «Сириус» объявляет о старте отбора на образовательный интенсив для будущих специалистов в области анализа данных и машинного обучения. Участие в программе полностью бесплатное.</p><p>В рамках интенсива участники получат возможность освоить ключевые инструменты современного аналитика: язык программирования Python и популярные библиотеки для работы с данными, включая pandas, scikit-learn и streamlit. Особое внимание будет уделено машинному обучению и разработке минимально жизнеспособных продуктов (MVP) для решения реальных бизнес-задач.</p><p>Программа построена вокруг практической работы с актуальными кейсами Газпромбанка. Студенты смогут попробовать свои силы в прогнозировании просрочек, скоринге клиентов, создании персональных продуктовых рекомендаций, оценке малоликвидных активов и анализе текстовых отзывов с использованием методов NLP.</p><p>К участию приглашаются студенты 3–4 курсов, интересующиеся математическим моделированием и анализом данных. От кандидатов ожидается знание основ Python, базовый опыт работы с машинным обучением и владение английским языком на уровне Intermediate и выше.</p><p>Организаторы берут на себя все расходы по обучению, проживанию и питанию участников. Проезд до места проведения интенсива оплачивается самостоятельно или за счет учебного заведения. Наиболее успешные выпускники получат возможность присоединиться к команде Газпромбанка.</p><p>Программа стартует в декабре 2025 года. Подать заявку можно до 10 сентября. Подробная информация и регистрация доступны на <a href="https://siriusuniversity.ru/admission/educational-modules-and-activities/informatsionnie-tehnologii-i-iskusstvennii-intellekt/nauchno-prakticheskiy-intensiv-po-analizu-dannykh-i-modelirovaniyu/">сайте университета</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Волны автоматизации в IT: эволюция требований рынка</title>
      <link>https://tproger.ru/articles/volny-avtomatizacii-v-it--evolyuciya-trebovanij-rynka</link>
      <comments>https://tproger.ru/articles/volny-avtomatizacii-v-it--evolyuciya-trebovanij-rynka?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Владимир Бурмистров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/volny-avtomatizacii-v-it--evolyuciya-trebovanij-rynka</guid>
      <description><![CDATA[<p>Развитие ИТ с 1950 до наших дней рассмотрим 5 волн развития, что было со специалистами и технологиями. Попробуем угадать тренды и сделать рекомендации по развитию</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/volny-avtomatizacii-v-it--evolyuciya-trebovanij-rynka">Волны автоматизации в IT: эволюция требований рынка</a>»</p>]]></description>
      <category><![CDATA[Системный анализ]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Бизнес-аналитика]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 10 Aug 2025 10:00:04 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Введение: цикличность технологических революций</h2><p>История IT представляет собой череду волн автоматизации, каждая из которых радикально меняла требования рынка и подходы к разработке. Эти волны не просто внедряли новые технологии — они трансформировали бизнес-модели, создавали новые профессии и переопределяли ценность специалистов. Предлагаю исторически взглянуть на роль аналитиков и трансформацию их роли и задач</p><h2>1. Первая волна (1950-1970): автоматизация вычислений и зарождение системного анализа</h2><p>Технологический ландшафт:</p><ul><li>Мейнфреймы и перфокарты.</li></ul><ul><li>Языки программирования низкого уровня (COBOL, Fortran). Первые базы данных (IBM IMS, 1966)</li></ul><p>Требования рынка:</p><ul><li>В эту эпоху IT был уделом узких специалистов — инженеров, способных «общаться» с машинами на их языке. Ключевым требованием было глубокое понимание аппаратной части и умение оптимизировать крайне ограниченные вычислительные ресурсы.</li></ul><p>IT-рынок труда:</p><ul><li>Крайне узкий сегмент, доступный только специалистам с инженерным образованием.</li></ul><ul><li>Практически отсутствует конкуренция за рабочие места — спрос значительно превышает предложение.</li></ul><ul><li>Зарплаты в 2-3 раза выше средних по экономике (аналогично современным «золотым воротничкам»).</li></ul><p>Появление аналитиков:</p><ul><li>Прообразом современных аналитиков стали «системные аналитики», которые переводили бизнес-задачи на язык машинных инструкций. Их роль была технической — декомпозиция задач для программистов. Анализ ограничивался оптимизацией алгоритмов и распределением памяти.</li></ul><ul><li>Пример: В банковском секторе системные аналитики проектировали схемы обработки транзакций, сократив время операций с дней до часов.</li></ul><h2>2. Вторая волна (1970-1990): децентрализация и первые корпоративные системы</h2><p>Технологические прорывы:</p><ul><li>Персональные компьютеры</li><li>Электронные таблицы (VisiCalc)</li><li>Прообразы CRM (ACT! 1987)</li><li>Начало ERP-систем (SAP R/2)Требования рынка:</li><li>Умение адаптировать технологии для бизнес-пользователей</li><li>Развитие интерфейсов «человек-машина»</li><li>Понимание основ бизнес-процессов</li><li>IT-рынок труда:</li><li>Появление массового спроса на IT-специалистов в бизнесе</li><li>Формирование «рынка кандидата» — компании конкурируют за ограниченное число специалистов</li><li>Зарождение IT-рекрутинга как отдельного направления</li><li>Начало гендерного дисбаланса — доля женщин в IT падает с 30-40% до 15-20%</li><li>Выпускники компьютерных специальностей получали 2-3 оффера до окончания вузаЭволюция анализа:</li><li>Появление «бизнес-аналитиков» как моста между IT и менеджментом</li><li>Аналитики начинают работать с требованиями стейкхолдеров</li><li>Возникает необходимость в первичной документации процессов</li><li>Формируются первые методики сбора требованийПример: Внедрение Excel потребовало от аналитиков не только технических навыков, но и понимания финансовых моделей, что сократило ошибки в расчетах на 90%.</li></ul><p>IT-рынок труда:</p><ul><li>Появление массового спроса на IT-специалистов в бизнесе</li><li>Формирование «рынка кандидата» — компании конкурируют за ограниченное число специалистов</li><li>Зарождение IT-рекрутинга как отдельного направления</li><li>Начало гендерного дисбаланса — доля женщин в IT падает с 30-40% до 15-20%</li><li>Выпускники компьютерных специальностей получали 2-3 оффера до окончания вуза</li></ul><p>Эволюция анализа:</p><ul><li>Появление «бизнес-аналитиков» как моста между IT и менеджментом</li><li>Аналитики начинают работать с требованиями стейкхолдеров</li><li>Возникает необходимость в первичной документации процессов</li><li>Формируются первые методики сбора требованийПример: Внедрение Excel потребовало от аналитиков не только технических навыков, но и понимания финансовых моделей, что сократило ошибки в расчетах на 90%.</li></ul><h2>3. Третья волна (1990-2010): интернет-революция и комплексные системы</h2><p>Ключевые технологии:</p><ul><li>CRM (Salesforce)</li><li>WMS (Manhattan Associates)</li><li>Полноценные ERP (SAP R/3)</li><li>Веб-технологии</li></ul><p>Требования рынка:</p><ul><li>Требования рынка:</li><li>Интеграционные компетенции</li><li>Понимание сквозных бизнес-процессов</li><li>Управление сложными проектами</li><li>Работа с большими объемами данныхIT-рынок труда:</li><li>Взрывной рост спроса на веб-разработчиков (до +400% за 1995-2000 гг.)</li><li>Формирование глобального аутсорсинга (Индия, Восточная Европа)</li><li>Появление «звездных» зарплат в Кремниевой долине (первые миллионные пакеты)</li><li>Начало «войны за таланты» — компании внедряют реферальные программы и опционыРасцвет аналитиков:</li><li>Аналитики становятся архитекторами бизнес-процессов</li><li>Появление специализаций: бизнес-аналитики, системные аналитики, data-аналитики</li><li>Критическая важность моделирования процессов и данных</li><li>Развитие UML и других стандартов визуализацииПример: Внедрение WMS в Amazon сократило время сборки заказов с 3 часов до 30 минут благодаря глубокому анализу логистических цепочек.</li></ul><p>IT-рынок труда:</p><ul><li>Взрывной рост спроса на веб-разработчиков (до +400% за 1995-2000 гг.). Формирование глобального аутсорсинга (Индия, Восточная Европа).</li></ul><ul><li>Появление «звёздных» зарплат в Кремниевой долине (первые миллионные пакеты).</li></ul><ul><li>Начало «войны за таланты» — компании внедряют реферальные программы и опционы.</li></ul><p>Расцвет аналитиков:</p><ul><li>Аналитики становятся архитекторами бизнес-процессов.</li></ul><ul><li>Появление специализаций: бизнес-аналитики, системные аналитики, data-аналитики.</li></ul><ul><li>Критическая важность моделирования процессов и данных.</li></ul><ul><li>Развитие UML и других стандартов визуализации</li></ul><ul><li>Пример: Внедрение WMS в Amazon сократило время сборки заказов с 3 часов до 30 минут благодаря глубокому анализу логистических цепочек.</li></ul><h2>4. Четвертая волна (2010-2020): Big Data и гиперавтоматизация</h2><p>Технологические тренды:</p><ul><li>Облачные CRM.</li><li>AI в WMS.</li><li>RPA (UiPath).</li><li>Платформы аналитики</li></ul><p>Требования рынка:</p><ul><li>Работа с неструктурированными данными.</li><li>Навыки предиктивной аналитики.</li><li>Интеграция AI/ML в бизнес-процессы.</li><li>Управление цифровыми продуктами.</li></ul><p>IT-рынок труда:</p><ul><li>Острейший дефицит Data Scientists (соотношение вакансий к кандидатам 5:1).</li></ul><ul><li>Массовый переход на удаленный формат (до 60% IT-специалистов работают удалённо).</li></ul><ul><li>Резкий рост зарплат в AI/ML (до $300-500 тыс. в FAANG). Появление «цифровых кочевников» — глобальная конкуренция за топ-специалистов.</li></ul><ul><li>Забавный факт: в 2019 году 43% IT-специалистов меняли работу ежегодно ради 20-30% прироста зарплаты</li></ul><p>Трансформация аналитики:</p><ul><li>Аналитики осваивают Data Science.</li></ul><ul><li>Появление «цифровых двойников» бизнес-процессов.</li></ul><ul><li>Активное использование имитационного моделирования.</li></ul><ul><li>Смещение фокуса на customer journey и UX.</li></ul><ul><li>Пример: ИИ-аналитика в CRM повысила точность прогноза продаж на 40% благодаря работе аналитиков с алгоритмами машинного обучения.</li></ul><h2>5. Пятая волна (2020-наше время): Agentic AI и автономные системы</h2><p>Современные технологии:</p><ul><li>Автономные ИИ-агенты.</li><li>Генеративный ИИ.</li><li>Квантовые вычисления.</li><li>Гиперсинтетические данные.</li></ul><p>Требования рынка:</p><ul><li>Требования рынка:</li><li>Управление ИИ-системами</li><li>Этика искусственного интеллекта</li><li>Работа в гибридных (человек+ИИ) командах</li><li>Непрерывная адаптация к меняющимся технологиям.</li></ul><p>Текущее состояние рынка:</p><ul><li>Резкое охлаждение: в 2023-2024 массовые увольнения в Big Tech (Meta -11%, Google -6%).</li></ul><ul><li>Конкуренция на позиции Junior: 8 резюме на 1 вакансию (против 1:3 в 2021).</li></ul><ul><li>Снижение зарплат на 30% для новых сотрудников.</li></ul><ul><li>Критический спрос на AI/ML-специалистов (+40% вакансий в 2024). При общем спаде, 72% компаний испытывают сложности с наймом senior-специалистов.</li></ul><p>Роль аналитиков сегодня:</p><ul><li>Аналитики становятся «тренерами ИИ», формируя промпты и обучающие наборы. Критически важны навыки валидации решений ИИ.</li></ul><ul><li>Управление «цифровой экологией» — балансом между автоматизацией и контролем. Разработка онтологий для Agentic AI.</li></ul><ul><li>Инсайт: по данным исследований, 72.3% команд уже активно используют ИИ в тестировании, а ESB-платформы с low-code инструментами сокращают потребность в junior-разработчиках на 50%.</li></ul><h2>Будущее (2025-2030): что потребует рынок?</h2><p>Прогнозируемые тренды:</p><ol><li>Полная автономность: ИИ-агенты будут самостоятельно проводить анализ требований и адаптировать системы, но потребуют «наблюдателей» из числа аналитиков.</li><li>Живая аналитика: системы реального времени с прогнозными возможностями станут стандартом, увеличивая спрос на аналитиков-интерпретаторов.</li><li>Этическая автоматизация: возникнет новая специализация — аудиторы алгоритмов и цифровых процессов.</li><li>Гибридные навыки: аналитики будущего будут сочетать технические компетенции с психологией и философией.</li><li>Персонализация в масштабе: как отмечают эксперты, в 2025 году маркетинговая аналитика достигнет уровня, когда контент будет динамически адаптироваться даже под настроение пользователя.</li></ol><p>Роль аналитиков в 2030:</p><ul><li>Архитекторы цифровых экосистем: проектирование взаимодействий между автономными агентами</li><li>Кураторы данных: обеспечение качества информации для ИИ</li><li>Послы цифровой этики: контроль за соблюдением моральных норм в автоматизированных системах</li><li>Трансляторы смыслов: интерпретация решений ИИ для человека</li></ul><h2>Будущее (2025-2030): прогнозы по рынку труда</h2><ol><li>Поляризация спроса: сокращение junior-позиций на 50% из-за low-code/AIРост потребности в senior+ на 35% (центры компетенций).</li><li>Сокращение junior-позиций на 50% из-за low-code/AI.</li><li>Рост потребности в senior+ на 35% (центры компетенций).</li></ol><p>Новые профессии:</p><ol><li>Новые профессии: Промпт-инженеры (ожидается 1 млн вакансий к 2027)AI-аудиторы (законодательные требования).</li><li>Цифровые этики (контроль bias в алгоритмах).</li><li>AI-аудиторы (законодательные требования).</li></ol><p>Геополитический фактор:</p><ul><li>Локализация IT-кадров (снижение офшоринга на 25%).</li></ul><ul><li>Рост региональных хабов (Казань, Новосибирск, Екатеринбург). Локализация IT-кадров (снижение офшоринга на 25%).</li></ul><ul><li>Рост региональных хабов (Казань, Новосибирск, Екатеринбург).</li></ul><ul><li>Экспертная оценка: «Рынок переходит от количественного роста к качественному отбору — востребованы будут только T-shaped специалисты».</li></ul><h2>Аналитический вывод: цикличность рынка</h2><p>История показывает три ключевых паттерна:</p><ol><li>Каждая технологическая волна сначала создает дефицит кадров, затем их избыток.</li><li>Автоматизация сокращает рутинные позиции, но многократно увеличивает ценность экспертизы.</li><li>«Золотой век» любой IT-специальности длится 7-10 лет, требуя постоянного переобучения</li><li>Рекомендация для специалистов — фокусироваться на развитии:</li></ol><ul><li>Гибких навыков (критическое мышлени, креативность)</li><li>Доменной экспертизы (глубокая отраслевая специализация)</li><li>Навыков работы с AI-инструментами</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>С чего начать карьеру в ML в 2025: инструменты, навыки, практика</title>
      <link>https://tproger.ru/articles/s-chego-nachat-kareru-v-ml-v-2025--instrumenty--navyki--praktika</link>
      <comments>https://tproger.ru/articles/s-chego-nachat-kareru-v-ml-v-2025--instrumenty--navyki--praktika?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Диана Тажетдинова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/s-chego-nachat-kareru-v-ml-v-2025--instrumenty--navyki--praktika</guid>
      <description><![CDATA[<p>Хотите войти в ML в 2025 году? Рассказываем, как не утонуть: какие инструменты нужны, на чём писать, как учиться, что тренировать, куда выкладывать и где искать задачи.

</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/s-chego-nachat-kareru-v-ml-v-2025--instrumenty--navyki--praktika">С чего начать карьеру в ML в 2025: инструменты, навыки, практика</a>»</p>]]></description>
      <category><![CDATA[Обучение программированию]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Планы обучения]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 31 Jul 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Машинное обучение в 2025 году — это быстро меняющийся стек, десятки новых библиотек и постоянное ощущение, что вы не успеваете. Старт похож на вход в лабиринт: стены высокие, где-то притаились баги, а на карте нет подсказок.</p><p>В статье расскажем, с чего начать тем, кто хочет зайти в ML с практической стороны. Дадим информацию о стеке, который используется в реальных проектах и поможет собрать свой первый рабочий ML-сервис.</p><h2>Сначала выберитесь из симулятора</h2><p>Начинать сразу с нейросети — это как пытаться собрать космический корабль, когда ещё не знаешь, как держать отвёртку. Если сразу нырять в модели, как делают на многих курсах, то совсем скоро наступает эффект симулятора. Вы отлично справляетесь в учебной среде, но стоит попытаться применить всё в реальной системе, как внезапно ничего не работает. Как будто учились водить на автодроме, а потом выехали в час пик на МКАД.</p><blockquote>Если вы правда хотите зайти в ML, начните не с курсов, а с вопроса — что это вообще за область? В 2025 году машинное обучение — это десятки направлений, а не просто учим Python и запускаем GPT.</blockquote><p>Многие новички кидаются в ML, потому что это тренд. Потом сталкиваются с тем, что у них всё лагает. Чтобы избежать этого, нужна база — научиться писать нормальный код и читать чужой. Другими словами, стать крепким инженером-программистом.</p><p>Это не обязательно человек с дипломом MIT и 10 годами в FAANG. В первую очередь, это разработчик, который умеет думать системно и собирать рабочие решения.</p><p>Вот его ключевые харды:</p><ul><li>умеет строить сервисы — разбирается, как модули общаются друг с другом;</li><li>дебажит код — понимает, где и почему всё лажает;</li><li>пишет тесты, чистый код, умеет проводить код-ревью;</li><li>владеет Git и CI/CD;</li><li>понимает, как автоматизировать запуск и деплой моделей в продакшн.</li></ul><p>В реальных ML-проектах модель — это лишь одна часть системы. Чаще всего модель должна работать внутри веб-сервиса, обрабатывать реальные данные, взаимодействовать с другими модулями, логировать ошибки и масштабироваться под нагрузкой. Именно здесь вступает в игру инженер.</p><figure><img src="https://media.tproger.ru/user-uploads/114509/2025-07-25/c8896e8c-3ba9-4278-94e9-bcedeecfb455.jpeg" alt="" /></figure><p>По данным <a href="http://365datascience.com/career-advice/data-scientist-job-market">исследования</a> 365 Data Science, в 78% вакансий data scientist в 2023 году требовался Python, а в 2024‑м — в 57%. Python — это универсальный язык для всего ML-стека: от загрузки данных и визуализации до построения нейросетей и взаимодействия с API. Его поддерживают почти все библиотеки в ML. Легко подключить нужные инструменты, а не писать код с нуля. Например:</p><ul><li>scikit-learn — простая и понятная библиотека для классических моделей (логистическая регрессия, деревья решений).</li><li>PyTorch и TensorFlow — два основных фреймворка для работы с нейросетями. Они позволяют строить простые модели для начинающих и сложные, многослойные архитектуры для продвинутых задач.</li><li>Hugging Face Transformers — библиотека с готовыми моделями, которые умеют работать с текстом (например, перевод, суммаризация, генерация).</li><li>LangChain — инструмент, который помогает собирать ассистентов на базе языковых моделей.</li></ul><p>Если вы знаете Python, можете взять любую из этих библиотек и сразу пробовать писать код.</p><p>Чтобы комфортно работать с ML-инструментами, важно уверенно обращаться с базовыми возможностями языка. Это нужно, чтобы не спотыкаться о синтаксис и не тратить время на борьбу с окружением:</p><ul><li>Писать чистые функции и классы, использовать list comprehensions — чтобы ваш код легко могли читать другие, и он не превращался в кашу при росте проекта.</li><li>Работать с pip и виртуальными окружениями (venv, poetry) — чтобы проекты не конфликтовали между собой, а зависимости не ломались при каждом обновлении.</li><li>Читать и использовать чужой код, особенно в open source — потому что почти всё в ML строится на готовых библиотеках и чужих решениях. Понимать чужой код — значит, адаптировать, дебажить и развивать решения быстрее.</li></ul><p>C++ встречается гораздо реже — например, в проектах, связанных с оптимизацией скорости работы модели, inference на edge-устройствах или в библиотечном ядре фреймворков. Это уровень хард, где начинающим пока делать нечего.</p><h2>Что поможет выжить: теория без перегруза</h2><p>Машинное обучение — это прикладная статистика и немного линейной алгебры. Не нужно знать всё, чтобы начать. Нужно разобраться в основах, чтобы понимать, что вообще происходит в модели и почему она работает:</p><ul><li><b>Что такое модель.</b> Это формула или набор правил, которые помогают находить закономерности в данных — например, отличать спам от нормальных писем.</li><li><b>Как она учится.</b> Модель смотрит на примеры из прошлого — обучающую выборку. Она подбирает внутренние параметры и учится предсказывать результат. После этого модель нужно проверить на новых данных, чтобы понять, не переучилась ли она. Если слишком точно запомнила обучающие примеры, может угадывать, вместо того, чтобы выявлять общие закономерности. Такая модель отлично работает на старых данных, но даёт много ошибок на новых — это и называется переобучением (overfitting).</li><li><b>Почему accuracy = 99% — не всегда хорошо.</b> Допустим, у вас 99% нормальных отзывов и 1% фейков. Модель, которая всегда отвечает «всё нормально», покажет 99% точности — но не найдёт ни одного фейка. Поэтому важны другие метрики: precision — точность срабатываний, recall — насколько хорошо находит редкости, F1-score — баланс между ними.</li><li><b>Что такое трансформеры и эмбеддинги.</b> Трансформеры — архитектура нейросетей, которая хорошо работает с текстами. Эмбеддинги — способ превращать текст или объекты в набор чисел, с которыми можно работать как с векторами. Например, GPT — это трансформер с эмбеддингами.</li><li><b>Где грань между знанием и применением.</b> Вы не обязаны самостоятельно выводить формулы, но нужно понимать: модель может ошибаться. В идеале ещё хорошо бы знать, как это проверить.</li></ul><p>В комментариях дадим ссылки на бесплатные онлайн-курсы по ML, подходящие для быстрого старта.</p><h2>Как работает обученная модель — заглянем под капот ML-проектов</h2><p>Обучить модель — это только половина дела. Чтобы она действительно приносила пользу, её нужно обернуть в сервис и внедрить в продуктовую цепочку. Здесь начинается работа с инфраструктурой. Вот как это выглядит на практике:</p><ul><li><b>API </b>— кнопка «позвать модель» в сервисе. Без неё никто не сможет использовать продукт. Например, фрейм FastAPI помогает обернуть модель в веб-приложение, чтобы она принимала запросы через интернет.</li><li><b>Docker</b> — контейнер, в который вы собираете всю модель, зависимости и окружение. Благодаря этому код работает одинаково у вас на ноутбуке и у коллеги в облаке.</li><li><b>Облачные сервисы типа AWS, GCP и Kubernetes</b> — позволяют автоматически запускать и масштабировать модели в продакшене. Если у вас тысячи пользователей, система сама создаст нужное количество копий модели и будет следить, чтобы всё работало.</li><li><b>Очереди и базы данных (Kafka, Redis, PostgreSQL)</b> — позволяют обмениваться данными между частями системы. Kafka принимает потоки данных в реальном времени, Redis — быстро отдаёт часто запрашиваемое.</li><li><b>Мониторинг и логирование (OpenTelemetry, Grafana, Sentry)</b> — чтобы понимать, когда модель ломается, тормозит или начинает давать странные ответы.</li><li><b>CI/CD</b> — чтобы можно было обновлять модель и код автоматически. Например, после пуша в GitHub система сама собирает и выкатывает новую версию.</li><li><b>Хранилища артефактов (MLflow, Weights &amp; Biases)</b> — журналы экспериментов. Они позволяют отслеживать, какая модель была обучена, на каких данных, с какими параметрами и как себя вела.</li></ul><p><a href="https://wallarooai.medium.com/why-ml-models-rarely-reaches-production-and-what-you-can-do-about-it-4e40747c9e95">По данным Wallaroo.AI</a>, путь от модели до продакшена в компаниях обычно занимает от 31 до 90 дней, а иногда — больше года. Только 13% моделей доходят до боевого запуска. Всё из-за того, что инфраструктура сложнее, чем сама модель.</p><figure><img src="https://media.tproger.ru/user-uploads/114509/2025-07-25/da481064-f5d5-4f9c-ac2f-9f01258dc4d9.png" alt="" /><figcaption>На что уходят время и усилия при работе над ML-проектом</figcaption></figure><h2>Соберите агента из кубиков</h2><p>Многие не тренируют свои модели с нуля, а используют LLM (large language model). Это большие языковые модели, обученные на огромных объёмах текста. Они понимают человеческий язык и генерируют его сами. Для обращения к модели нужен API, как канал связи с мозгом. Вы пишете запрос, она отвечает.</p><p>Примеры популярных LLM:</p><ul><li>GPT (Open AI)</li><li>Claude (Ahtropic)</li><li>Llama (Meta*)</li><li>Gemini (Google)</li></ul><p><i>*Meta признана экстремистской организацией и запрещена в России</i></p><p>А если вы хотите, чтобы бот делал цепочку действий, нужен LangGraph. Это библиотека, которая собирает многошаговые сценарии. Например, пользователь пишет в чат: «Помоги написать жалобу в банк».</p><p>Что делает агент:</p><ol><li>Определяет суть запроса.</li><li>Запрашивает пользовательские данные.</li><li>Подставляет шаблон.</li><li>Формирует письмо.</li><li>Возвращает готовый текст.</li></ol><p>Аналогично можно строить агентов для поддержки, ассистентов, генераторов контента.</p><figure><img src="https://media.tproger.ru/user-uploads/114509/2025-07-25/6982b56b-cde9-470d-a433-64f698279aef.png" alt="" /><figcaption>Из чего состоит AI-агент</figcaption></figure><h2>Как не потеряться в AI-шуме</h2><p>Каждую неделю появляются десятки новых инструментов, библиотек, фреймворков. Это создаёт иллюзию: «чтобы не отстать, надо учить всё».</p><p>Чтобы не страдать от FOMO (fear of missing out) — страха пропустить что-то важное:</p><ul><li>Следите за 2–3 проверенными источниками</li><li>Не скачивайте каждый новый хайповый инструмент — спросите себя: «Я это реально буду использовать?»</li><li>Не гонитесь за громкими названиями (AutoGPT, Agentic Framework, Prompt Flow), потому что они приходят и уходят.</li></ul><p>Лучше знать, как стабильно задеплоить простую модель, чем разобраться в десятке фреймворков, которыми никто не пользуется.</p><p>Полезные источники:</p><ul><li>Блоги и сайты: OpenAI, Google DeepMind, Hugging Face, KDnuggets, The Gradient, MarkTechPost, Distill</li><li>Рассылки: The Rundown AI, TLDR AI, Ben’s Bites, The Batch, Import AI</li><li>Telegram-каналы: Chat GPT, DeepLearning_ai, Machine Learning, Data Science Info</li></ul><p>Подпишитесь на пару из каждой категории, чтобы оставаться в курсе, но не утонуть в потоке.</p><figure><img src="https://media.tproger.ru/user-uploads/114509/2025-07-25/f04b0cb1-cd14-4346-be21-0f55a4fee741.jpeg" alt="" /></figure><h2>Хватит читать туториалы — пора наступать на грабли</h2><p>Самый важный навык — уметь разбираться в новом. На курсах вы получаете теорию, но настоящий рост начинается, когда вы сами что-то строите.</p><p>Что можно сделать на старте:</p><ul><li>Ассистент для обработки писем с GPT + LangGraph.</li><li>Модель, которая предсказывает, когда тебе пора за кофе, по данным с ноутбука.</li><li>Классификатор отзывов на сайте + FastAPI + Docker.</li><li>Парсер, который берёт данные с сайта, и ML-модель, которая классифицирует категории.</li></ul><blockquote>Пытаться сразу охватить весь ML, особенно на старте, тяжело и вредно. Лучше выбрать конкретную область, формализовать, какие умения там нужны, и двигаться оттуда. Иначе вы рискуете знать всё понемногу, но не уметь ничего всерьёз. Даже сейчас, с появлением Foundation и Multimodal Models, нет массовых вакансий, где нужно уметь всё.</blockquote><p>Где искать задачи и проекты:</p><ul><li>GitHub. Используйте теги machine-learning, open-source, good first issue.</li><li>Kaggle, OpenML. Участвуйте в соревнованиях и совместных проектах по анализу данных.</li><li>Фриланс-биржи. На Upwork, Freelancer, PeoplePerHour, Workana часто появляются заказы на ML-разработку, обучение моделей, создание аналитических инструментов.</li></ul><ul><li>Профильные сообщества и форумы. Мониторьте Reddit, специализированные Telegram-каналы, Slack-группы.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/114509/2025-07-25/638f44e6-2461-49b0-857e-b8babe8be229.jpeg" alt="" /></figure><h2>С чего стоит начинать путь в ML в 2025 году</h2><ul><li>Без базовых навыков разработки всё будет ломаться и тормозить.</li><li>Python — основной язык.</li><li>На старте нужно знать, как учатся модели, какие бывают, как их проверять.</li><li>Для любой production-модели нужны API, Docker, базы, логирование.</li><li>В продукте часто используют готовые модели через OpenAI/Anthropic API, а не обучают свои.</li><li>Необязательно учить каждую новинку и читать 10 рассылок каждый день.</li><li>Пет-проекты, опенсорс и фриланс дают реальный рост.</li><li>Сейчас всё быстро меняется, важно уметь учиться и не паниковать.</li></ul><p>Читайте также:</p><ul><li><a href="https://tproger.ru/articles/7-kursov--s-kotoryh-realno-startuyut-v-it-v-2025">7 курсов, с которых реально стартуют в IT в 2025</a></li><li><a href="https://tproger.ru/articles/velikij-ii-proval--pochemu-8-iz-10-kompanij--vnedrivwih-nejroseti--ne-zarabotali-ni-centa">Великий ИИ-провал: почему 8 из 10 компаний, внедривших нейросети, не заработали ни цента</a></li><li><a href="https://tproger.ru/articles/ya-nemnogo-ustal-ot-sql-i-rewil-poprobovat-sebya-v-veb-razrabotke">История одного пет-проекта: как я утомился от SQL и создал ИИ-сервис для обучения</a></li><li><a href="https://tproger.ru/articles/deepseek-ili-claude--kakaya-nejroset-napiwet-kod--za-kotoryj-ne-stydno-">DeepSeek или Claude: какая нейросеть напишет код, за который не стыдно?</a></li><li><a href="https://tproger.ru/articles/kursy-mawinnogo-obucheniya--machine-learning-">Рейтинг курсов по Machine Learning, включая бесплатные программы по машинному обучению</a></li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Будущее Python: какие тренды развития и боли языка обсуждали на PyCon 2025</title>
      <link>https://tproger.ru/articles/budushhee-python--kakie-trendy-razvitiya-i-boli-yazyka-obsuzhdali-na-pycon-2025</link>
      <comments>https://tproger.ru/articles/budushhee-python--kakie-trendy-razvitiya-i-boli-yazyka-obsuzhdali-na-pycon-2025?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/budushhee-python--kakie-trendy-razvitiya-i-boli-yazyka-obsuzhdali-na-pycon-2025</guid>
      <description><![CDATA[<p>Что обсуждали на PyCon 2025? Отказ от GIL в CPython 3.14, управление зависимостями, статический анализ, научный код, ML4Code и безопасность open source — всё о будущем Python.
</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/budushhee-python--kakie-trendy-razvitiya-i-boli-yazyka-obsuzhdali-na-pycon-2025">Будущее Python: какие тренды развития и боли языка обсуждали на PyCon 2025</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 28 Jul 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>CPython и его «кишки», асинхронность и фрагментация, управление зависимостями, безопасность и боли научного кода. Что обсуждали на профильной конференции для Python-разработчиков.</p><p>Data QA <a href="http://youtube.com/channel/UC5KFcYE8KTD4yojjoothK-A">Елизавета Якушев</a>а побывала на конференции специально для Tproger и поделилась самым важным.</p><p>Вот и отгремела PyCon в Москве. Мероприятие продлилось два дня — с докладами, мастер‑классами, lightning talks, спринтами для ~700 участников и 20+ докладчиками. Рассказываем, какие тренды и боли обозначили эксперты индустрии.</p><p>Основная тема этого сезона — Python Core. Речь про внутренности языка, новые фичи, интерпретаторы, оптимизацию и профилирование. Конечно, никуда без тестирования, ML и Data Science. Отдельными важными темами стали асинхронность, интеграции с Rust/Go/C++, безопасность, микропитон (MicroPython), PyPy и прочая high‑load магия.</p><p>А теперь подробности!</p><h2>Будущее CPython 3.14</h2><p>Пётр Андреев из МФТИ рассказал про noGIL: погружение в будущее CPython 3.14. Основные проблемы с GIL и их решения.</p><p>GIL (Global Interpreter Lock) — главный тормоз многопоточности в Python. Он нужен для потокобезопасности, но мешает масштабировать CPU-bound задачи. Доклад объясняет, почему просто «убрать GIL» нельзя — слишком много внутренностей CPython завязано на него.</p><p>Бутылочное горлышко в GIL (limited RAM), по мнению эксперта, заключается в том, что он:</p><ul><li>Замедляет предобработку данных для GPU.</li><li>Ограничивает использование многоядерных процессоров для CPU-bound задач</li><li>Усложняет отладку и логирование при использовании процессов вместо потоков</li></ul><p>Но нельзя просто взять и убрать GIL, возникнет:</p><ul><li>Несовместимость с существующими расширениями.</li><li>Проблемы с потокобезопасностью внутренних структур памяти CPython (race condition).</li></ul><p>Возможный путь — Free-threading (без GIL), он даёт следующие преимущества:</p><ul><li>Атомарные операции гарантируют завершение.</li><li>Критические секции (Py_BEGIN_CRITICAL_SECTION и Py_END_CRITICAL_SECTION) обеспечивают потокобезопасность без явной блокировки, но могут снижать производительность, так как другие потоки будут вынуждены ожидать.</li></ul><p>Оптимизировать управление памятью можно с помощью Biased Reference Counting (BRC) и Deferred Reference Counting (DRC) для ускорения подсчета ссылок без GIL.</p><ul><li>BRC позволяет потоку-владельцу изменять счетчик ссылок неатомарно, а другие потоки делают это атомарно.</li><li>DRC — отложенные обновления счетчиков ссылок. Это позволяет улучшить производительность за счет уменьшения дорогостоящих атомарных операций.</li></ul><p>Виктор Тыщенко из Точки рассмотрел эволюцию CPython. Рассказал, почему python вырвался в ТОП-3 самых известных языков программирования, рассмотрел важные вехи его развития и ответил на вопрос, что нас ждёт в ближайших релизах.</p><p>А ждёт нас:</p><ul><li>Улучшение JIT-компилятора.</li><li>Top-of-stack caching.</li><li>Tail-calling interpreter.</li><li>Эффективное управление памятью.</li><li>Расширяемая система специализаций.</li><li>Поддержка субинтерпретаторов и многопоточности.</li></ul><h2>Асинхронность и фрагментация sync/async</h2><p>Евгений Блинов из Авито рассказал, как победить актуальную проблему — фрагментацию на sync и async, чтобы питон больше не ел сам себя. Ведь ещё недавно в Python-комьюнити активно обсуждали асинхронность, писали под неё фреймворки и переписывали библиотеки. Но это приводило к дублированию экосистемы и разрастанию числа библиотек.</p><p>Выход есть. Эксперт предлагает сократить дублирование кода с помощью шаблонизации. Для этого теперь есть инструмент transfunctions, который переписывает шаблонную функцию на уровне AST. Вершина эволюции — суперфункции, которые умеют быть всем.</p><h2>Управление зависимостями и разрешение конфликтов</h2><p>Евгений Желонкин из Контура поднял сложную тему эволюции алгоритмов разрешения конфликтов зависимостей в Python. Затронул графы зависимостей и объяснил, почему задача разрешения конфликтов относится к NP-полным и что нам с этим делать.</p><p>Разобрал как простые жадные стратегии, так и полноценные SAT-решатели и эвристики, используемые в pip, poetry и новом сверхбыстром инструменте uv.</p><p>Особенно полезна эта тема тем, кто работает со средними и большими Python-проектами, CI/CD, и в целом всем, кто когда-либо ставил зависимости и сталкивался с Dependency Hell.</p><h2>Повышение качества научного кода</h2><p>Python — классический инструмент для научных вычислений, он используется в биологии, физике, медицине, химии и множестве других сфер. У языка есть множество библиотек для самых разных отраслей. Но учёные часто не знакомы с лучшими практиками и стандартами программирования. В результате код становится трудночитаемым, неинтерпретируемым, его сложно рефакторить и запускать.</p><p>Андрей Гетманов из ИТМО рассказал, как обстоят дела в исследованиях в ML и о том, почему код научных статей так больно читать. Показал открытый проект Open Source Advisor (OSA), который разрабаотывают в ИТМО. OSA генерирует ридми, пишет докстринги, даёт рекомендации и даже оформляет Pull Request. Учёным остаётся внести правки и готово — получается красивый репозиторий с удобным кодом.</p><p>Андрей Гетманов также поделился, что происходит под капотом OSA: агентная логика, стратегии промптинга, работа с необычными запросами учёных.</p><h2>Data, ML, Data Governance и человеко-читаемые данные</h2><p>Артём Каледин из МТС в своём докладе рассказал, как заботиться о данных в таблицах и делать их human‑readable — то есть, понятными, воспроизводимыми и управляемыми в бизнес‑контексте.</p><p>Также показал, что сейчас предлагают в OpenSource и как компании внутри дорабатывают эти продукты для максимальной продуктивности. Научил преобразовать классический путь от построения витрины с данными и ML-моделей до их формального описания вне привычного MLOps.</p><h2>Работа с LLM, ML4Code и честные бенчмарки</h2><p>Павел Задорожный из Сбера провёл воркшоп на тему «Оценка моделей генерации кода: практика, ловушки и реальные бенчмарки на Python»  — разбор репозиториев, метрик BLEU и CodeBLEU, репотестов и Docker‑инфраструктуры.</p><p>Рассмотрел практические подходы к построению открытых бенчмарков для генерации кода, основанных на реальных сценариях разработки и полноценном тестировании.</p><p>Показал, как решали проблемы несовместимости зависимостей, нестабильных билдов и разнообразия тестовых инфраструктур, как автоматизировали сбор задач и сделали оценку прозрачной и воспроизводимой для любых исследователей.</p><h2>Безопасность и устойчивость в Python: тренд, который больше не игнорируют</h2><p>Алексей Смирнов из CodeScoring рассказал, что происходит в мире безопасности open source пакетов. Разобрался, что делает сообщество, чтобы защитить разработчиков от злоумышленников, какие новые PEP’ы появились и готовы ли разработчики им следовать.</p><p>Типовые слабости пакетов:</p><ul><li>CWE-937. Неправильная обработка входных данных пользователя.</li><li>CWE-400. Неконтролируемое потребление ресурсов.</li><li>CWE-22. Обход каталога (Path Traversal).</li><li>CWE-502. Десериализация недоверенных данных.</li><li>CWE-94. Некорректный контроль над генерацией кода (инъекции кода).</li></ul><p>Примеры вредоносных компонентов в открытых инструментах PyPI:</p><p>1.<a href="https://github.com/ossf/package-analysis"> OSSF package analysis</a></p><p>2. <a href="https://github.com/lyvd/bandit4mal">bandit4mal</a></p><p>3. <a href="https://github.com/microsoft/OSSGadget">OSSGadget</a></p><p>4. <a href="https://github.com/osssanitizer/maloss">MalOSS</a></p><p>5. <a href="https://github.com/IQTLabs/pypi-scan">pypi-scan [archived]</a></p><p>Но для решения этих проблем существуют базовые практики безопасной разработки:</p><ul><li>Применение правильных статических анализаторов;</li><li>Проверка не только своего кода;</li><li>bandit или semgrep.</li></ul><p>Нелли Камалян из Positive Technologies пояснила, почему статический анализ — ваша первая линия защиты и как его использовать. Ведь с помощью статического анализа можно обнаружить проблемы ещё на этапе разработки.</p><p>Говорили про анализ кода на примере Semgrep и других инструментов для проверки Python-приложений. А ещё был разбор самых популярных ошибок, способов их исправить и пути интеграции полезных инструментов в рабочие процессы.</p><p>Максим Сахно из Контура разъяснил классический архитектурный принцип инверсии зависимостей (DIP) для Python. Несмотря на популярность в других языках, в Python его долгое время не использовали. И вот, пожалуйста, честный разбор, как именно работает DIP в змеином языке и его популярных фреймворках для безопасности и устойчивости.</p><h2>Итоги</h2><p>PyCon 2025 показал, что Python продолжает активно развиваться как снаружи, так и изнутри. В центре внимания оказался CPython 3.14 с отменой GIL, а также борьба с фрагментацией между синхронным и асинхронным кодом, рост важности инструментов управления зависимостями и бум интереса к качеству научного и ML-кода. Разработчики всё чаще сталкиваются с необходимостью работать на стыке Python и других языков — Rust, Go, C++ — и одновременно ожидают повышения безопасности, удобства и масштабируемости.</p><p>Python вступает в эру, где качество инфраструктуры, безопасность open source, тестируемость, читаемость и доступность кода важны не меньше, чем синтаксис или фреймворки. Возникают новые практики и инструменты, которые помогают справляться с растущей сложностью: от Semgrep и uv до автоматизации Readme и метаданных через OSA. Вся экосистема движется к зрелости, в которой Python становится не только языком, но и полноценной платформой для гибкой, безопасной и воспроизводимой разработки.</p>]]></content:encoded>
    </item>
    <item>
      <title>Gemini с режимом Deep Think впервые получил «золото» на Международной математической олимпиаде</title>
      <link>https://tproger.ru/news/gemini-s-rezhimom-deep-think-vpervye-poluchil--zoloto--na-mezhdunarodnoj-matematicheskoj-olimpiade</link>
      <comments>https://tproger.ru/news/gemini-s-rezhimom-deep-think-vpervye-poluchil--zoloto--na-mezhdunarodnoj-matematicheskoj-olimpiade?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/gemini-s-rezhimom-deep-think-vpervye-poluchil--zoloto--na-mezhdunarodnoj-matematicheskoj-olimpiade</guid>
      <description><![CDATA[<p>Продвинутая версия Gemini от Google DeepMind завоевала золотую медаль на IMO 2025, решив 5 из 6 задач. Впервые модель на естественном языке прошла официальную проверку жюри олимпиады — и доказала, что способна рассуждать, как лучшие молодые математики планеты.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/gemini-s-rezhimom-deep-think-vpervye-poluchil--zoloto--na-mezhdunarodnoj-matematicheskoj-olimpiade">Gemini с режимом Deep Think впервые получил «золото» на Международной математической олимпиаде</a>»</p>]]></description>
      <category><![CDATA[Математика и теория вероятностей]]></category>
      <category><![CDATA[Олимпиадное программирование]]></category>
      <category><![CDATA[Новости]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 25 Jul 2025 12:25:37 GMT</pubDate>
      <content:encoded><![CDATA[<p>Google DeepMind официально <a href="https://deepmind.google/discover/blog/advanced-version-of-gemini-with-deep-think-officially-achieves-gold-medal-standard-at-the-international-mathematical-olympiad/">подтвердил</a>: продвинутая версия модели Gemini с режимом Deep Think впервые <a href="https://imo2025.au/wp-content/uploads/2025/07/IMO-2025_ClosingDayStatement-19072025.pdf">набрала</a> 35 баллов из 42 возможных на Международной математической олимпиаде (IMO) — и получила золотую медаль. Это первый случай, когда AI-система показала результат на уровне лучших молодых математиков мира.</p><p>Международная математическая олимпиада (ММО) – самое престижное в мире соревнование для молодых математиков, проводится ежегодно с 1959 года. Каждую страну представляют шесть лучших математиков, не имеющих высшего образования, которые соревнуются в решении шести исключительно сложных задач по алгебре, комбинаторике, геометрии и теории чисел. Медали вручаются лучшим участникам, при этом только лишь около 8% получают золотую медаль.</p><p>В прошлом году объединённые системы AlphaProof и AlphaGeometry 2 от Google DeepMind <a href="https://deepmind.google/discover/blog/ai-solves-imo-problems-at-silver-medal-level/">достигли серебряного стандарта</a> , решив четыре из шести задач и набрав 28 баллов. А вычисления заняли 2,5 дня.</p><figure><img src="https://media.tproger.ru/user-uploads/116654/2025-07-25/f62947bd-f4ed-4fdd-bdfd-042bb9bde3a0.png" alt="" /></figure><h2>🤖 Зачем ИИ пошёл на олимпиаду?</h2><p>IMO — не соревнование по шаблонам. Участники решают шесть задач за 4,5 часа по алгебре, геометрии, комбинаторике и теории чисел, где даже формулировки требуют нетривиального понимания. Каждую страну представляют шестеро лучших школьников, отобранных годами тренировок. Google DeepMind решила пять задач из шести.</p><p>В 2024 году системы AlphaGeometry и AlphaProof решали задачи IMO, но требовали ручного перевода между формальным языком и естественным. В этом году Gemini Deep Think работал end-to-end: понимал условие задачи на естественном языке, сам генерировал доказательства и укладывался в лимит времени.</p><h2>🧠 Как Gemini научили мыслить по-олимпиадному?</h2><p>Gemini работал в режиме Deep Think — это улучшенный pipeline reasoning’а, который:</p><ul><li>исследует параллельно несколько возможных стратегий доказательства;</li><li>учится на огромном датасете реальных решений IMO;</li><li>строит цепочки логических рассуждений, не опираясь на формальные языки;</li><li>использует обучение с подкреплением и инструкции с мета-наставлениями;</li><li>способен превращать язык в структуру — и обратно;</li><li>использует многошаговые рассуждения для решения задач и доказательства теорем.</li></ul><p>По сути, это уже не просто языковая модель, а когнитивный ассистент, умеющий строить гипотезы, опровергать и доказывать — почти как человек.</p><p>«Решения Gemini были ясными, точными и простыми для понимания. Это один из самых впечатляющих AI-дебютов за всю историю Олимпиады».</p><p>Профессор Грегор Долинар, президент Международной математической олимпиады</p><h2>Почему это важно?</h2><ul><li>AI выходит за пределы генерации текста. Он решает задачи, требующие творческого абстрактного мышления.</li><li>Новая парадигма обучения. Модель учится не только на данных, но и на методах решения.</li><li>Фундаментальная математика — следующий рубеж. После кода, картинок и рецептов ИИ начинает осваивать поле, где обычно побеждают гении с олимпиадным складом ума.</li></ul><h2>Что дальше?</h2><p>Google DeepMind уже готовит открытый доступ к Gemini Deep Think для математиков и подписчиков AI Ultra. Разработчики уверены: следующий шаг — универсальный ассистент-исследователь, который поможет справиться с нерешёнными задачами науки.</p><p>Комментарий от Tproger:</p><p>ИИ теперь не «просто решает задачи». Это пример того, как новые архитектуры reasoning + RL дают результат в задачах, с которыми не способно справиться большинство людей.</p>]]></content:encoded>
    </item>
    <item>
      <title>ИИ без регистрации и VPN: быстрый доступ к GPT, Claude и Gemini</title>
      <link>https://tproger.ru/articles/ii-bez-registracii-i-vpn--bystryj-dostup-k-gpt--claude-i-gemini</link>
      <comments>https://tproger.ru/articles/ii-bez-registracii-i-vpn--bystryj-dostup-k-gpt--claude-i-gemini?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/ii-bez-registracii-i-vpn--bystryj-dostup-k-gpt--claude-i-gemini</guid>
      <description><![CDATA[<p>Как пользоваться GPT, Claude и Gemini в России без VPN и регистрации: подборка сервисов для быстрого старта.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/ii-bez-registracii-i-vpn--bystryj-dostup-k-gpt--claude-i-gemini">ИИ без регистрации и VPN: быстрый доступ к GPT, Claude и Gemini</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[SEO]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Статистика]]></category>
      <category><![CDATA[JSON]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[VPN]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Яндекс]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[5g]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Notion]]></category>
      <category><![CDATA[Промпты]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 17 Jul 2025 17:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>В 2025 году пользоваться GPT-4, Claude и Gemini — всё ещё сложная задача для пользователей из России, они работают через VPN, требуют подтверждения номера телефона или наличия зарубежной банковской карты. Но есть решения, которые работают без этих ограничений — они используют API-прокси, локальные модели или специальные инструменты для обхода.</p><p>В этом обзоре собрали самые выгодные сервисы, которые дают доступ к языковым моделям без VPN и дополнительной регистрации либо предлагают альтернативные варианты. Платформы подходят для учебы, бизнеса и творчества, а их функционал проверен на реальных кейсах.</p><h2>1. Deeplom Ru — генератор академических работ на базе ИИ</h2><p>Сервис<a href="https://t.me/DeeplomAIBot"> Deeplom Bot </a>создан специально для студентов и школьников, которым нужно быстро подготовить реферат, курсовую или дипломную работу. В отличие от других ИИ-ассистентов, он фокусируется именно на академических задачах, используя адаптированные версии GPT и Claude. Это позволяет генерировать тексты, соответствующие требованиям ГОСТ и вузовских стандартов. Сервис работает в условиях сжатых сроков или при работе над несколькими проектами одновременно.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-17/f6b8d3f2-d9b2-4e9a-9ea5-4a3848eec653.png" alt="" /></figure><h3>Как это работает</h3><p>Работать с сервисом можно двумя способами: <a href="https://deeplom.ru">через сайт</a> или телеграм-бота (@DeeplomAIBot). Достаточно ввести тему работы и через несколько минут система сгенерирует демо-версию. Она включает оглавление, введение, первую главу и список литературы.</p><p>Особенности:</p><ul><li>полностью анонимная работа — для<br />демо-версии не нужен даже email;</li><li>сервис позволяет бесплатно<br />ознакомится с демо-версией перед покупкой работы;</li><li>автоматическое оформление по<br />ГОСТу, включая заголовки, списки литературы;</li><li>конструктор оглавления для ручной<br />корректировки структуры работы;</li><li>поддержка формата DOCX для<br />удобного редактирования.</li></ul><p>Сервис использует специально дообученные модели ИИ, которые учитывают требования российских вузов. Например, система автоматически корректирует стилистику под академические стандарты.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-17/a61bb6e5-a0d0-4b30-8714-6ffc0655e589.png" alt="" /></figure><h3>Тарифы</h3><p>Бесплатная версия дает доступ только к части работы. Полный текст можно приобрести за 499-1299 рублей в зависимости от сложности и объема текста. Для постоянных пользователей есть система скидок.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-17/6e77de0d-3328-4ce7-b015-fca1ea89096a.png" alt="" /></figure><h2>2. Wikibot — интеллектуальный помощник для бизнеса</h2><p><a href="https://wikibot.pro/">Wikibot</a> — профессиональное решение для отделов продаж и служб поддержки, оно автоматизирует до 70% рутинных обращений клиентов. Сервис подходит для компаний, которые ежедневно обрабатывают сотни однотипных вопросов через разные каналы коммуникации.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-17/d348e349-fa00-4dd7-a584-e3bdbe72d7ab.png" alt="" /></figure><h3>Как работает система</h3><p>После регистрации через Google или Telegram пользователь получает доступ к панели управления, где может загрузить базу знаний в различных форматах — PDF, DOCX или подключить облачные хранилища вроде Notion и Confluence. Фишка Wikibot в том, что он не только отвечает по шаблонам, а анализирует контекст каждого обращения, используя мощные языковые модели GPT-4.1 и DeepSeek V3,и умеет выполнять действия в системах, как это делает человек. И всё это вы можете настроить самостоятельно в ЛК.</p><p>Особенности сервиса:</p><ul><li>автоматическое создание сделок в<br />amoCRM и других CRM-системах через API;</li><li>автоматическая классификация<br />тикетов по категориям через теги или группы;</li><li>возможность обучать бота на<br />истории переписок с клиентами;</li><li>функция «Анализ ответа» —<br />показывает, на какие разделы базы знаний опирался ИИ;</li><li>гибкая система кредитов (1 кредит<br />— примерно 10 ответов на тарифе Мини);</li><li>интеграция с популярными<br />платформами: HelpDeskEddy, Битрикс24, Юздеск,<br />Jivo;</li><li>возможность размещения бота во<br />внутреннем контуре (по запросу).</li><li>чат-бота можно добавить на свой сайт или интегрировать в собственный телеграм-бот</li></ul><p>Сервис использует специальный алгоритм ранжирования ответов, который учитывает релевантность информации и историю взаимодействий с конкретным клиентом. Система способна автоматически определять эмоциональный тон обращения и адаптировать стиль ответа — от формального до дружелюбного.</p><h3>Тарифные планы</h3><p>Wikibot предлагает гибкую систему тарифов:</p><ul><li>Мини (1000 руб./мес) — подходит<br />для тестирования и небольших проектов.</li><li>Старт (4900 руб./мес) — оптимален<br />для малого бизнеса.</li><li>Рост (19900 руб./мес) — решение<br />для компаний с устоявшимися бизнес-процессами и сформированной командой<br />поддержки.</li><li>Бизнес (49900 руб./мес) —<br />комплексное решение для крупных компаний.</li></ul><p>Каждый тариф включает определённое количество кредитов, а дополнительные запросы можно докупать по мере необходимости. Для новых пользователей доступен тестовый период со 100 бесплатными кредитами.</p><h2>3. Acetone AI — профессиональный инструмент для обработки изображений</h2><p><a href="https://acetone.ai/">Acetone AI</a> создан для быстрой обработки изображений — дизайнеров, маркетологов, владельцев интернет-магазинов и контент-менеджеров. Сервис используют при подготовке большого количества товарных карточек для маркетплейсов или создании рекламных материалов.</p><h3>Как работает платформа</h3><p>Главное преимущество Acetone AI — моментальный старт. Пользователь может загрузить изображение на главной странице и получить результат через несколько секунд. После регистрации через email или VK предоставляется 50 бесплатных кредитов (эквивалент 5 операций по удалению фона ежедневно).</p><p>Особенности сервиса:</p><ul><li>уникальные алгоритмы обработки<br />изображений, работающие независимо от зарубежных ИИ;</li><li>пакетная обработка до 50<br />изображений одновременно;</li><li>встроенный редактор для тонкой<br />настройки результатов удаления фона и объектов;</li><li>многослойный редактор создания<br />карточек товара, баннеров и прочих изображений;</li><li>генератор фона с помощью<br />нейросети;</li><li>API для интеграции с<br />корпоративными системами и автоматизации процессов;</li><li>поддержка популярных форматов:<br />JPG, PNG, WEBP.</li></ul><p>Acetone AI использует специально обученные нейросетевые модели, которые сохраняют детализацию сложных элементов (например, волос или полупрозрачных материалов). Сервис корректно обрабатывает тени и рефлексы, что важно для профессиональных фотографов и ретушеров.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-17/cd5e15d7-1ac6-4539-a332-898d6369e0e9.png" alt="" /></figure><h3>Тарифная политика</h3><p>Сервис предлагает такие тарифные планы:</p><ul><li>Бесплатный тариф: 10 обработок,<br />доступ к базовым функциям редактора, ограничение на размер загружаемых файлов<br />(до 5 МБ).</li><li>Подписка «Стандарт» (от 989<br />руб./мес): неограниченное количество операций, приоритетная обработка,<br />увеличенный лимит на размер файлов (до 25 МБ), доступ к премиум-фильтрам.</li><li>Корпоративные решения:<br />индивидуальные квоты на обработку, персональный менеджер, API с увеличенными<br />лимитами.</li></ul><p>По данным сервиса, среднее время обработки одного изображения составляет менее 3 секунд, а точность распознавания объектов достигает 98%.</p><h2>4. F5 AI — универсальная платформа для работы с ИИ</h2><p><a href="https://f5ai.ru/">F5 AI</a> — это многофункциональное решение с доступом к разным языковым моделям, включая GPT и Claude. Платформа ориентируется на широкий круг пользователей: от маркетологов, создающих SEO-контент, до разработчиков, автоматизирующих написание кода. Особенность сервиса — адаптация под специфические бизнес-задачи российских компаний.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-17/a91a28e2-5c26-4ff3-9f1b-72b7de8cccd2.png" alt="" /></figure><h3>Как работает</h3><p>Пользователи получают доступ через веб-интерфейс или API, при этом не нужно использовать VPN. Зачисление 500 бонусных рублей происходит при входе через Яндекс или почту.</p><p>Особенности сервиса:</p><ul><li>поддержка разных языковых моделей<br />(GPT-4, Claude и других) с возможностью выбора оптимального варианта для<br />конкретной задачи;</li><li>создание корпоративных<br />телеграм-ботов с индивидуальной базой знаний;</li><li>гибкая система управления доступом<br />для командной работы;</li><li>API для интеграции с внутренними<br />бизнес-процессами компании;</li><li>личная база знаний для хранения<br />корпоративных и рутинных документов – в общем вся информация, которую вы хотите скормить ИИ;</li><li>бот, который обращается к<br />документам из вашей базы знаний, чтобы давать более точные ответы на вопросы,<br />основываясь на имеющихся данных.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-18/01bd0324-6030-4ec0-b769-df719641c33a.png" alt="" /></figure><p><b>Дополнительно: </b></p><ol><li><b>Meet AI</b> — анализ<br />     видеовстреч и транскрипции созвонов из Контур.Толк. Внутри есть кастомные<br />     шаблоны для анализа разных типов встреч.</li><li><b>Работа с ИИ Ассистентами </b>—<br />     создание своих умных ассистентов на основе моделей внутри с гибкой<br />     системой настройки параметров. Новых ассистентов можно также обучить на<br />     собственных файлах для внутренних процессов компании.</li></ol><h3>Тарифы</h3><p>Сервис работает без абонентской платы и подписок: вы платите только за использованные токены. Цена зависит от модели и объема работы. Для пополнения баланса используйте СБП, банковскую карту или счет юрлица — в последнем случае получите закрывающие документы. Все транзакции детализированы по моделям, а расходы доступны в аналитике по дням и месяцам.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-18/647caecf-4d3e-464f-a76b-04658c3e170a.png" alt="" /></figure><p><b>Запоминаем главное про платформу: </b>работает без VPN в России, объединяет всех вендоров в одном интерфейсе, предлагает русскоязычную и англоязычную поддержку и интерфейс. Корпоративным клиентам доступны индивидуальные тарифы с увеличенными лимитами API и приоритетной поддержкой.</p><h2>5. Jadve AI</h2><p><a href="https://jadve.com/ru?utm_source=tproger&amp;utm_medium=article&amp;utm_campaign=promo">Jadve AI </a>подходит для специалистов, ежедневно работающих с разными форматами контента. Маркетологи получают инструмент для быстрого создания промо-материалов, программисты — помощника для работы с кодом, а дизайнеры — возможность оперативно визуализировать идеи. Сервис объединяет три ключевых направления: текстовую генерацию, создание изображений и производство видео.</p><h3>Как устроена работа платформы</h3><p>Доступ к возможностям <a href="https://jadve.com/ru?utm_source=tproger&amp;utm_medium=article&amp;utm_campaign=promo">Jadve AI</a> предоставляется через веб-интерфейс или тг-бота. Бесплатные функции включают неограниченное использование GPT-4o mini и 10 ежедневных запросов к GPT-4o. Для работы с графикой и видео нужно оформить подписку.</p><p>Особенности:</p><ul><li>комплексный доступ к 10+<br />актуальным ИИ-моделям разных категорий;</li><li>гибкая система оплаты токенами без<br />привязки к конкретным моделям;</li><li>программа лояльности с<br />персональными скидками для активных пользователей;</li><li>полная синхронизация между<br />веб-версией и ботом.</li></ul><h3>Практическое применение</h3><p>Программисты могут генерировать и оптимизировать код блоками до 1000 строк. Маркетологи — создавать  рекламные изображения для соцсетей и короткие промо-ролики по готовым шаблонам. Дизайнеры — использовать  инструмент для быстрого концепт-арта и адаптации графики под целевые платформы.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-17/e69f0199-4b01-43d8-8304-e4e4e754b8fd.png" alt="" /></figure><h3>Условия использования</h3><p>Бесплатный режим даёт доступ к базовым текстовым функциям. Платные тарифы начинаются от 499 рублей в месяц: 100 тыс. токенов в день, которые можно расходовать на любые операции — генерацию текста, изображений или видео. Дополнительные пакеты токенов можно докупить.</p><h2>6. TEXTAGRAM — умный генератор описаний товаров</h2><p><a href="https://textagram.ru/?utm_source=tproger">TEXTAGRAM</a> разработан специально для продавцов на маркетплейсах (Wildberries, Ozon, Яндекс.Маркет) и владельцев интернет-магазинов. Сервис помогает автоматизировать самый сложный этап — создание качественных описаний товаров. По данным сайта, использование TEXTAGRAM сокращает время на заполнение карточек товаров в 5-7 раз.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-17/c80cc132-298e-4b3f-bae2-4933497eef02.png" alt="" /></figure><h3>Как работает платформа</h3><p>Пользователь загружает фотографию товара, ИИ генерирует несколько вариантов описаний с учётом ключевых характеристик. Например, для загруженного изображения кроссовок система может создать текст:</p><p><i>«Эти отличные кроссовки с амортизирующей подошвой сочетают в себе стиль и комфорт, идеально подходят для прогулок, и для легких ежедневных тренировок. Выполнены из высококачественных материалов, обеспечивающих долговечность и удобство.</i></p><p><i>Ключевые характеристики:</i></p><ul><li><i>Амортизирующая подошва для максимального комфорта</i>;</li><li><i>Дышащие материалы, обеспечивающие вентиляцию</i>;</li><li><i>Стильный дизайн, подходящий к любому образ</i>у».</li></ul><p>Особенности сервиса:</p><ul><li>автоматическое определение<br />ключевых характеристик товара по изображению;</li><li>генерация SEO-оптимизированных<br />описаний с релевантными ключевыми словами; поддержка различных стилей текста<br />— продающий, технический, минималистичный;</li><li>возможность массового экспорта в<br />CSV-формат для загрузки на маркетплейсы;</li><li>адаптированные языковые модели для<br />точного описания товаров российского рынка.</li></ul><p>TEXTAGRAM использует специально обученную версию ChatGPT, которая учитывает специфику российских маркетплейсов. Сервис умеет определять не только общие категории товаров, но и конкретные материалы — например, отличает экокожу от натуральной.</p><p>В ближайших планах разработчиков — добавить функции автоматического подбора тегов и категорий для Wildberries и Ozon, чтобы ещё больше упростить процесс заполнения карточек товаров.</p><h3>Текущие условия использования</h3><p>На момент публикации (июль 2025 года) сервис находится в стадии MVP и доступен пользователям в бесплатном режиме.</p><h2>7. TryChatGPT — универсальный доступ к GPT-моделям с гибкой системой запросов</h2><p>Сервис <a href="https://trychatgpt.ru/?utm_medium=organic&amp;utm_campaign=tproger">TryChatGPT</a> даёт доступ к GPT-моделям для широкого круга задач: от генерации текстов до создания изображений. Основная аудитория — пользователи, которым нужен простой и понятный доступ к ИИ без сложных систем токенов. Подходит для копирайтеров, разработчиков и маркетологов.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-17/65c0c77b-b580-4cf0-924f-45c75b396b11.png" alt="" /></figure><h3>Как это работает</h3><p>Система построена на модели запросов вместо токенов. Пользователь может начать работу сразу после посещения сайта — для тестирования доступно 200 бесплатных запросов к GPT-4.1 nano каждые 30 дней. При этом регистрация не обязательна, но этом случае в функционале будете видеть рекламу.</p><p>Особенности:</p><ul><li>прозрачная система запросов вместо<br />сложных токенных расчётов;</li><li>функция памяти для сохранения<br />контекста между чатами;</li><li>настраиваемый системный промт;</li><li>отсутствие обязательной подписки с<br />автопродлением.</li></ul><h3>Основные возможности</h3><p>Сервис помогает в переводе текстов, генерации кода и обработке изображений. Отличительная черта — возможность обучения ИИ: при команде «Запомни» система сохраняет ключевые данные из запроса и использует их в последующих диалогах. Для работы с файлами и расширенными функциями нужна регистрация через Яндекс, VK или email.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-17/712a9abd-db67-411c-81a1-bf2362dfa951.png" alt="" /></figure><h3>Тарифная политика</h3><p>Бесплатный тариф включает 200 запросов к базовой модели. Платные варианты:</p><ul><li>Без рекламы (590 руб./мес): 500<br />запросов к базовым моделям + обработка изображений.</li><li>Творческий (990 руб./мес): акцент<br />на генерацию изображений (50 запросов).</li><li>Премиум (1990 руб./мес):<br />расширенные лимиты для всех категорий моделей.</li></ul><p>Сервис не работает в Индонезии, Индии и Китае, но полностью доступен в России без VPN. По сравнению с аналогами, TryChatGPT предлагает более предсказуемую систему оплаты — пользователи точно знают, сколько запросов получают за свои деньги.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-17/86cb4b46-d543-4182-9c4d-9aaa96889093.png" alt="" /></figure><h2>8. Обзор платформы PR‑CY для работы с языковыми моделями</h2><p><a href="https://pr-cy.ru/chat-gpt/">PR‑CY </a>— инструмент для работы с поисковыми данными и генеративными моделями. Через веб‑интерфейс доступны версии ChatGPT (5‑Mini, 4o‑Mini, GPT‑5, O3, O4‑Mini), Claude (4 Sonnet, 3.5 Haiku), Gemini 2.5 Flash и DeepSeek v3. Бесплатный доступ сильно ограничен: всего 5-10 запросов в день. Для серьезной работы потребуется платная подписка. Для проведения комплексных исследований и построения собственных ассистентов доступны платные модели (GPT‑5, GPT‑4o, Gemini 2.5 Pro, DeepSeek R1 и др.), но их использование оплачивается отдельно.</p><p><b>По сути, платформа рассчитана на:</b></p><ul><li>разработчиков и продуктовых команд, которым нужно быстро проверить гипотезы на разных версиях языковых моделей;</li><li>SEO‑специалистов — интегрированные MCP‑серверы помогают вытаскивать вордстат, SERP‑выдачу, контент страниц и другие метрики;</li><li>тех, кто хочет собрать собственного AI‑ассистента из готовых компонентов, используя свои базы знаний.</li></ul><h3>Как это работает</h3><p>Платформа работает через веб-интерфейс, доступна без VPN. После входа пользователь выбирает модель и отправляет ей запрос. Для настройки поведения предусмотрены параметры температуры, длины контекста и системного промпта. Есть возможность загрузить файлы (PDF, DOC и др.) или изображения для анализа, подключить RAG‑базы знаний для ответов из собственных данных, а также настроить голосовой ввод и озвучку ответа.</p><h3>Сценарии использования</h3><ul><li><b>Гибкие настройки генерации:</b> температура, длина контекста и системный промпт позволяют тонко регулировать ответы ботов под конкретный сценарий.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-09-12/388e0c01-972f-4d10-a3f6-cb8c94ed73f2.png" alt="" /></figure><ul><li><b>Загрузка и анализ файлов:</b> сервис умеет работать с документами и изображениями (PDF, DOC и др.), что удобно для анализа технической документации или баз знаний.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-09-12/a6e60eea-e87c-405c-aaab-4048547b0fd4.png" alt="" /></figure><ul><li><b>RAG‑базы знаний:</b> можно подключить собственные источники данных, чтобы модель отвечала, опираясь на внутреннюю информацию команды.</li><li><b>MCP‑интеграция:</b> для SEO‑задач доступна подключаемая сервисом SEO‑MCP от PR‑CY.</li><li><b>Голосовой ввод и голосовой ответ: </b>ускоряет взаимодействие — можно проговаривать вопросы и слушать ответы.</li></ul><h3>Лимиты и тарифы</h3><p>Базовый доступ даёт 10 запросов в день (5 — без регистрации). Для интенсивной работы предусмотрены тарифы с большим числом запросов и отдельные платные модели; пробный период на тарифе Профи — 7 дней, после чего требуется оплата. Стоимость продвинутых моделей оплачивается отдельно. На повышенном тарифе вы можете протестировать более мощные модели или создать собственных ассистентов.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-09-12/12fef01b-44d4-4083-962b-a8587c34438e.png" alt="" /></figure><h3>Кому подойдет</h3><p>Платформа ориентирована на разработчиков, работающих с различными языковыми моделями, и SEO-специалистов, а также специалистам по продукту и контенту — благодаря встроенному SEO‑инструментарию и ИИ‑редактору. Возможность создавать ассистентов и подключать RAG‑базы — функционал позволяет создавать ассистентов, однако это требует технических навыков и дополнительных затрат, что минус для обычного пользователя. Недостатки: лимиты на бесплатном тарифе, необходимость доплачивать за лучшие модели, сложность интерфейса.</p><h2>9. BotHub — универсальный агрегатор ИИ-моделей</h2><p><a href="https://bothub.chat/">BotHub</a> многофункциональная платформа с доступом к ИИ-моделям, включая ChatGPT-4 Turbo, Midjourney v6 и Claude 3. Сервис популярен среди маркетологов и разработчиков, которым нужно единое решение для работы с разными типами ИИ без переключения между площадками.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-17/96180a7f-3d64-4968-90be-54a7f91d369a.png" alt="" /></figure><h3>Как это работает</h3><p>После регистрации на сайте пользователь получает доступ к единому интерфейсу, где может одновременно работать с текстовыми и графическими ИИ. Внутри есть функция транскрибации аудио через Whisper, которая распознает до 95% русской речи.</p><p>Особенности:</p><ul><li>комбинированный доступ к текстовым<br />и графическим ИИ в одном интерфейсе;</li><li>анализ документов с возможностью<br />извлечения ключевых данных; высокоточная транскрибация<br />аудиофайлов;</li><li>API для интеграции с<br />корпоративными CRM-системами.</li></ul><p>По данным площадки, BotHub обрабатывает более 50 000 запросов ежедневно, при этом среднее время отклика не больше двух секунд. Новые юзеры могут использовать пробный период, платные тарифы начинаются от 200 руб. в месяц за 10 000 токенов. Система поддерживает оплату через СБП и российские банковские карты.</p><h2>10. Fabula AI — мультифункциональный инструмент для работы с контентом</h2><p><a href="https://fabula-ai.com/">Fabula AI</a> предлагает комплексное решение для работы с визуальным контентом. Сервис больше ориентируется на владельцев интернет-магазинов, маркетологов и контент-менеджеров, которым нужна быстрая обработка изображений и генерация текстовых описаний.</p><h3>Как это работает</h3><p>Доступ к сервису происходит через веб-интерфейс и телеграм-бота (@fabula_ai_bot). Основные возможности включают улучшение качества фотографий с апскейлингом до 4K, автоматическое удаление фона с поддержкой пакетной обработки и генерацию описаний товаров на основе их изображений. Есть функция преобразования обычных фото в аниме-стиль.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-17/bd1a2db7-122d-447d-8b30-5232ef6ffb1e.png" alt="" /></figure><p>Особенности и преимущества:</p><ul><li>профессиональное улучшение<br />качества изображений;</li><li>пакетная обработка фотографий для<br />интернет-магазинов;</li><li>встроенный ChatGPT 3.5 для<br />создания текстового контента;</li><li>уникальные стилистические фильтры<br />для изображений.</li></ul><h3>Тарифы</h3><p>Сервис обрабатывает до 1000 изображений ежечасно, при этом сохраняя стабильную скорость работы. Доступна недельная подписка за 299 рублей с безлимитным количеством обработок или месячный абонемент за 999 рублей.</p><h2>11. Chad AI — универсальный ИИ-ассистент в Telegram</h2><p><a href="https://chadgpt.ru/">Chad AI</a> — многофункциональный телеграм-бот, который объединяет доступ к восьми популярным нейросетевым моделям, включая GPT-4o, Claude 3 и Midjourney V6. Особенно востребован программистами, маркетологами и студентами.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-17/ebf81d73-0b86-42d4-8e3c-d246352051be.png" alt="" /></figure><h3>Как это работает</h3><p>После запуска бота @chadgpt_bot пользователь получает мгновенный доступ ко всем функциям. Сервис предлагает комплексное решение для работы с текстовыми моделями, включая генерацию кода и аналитику данных, а также инструменты для создания изображений. Есть готовые промпты — шаблоны запросов, которые помогают эффективно взаимодействовать с нейросетями даже новичкам.</p><p>Особенности:</p><ul><li>полная локализация на русский язык<br />с адаптированными ответами;</li><li>поддержка голосового ввода и<br />веб-поиска актуальной информации;</li><li>сохранение истории диалогов в<br />течение 30 дней.</li></ul><h3>Тарифы и условия</h3><p>Бесплатная версия позволяет совершать до семи запросов в день с использованием модели GPT-4o Mini. Премиум-подписка стоимостью от 590 рублей в месяц открывает неограниченный доступ к GPT-4, DALLE, Midjourney и другим моделям.</p><h2>12. GenAPI — универсальный шлюз для работы с ИИ-моделями</h2><p><a href="https://gen-api.ru/?utm_source=vc&amp;utm_medium=text">GenAPI</a> представляет собой удобный API-шлюз, предоставляющий доступ к популярным языковым моделям, включая GPT-4, Claude и Gemini. Сервис подходит разработчикам технологичных компаний, которым требуется надежная интеграция ИИ-возможностей в свои продукты без настройки сложной инфраструктуры.</p><h3>Как работает</h3><p>После регистрации пользователь получает персональный API-ключ, позволяющий отправлять запросы к различным ИИ-моделям. Сервис поддерживает как текстовые, так и мультимодальные запросы, включая обработку изображений и аудио. Доступна тонкая настройка параметров запросов для получения структурированных ответов в JSON-формате.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-17/aff829b2-df3b-41e3-ad82-76ab19701663.png" alt="" /></figure><p>Особенности:</p><ul><li>единый API для работы с различными<br />ИИ-моделями;</li><li>поддержка потоковой передачи<br />данных;</li><li>детальная статистика и мониторинг<br />использования.</li></ul><h3>Тарифы и условия</h3><p>GenAPI предлагает прозрачную систему тарифов с оплатой за фактическое использование. Бесплатный тариф позволяет полноценно протестировать сервис. Профессиональные тарифы начинаются от 2000 руб. в месяц и предоставляют увеличенные лимиты, а также приоритетную обработку запросов.</p><h2>Как выбрать подходящий сервис</h2><p>При выборе ИИ-помощника ориентируйтесь на три ключевых критерия:</p><ul><li>определите основной тип задач —<br />генерация текстов, обработка изображений или анализ данных;</li><li>проверьте требования к<br />конфиденциальности — некоторым пользователям критична анонимность, другим —<br />интеграция с рабочими инструментами;</li><li>оцените удобство интерфейса —<br />телеграм-боты подходят для быстрых запросов, веб-версии — для более сложной<br />работы.</li></ul><p>Обращайте внимание на наличие бесплатного тестового периода и гибкость тарифов. Российские сервисы без VPN часто выгоднее зарубежных аналогов, но могут уступать в функциональности. Для бизнеса важна поддержка API, студентам — оформление по ГОСТ. Начинайте с бесплатных версий, чтобы оценить качество ответов без финансовых рисков.</p>]]></content:encoded>
    </item>
    <item>
      <title>10 библиотек Python, которые меняют карьеру</title>
      <link>https://tproger.ru/articles/10-bibliotek-python--kotorye-menyayut-kareru</link>
      <comments>https://tproger.ru/articles/10-bibliotek-python--kotorye-menyayut-kareru?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Татьяна Жукова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/10-bibliotek-python--kotorye-menyayut-kareru</guid>
      <description><![CDATA[<p>10 библиотек Python, которые помогут прокачаться в аналитике, ML и разработке. Как они работают и почему меняют карьеру.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/10-bibliotek-python--kotorye-menyayut-kareru">10 библиотек Python, которые меняют карьеру</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Парсинг]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[JSON]]></category>
      <category><![CDATA[Отладка]]></category>
      <category><![CDATA[MySQL]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Django]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Jupyter Notebook]]></category>
      <category><![CDATA[Визуализация]]></category>
      <category><![CDATA[Образование]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[PostgreSQL]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 17 Jul 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>У Python тысячи библиотек, но лишь немногие действительно меняют карьеру. Они помогают не просто решать задачи, а ускорять проекты, прокачивать навыки и выходить на следующий уровень в аналитике, машинном обучении и разработке. В этом материале мы собрали 10 библиотек, которые помогут зарабатывать на Python и развивать навыки.</p><h2>1. Pandas</h2><p>Pandas — библиотека для работы с данными в Python, позволяющая легко загружать, анализировать, очищать и преобразовывать числовую информацию в удобной табличной форме. По сути, это Excel, который смог, и позволяет делать всё автоматизировано и на порядки быстрее.</p><p>Библиотека строится вокруг двух ключевых структур: <b>Series</b> (одномерный массив с индексами); <b>DataFrame </b>(таблица с индексами и колонками).</p><h3>Какие задачи решает библиотека</h3><p>Pandas полезна для следующих задач:</p><ul><li>Сам анализ данных: можно быстро фильтровать, группировать, агрегировать и строить сводные таблицы.</li><li>Очистка данных: удаляем пустые строки, заменяем значения, приводим типы.</li><li>Загрузка данных из CSV, Excel, SQL.</li><li>Визуальная разведка данных (EDA) перед построением моделей.</li><li>Подготовка данных для ML и отчётов.</li><li>Автоматизация отчётов и ETL-пайплайнов.</li></ul><p>Благодаря Pandas аналитик превращается в инженера данных, а ML-специалист может сосредоточиться на моделях, а не на ручной подготовке датасетов.</p><h3>Как пользоваться</h3><p>Ниже разберём простейший кейс: нужно загрузить данные о зарплатах разработчиков из CSV, посчитать среднюю зарплату по языкам программирования и отобрать топ-5.</p><h3>Почему это меняет карьеру</h3><p>Работа с Pandas становится границей между знанием Python и умением решать задачи бизнеса. Для <b>джуна </b>это шанс сразу показать практическую пользу: выгрузки, отчёты и базовый анализ можно делать в десятки раз быстрее и аккуратнее, чем вручную в эксельке.</p><p>Для <b>аналитика</b> Pandas превращается в главный рабочий инструмент, позволяя не просто проверять гипотезы и делать сводные таблицы, а строить полноценные отчётные пайплайны, автоматизировать рутинные выгрузки и концентрироваться на сути данных, а не на правках ручками.</p><p>Для <b>ML-инженера</b> владеть Pandas — значит уметь готовить датасеты качественно; быстро очищать и приводить данные к нужному виду, что напрямую влияет на результат моделей. Без этого работа над проектами машинного обучения часто превращается в бесконечную возню с данными.</p><p>Наконец, даже для <b>разработчиков</b> Pandas может стать неожиданным бустом в карьере. Например, когда нужно автоматизировать отчёты для бизнеса или быстро анализировать логи и данные из БД без поднятия дашбордов — Pandas даёт гибкость и скорость, которые редко даёт что-то ещё в экосистеме Python.</p><h2>2. Django</h2><p>Django — фреймворк для веб-разработки на Python, который позволяет быстро создавать надежные и масштабируемые веб-приложения. Он следует принципам DRY (Don’t Repeat Yourself — не повторяй себя), предоставляя разработчику ORM, роутинг, систему авторизации, админку, работу с формами, шаблонами и инструментами безопасности из коробки.</p><p>Django подходит как стартапам, которым нужно быстро выйти на рынок, так и крупным проектам с миллионами пользователей. Это не просто библиотека, а полноценный каркас для построения и сопровождения веб-сервисов.</p><h3>Какие задачи решает библиотека</h3><p>Каркас, действительно, каркасный. Задачи следующие:</p><ul><li>Создание веб-приложений и API любой сложности.</li><li>Быстрая разработка MVP, прототипов и коммерческих проектов.</li><li>Упрощение работы с базами данных через ORM, без написания сырого SQL.</li><li>Построение административных панелей для управления данными без ручной разработки.</li><li>Гибкая маршрутизация и работа с формами, валидацией и шаблонами.</li><li>Реализация аутентификации, авторизации и защиты приложений.</li></ul><p>Django позволяет сосредоточиться на бизнес-логике и продукте, не тратить недели на настройку инфраструктуры.</p><h3>Как пользоваться</h3><p>Устанавливаем:</p><p>Создаем проект и приложение:</p><p>Пример модели:</p><p>Миграция базы данных:</p><p>Создание админки:</p><p>После этого можно запустить сервер:</p><p>И перейти по адресу http://127.0.0.1:8000/admin для управления записями через готовую админ-панель.</p><h2>3. PyTorch</h2><p>PyTorch — мощная библиотека Python. Она позволяет строить и обучать нейронные сети, проводить вычисления с автоматическим дифференцированием и работать с GPU для ускорения самих вычислений.</p><p>Главное отличие PyTorch от других ML-фреймворков — динамическая вычислительная графика (define-by-run): модель строится и изменяется во время выполнения кода, что даёт гибкость при создании и отладке сложных моделей.</p><p>Сегодня PyTorch используется в продакшен системах, научных исследованиях, компьютерном зрении, NLP и генеративных моделях, занимая ведущее место в индустрии.</p><h3>Какие задачи решает библиотека</h3><p>В функционал PyTorch входят:</p><ul><li>Построение нейронных сетей любой сложности (CNN, RNN, трансформеры);</li><li>Обучение и тестирование моделей на CPU и GPU;</li><li>Реализация кастомных слоёв и loss-функций;</li><li>Разработка и деплой ML/AI моделей в продакшен;</li><li>Быстрая итерация гипотез с удобной отладкой.</li></ul><p>С PyTorch можно начать с простых нейронных сетей, а затем перейти к реализации современных архитектур.</p><h3>Как пользоваться</h3><p>Установим PyTorch (на CPU, для GPU потребуется версия с CUDA):</p><p>Рассмотрим кейс обучения простой нейронной сети для классификации рукописных цифр MNIST.</p><p>После обучения можно использовать torch.save() для сохранения модели и torch.load() для загрузки в продакшн.</p><h3>Почему это меняет карьеру</h3><p>PyTorch — билет в мир современной разработки AI и машинного обучения. Владение инструментом даёт <b>разработчику</b> возможность уверенно войти в области, которые продолжают оставаться топовыми на рынке: искусственный интеллект, компьютерное зрение, NLP, генерация изображений и видео и т.д.</p><p>Для <b>начинающего ML/AI-специалиста </b>PyTorch помогает лучше понять, как устроены нейронные сети, и под капотом увидеть, как происходят вычисления. Это ускоряет рост навыков и делает разработчика востребованным в исследованиях и R&amp;D-проектах.</p><p>Для <b>дата-сайентистов</b> PyTorch позволяет превратить исследовательские ноутбуки в готовые к деплою модели, благодаря PyTorch Lightning, TorchScript и ONNX.</p><p>Для<b> разработчиков, которые хотят выйти на рынок AI</b>, PyTorch — это мастхев: проекты в стартапах и крупных компаниях всё чаще строятся вокруг него. Умение писать кастомные loss-функции, проектировать сложные пайплайны обучения, настраивать обучение на кластерах и GPU — компетенции, которые существенно бустят зарплату.</p><p>PyTorch в целом помогает расширять портфолио: с ним можно создавать генеративные модели, строить LLM, участвовать в соревнованиях и работать с самыми современными подходами в машинном обучении.</p><h2>4. Polars</h2><p>Polars — современная библиотека для обработки данных в Python, созданная как альтернатива Pandas. Она использует колоночную архитектуру и многопоточность, что позволяет работать с большими объёмами данных значительно быстрее и с меньшим потреблением памяти.</p><p>Polars вдохновлена Pandas, но её API оптимизировано для производительности и удобства, а также даёт разработчику возможность писать цепочки ленивых вычислений, которые оптимизируются перед выполнением. Это делает её отличным инструментом для аналитиков, дата-инженеров и дата-сайентистов, которым нужно обрабатывать данные быстро.</p><h3>Какие задачи решает библиотека</h3><p>Polars явно есть, чем гордиться:</p><ul><li>Загрузка, очистка и преобразование больших датасетов;</li><li>Анализ данных с использованием цепочек преобразований;</li><li>Быстрая агрегация и группировка данных;</li><li>Ленивые вычисления: построение пайплайнов преобразования данных, которые выполняются только при вызове collect().</li><li>Обработка данных, которые не помещаются в память, за счёт эффективности и колоночной архитектуры.</li></ul><p>Если Pandas начинает притормаживаться на данных в несколько гигабайт, Polars обычно продолжает работать быстро, позволяя без боли обрабатывать большие CSV.</p><h3>Как пользоваться</h3><p>Установка:</p><p>Давайте загрузим данные и проведем базовые трансформации:</p><p>А вот и пример ленивых вычислений:</p><p>В чем особенность:</p><ul><li>pl.read_csv загружает данные сразу.</li><li>pl.scan_csv создаёт план вычислений для последующей оптимизации.</li><li>Используются выражения (pl.col, .with_columns, .agg), которые композируются без создания промежуточных копий, это ускоряет процесс.</li></ul><h3>Почему это меняет карьеру</h3><p>Polars меняет карьеру, потому что даёт преимущество в скорости и эффективности при работе с данными. Там, где Pandas уже не справляется, полярный медведь приходит на помощь.</p><p>Для <b>дата-инженеров</b> Polars полезен при построении ETL и пайплайнов обработки данных, где важна скорость и предсказуемое потребление ресурсов. Его можно использовать в продакшен-скриптах, для подготовки данных к ML и для автоматизации отчётности.</p><p>Для <b>дата-сайентистов </b>Polars даёт возможность анализировать больше данных за меньшее время, быстро итерировать гипотезы и ускорять исследования. Его API достаточно близок к Pandas, поэтому переход не требует месяцев переучивания.</p><p>Освоение Polars показывает работодателям, что ты не просто знаешь стандартные инструменты, но умеешь выбирать оптимальные решения для реальных задач, повышая эффективность работы команды. В эпоху роста данных это критично для любого Python-разработчика, работающего с аналитикой и машинным обучением.</p><h2>5. FastAPI</h2><p>FastAPI — современный фреймворк для создания API на Python, заточенный под скорость, асинхронность и валидацию данных из коробки. Он построен на Starlette и Pydantic, автоматически создаёт OpenAPI-документацию, поддерживает асинхронное программирование и позволяет писать производительные REST и WebSocket API с минимальным количеством кода.</p><p>Вместо долгой настройки, как у Flask или Django, в FastAPI многое готово изначально: удобная работа с запросами и ответами, декларативная валидация, документация Swagger, асинхронность и высокая производительность без лишних усилий.</p><h3>Какие задачи решает</h3><p>Задач, действительно, много:</p><ul><li>Быстрая разработка REST API для мобильных и веб-приложений;</li><li>Создание бэкенда для ML/DS моделей (деплой моделей в виде API);</li><li>Построение микросервисов с хорошей производительностью;</li><li>Реализация websocket-серверов и асинхронных API;</li><li>Подготовка внутренних инструментов или бэкендов для MVP.</li></ul><p>FastAPI помогает быстро запускать API и уверенно масштабировать его в полевых условиях. Это один из немногих фреймворков Python, который по скорости работы сопоставим с Node.js и Go.</p><h3>Как пользоваться</h3><p>Во-первых, нужно установить FastAPI и Uvicorn (используем ASGI-сервер для запуска):</p><p>Простейший API-пример с эндпоинтом GET /:</p><p>Запускаем сам сервер:</p><p>После запуска API будет доступен по адресу http://127.0.0.1:8000/. Автоматически доступна интерактивная документация Swagger по адресу http://127.0.0.1:8000/docs.</p><p>FastAPI поддерживает валидацию параметров запроса, тел запросов и путей прямо через типы Python. Например, простой эндпоинт с параметром:</p><p>При вызове http://127.0.0.1:8000/items/10?q=test FastAPI автоматически проверит, что item_id — это число, и распарсит q как строку.</p><h3>Почему это меняет карьеру</h3><p>FastAPI — билет в мир бэкенда, где скорость и чистота кода имеют довольно высокое значение. Для <b>Python-разработчика </b>это возможность быстро освоить создание API и микросервисов, не увязнув в громоздкой настройке, как в Django, и при этом получить систему, готовую к продакшену.</p><p>Для <b>ML-специалиста</b> FastAPI становится инструментом для деплоя моделей: можно обернуть пайплайн предсказаний в API, подключить авторизацию или логирование и получить работающий сервис за считанные дни.</p><p>Вообще умение быстро поднимать и поддерживать API — навык, который ценят в бигтехе и стартапах. На разработчиков, которые владеют FastAPI, часто равняются: они умеют превращать идеи бизнеса в работающие сервисы за минимальное время.</p><h2>6. Typer</h2><p>Typer — современная библиотека для создания CLI-приложений на Python с минимальным количеством кода и автоматической генерацией документации. Автор библиотеки — Себастьян Рамирес, создатель FastAPI.</p><p>Главная особенность Typer — использование type hints для автоматического парсинга аргументов командной строки. Вы получаете удобную и читаемую CLI с поддержкой автодополнения и цветного вывода за считанные минуты.</p><h3>Какие задачи решает библиотека</h3><p>Список задач такой:</p><ul><li>Создание CLI-утилит любого уровня сложности.</li><li>Быстрое прототипирование и упаковка Python-скриптов в удобные инструменты для продакшена.</li><li>Генерация подробной справки (--help) и автодополнения команд.</li><li>Облегченная поддержка и масштабирование CLI за счёт структуры и читаемого кода.</li><li>Организация CLI с подкомандами, вложенными аргументами и обработкой ошибок.</li></ul><p>Typer использует аннотацию типов и минимум шаблонного кода.</p><h3>Как пользоваться</h3><p>Установка:</p><p>Пример минимальной CLI:</p><p>Теперь можно запустить из консоли:</p><p>Результат будет такой: Привет, Алиса! Тебе 25 лет.</p><h3>Почему это меняет карьеру</h3><p>Typer меняет карьеру тем, что открывает путь к созданию удобных CLI-инструментов, которые автоматизируют рутину и повышают продуктивность.</p><p>С Typer можно быстро превращать свои Python-скрипты в надежные утилиты, которыми удобно пользоваться и другим разработчикам, и сотрудникам из других отделов. CLI-приложения часто становятся клеем инфраструктуры: они позволяют автоматизировать деплой, миграции БД, сбор данных, интеграцию с внешними API и локальную разработку.</p><p>Если вы <b>Data Scientist или ML-инженер</b>, Typer позволяет оборачивать пайплайны в CLI, которые легко запускать из Jenkins, Airflow или вручную. Если вы <b>DevOps или Backend-инженер</b>, можете создавать CLI для работы с инфраструктурой и сервисами без сложных зависимостей.</p><p>Кроме того, работа с Typer улучшает навык структурирования кода, понимание CLI, использования type hints и разработки инструментов, которые делают работу проще для других. А это, очевидно, ценится в любой команде и повышает востребованность специалиста.</p><h2>7. Rich</h2><p>Rich — библиотека Python для красивого форматирования и интерактивного отображения информации в терминале. С её помощью можно выводить цветные таблицы, маркдаун, прогресс-бары, подсвеченный синтаксис кода, деревья каталогов и логирование в понятной и привлекательной форме.</p><p>Rich создана для того, чтобы «оживить» консоль Python, сделать логи удобными для восприятия, а CLI-инструменты — профессионально выглядящими без лишних усилий. Это библиотека, которая улучшает и UX, и DX.</p><h3>Какие задачи решает</h3><p>Про красоту не забываем! Задачи следующие:</p><ul><li>Цветное и структурированное логирование, понятное при чтении логов в реальном времени.</li><li>Отображение прогресс-баров для долгих операций.</li><li>Вывод таблиц, деревьев каталогов, JSON прямо в терминале.</li><li>Подсветка синтаксиса кода для CLI-инструментов.</li><li>Создание CLI-интерфейсов, которые выглядят профессионально и современно.</li><li>Улучшение читаемости при отладке скриптов.</li></ul><p>С помощью Rich можно быстро сделать понятными даже сложные данные при отладке или демонстрации.</p><h3>Как пользоваться</h3><p>Установка Rich:</p><p>Для примера выведем таблицу с подсветкой в консоли:</p><p>В результате в терминале получится цветная таблица, которая выглядит понятно и презентабельно.</p><h3>Почему это меняет карьеру</h3><p>Rich — это библиотека, которая помогает быстро повысить качество любого CLI-инструмента или дев-опыт в команде. <b>Разработчик</b>, который использует Rich, делает свои инструменты удобными не только для себя, но и для коллег: логирование становится понятным, а отладка скриптов — наглядной.</p><p>Во многих стартапах и продвинутых командах важна скорость обратной связи при тестировании пайплайнов и автоматизаций, и Rich помогает выводить ключевую информацию максимально читаемо.</p><p>Кроме того, Rich позволяет быстро создавать CLI-интерфейсы, которые выглядят как продакшен-продукты, даже если это внутренние инструменты. Руководство будет радоваться и думать о вас как о крутом разрабе.</p><p>Для <b>дата-инженеров и разработчиков DevOps</b> Rich полезна при создании админ-утилит и при мониторинге пайплайнов, для <b>Python-разработчиков</b> — при создании библиотек и фреймворков с CLI.</p><h2>8. LangChain</h2><p>LangChain — фреймворк для создания приложений на базе LLM, например, GPT, Claude, Mistral, Gemini. Он позволяет строить цепочки обработки запросов, интегрировать LLM с данными и инструментами, добавлять память и управление состояниями, а также связывать работу модели с внешними API и базами знаний.</p><p>LangChain предоставляет удобный слой абстракции над вызовами LLM и ускоряет разработку чат-ботов, RAG-приложений, агентов с инструментами, систем анализа документов и других AI-сервисов.</p><h3>Какие задачи решает</h3><p>Список внушительный:</p><ul><li>Интеграция LLM в Python-приложения без необходимости писать тот самый клеевой код вручную.</li><li>Построение цепочек с последовательной обработкой сообщений, включая преобразования и вызовы внешних функций.</li><li>Добавление памяти в чат-боты для сохранения истории общения и контекста.</li><li>Использование агентов для динамического вызова инструментов (веб-поиск, базы данных, API).</li><li>Создание RAG-систем с интеграцией LLM и векторных БД.</li><li>Быстрая сборка прототипов LLM-приложений, которые можно развернуть в продакшен.</li></ul><h3>Как пользоваться</h3><p>Установка:</p><p>Создадим простую цепочку с чатом GPT:</p><p>Благодаря единым абстракциям, можно гибко комбинировать цепочки, память и вызов внешних инструментов, не усложняя код.</p><h3>Почему это меняет карьеру</h3><p>LangChain меняет карьеру, потому что открывает новый пласт Python-разработки в AI и LLM-инженерии, быстро превращая пользователя GPT в создателя полноценных AI-приложений. Вместо того чтобы писать хаотичный клеевой код, вы начинаете системно проектировать цепочки запросов, учитесь строить продуманные промпты и объединять их с инструментами, памятью и внешними API.</p><p>Работа с LangChain погружает в практическую LLM-инженерию: вы начинаете создавать RAG-приложения, которые умеют искать и анализировать данные перед генерацией ответа и строить агентов. Это востребовано в продуктах, где нужно подключать ИИ к базам знаний, автоматизировать задачи и разрабатывать интерактивные системы, которые реально используют модели в продакшене.</p><p>LangChain позволяет быстро собирать и запускать MVP AI-продуктов, что дает конкурентное преимущество при создании стартапов или внутренних сервисов. А ещё учит мыслить структурами и проектировать масштабируемую архитектуру LLM-приложений и видеть, как генеративный ИИ можно превратить в рабочий инструмент.</p><h2>9. SQLAlchemy</h2><p>SQLAlchemy — это мощная ORM и toolkit для работы с базами данных в Python, позволяющая писать SQL-запросы декларативно, создавать модели таблиц и управлять транзакциями в Python-коде без ручного написания SQL.</p><p>Библиотека даёт разработчику два уровня контроля:</p><ul><li>Core: низкоуровневая работа с SQL выражениями и соединениями;</li><li>ORM: высокоуровневая декларативная работа с моделями, классами и связями между таблицами.</li></ul><p>SQLAlchemy поддерживает PostgreSQL, MySQL, SQLite, Oracle и другие СУБД, давая единую абстракцию, без привязки к конкретному движку.</p><h3>Какие задачи решает</h3><p>Пул задач следующий:</p><ul><li>Описание таблиц в виде Python-классов и управление ими через сессии;</li><li>Создание, чтение, обновление и удаление данных;</li><li>Миграция SQL на декларативный стиль без потери гибкости;</li><li>Полный контроль над транзакциями и выполнением запросов;</li><li>Работа с асинхронными приложениями при создании FastAPI/Django-приложений;</li><li>Экранирование параметров, которое снижает вероятность SQL-инъекций и ошибок.</li></ul><h3>Как пользоваться</h3><p>Создадим минимальный пример для SQLite с таблицей пользователей:</p><p>Этот код создаёт базу example.db, таблицу users, добавляет туда одного пользователя и выводит всех пользователей в базе. При необходимости можно использовать SQLAlchemy Core для написания гибких запросов вручную, если нужно работать ближе к SQL.</p><h3>Почему это меняет карьеру</h3><p>SQLAlchemy меняет карьеру <b>Python-разработчика</b> тем, что даёт понимание системной работы с данными, архитектуры приложений и взаимодействия с реальными базами данных. Вы учитесь строить продуманные бэкенды, которые работают с транзакциями, миграциями, связями между таблицами и сложными выборками.</p><p>Знание SQLAlchemy открывает дорогу в мир API, микросервисов и продуктов, где требуется качественное управление данными и гибкая логика работы с БД. Работа с SQL теперь совсем не страшная.</p><h2>10. Seaborn</h2><p>Seaborn — библиотека для визуализации данных на Python, построенная поверх Matplotlib и упрощающая создание информативных и стильных графиков с минимальным количеством кода.</p><p>Она автоматически заботится о красивых стилях, цветах, разметке графиков, легендах и позволяет легко строить распределения, линейные графики, тепловые карты и другие визуализации.</p><p>Библиотека тесно интегрируется с Pandas DataFrame, позволяя использовать колонки данных напрямую для построения графиков, что делает её идеальной для EDA (разведочного анализа данных) и подготовки визуализаций для отчётов и презентаций.</p><h2>Какие задачи решает</h2><p>Визуализация безумно важна, особенно в контексте дата-аналитики. Seaborn отвечает за:</p><ul><li>Быстрое построение информативных графиков для анализа данных и поиска инсайтов;</li><li>Автоматическую обработку ошибок отображения и масштабирования, что экономит время;</li><li>Поддержку сложных визуализаций по типу ящиков с усами или тепловых карт без десятков строк кода;</li><li>Стилизацию графиков без ручных настроек Matplotlib;</li><li>Возможность добавлять статистические элементы (линию регрессии, KDE, распределение);</li><li>Интеграцию с Jupyter Notebook для интерактивного анализа данных.</li></ul><h3>Как пользоваться</h3><p>Допустим, у нас есть датасет с данными о чаевых:</p><p>В три строки мы получаем чистый и читаемый ящик с усами, показывающий, как счет за ужин распределяется по дням недели.</p><p>Для построения более сложных графиков можно использовать диаграмму рассеяния:</p><p>Тут мы добавляем цветовую кодировку по полу, чтобы увидеть зависимости между переменными.</p><h3>Почему это меняет карьеру</h3><p>Seaborn меняет карьеру, потому что даёт навык визуального анализа данных, что критично в современной аналитике и дата-инженерии. Умение быстро строить графики и видеть аномалии, распределения и взаимосвязи между переменными превращает работу с данными из слепого копания в числах в структурный анализ.</p><p>Использование Seaborn в Python-стеке помогает выделиться среди разработчиков, которые ограничиваются Pandas и текстовыми логами, ведь визуализация часто позволяет быстрее заметить закономерности и убедить команду или заказчика в правильности гипотезы.</p><p>Seaborn также учит пониманию данных через визуальные паттерны, что улучшает навыки построения моделей машинного обучения (так понятнее, какие признаки важны), и помогает создавать наглядные отчёты для продуктовых решений, где результат анализа нужно доносить до людей не из айти-индустрии.</p><p><i>А какими библиотеками пользуетесь вы? Делитесь в комментариях!</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Лучшие российские нейросети аналоги чата GPT, Chat-GPT на русском: ТОП-8 нейросетей, которые дают пользоваться западными нейросетями в России (GPT o4, Midjorney, Gemini, Dalle, Deepseek и др.)</title>
      <link>https://tproger.ru/articles/luchwie-rossijskie-nejroseti-analogi-chata-gpt--chat-gpt-na-russkom--top-8-nejrosetej--kotorye-predostavlyayut-funkcional-izvestnyh-nejrosetej-v-rossii--gpt-o4--midjorney--gemini--dalle--deepseek-i-dr</link>
      <comments>https://tproger.ru/articles/luchwie-rossijskie-nejroseti-analogi-chata-gpt--chat-gpt-na-russkom--top-8-nejrosetej--kotorye-predostavlyayut-funkcional-izvestnyh-nejrosetej-v-rossii--gpt-o4--midjorney--gemini--dalle--deepseek-i-dr?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[СтудГид]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/luchwie-rossijskie-nejroseti-analogi-chata-gpt--chat-gpt-na-russkom--top-8-nejrosetej--kotorye-predostavlyayut-funkcional-izvestnyh-nejrosetej-v-rossii--gpt-o4--midjorney--gemini--dalle--deepseek-i-dr</guid>
      <description><![CDATA[<p>Подборка из 8 сервисов, которые позволяют использовать ChatGPT, Midjourney, DALL·E и другие нейросети в России — без VPN, с русским интерфейсом и полным доступом.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/luchwie-rossijskie-nejroseti-analogi-chata-gpt--chat-gpt-na-russkom--top-8-nejrosetej--kotorye-predostavlyayut-funkcional-izvestnyh-nejrosetej-v-rossii--gpt-o4--midjorney--gemini--dalle--deepseek-i-dr">Лучшие российские нейросети аналоги чата GPT, Chat-GPT на русском: ТОП-8 нейросетей, которые дают пользоваться западными нейросетями в России (GPT o4, Midjorney, Gemini, Dalle, Deepseek и др.)</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Оптимизация]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Распознавание]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Яндекс]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Английский]]></category>
      <category><![CDATA[YouTube]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 09 Jul 2025 08:35:50 GMT</pubDate>
      <content:encoded><![CDATA[<p>Российский аналог чата GPT / доступ к зарубежным нейросетям в России</p><p><b>Российские нейросети — достойная альтернатива ChatGPT и другим западным ИИ-сервисам.</b></p><p>С появлением ChatGPT, Midjourney, Gemini и других мощных ИИ-инструментов работа с текстами, изображениями, кодом и данными стала проще и быстрее. Однако с учётом ограничений доступа к ряду зарубежных сервисов, особенно из России, на первый план вышли отечественные разработки. И сейчас российские нейросети уже могут успешно заменить западные аналоги — по функционалу, качеству генерации и удобству использования.</p><p>Современные русскоязычные ИИ-сервисы умеют вести диалог, писать статьи, решать задачи, генерировать изображения и даже программировать — полностью на русском и с учётом локального контекста. Многие из них активно развиваются, интегрируются в бизнес-процессы и становятся всё более популярными среди пользователей.</p><p><b>Как пользоваться ChatGPT, Midjourney, DALL·E и другими нейросетями в России: подборка сервисов с доступом к ИИ без ограничений</b></p><p>Сегодня нейросети вроде ChatGPT, GPT-4, Midjourney, Gemini, Claude и других — незаменимые инструменты для работы с текстами, изображениями, кодом и данными. Но из-за ограничений многие из этих сервисов официально недоступны в России. Несмотря на это, существуют альтернативные способы получить к ним доступ — через российские платформы и интеграции, которые открывают полный функционал популярных западных ИИ.</p><p>Эти сервисы позволяют использовать возможности ведущих нейросетей без VPN, смены региона и сложных настроек. Достаточно просто зарегистрироваться — и можно генерировать тексты в GPT-4, создавать изображения в Midjourney, работать с ИИ-помощниками вроде Gemini и Claude, использовать перевод, анализ данных, автоматизацию задач и многое другое.</p><p><i>Мы собрали ТОП-8 сервисов, которые дают российским пользователям удобный и стабильный доступ к лучшим зарубежным нейросетям. В обзоре расскажем, как работает каждый из них, какие ИИ-модели поддерживаются, чем они удобны и кому подойдут больше всего.</i></p><p><b>ТОП-8 сервисов, которые дают российским пользователям удобный и стабильный доступ к лучшим зарубежным нейросетям:</b></p><p>1. <a href="https://eduforms.org/?rid=10e8034c12615a2d">Study.AI</a> - лучший агрегатор нейросетей предоставляющий возможности всех самых популярных генераторов (текст, картинки, фото, видео и т.д.) Есть фримиум возможности — доступ к чату GPT и др.</p><p>2. <a href="https://apihost.ru/">ApiHost</a> - универсальный сервис без необходимости VPN. Быстро генерирует изображения по промптам и голосовым командам.</p><p>3. <a href="https://chat.gogpt.ru/">GoGPT</a> -Удобное мобильное приложение с мгновенной генерацией картинок по тексту. Отличается высокой скоростью работы.</p><p>4.  <a href="https://chadgpt.ru/">Chad AI</a>  - специалист по логотипам и аватаркам. Подходит для брендинга и быстрого создания фирменного стиля.</p><p>5.  <a href="https://aisearch.ru/">Ай Серч</a>  - комбинирует текст и изображение.</p><p>6. <a href="https://pisatel.info/">AI-Писатель</a>. - создаёт изображения, тексты и описания товаров по фото.</p><p>7. <a href="https://neuro-texter.ru/">НейроТекстер</a> - дорисовывает изображение, продолжая идею автора.</p><p>8.  <a href="https://neuro-holst.ru/">НейроХолст</a>  - превращает фото в иллюстрации в заданном стиле — от реализма до 3D.</p><h3>Российские нейросети и сервисы, где можно сгенерировать текст, изображение, видео, картинку или просто получить доступ к нейросетям: GPT o4, Midjorney, Gemini, Dalle, Deepseek и др.:</h3><p>1. <a href="https://eduforms.org/?rid=10e8034c12615a2d">Study.AI</a><a href="https://a24plus.ru/chat/open_ai_image_bot?utm_source=edugram&amp;utm_medium=igorpr&amp;utm_campaign=tproger2"></a></p><p><a href="https://eduforms.org/?rid=10e8034c12615a2d">Study.AI</a> — это сборник различных нейросетей для генерации изображений, фотографий, презентаций, по текстовым и голосовым запросам. Она предназначена для создания уникального визуального контента, включая иллюстрации, концепт-арты, рекламные баннеры и другие изображения. (лучшая нейросеть на данный момент по мнению пользователей). Внутри платформы предоставляется функционал всех известных нейросетей в России (GPT o4, Midjorney, Gemini, Dalle, Deepseek и др.)</p><figure><img src="https://media.tproger.ru/user-uploads/114541/2025-05-28/9416387f-43f0-47a4-907e-8f33cfa345db.png" alt="Study.AI" /><figcaption>Study.AI</figcaption></figure><p><a href="https://a24plus.ru/chat/open_ai_image_bot?utm_source=edugram&amp;utm_medium=igorpr&amp;utm_campaign=tproger2"></a><a href="https://study24.ai/chat/generate_presentation_plus_bot?utm_source=edugram&amp;utm_medium=igorpr">Study.AI</a> — это универсальная платформа, объединяющая 6 передовых AI-моделей (для генерации креатива, создания иллюстраций, изображений и картинок, презентаций, текста, анализа данных, и т. д.) в одном удобном сервисе. Точный и безопасный доступ к нейросетям без необходимости покупать десяток отдельных подписок или использовать VPN является огромный плюсом данного сервиса</p><ul><li>Стоимость: от 199 рублей</li><li>Пробный период: доступен ограниченный бесплатный режим для тестирования</li><li>Доступ: онлайн через браузер</li></ul><p>Преимущества:</p><ul><li>Все AI-модели в одном месте</li><li>Единая подписка (Freemium + Premium)</li><li>Глубокие интеграции (улучшенное распознавание изображений, генерация изображений, картинок, презентаций, генерация рефератов)</li><li>Интуитивный интерфейс (минимум лишних кнопок, гости могут протестировать сразу)</li><li>Экономия времени и сил (автоматизация рутины, быстрое переключение между моделями)</li><li>Поддержка русского языка и доступ без VPN</li><li>Есть версия в Telegram</li><li>Универсальное решение (студенты, специалисты, творчество, личные дела)</li><li>Масштабируемость (сервис постоянно добавляет новые модели нейросетей)</li></ul><p>Недостатки:</p><ul><li>пока что не обнаружены</li></ul><p><a href="https://eduforms.org/?rid=10e8034c12615a2d">САЙТ СЕРВИСА</a></p><p>2. <a href="https://apihost.ru/">ApiHost</a></p><p>ApiHost — это многофункциональный онлайн-сервис на русском языке, который позволяет создавать изображения по текстовому описанию, рисункам и фотографиям. Помимо визуального контента, ApiHost поддерживает функции озвучки, преобразования голоса в текст и обратной конвертации. Идеально подходит для генерации изображений для сайтов, презентаций, баннеров и другого контента.</p><figure><img src="https://media.tproger.ru/user-uploads/114541/2025-05-28/1ae26584-4197-4e60-8d65-357931ae3144.png" alt="" /><figcaption>ApiHost</figcaption></figure><p>Сервис работает по платной модели: 9 рублей за генерацию изображения и 6 рублей за описание к фото. Бесплатного тестового периода нет, но лимиты отсутствуют в платной версии.</p><p>Преимущества ApiHost:</p><ul><li>Полностью адаптирован для мобильных устройств.</li><li>ИИ создаёт до 4 вариантов изображения по одному промпту — на русском и английском.</li><li>Поддержка загрузки фото, рисунков и текстовых файлов для генерации.</li><li>Дополнительные функции: озвучка, голос в текст, сохранение, анализ текста, подсчёт слов, изменение тона и темпа голоса.</li><li>Возможность самостоятельного выбора ИИ-модели для генерации.</li><li>Интеграция с YouTube и AI-подсказки.</li></ul><h2>Недостатки и ограничения:</h2><ul><li>Нет возможности править мелкие детали на изображении — результат можно только принять или отклонить.</li><li>Исходные изображения не сохраняются — используются только как базовая информация для генерации.</li><li>Не поддерживает генерацию графиков и медицинских изображений.</li><li>Регистрация обязательна, даже для первого использования.</li><li>Отсутствие бесплатного пробного периода — сразу требуется оплата.</li></ul><p><a href="https://apihost.ru/">CАЙТ СЕРВИСА</a></p><p>3. <a href="https://chat.gogpt.ru/">GoGPT</a></p><p>GoGPT — это мощный ИИ-сервис с полностью русскоязычным интерфейсом, который сочетает функции генерации изображений, распознавания объектов и интеллектуального анализа визуального контента. Сервис работает на базе DALL·E 3 и Midjourney, поэтому для корректной работы с изображениями может потребоваться VPN. Основной упор сделан на генерацию и обработку изображений по промтам, коррекцию визуалов и работу с композициями.</p><figure><img src="https://media.tproger.ru/user-uploads/114541/2025-05-28/bc095bc8-0dcc-4bda-a28d-82e9e023aee1.png" alt="" /><figcaption>GoGPT</figcaption></figure><p>Сервис поддерживает загрузку фото с описанием, запоминает контекст, предлагает прогнозирование расходов, анализирует данные из интернета и помогает создавать или редактировать визуальный стиль. Подключение возможно через браузер или чат-бот с поддержкой GPT-4v.</p><p>Условия использования:</p><ul><li>Бесплатный пробный период — 7 дней</li><li>10 бесплатных запросов в день в рамках теста</li><li>Полный доступ к функциям с тарифа «Стандарт» — от 699 ₽ в месяц</li><li>Регистрация обязательна</li></ul><p>Преимущества GoGPT:</p><ul><li>Большая библиотека готовых шаблонов (промтов) для генерации изображений.</li><li>Гибкий контроль контекста и запоминание истории запросов.</li><li>Обучающая система и интеллектуальная обработка текстов.</li><li>Накопительные токены — можно переносить на следующий месяц.</li><li>Выделение отдельных участков изображения для точечной доработки.</li><li>Поддержка распознавания и обработки сразу нескольких изображений.</li></ul><p><a href="https://chat.gogpt.ru/">САЙТ СЕРВИСА</a></p><p>4. <a href="https://chadgpt.ru/">Chad AI</a></p><p>ChadAI — это многофункциональный сервис, сочетающий генерацию изображений, создание текстов, визуального контента и даже прототипов простых игр. Сервис работает на русском языке и не требует подключения VPN, что делает его удобным для пользователей из России.</p><figure><img src="https://media.tproger.ru/user-uploads/114541/2025-05-28/e06ca793-405f-4715-a84d-87ab4abfe626.png" alt="" /></figure><p>ChadAI поддерживает работу с популярными генераторами изображений — DALL·E и Midjourney. В зависимости от подключённого инструмента и тарифа, пользователю доступны разные лимиты на количество запросов. Сервис способен создавать изображения по промтам, а также превращать загруженные фото в арты или стилизованные картинки. Есть функция голосового ввода, встроенный поиск через Яндекс-бот и генерация изображений прямо в чате.</p><p>Условия использования:</p><ul><li>Бесплатный тариф: 3 запроса в сутки</li><li>Тарифы: Мини — 290 ₽/мес, Оптимум — 590 ₽/мес, Плюс — 1690 ₽/мес</li><li>Первый месяц: 50 изображений DALL·E, 25 — Midjourney</li><li>Далее — 15 изображений в месяц бесплатно или переход на платный тариф</li><li>Обязательная регистрация</li></ul><h2>Преимущества ChadAI:</h2><ul><li>Поддержка голосовых запросов и текстовых описаний</li><li>Возможность создавать арты из фото и изображения прямо в чате</li><li>Высокое разрешение сгенерированных изображений</li><li>Обработка длинных текстов до 14 000 знаков</li><li>Доступ к встроенной библиотеке промтов</li><li>Быстрая техподдержка через Telegram</li><li>Гибкая система тарифов с возможностью докупить запросы при необходимости</li></ul><h2>Недостатки ChadAI:</h2><ul><li>Русская версия периодически выдаёт ошибки и нестабильно работает</li><li>В периоды высокой нагрузки возможны временные ограничения для пользователей из России</li><li>Количество бесплатных изображений ограничено, особенно после первого месяца</li></ul><p><a href="https://chadgpt.ru/">САЙТ СЕРВИСА</a></p><p>5. <a href="https://aisearch.ru/">Ай Серч</a></p><p>AI Search — универсальный искусственный интеллект, предназначенный для генерации изображений и текстов, обработки аналитических данных и помощи в программировании. Несмотря на наличие русской версии интерфейса, в полной мере работать с инструментом можно только через англоязычный режим. Сервис подходит для создания логотипов, аватаров и анимаций по текстовому описанию, но уровень визуализации часто оставляет желать лучшего.</p><figure><img src="https://media.tproger.ru/user-uploads/114541/2025-05-28/04de0f96-18f3-4ab2-8dc1-5cea9dc778fd.png" alt="" /></figure><h2>AI Search</h2><p>Сервис также предлагает функции для написания статей, описаний товаров, блогов, рефератов и даже кода для более чем 20 языков программирования. В зависимости от тарифа доступны разные объёмы задач, символов или временных ограничений. Регистрация обязательна, а тестировать визуальные функции без оплаты невозможно — пробный доступ ограничен лишь базовым функционалом.</p><p>Условия использования:</p><ul><li>Язык интерфейса: русский (ограниченный), английский (полноценный)</li><li>Тестовый период: 7 дней с ограничениями</li><li>Стоимость: от 999 ₽ до 2999 ₽/мес в зависимости от тарифа</li><li>Форма запроса: текстовое описание (лучше — на английском)</li><li>Регистрация обязательна</li></ul><h2>Преимущества AI Search:</h2><ul><li>Гибкая система тарифов — можно выбрать подходящий план под конкретные задачи</li><li>После первой оплаты начисляется 100% бонус на баланс</li><li>Поддерживает создание анимаций и статичных изображений по описанию</li><li>Многофункциональность: от генерации текстов до написания кода и анализа данных</li></ul><h2>Недостатки AI Search:</h2><ul><li>Полноценный функционал доступен только после оплаты — даже тестовые изображения не сгенерировать бесплатно</li><li>Интерфейс на русском языке работает нестабильно, ограничен по возможностям</li><li>Качество изображений часто не соответствует ожиданиям — результат может отличаться от заданного описания</li></ul><p><a href="https://aisearch.ru/">САЙТ СЕРВИСА</a></p><p>6. <a href="https://pisatel.info/">AI-Писатель</a>.</p><p>AI-Писатель — сервис с русскоязычным интерфейсом, ориентированный на создание и корректуру разнообразных текстов, включая SEO-контент, отзывы, рерайтинг, копирайтинг, рекламные материалы и сценарии. Также предлагает функции генерации изображений и фотографий, но с ограничениями в базовых тарифах.</p><figure><img src="https://media.tproger.ru/user-uploads/114541/2025-05-28/8f07fe43-1ed6-4ce3-bfcb-2d87a09a3b03.png" alt="" /><figcaption>AI-Писатель</figcaption></figure><h2>Условия использования:</h2><ul><li>Язык интерфейса: русский</li><li>Тестовый период: 1 сутки для текста</li><li>Стоимость: от 150 до 6500 ₽ в месяц в зависимости от пакета</li><li>Форма запроса: текстовая подсказка</li><li>Регистрация: обязательна для генерации изображений</li></ul><h2>Преимущества AI-Писателя:</h2><ul><li>Поддержка разных моделей ИИ, включая GPT-4o Turbo и Claude 3.5 Sonnet на дорогих тарифах</li><li>Генерация и корректура текстов разного уровня сложности</li><li>Создание SEO-оптимизированных текстов для сайтов и рекламных материалов</li><li>Возможность создавать изображения с разным разрешением через Dall-E 3 (в зависимости от тарифа)</li><li>Гибкие лимиты на символы и изображения в зависимости от выбранной модели</li></ul><h2>Недостатки AI-Писателя:</h2><ul><li>Ограниченный доступ к продвинутым ИИ и созданию изображений в дешевых тарифах</li><li>Короткий бесплатный тестовый период — всего один день для текстов</li><li>Требуется обязательная регистрация для генерации картинок</li><li>Ограничения по количеству и размеру изображений в зависимости от тарифа</li></ul><p><a href="https://pisatel.info/">САЙТ СЕРВИСА</a></p><p>7. <a href="https://neuro-texter.ru/">НейроТекстер</a></p><p>НейроТекстер — русскоязычный сервис, позволяющий создавать и обрабатывать тексты с разной стилистикой и тоном, а также генерировать изображения в стиле аниме, аватарки, фото, логотипы и превью для статей. При работе не требуется VPN, однако возможны сложности с оплатой через нейротокены — внутренняя валюта для приобретения изображений.</p><figure><img src="https://media.tproger.ru/user-uploads/114541/2025-05-28/d6a80d8f-5580-401d-bfba-025b05f0079d.png" alt="" /><figcaption>Нейротекстер</figcaption></figure><h2>Основные характеристики:</h2><ul><li>Язык интерфейса: русский</li><li>Тестовый период: 7 дней</li><li>Стоимость: от 299 до 1999 рублей в месяц (зависит от тарифа)</li><li>Форма запроса: текстовая подсказка</li><li>Регистрация: обязательна</li></ul><h2>Преимущества НейроТекстера:</h2><ul><li>Обработка сразу нескольких изображений — до 9 за один запрос</li><li>Возможность задавать запросы на русском и английском языках</li><li>Многофункциональность: рерайтинг, генерация текстов, проверка грамматики, оптимизация, настройка стиля и тона</li><li>Специализированная служба поддержки с чат-ботами, разделёнными по сферам деятельности, что ускоряет получение помощи</li><li>Управление параметрами изображений — размер, количество шагов прорисовки для детализации</li></ul><h2>Недостатки НейроТекстера:</h2><ul><li>Без подписки сервис не работает</li><li>При большой нагрузке возникают задержки и затруднения с генерацией изображений</li><li>Возможны периодические проблемы с оплатой через нейротокены</li></ul><p><a href="https://neuro-texter.ru/">САЙТ СЕРВИСА</a></p><p>8. <a href="https://neuro-holst.ru/">НейроХолст</a></p><p>НейроХолст — русскоязычная нейросеть, ориентированная на перерисовку, коррекцию фото и генерацию картинок по текстовому описанию. Пользователю доступна возможность создавать эскизы, наброски, полноценные картины и фотографии в различных стилях. Для качественного результата важно сразу задавать точные параметры, например, убрать мультяшность или ограничить размытость.</p><figure><img src="https://media.tproger.ru/user-uploads/114541/2025-05-28/ec6b9e13-686f-454d-a90f-d4e53bbbc42a.png" alt="" /><figcaption>НейроХолст</figcaption></figure><h2>Основные характеристики:</h2><ul><li>Язык интерфейса: русский</li><li>Тестовый период: бесплатный (до 25 «красок» — запросов на изображения)</li><li>Стоимость: от 100 рублей («Мини») до 5000 рублей («Океан красок»)</li><li>Форма запроса: текстовое описание</li><li>Регистрация: обязательна</li></ul><h2>Преимущества НейроХолста</h2><ul><li>Простота использования — не требует установки и сложных настроек</li><li>Интуитивно понятный и удобный интерфейс</li><li>Можно создавать до 50 изображений в бесплатном периоде (по краскам)</li><li>Поддержка различных художественных стилей, гибкая адаптация под запросы пользователя</li><li>Работает на базе популярных мощных ИИ-моделей (Dall-E 3, Midjourney v6)</li></ul><h2>Недостатки НейроХолста</h2><ul><li>Длительное время генерации изображений, даже после оплаты</li><li>Ограничение по количеству запросов в бесплатном тарифе (25 красок)</li></ul><p><a href="https://neuro-holst.ru/">САЙТ СЕРВИСА</a></p><p>Несмотря на ограничения, доступ к лучшим мировым нейросетям в России по-прежнему возможен — благодаря отечественным платформам, которые берут на себя интеграцию с зарубежными ИИ-сервисами. ChatGPT, Midjourney, DALL·E, Gemini, Claude, DeepSeek и другие инструменты становятся ближе и проще в использовании, когда есть удобный интерфейс, поддержка русского языка и прозрачные условия доступа.</p><p>Выбор конкретного сервиса зависит от задач: где-то важен максимально мощный текстовый ИИ, где-то — генерация изображений или креативных концепций, а кому-то нужен универсальный помощник на каждый день. К счастью, рынок развивается, и российские пользователи уже не ограничены в инструментах — главное, понимать, какие возможности предоставляет каждый из них.</p><p>Попробуйте несколько платформ из списка — и найдите ту, которая будет максимально комфортной и эффективной именно для вас. Если же вам не хочется искать несколько платформ, то лучше всего выбрать <a href="https://study24.ai/chat/generate_presentation_plus_bot?utm_source=edugram&amp;utm_medium=igorpr">Study.AI</a> на котором есть все, что может понадобиться пользователю из России, есть бесплатный фримиум период, платформа постоянно обновляется и есть хорошая поддержка, которая может оперативно решить любой вопрос.</p>]]></content:encoded>
    </item>
    <item>
      <title>Что такое SOC (Security Operations Center) и как он защищает данные</title>
      <link>https://tproger.ru/articles/chto-takoe-soc--security-operations-center--i-kak-on-zashhishhaet-dannye</link>
      <comments>https://tproger.ru/articles/chto-takoe-soc--security-operations-center--i-kak-on-zashhishhaet-dannye?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/chto-takoe-soc--security-operations-center--i-kak-on-zashhishhaet-dannye</guid>
      <description><![CDATA[<p>Что такое Security Operations Center. Показываем, как SOC защищает данные. Рассматриваем основные метрики и нюансы ✔ Tproger</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/chto-takoe-soc--security-operations-center--i-kak-on-zashhishhaet-dannye">Что такое SOC (Security Operations Center) и как он защищает данные</a>»</p>]]></description>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[DevSecOps]]></category>
      <category><![CDATA[CI/CD]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 21 May 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Киберугрозы сегодня — это уже не просто попытки взлома или внедрения вирусов, а сложные, многоступенчатые атаки, которые могут парализовать работу целых корпораций. Злоумышленники активно используют ИИ для генерации фишинга, автоматизации атак и обхода традиционных систем защиты. В таких условиях стандартных мер безопасности уже недостаточно — нужен централизованный механизм, который не просто фиксирует угрозы, а предупреждает их.</p><p>И такой механизм существует — называется он <b>Security Operations Center (SOC)</b>. Структура превращает хаотичный поток событий в управляемый процесс, сочетая технологии, аналитику и экспертизу для раннего выявления и нейтрализации угроз.</p><p>В статье разберем принципы работы, задачи и преимущества использования SOC, а также узнаем, почему без внедрения новой концепции безопасности даже защищенная инфраструктура остается уязвимой.</p><h2>Основные задачи SOC</h2><p>Security Operations Center — это специализированное подразделение, отвечающее за непрерывный мониторинг системы и защиту информационных активов организации. Ключевая задача SOC — не просто фиксировать угрозы, а оперативно на них реагировать, минимизируя возможный ущерб. В отличие от классических ИБ-служб, центр работает в режиме 24/7, анализируя потоки данных из различных источников — сетевого оборудования, серверов, конечных устройств, облачных сервисов и приложений.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-04-28/b425db9f-7d1c-4303-9a14-2377bea63950.jpg" alt="" /></figure><p>Одна из главных проблем, с которой сталкиваются современные компании, — это нехватка ресурсов для обработки огромного объема событий безопасности. Большинство организаций просто не успевают своевременно реагировать на инциденты из-за перегруженности аналитиков ложными срабатываниями.</p><p>Именно здесь на помощь приходит Центр управления информационной безопасностью, использующий автоматизированные системы вроде SIEM (Security Information and Event Management) и SOAR (Security Orchestration, Automation and Response). Эти инструменты фильтруют шум, выделяя действительно критичные угрозы.</p><p>Рассмотрим главные задачи SOC подробно.</p><h3>Мониторинг и обнаружение</h3><p>Первая и самая очевидная функция SOC в информационной безопасности — постоянный контроль активности в корпоративной сети.</p><p>Это не пассивное наблюдение, а направленный поиск аномалий:</p><ul><li>нестандартных запросов к базам данных;</li><li>подозрительных входов в систему;</li><li>неавторизованных изменений конфигураций и т.д.</li></ul><p>Например, если сотрудник в ночное время пытается скачать большие объемы информации, система зафиксирует это событие и передаст его аналитикам для проверки.</p><p>Но мониторинг — лишь начальный этап. Современные злоумышленники применяют сложные техники, по типу атак с нулевым днем или латентные угрозы, которые могут оставаться незамеченными месяцами.</p><p>Чтобы противодействовать им, SOC использует Threat Intelligence (отслеживание угроз) — сбор и анализ данных о новых векторах атак, уязвимостях и тактиках хакеров. Например, если в даркнете появляется информация о продаже данных компании, SOC может оперативно проверить, не связана ли утечка с текущими процессами в инфраструктуре.</p><h3>Реагирование и восстановление</h3><p>Обнаружение угроз — только половина дела. Гораздо важнее качественное реагирование. SOC не просто констатирует факт атаки, а предпринимает конкретные действия — блокирует вредоносные IP-адреса, изолирует зараженные узлы, отзывает в доступе скомпрометированным учеткам. В случае с программами-вымогателями счет идет на минуты — чем быстрее будет остановлено распространение, тем меньше данных окажется зашифровано.</p><p>После нейтрализации угрозы начинается этап восстановления. SOC координирует откат систем к последней «чистой» версии, проверяет резервные копии на предмет повреждений, обновляет правила безопасности, чтобы предотвратить повторные атаки. Если инцидент произошел из-за уязвимости в ПО, команда обеспечивает установку патчей не только на пораженных машинах, но и во всей инфраструктуре.</p><h3>Соответствие стандартам и аудит</h3><p>Помимо технических аспектов, SOC играет важную роль в соблюдении регуляторных требований. Многие отрасли — финансы, здравоохранение, госсектор — обязаны соответствовать строгим стандартам вроде PCI DSS, HIPAA или GDPR.</p><p>SOC помогает вести журналы событий, готовить отчеты для аудиторов, а также оперативно реагировать на инциденты, которые могут повлечь штрафы или репутационные потери.</p><h3>Актуализация методов: эволюция угроз = эволюция SOC</h3><p>Киберугрозы не стоят на месте, и SOC вынужден адаптироваться к новым вызовам. Если раньше основное внимание уделялось защите периметра, то сейчас акцент сместился на поведенческий анализ и проактивную защиту.</p><p>Современные центры мониторинга используют машинное обучение для выявления аномалий в поведении пользователей, а также внедряют технологии обмана (Deception Technology). Специальное ПО создает ложные цели, чтобы выявить злоумышленников, уже проникших в сеть.</p><p>При этом эффективность центра безопасности SOC зависит не только от технологий, но и от слаженной работы команды. Аналитики, инженеры, специалисты по киберразведке должны действовать как единый механизм. Только тогда организация сможет противостоять даже самым изощренным атакам.</p><h3>Преимущества SOC</h3><p>Развертывание принципов SOC или Центра управления безопасностью трансформирует подход к защите данных, предлагая комплексные решения вместо точечных мер.</p><p>Главные плюсы такого подхода:</p><ul><li>В отличие от разрозненных систем, SOC обеспечивает единую точку мониторинга, где анализируются данные с сетевых устройств, серверов, рабочих станций и облачных сервисов.</li><li>Постоянный аудит уязвимостей и автоматизированное тестирование на проникновение позволяют выявлять слабые места до того, как их обнаружат злоумышленниками. Например, SOC находит неправильно настроенные правила доступа в облачном хранилище или подозрительную активность в доменных службах, что особенно актуально в условиях атак на службы каталогов.</li><li>Многие стандарты, такие как PCI DSS, ISO 27001 и GDPR, требуют не только внедрения защитных механизмов, но и доказательств их работоспособности. SOC автоматизирует сбор доказательной базы: журналы событий, отчеты об инцидентах, записи реагирования. Это избавляет компанию от рутинной подготовки к аудитам и снижает риски санкций.</li><li>Хотя развертывание центра требует инвестиций, это сокращает прямые и косвенные убытки от кибер-инцидентов. По расчетам <a href="https://www.ponemon.org/">Ponemon Institute</a>, средняя стоимость утечки данных в 2023 году составила $4.45 млн, при этом компании с SOC тратят на ликвидацию последствий на 30-40% меньше.</li><li>Современные SOC используют машинное обучение для анализа паттернов атак и предсказания новых векторов угроз. Это особенно ценно в условиях, когда злоумышленники применяют ИИ для генерации вредоносного кода и фишинговых кампаний.</li><li>По мере роста компаний традиционные методы безопасности становятся неэффективными из-за все большей поверхности атаки. Гибкая архитектура SOC позволяет адаптировать процессы мониторинга и реагирования без полного пересмотра инфраструктуры.</li></ul><h2>Какие инструменты и технологии используются в SOC</h2><p>Современный Security Operations Center — это сложный технологический комплекс, где различные решения интегрированы в единую экосистему. Основу составляет SIEM-система, которая агрегирует данные из всех источников — сетевого оборудования, серверов, приложений. Популярные платформы вроде Splunk или IBM QRadar не просто собирают логи, но и выявляют аномалии с помощью алгоритмов машинного обучения.</p><p>Для автоматизации рутинных задач применяют SOAR-платформы. Они создают сценарии реагирования: например, при обнаружении подозрительного файла система автоматически изолирует зараженный узел, отправляет уведомление аналитикам и обновляет правила межсетевого экрана. Такой подход особенно эффективен против массовых атак, где скорость реакции критична.</p><p>Обнаруживают угрозы на конечных точках EDR/XDR-решения (Endpoint Detection and Response / Extended Detection and Response). В отличие от традиционных антивирусов, эти системы анализируют поведение процессов, выявляют даже неизвестные вредоносные программы. XDR идет дальше, объединяя данные не только с компьютеров, но и из облачных сервисов, почтовых систем. По статистике <a href="https://www.group-ib.com/">Group-IB</a>, использование EDR снижает успешность атак на конечные точки на 40-60%.</p><p>Сетевую безопасность контролируют IDS/IPS (системы обнаружения и предотвращения вторжений). Они работают как «цифровые дозорные», анализируя трафик в реальном времени. Современные решения, по типу Darktrace, используют ИИ для выявления даже замаскированных атак, включая латеральные перемещения внутри сети.</p><p>Отдельного внимания заслуживает службы Threat Intelligence. Платформы вроде Recorded Future или отечественной ThreatLook автоматически обновляют базы индикаторов компрометации (IoC), что позволяет SOC блокировать атаки на ранних этапах.</p><p>Для управления уязвимостями применяют сканеры вроде Tenable.io или Rapid7, которые выявляют слабые места в ПО и конфигурациях. А технологии UEBA (User and Entity Behavior Analytics) помогают обнаружить инсайдерские угрозы, анализируя отклонения в поведении пользователей.</p><p>Важно понимать, что эффективность SOC зависит не от отдельных инструментов, а от их интеграции. Например, когда SIEM получает предупреждение от EDR, SOAR может автоматически запустить процедуру изоляции устройства, а разведка киберугроз (Threat Intelligence) — проверить хэш файла в базах. Комплексный подход превращает разрозненные данные в оперативную информацию, на основе которой принимаются решения.</p><p>Российские компании все чаще выбирают гибридные модели, сочетая облачные SIEM с локальными решениями для обработки чувствительных данных. Этот тренд особенно актуален в свете требований регуляторов к хранению информации внутри страны.</p><h2>Команда SOC: кто работает и за что отвечает</h2><p>Эффективность Security Operations Center определяется не только технологиями, но и людьми, которые управляют этими системами. В типичном SOC работает несколько категорий специалистов со своими зонами ответственности.</p><p>Первая линия обороны — аналитики первого уровня (L1). Их задача — первичная обработка событий безопасности:</p><ul><li>они фильтруют ложные срабатывания;</li><li>проверяют базовые индикаторы компрометации;</li><li>выявляют сложные случаи.</li></ul><p>Эти специалисты работают по готовым сценариям (playbooks), что позволяет быстро обрабатывать до 70% рутинных инцидентов.</p><p>Когда ситуация требует более глубокого разбора, в дело вступают аналитики второго уровня (L2):</p><ul><li>они исследуют цепочки атак;</li><li>анализируют поведение злоумышленников в сети;</li><li>определяют масштаб компрометации.</li></ul><p>Например, если система зафиксировала подозрительную активность в Active Directory, служба L2 не просто проверит конкретное событие, но и проанализирует возможные перемещения злоумышленников.</p><p>Самые сложные случаи — компрометация нулевого дня, целевые атаки или скрытые угрозы — попадают к аналитикам третьего уровня (L3). Эти эксперты сочетают навыки реверс-инжиниринга, цифровой криминалистики и анализа вредоносного кода. Они могут разобрать логику работы нового вируса, восстановить хронологию атаки или выявить утечку данных даже при отсутствии явных следов.</p><p>Отдельная роль отводится инженерам SOC — они поддерживают работоспособность SIEM, SOAR и других платформ. Эти специалисты настраивают правила корреляции, интегрируют новые источники данных и следят за тем, чтобы системы реагировали на актуальные угрозы. В крупных SOC есть и DevOps-инженеры, которые автоматизируют процессы мониторинга и реагирования.</p><p>Проактивным поиском занимаются охотники за угрозами (Threat Hunters). В отличие от аналитиков, которые исследуют уже обнаруженные инциденты, эти специалисты ищут скрытые компрометации, анализируя аномалии в поведении систем и пользователей. По данным исследования <a href="https://www.ptsecurity.com/">Positive Technologies</a>, компании с выделенными службами Threat Hunters обнаруживают на 40% больше скрытых угроз.</p><p>После серьезных инцидентов в работу включаются форензик-специалисты. Они восстанавливают полную картину атаки: какие данные были похищены, какие системы затронуты, как злоумышленники получили доступ. Эти эксперты особенно востребованы при расследовании утечек или атак на критическую инфраструктуру.</p><p>За стратегическое направление отвечает руководитель SOC (SOC-менеджер). Этот специалист координирует работу команды, взаимодействует с другими подразделениями компании и переводит технические детали инцидентов на язык бизнес-рисков. В крупных организациях есть также директор по реагированию на инциденты, который управляет кризисными ситуациями.</p><p>Особняком стоят красные команды (Red Team) — они моделируют атаки, чтобы проверить устойчивость защиты. Их работа помогает выявить слабые места до того, как ими воспользуются реальные злоумышленники. По статистике <a href="https://www.group-ib.com/">Group-IB</a>, регулярные тестирования Red Team снижают успешность внешних атак на 25-35%.</p><p>В небольших SOC один специалист может совмещать несколько ролей. Например, аналитик L2 занимается и охотой на киберугрозы, а инженер — настройкой автоматизации. Но по мере роста компании разделение обязанностей становится критичным для эффективной работы.</p><p>Ключевой тренд последних лет — развитие гибридных моделей, когда часть задач (например, мониторинг 24/7) передается на аутсорсинг, а сложные расследования остаются за внутренней командой. Такой подход позволяет даже средним компаниям получить уровень защиты, сопоставимый с крупными игроками.</p><h2>Модель работы SOC</h2><p>Современный Security Operations Center функционирует по четко выверенной схеме, адаптируя свои процессы под конкретные угрозы и бизнес-требования. В основе лежит цикличная модель, сочетающая постоянный мониторинг, оперативное реагирование и пост-анализ.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-04-28/68aea0be-6e11-4907-a152-0d3ddf8980b1.jpg" alt="" /></figure><p>Первичное обнаружение угроз происходит через системы сбора данных — SIEM-платформы агрегируют информацию с сетевого оборудования, конечных точек, облачных сервисов и приложений. Современные SOC обрабатывают в среднем от 10 000 до 100 000 событий ежечасно, при этом только 5-7% из них требуют вмешательства аналитиков.</p><p>Выявленные аномалии проходят многоступенчатую верификацию. На первом уровне автоматизированные правила и базовые корреляции отсеивают до 60% ложных срабатываний. Оставшиеся события попадают к аналитикам, которые определяют критичность по шкале CVSS (Common Vulnerability Scoring System) или внутренним метрикам. Например, попытка входа в систему с необычного местоположения может быть безобидной, но если она совпадает с активностью в даркнете — это повод для немедленного реагирования.</p><p>Процесс реагирования варьируется в зависимости от типа угрозы. Для нейтрализации  массовых атак (фишинг, DDoS) часто применяют автоматизированные сценарии через SOAR-платформы: блокировка IP-адресов, изоляция зараженных узлов, отзыв доступов.</p><p>Целевые атаки требуют ручного расследования — аналитики восстанавливают цепочку компрометации, используя данные EDR-систем и сетевых датчиков. По данным <a href="https://www.ptsecurity.com/">Positive Technologies</a>, среднее время нейтрализации сложного инцидента сократилось с 56 до 18 часов за последние 3 года благодаря улучшению инструментария.</p><p>После устранения угрозы начинается фаза пост-анализа. Специалисты изучают артефакты атаки, определяют уязвимости в инфраструктуре и разрабатывают рекомендации. Например, если инцидент произошел из-за устаревшего ПО, SOC может инициировать внеплановое обновление или временное отключение сервиса.</p><p>Интеграция с DevSecOps — ключевой тренд последних лет. SOC все чаще участвует в жизненном цикле разработки: анализирует код на уязвимости, тестирует конфигурации облачных сервисов, проверяет CI/CD-цепочки. Это позволяет выявлять проблемы на этапе проектирования, а не эксплуатации.</p><p>Уровень зрелости SOC оценивают по 5-ступенчатой модели:</p><ul><li>Реактивный — реагирование только на явные инциденты.</li><li>Проактивный — базовый мониторинг и элементарная автоматизация.</li><li>Прогнозирующий — использование инструментов отслеживания киберугроз (Threat Intelligence) и поведенческого анализа.</li><li>Адаптивный — интеграция с бизнес-процессами и Red Team.</li><li>Оптимизированный — машинное обучение и предиктивная аналитика.</li></ul><h3>Как SOC защищает данные</h3><p>Security Operations Center обеспечивает комплексную защиту информации через многоуровневый контроль и оперативное реагирование. Один из ключевых аспектов — выявление несанкционированного доступа.</p><p>Современные SOC используют поведенческую аналитику для обнаружения аномалий: необычных действий учетных записей, подозрительных запросов к базам данных или попыток эскалации привилегий. Например, система может зафиксировать, что пользователь вне рабочего времени скачивает большие объемы информации, и автоматически инициировать проверку.</p><p>Блокировка утечек происходит за счет комбинации технологий. DLP-системы отслеживают передачу конфиденциальных данных, а EDR-решения пресекают деятельность вредоносных программ. Особое внимание уделяется фишингу — согласно отчету <a href="https://www.group-ib.com/">Group-IB</a>, 83% успешных атак начинаются именно с компрометации почтовых ящиков.</p><p>Скорость реагирования — критичный параметр. Внедрение SOAR-платформ сокращает время обнаружения угроз с нескольких дней до минут. Автоматизированные сценарии мгновенно изолируют зараженные узлы, блокируют подозрительные IP-адреса и приостанавливают скомпрометированные учетные записи.</p><p>Принцип Zero Trust реализуется через постоянную верификацию. SOC анализирует не только внешние угрозы, но и внутреннюю активность, проверяя каждое действие в корпоративной сети. Многофакторная аутентификация, микросегментация и контроль доступа на основе ролей (RBAC) становятся стандартными элементами защиты.</p><p>Дополнительный уровень безопасности обеспечивает прогностическая аналитика. Современные центры мониторинга используют машинное обучение, чтобы выявлять скрытые паттерны атак и предупреждать инциденты до их реализации. Это особенно актуально для защиты от целевых атак (APT), которые могут развиваться месяцами.</p><p>Организации с развернутыми центрами мониторинга гораздо реже сталкиваются с успешными компрометациями данных, но при этом важно понимать, что технологии — лишь инструмент. Реальную защиту дает симбиоз автоматизированных систем, квалифицированных специалистов и отлаженных процессов.</p><h2>Метрики эффективности SOC</h2><p>Оценка работы Security Operations Center невозможна без четких количественных показателей. Эти метрики помогают понять, насколько быстро и точно команда обнаруживает угрозы, реагирует на них и минимизирует возможный ущерб.</p><p>MTTD (Mean Time to Detect) — среднее время обнаружения инцидента. Показатель отражает, как быстро SOC замечает аномальную активность после ее появления в системе.</p><p>По данным исследования <a href="https://www.sans.org/">SANS Institute</a>, в 2023 году средний MTTD для компаний с развитой инфраструктурой безопасности составил около 4 часов. Однако для целевых атак этот показатель может увеличиваться до нескольких недель — именно поэтому так важны системы поведенческого анализа и Threat Intelligence.</p><p>Не менее критичен параметр MTTR (Mean Time to Respond) — период между обнаружением угрозы и ее полной нейтрализацией. Современные SOC с автоматизированными платформами SOAR сокращают это время до 30-60 минут для стандартных инцидентов. Для сравнения: при ручном реагировании аналогичный процесс занимает 4-6 часов.</p><p>Распределение количества инцидентов по уровням критичности помогает оценить нагрузку на команду и качество работы систем фильтрации.</p><p>В хорошо настроенном SOC соотношение обычно выглядит так:</p><ul><li>70-80% — низкий приоритет (ложные срабатывания, незначительные события);</li><li>15-20% — средний приоритет (потенциально опасные аномалии);</li><li>5-10% — высокий приоритет (реальные атаки или серьезные угрозы).</li></ul><p>Резкий рост числа высокоприоритетных инцидентов может сигнализировать либо о повышении активности злоумышленников, либо о проблемах в настройке систем мониторинга.</p><p>Соотношение ложных и истинных срабатываний — ключевой индикатор точности работы SOC. Высокий процент ложных тревог (более 30-40%) приводит к «усталости» аналитиков и повышает риск пропуска реальных угроз. Современные SIEM-системы с машинным обучением позволяют снизить этот показатель до 10-15%, но требуют постоянной корректировки правил корреляции.</p><p>SLA по реагированию — договорные обязательства, которые определяют, как быстро SOC должен сработать на инцидент:</p><ul><li>критические угрозы (атака в процессе) — реакция в течение 15 минут;</li><li>высокий риск (признаки компрометации) — не более 1 часа;</li><li>средний приоритет — до 4 часов.</li></ul><p>Дополнительные метрики включают:</p><ul><li>процент обнаруженных угроз — сколько атак было выявлено до нанесения ущерба;</li><li>среднее время восстановления после инцидента;</li><li>количество пропущенных угроз — обычно выявляется при аудитах или тестах Red Team.</li></ul><p>Важно понимать, что идеальных показателей не существует. Например, снижение MTTD часто приводит к росту ложных срабатываний. Поэтому успешные SOC постоянно балансируют между скоростью, точностью и ресурсозатратами, регулярно пересматривая свои метрики в соответствии с изменяющейся киберугрозой.</p>]]></content:encoded>
    </item>
    <item>
      <title>Geeks do it better: как прошла конференция GoCloud 2025 от Cloud.ru</title>
      <link>https://tproger.ru/articles/geeks-do-it-better--kak-prowla-konferenciya-gocloud-2025-ot-cloud-ru</link>
      <comments>https://tproger.ru/articles/geeks-do-it-better--kak-prowla-konferenciya-gocloud-2025-ot-cloud-ru?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анна Ельцова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/geeks-do-it-better--kak-prowla-konferenciya-gocloud-2025-ot-cloud-ru</guid>
      <description><![CDATA[<p>Недавно мы побывали на большой конференции по облакам и искусственному интеллекту GoCloud, которую ежегодно проводит Cloud.ru. Делимся итогами конференции и рассказываем, как компании удается создавать топовые облачные сервисы и драйвить коммьюнити.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/geeks-do-it-better--kak-prowla-konferenciya-gocloud-2025-ot-cloud-ru">Geeks do it better: как прошла конференция GoCloud 2025 от Cloud.ru</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Big Data]]></category>
      <category><![CDATA[Конференции]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[Облачные технологии]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Kubernetes]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Инновации]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 23 Apr 2025 11:15:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloud.ru — лидер рынка облачных сервисов и AI-технологий, который делает доступ к облакам и искусственному интеллекту простым и удобным. В прошлом году компании исполнилось пять лет — за это время Cloud.ru из облачного технологического стартапа вырос до провайдера, который предлагает больше 100 IaaS- и PaaS-сервисов. Они охватывают практически любые задачи и сценарии использования клиентами облачных технологий: инфраструктурные сервисы, платформенные решения, инструменты для разработки, хранения и обработки больших данных и работы с ИИ в облаке.</p><p>Сейчас рынок облачных сервисов — крайне перспективная отрасль. В России процент проникновения облачных услуг по данным провайдера — всего 28%, поэтому возможности для роста очень большие.10 апреля компания провела масштабную конференцию, которую посетили более 5500 айтишников онлайн и офлайн. На открытии GoCloud 2025 топ-менеджеры представили новую платформу для работы с данными, AI-решения, заявили о внедрении AI-агентов в свои платформы, а также рассказали, что такое гибридное облако, почему искусственный интеллект нужен почти всем компаниям, а главное — какие релизы Cloud.ru готовит в будущем.</p><p>На конференции было три трека:</p><ol><li><b>Инфраструктура и сервисы</b> — здесь спикеры Cloud.ru рассказывали о новых сервисах и платформах, особенно про публичное облако Cloud.ru Evolution</li><li><b>AI&amp;ML</b> — был посвящен новым AI-фичам и работе с ML-моделями, которые улучшат клиентский опыт и упростят жизнь разработчикам и пользователям</li><li><b>Сценарии работы в облаке</b> — здесь выступали спикеры из крупных компаний и делились своим опытом использования облаков.</li></ol><p>В статье рассказываем о главных анонсах Cloud.ru и итогах конференции.</p><h2>Что нового в Cloud.ru Evolution</h2><p><a href="https://cloud.ru/evolution?utm_source=tproger&amp;utm_medium=pr_article&amp;utm_campaign=gocloud2025_review">Cloud.ru Evolution</a> — публичное облако, построенное на собственных разработках и open source, где интегрированы самые необходимые разработчикам сервисы.</p><p>На прошлой конференции в 2024 году Cloud.ru уже успели представить много новых компонентов в платформе — тогда в ней было доступно 20 сервисов. За год ей воспользовались 39 тыс. человек, а число сервисов выросло в 2 раза.</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-04-23/393169d9-8660-44f7-9e96-954c47c1a3d3.jpeg" alt="" /><figcaption>Все сервисы в Cloud.ru Evolution</figcaption></figure><p>В мае этого года пользователям будут доступны новые платформенные сервисы для работы с большими данными в облаке. Они работают по модели PaaS, используют контейнерную архитектуру и предлагают автомасштабирование, гибкость и безопасность. Сервисы упрощают обработку и анализ данных, подходят для AI/ML-задач, интегрируются с S3, Artifactory Registry и Evolution DBaaS.</p><p>Некоторые из них можно попробовать уже сейчас:</p><ul><li><a href="https://cloud.ru/products/evolution-managed-arenadatadb?utm_source=tproger&amp;utm_medium=pr_article&amp;utm_campaign=gocloud2025_review">Evolution Managed Arenadata DB</a> — это управляемая PaaS-база на Greenplum для хранения и обработки до 50 ТБ данных. Подходит для аналитики, AI/ML, отчетности, а оплата проходит по модели pay-as-you-go.</li><li><b>Evolution Data Platform</b> — это платформа от Cloud.ru для работы с большими данными. Уже можно протестировать: Evolution Managed Trino — SQL-движок для работы с разными источниками данных, Evolution Managed Metastore — хранилище метаданных, Evolution Managed Spark — сервис для распределенной обработки данных.</li></ul><p>Evolution Managed Trino и Metastore выйдут в коммерческий доступ во втором квартале 2025, а Evolution Managed Airflow и Evolution Managed BI станут доступны для тестирования.</p><p>Также в Cloud.ru Evolution появится AI-помощник, который будет закрывать базовые задачи.</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-04-23/1aa772ea-38a5-497a-ac63-3db7fa0cd040.png" alt="" /></figure><blockquote>Помощник должен автоматизировать рутинные задачи и максимально снизить порог входа в облака и работу с ними, в перспективе значительно упростит работу DevOps. Всю ответственность за то, что он делает, будем нести мы, как провайдер. Помощник будет эволюционировать и закрывать все больше рутинных задач: реагировать на alert и monitoring, следить за автоматизацией, а в будущем поможет управлять эффективностью облачной инфраструктуры, ее масштабированием и стабильностью. С момента запуска помощники будут доступны в публичных, гибридных и частных облаках Cloud.ru.</blockquote><h2>Cloud.ru Evolution Stack + AI — один из главных анонсов конференции</h2><p>В марте Cloud.ru выпустили на рынок <a href="https://cloud.ru/evolution-stack?utm_source=tproger&amp;utm_medium=pr_article&amp;utm_campaign=gocloud2025_review">Cloud.ru Evolution Stack</a> — платформу для создания частных и гибридных облаков. Решение рассчитано на крупный бизнес, госсектор, финтех, ритейл и промышленность. Платформу можно развернуть в собственном ЦОДе или объединить с публичным облаком Cloud.ru Evolution. Внутри — всё, что нужно: виртуализация, инструменты для работы с ML, PaaS- и IaaS-сервисы, управляемый Kubernetes, S3-хранилище, очереди сообщений и даже витрина приложений в формате маркетплейса.</p><p>Для удобства администрирования есть Multicloud Manager и VM Manager — с их помощью проще управлять виртуальными машинами, следить за инфраструктурой, учитывать ресурсы и подключать SIEM-системы для безопасности.</p><blockquote>Cloud.ru Evolution Stack — наше самое большое достижение за год. Мы создавали его из одной кодовой базы с публичным облаком Cloud.ru Evolution, но пришлось серьезно перестроить процессы. Циклы разработки каждой из платформ отличаются. В публичном облаке можно деплоить непрерывно: если в одном из сервисов появилась ошибка, ее можно сразу же исправить. А в гибриде, релиз которого мы делаем два раза в год, так не получится, поскольку на первый план выходят качество сборки, unit-тесты, интеграционные и нагрузочные тестирования. Процесс разработки усложнился, но мы максимально автоматизировали его. Это серьезная нагрузка, но без серьезного влияния на наш time-to-market.</blockquote><p>При разработке Cloud.ru Evolution Stack главным вызовом была смена подхода. Cloud.ru создает софт для одного публичного облака, а здесь нужен продукт, который можно ставить многократно у разных заказчиков — это радикально меняет процессы и мышление команды. Однако понимая запросы рынка на гибрид и потребности клиентов, компания начала разработку этой платформы еще на ранней стадии Cloud.ru Evolution. Если бы решение было старше, переход на дистрибутив съел бы гораздо больше времени и ресурсов.</p><p>Многие пользователи уже успели протестировать Cloud.ru Evolution Stack. Вот положительные фидбек:</p><ul><li>Платформа предлагает не только виртуализацию и контейнеризацию, но и полный набор сервисов — аудит, IAM, логирование, мониторинг. Это позволяет сразу запускать частное облако для внутренних подразделений без необходимости настраивать личные кабинеты или доступы.</li><li>Платформа легко интегрируется с системами мониторинга, кибербезопасности и авторизации заказчика, выступая как подчинённый компонент, что упрощает внедрение.</li><li>Интерфейс Cloud.ru Evolution Stack полностью кастомизируется — можно красить во всевозможные цвета, поставить свой логотип и так далее.</li></ul><blockquote>Cloud.ru Evolution Stack — мощная платформа со множеством функций, которые расширяют возможности собственной IT-инфраструктуры компаний за счет сервисов публичного облака. Решение может сначала озадачить, но мы всегда рядом: помогаем заказчикам разобраться, обеспечиваем эксплуатацию и полное сопровождение.</blockquote><p>Приступая к работе над Cloud.ru Evolution Stack, поменялись и подходы к продуктовой разработке. Главное — начали сертификацию процесса безопасной разработки по стандарту РБПО, чтобы соответствовать требованиям к надежности и безопасности ПО для критически важных систем. Это ускорит сертификацию Cloud.ru Evolution Stack для крупных заказчиков с полугода-года до квартала.</p><p>На GoCloud Cloud.ru анонсировали <b>Evolution Stack AI-bundle</b> — новую платформу для локального запуска AI-сервисов. Платформа упрощает разработку и масштабирование AI-продуктов, сохраняя полный контроль над данными. По сути, это первое в России гибридное облако с поддержкой AI.</p><p>Что внутри:</p><ul><li>Jupyter Lab для дата-сайентистов;</li><li>инструменты для обучения, дообучения и инференса моделей;</li><li>инфраструктура — Managed Kubernetes с GPU, реестр артефактов, виртуалки с GPU, S3-хранилище и файловая система для ML.</li></ul><p>Платформа гибкая: можно обучать модели в публичном облаке, а инференс запускать в закрытом контуре on-prem или переключаться при нагрузках. Она поддерживает мультитенантность, мониторинг и управление доступом. Плюс, её можно дополнить другими сервисами Cloud.ru для комплексных решений.</p><p>Cloud.ru Evolution Stack AI-bundle входит в реестр российского ПО, соответствует требованиям импортозамещения и будет доступна как софт или программно-аппаратный комплекс по подписке.</p><h2>AI, ML и облака (не роботы)</h2><p>Из других больших анонсов — <b>Cloud.ru</b> <b>Evolution AI Factory.</b> Это новая платформа для создания приложений и AI-агентов в облаке, запускать планируют этим летом.</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-04-23/457415d5-f313-4bd5-91e1-0d3b014131e0.png" alt="" /></figure><p>По своей сути, это цифровая «фабрика», которая объединяет инструменты для работы с искусственным интеллектом — от обучения моделей до запуска сложных мультиагентных систем. Вот, что внутри:</p><ul><li><a href="https://cloud.ru/products/evolution-ml-inference?utm_source=tproger&amp;utm_medium=pr_article&amp;utm_campaign=gocloud2025_review">Evolution ML Inference</a> — с помощью нее можно запускать ML-модели (Hugging Face, Docker-образы) на GPU с поддержкой vLLM, TGI, Ollama, Diffusers, Transformers. Использует Shared GPU, то есть использует столько ресурсов, сколько нужно, для запуска модели.</li><li><b>Foundation Models</b> — доступ к популярным моделям, вроде GigaChat и Gemma, плюс среда AI Playground для тестирования идей.</li><li><b>AI Assistants</b> — создание агентов с подключением к внешним системам и автоматизацией задач.</li><li><b>Cloud.ru ML Space</b> — платформа для глубокого обучения, работает в облаке и on-premise.</li></ul><p>Платформа делает работу с AI <b>проще и доступнее.</b> Не нужно быть экспертом в программировании или тратить кучу денег на серверы — всё уже готово в облаке. Она помогает компаниям быстрее создавать свои AI-продукты: агентов, аналитические системы или что-то совсем кастомное. Внутри будут встроенные ассистенты — новички могут легко собрать целое приложение, а профи — все кастомизировать. Это экономит время, снижает затраты на инфраструктуру и ускоряет запуск новых идей на рынок.</p><p>Ещё одно преимущество — <b>гибкость</b>. Платформа подходит для самых разных задач: от проверки гипотез до создания сложных корпоративных решений — и все в одном месте.</p><p>В Cloud.ru считают, что за нейронками — будущее. И компания уже видит эффект: разработчики активно используют AI-инструменты в задачах, которые не требуют креатива и разработки критических сервисов. Правда, измерить этот эффект пока непросто — слишком уж разные задачи и технологии.</p><blockquote>Я точно знаю, что AI помогает в разработке: используют code assistant, применяют CoPilot. Разработчики уже не представляют работу без него — это как Google лет 15 назад, когда им еще не все широко пользовались, а сейчас он у всех в смартфоне. AI помогает развиваться, ускоряет выполнение ежедневных задач. То, что раньше делали месяц, теперь можно уложить в две недели.</blockquote><h2>Что будет дальше: планы Cloud.ru</h2><p>В 2025 году Cloud.ru продолжат развивать собственные облачные платформыи PaaS . Сейчас запросы российского бизнеса, особенно крупных B2B-клиентов, часто совпадают с западными стандартами, так как многие из них уже работали с крупнейшими облачными провайдерами. Помимо базовых требований к надежности и безопасности, заказчики ждут продвинутых решений.</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-04-23/23a10643-5754-4cb4-81a0-d919fff6bf92.png" alt="" /></figure><blockquote>Три четверти нашего бэклога — это запросы заказчиков, а четверть — инновации и создание трендов. У нас в России требовательные клиенты, особенно крупные B2B-компании, и они знают, что такое хорошее облако. Помимо надежности и кибербезопасности им нужны продвинутые инструменты — AI, Big Data, высокая производительность. Cloud.ru AI Factory — наш главный фокус, до конца года мы выпустим много новых сервисов. Cloud.ru Evolution Stack будем тиражировать в продакшен, чтобы помогать бизнесу.</blockquote><p>А ещё Cloud.ru продолжит прокачивать <b>AI-комьюнити</b> — компания предоставляет открытую экосистему для вендорских продуктов. В ней можно создавать конкурентные решения, например, fully-managed сервисы в Cloud.ru Evolution с помощью Partner API. Так вход в облачные технологии становится еще проще и удобнее.</p><p><i>Реклама. Рекламодатель: ООО «Облачные технологии», ИНН 7736279160, erid: 2W5zFJ5hRC4.</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Язык Julia: что это и почему он популярен в научных вычислениях</title>
      <link>https://tproger.ru/articles/yazyk-julia--chto-eto-i-pochemu-on-populyaren-v-nauchnyh-vychisleniyah</link>
      <comments>https://tproger.ru/articles/yazyk-julia--chto-eto-i-pochemu-on-populyaren-v-nauchnyh-vychisleniyah?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/yazyk-julia--chto-eto-i-pochemu-on-populyaren-v-nauchnyh-vychisleniyah</guid>
      <description><![CDATA[<p>Что такое язык Julia. Показываем сравнение языка Джулия с другими. Рассматриваем преимущества и основные нюансы ✔ Tproger</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/yazyk-julia--chto-eto-i-pochemu-on-populyaren-v-nauchnyh-vychisleniyah">Язык Julia: что это и почему он популярен в научных вычислениях</a>»</p>]]></description>
      <category><![CDATA[C++]]></category>
      <category><![CDATA[Многопоточность]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Big Data]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Data Science]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 11 Apr 2025 14:20:31 GMT</pubDate>
      <content:encoded><![CDATA[<p>Согласно <a href="https://www.tiobe.com/tiobe-index/">индексу TIOBE</a>, Julia входит в топ-50 самых актуальных языков программирования в 2025 году и занимает в рейтинге 34-ю строчку.</p><p>Julia получил признание благодаря универсальности, скорости, понятному синтаксису и множеству других достоинств, о которых мы расскажем в статье. Этот идеальный вариант для научных вычислений в любых отраслях — от анализа огромных массивов данных до расчетов прочности архитектурных объектов.</p><p>Узнаем, каковы особенности и преимущества языка программирования Julia, почему он популярен в научных вычислениях, чем отличается от других топовых языков и где применяется.</p><h2>Основные особенности языка Julia</h2><p>Язык программирования с романтическим женским именем был создан в 2012 году профессором Массачусетского технологического института Аланом Эдельманом в сотрудничестве с группой студентов. Инструмент изначально разрабатывался с прицелом на использование в научных вычислениях. По замыслу команды, язык должен был занять нишу, в которой находились MATLAB с его многочисленными клонами и R, а также совместить удобство и простоту Python с производительностью С++ и Fortran.</p><p>Растущая популярность Julia демонстрирует, что планы разработчиков были по большей части реализованы. И хотя этот язык еще продолжает развиваться и совершенствоваться, уже сейчас его возможности широко используются для сложных математических вычислений, анализа данных и машинного обучения. Последнее направление приобретает все большую актуальность, поскольку нейросети и технологии на основе ИИ внедряются во все нашей сферы жизни и нуждаются в корректном, эффективном и быстром обучении.</p><p>Julia действительно устраняет разрыв между высокоуровневыми интерпретируемыми и низкоуровневыми компилируемыми языками, демонстрируя высокую производительность без утраты простоты применения и продуктивности. В числе других достоинств языка — поддержка многопоточности и параллелизма.</p><p>Рассмотрим более подробно главные плюсы Julia.</p><h2>Скорость и производительность</h2><p>Скорость, которая напрямую определяет производительность, входит в число ключевых преимуществ языка. Показатель в первую очередь обусловлен наличием компилятора, работающего в формате Just-In-Time. Это позволяет создавать эффективный нативный код, который обеспечивает работу сложных алгоритмов на реальном оборудовании.</p><p>Как это реализуется на практике? Представьте, что вам нужно перемножить две огромные матрицы или промоделировать климат в Московской области на 50 лет вперед. На Python это может занять часы, на C — требует тонн низкоуровневого кода. Julia справляется с такими задачами почти так же быстро, как C, но с лаконичностью Python.</p><p>Julia не интерпретирует код построчно, как Python, а сразу компилирует его в эффективный машинный код, как это делает C. Это дает ускорение в 10–100 раз в сравнении с чисто интерпретируемыми языками.</p><p>Скорость особенно актуальна в  машинном и глубоком обучении. Ускоренная обработка обширных массивов данных и такие же быстрые сложные вычисления существенно ускоряют разработку инструментов на основе нейросетей.</p><p>Вот несколько фактов, чтобы вы не сомневались в производительности Julia:</p><ul><li>NASA использует Julia для моделирования полетов — код работает в 15 раз быстрее, чем предыдущая версия на Python + Cython.</li><li>В тестах линейной алгебры Julia обгоняет Python (NumPy) в 2–3 раза, а с нативными типами — почти догоняет C.</li><li>Пакет DifferentialEquations.jl решает сложные уравнения в 100 раз быстрее SciPy (Python).</li></ul><ul><li>Обучение нейросетей (Flux.jl) ускоряется в 3–5 раз против Python + TensorFlow/PyTorch.</li><li>Анализ геномов в биоинформатике занимает минуты вместо часов.</li></ul><p>При этом скорость Julia не наносит ущерба удобству применения.</p><h2>Гибкость</h2><p>Качество языка, которое часто называют «дружелюбием», позволяет юзерам без особых проблем осваивать и использовать Julia для решения самого широкого круга задач. Тем, кто знаком с Python или MATLAB, перейти на Джулию еще проще.</p><p>При этом высокоуровневый синтаксис позволяет выражать сложные алгоритмы минимальными средствами. Лаконичность языка делает его предельно доступным для изучения.</p><p>В Julia можно присваивать переменные, не объявляя их тип, при этом язык поддерживает все широко используемые алгоритмические структуры и способы хранения данных (словари, матрицы). Для работы со сложными типа данных есть бесплатные библиотеки.</p><h2>Мощная экосистема пакетов</h2><p>Для Julia создано огромное количество библиотек и фреймворков, существенно расширяющих ее функциональность.</p><p>Обратите внимание на эти инструменты:</p><ul><li>Flux, MLJ и Knet — написанные на Julia пакеты для глубокого обучения. Позволяют создавать многослойные нейросети и модели непосредственно на этом языке.</li><li>DataFrames.jl — набор фреймворков для работы с данными. Выполняет те же задачи, что и Pandas для Python. Включает полезные и высокоэффективные инструменты для управления данными и их анализа.</li><li>JuliaImages — пакет библиотек для работы с изображениями. Включает инструменты для загрузки, обработки и трансформации картинок.</li><li>Jump.jl — специализированный язык моделирования, интегрированный в Julia. Предназначен для математической оптимизации с использованием линейного, нелинейного и комбинированного программирования.</li></ul><p>Это лишь несколько примеров специальных пакетов. На практике можно найти десятки других инструментов в зависимости от поставленных задач.</p><h2>Поддержка многопоточности и параллельных вычислений</h2><p>Многопоточность обеспечивает языку Julia мощность без сложностей. Если требуется выполнить масштабные вычисления, можно задействовать все ядра процессора одновременно. Julia делает это настолько просто, что даже новичок сможет ускорить свой код в разы.</p><p>В отличие от Python, где многопоточность требует сложных библиотек, в Julia она встроена в сам язык. Чтобы запустить этот процесс, достаточно одной строки:</p><p>Что дает языку многопоточность «из коробки»:</p><ul><li>Ускорение в N раз (где N — число ядер). Например, на 8-ядерном процессоре тяжелый цикл выполнится почти в 8 раз быстрее.</li><li>Никаких заморочек с разделением памяти — Julia сама позаботится о корректности.</li></ul><p>Кроме того, Julia умеет распределять задачи даже между несколькими серверами. Это полезно в машинном обучении для параллельной обработки датасетов, в физическом моделировании, в финансовой сфере — обеспечивает моментальный анализ рисков для тысяч инвестиционных портфелей.</p><p>Благодаря параллелизму Джулия существенно опережает в скорости R/MATLAB. Даже в специализированных математических пакетах параллельные вычисления часто требуют сложной настройки. В Julia это 2–3 строки кода.</p><h2>Развитое сообщество</h2><p>Когда вы только начинаете работать с новым языком, важно знать, что у вас есть поддержка — и тут Julia выигрывает у многих конкурентов. За последние 10 лет вокруг языка сформировалось активное сообщество ученых, инженеров и разработчиков, которые не только пишут код, но и помогают новичкам.</p><p>Вот почему это важно:</p><ul><li>Быстрая помощь. На <a href="https://discourse.julialang.org/">официальном форуме</a> и в чатах вам ответят даже на базовые вопросы — без снисходительности, характерной для некоторых других языков.</li><li>Готовые решения. В <a href="https://juliapackages.com/">реестре пакетов</a> уже есть 7 000+ библиотек для всего — от машинного обучения до астрофизики.</li><li>Открытость. Создатели Julia сами участвуют в обсуждениях, а многие пакеты разрабатываются университетами (MIT, Stanford) и компаниями (NASA, IBM).</li></ul><p>Пример: если вы застряли с дифференциальными уравнениями, просто спросите в чате — и с вероятностью 90% вам ответит либо автор пакета DifferentialEquations.jl, либо кто-то, кто уже решил такую же проблему.</p><p>Сообщество Julia — это редкий случай, когда «экспертность» не означает «закрытость». Здесь ценят и новичков, потому что каждый когда-то начинал с “Hello World”.</p><h2>Почему Julia популярен в научных вычислениях</h2><p>Представьте язык, который понимает ваши математические формулы буквально с полуслова. Julia родился именно таким — как универсальный инструмент для ученых, уставших выбирать между «понятно» и «быстро».</p><p>Вот что делает его особенным:</p><ul><li>пишете, почти как в тетради: 2x + 3y вместо 2*x + 3*y;</li><li>получаете скорость как у Фортрана, без головной боли с компиляцией;</li><li>матричные операции летают в разы быстрее, чем в Python;</li><li>сложные дифференциальные уравнения решаются за пару секунд.</li></ul><p>Секрет успеха — в продуманной начинке:</p><ul><li>встроенные суперспособности для математики;</li><li>может растягивать вычисления на все ядра процессора;</li><li>легко подключает библиотеки Python, R и даже C.</li></ul><p>При этом Julia универсален: подходит биологам для анализа ДНК, физикам, моделирующим квантовые системы, архитекторам, вычисляющим прочностные параметры конструкций. Библиотека Flux.jl строит нейросети быстрее PyTorch, а DataFrames.jl обрабатывает гигабайты данных без тормозов.</p><p>Это не просто язык — это турбодвигатель для научных открытий. Хотите говорить с компьютером на языке математики? Julia станет вашим переводчиком.</p><h2>Сравнение Julia с другими языками</h2><p>Чтобы в полной мере оценить особенности языка Julia, сравним его с ближайшими конкурентами.</p><h2>Julia vs Python</h2><p>Python по праву считается универсальным языком программирования — он прост в освоении, обладает огромным количеством библиотек и поддерживается многомиллионным сообществом разработчиков. Однако когда речь заходит о сложных численных расчетах и высокопроизводительных вычислениях, Julia предлагает ряд неоспоримых преимуществ.</p><p>Главное достоинство Julia — его фокусировка на научных задачах. Этот язык создавался специально для работы с большими объемами данных и сложными математическими операциями. Хотя комьюнити Julia пока меньше python-сообщества, оно состоит преимущественно из специалистов в области Data science, физики и математического моделирования.</p><p>При этом Julia не исключает использование Python. Напротив, благодаря встроенным инструментам взаимодействия — таким как PyCall, разработчики могут комбинировать сильные стороны обоих языков. Использовать Julia для ресурсоемких вычислений, а Python — для других компонентов системы. Такой симбиоз позволяет достичь максимальной эффективности в научных проектах.</p><p>При этом Julia превосходит Python в скорости, имеет более удобный для математиков синтаксис. Параллелизм в Джулия встроенный — для Питона придется использовать сторонние библиотеки.</p><h2>Julia vs R</h2><p>R уже много лет остается верным помощником статистиков — его создавали специально для работы с данными, и в этом он действительно хорош. Но сегодня на сцену выходит Julia — современный язык, который сочетает удобство R с невероятной скоростью работы.</p><p>Те же операции с таблицами данных Julia выполняет в несколько раз быстрее. Если R справляется с задачей за минуту, Julia сделает это за 15-30 секунд. А когда дело доходит до сложных расчетов — разница становится еще заметнее.</p><p>Что действительно выделяет Julia:</p><ul><li>Это не просто язык для статистики, а полноценная платформа для научных вычислений.</li><li>Можно работать с искусственным интеллектом, физическими моделями и даже квантовыми вычислениями.</li><li>При этом сохраняется доступ ко всем привычным R-библиотекам.</li></ul><p>Для тех, кто только начинает погружаться в анализ данных, Julia — отличный выбор. Вам не придется сначала осваивать R для простых задач, а потом переучиваться на другие языки для сложных вычислений. Все есть в одном месте — от базовой статистики до работы с большими данными.</p><h2>Julia vs MATLAB</h2><p>MATLAB долгие годы был как дорогой швейцарский нож для ученых и инженеров — удобный, но привязанный к лицензии. А теперь представьте, что появился инструмент с теми же возможностями, но бесплатный и который можно модифицировать под свои нужды. Это Julia.</p><p>Скорость работы — первое, что замечают при переходе. Типичные расчеты в Julia идут на пятую-треть быстрее. А когда дело доходит до сложных проектов, разница становится еще заметнее.</p><p>Но главная магия — в экосистеме:</p><ul><li>7000+ бесплатных пакетов вместо платных тулбоксов;</li><li>возможность заглянуть «под капот» любого алгоритма;</li><li>сообщество, которое постоянно добавляет что-то новое.</li></ul><p>Синтаксис намеренно сделали похожим на MATLAB — переход ощущается как смена автомобиля той же марки на новую модель. Все знакомо, но едет быстрее и без ограничений по пробегу.</p><p>Для студентов это просто подарок — мощный инструмент без дорогой подписки. А для научных групп — возможность делиться кодом без оглядки на лицензии. Julia не просто догоняет MATLAB, она задает новые стандарты в научных вычислениях.</p><h2>Julia vs C++</h2><p>Если снова воспользоваться сравнением из автомобильной тематики, то C++ — это ручная коробка передач в мире программирования. Можно выжать максимум скорости, но каждая строчка кода требует ювелирной работы с памятью и указателями. Julia предлагает другой подход — это автоматическая трансмиссия, которая разгоняется почти так же быстро, но без головной боли.</p><p>Секрет Julia — умный переводчик (JIT-компилятор), который:</p><ul><li>в реальном времени превращает ваш код в машинные инструкции;</li><li>сам решает, как оптимально использовать память;</li><li>не заставляет вас ковыряться в низкоуровневых деталях.</li></ul><p>Разница особенно заметна в математических задачах. В Джулии не нужно приписывать все детали реализации в отличие от C++.</p><h2>Примеры кода на Julia</h2><p>Эти примеры демонстрируют все преимущества Julia в сфере математических вычислений.</p><h2>Вычисление факториала</h2><p>Это действительно просто:</p><p>Для больших чисел (n &gt; 20) стоит использовать factorial(big(n)), что автоматически переключает вычисления на длинную арифметику.</p><h2>Матричные операции</h2><p>Julia создан для работы с матрицами и линейной алгеброй. Вот несколько примеров, демонстрирующих его выразительность и производительность.</p><p>Базовые операции с матрицами:</p><p>Решение системы линейных уравнений:</p><p>Julia предоставляет удобные инструменты для параллельных вычислений. Вот как можно легко распараллелить задачи:</p><h2>Где применяется Julia</h2><p>Сферы использования Julia в науке, бизнесе, ИТ и других отраслях практически не ограничены. Рассмотрим наиболее актуальные направления.</p><h2>Научные исследования</h2><p>Julia активно используется в фундаментальных и прикладных науках благодаря своей скорости и удобству для математических расчетов:</p><ul><li>В физике с его помощью моделируют квантовые системы (например, в пакете QuantumOptics.jl) и решают дифференциальные уравнения (DifferentialEquations.jl).</li><li>В биоинформатике Julia применяют для анализа ДНК и белковых структур.</li><li>В астрономии — для обработки данных телескопов и симуляции галактик. Например, NASA использует Julia для расчета траекторий космических аппаратов.</li></ul><h2>Финансовые вычисления</h2><p>В финансах Julia ценят за высокую производительность при работе с большими массивами данных. Банки и брокеры применяют его для:</p><ul><li>Алгоритмического трейдинга — быстрого тестирования стратегий.</li><li>Риск-анализа — моделирования кризисных сценариев.</li><li>Оптимизации портфелей — решения задач линейной алгебры с миллионами переменных.</li></ul><p>Пакеты вроде JuliaQuant и Temporal.jl делают его отличной альтернативой Python (Pandas) и R.</p><h2>Искусственный интеллект и машинное обучение</h2><p>Хотя Python все еще доминирует в ML, Julia набирает популярность в этой сфере благодаря:</p><ul><li>скорости — обучение моделей в Flux.jl (аналог PyTorch) иногда в 2–3 раза быстрее;</li><li>гибкости — можно легко комбинировать нейросети с численными методами.</li></ul><p>Например, Julia используют для обработки изображений в реальном времени. Пакет MLJ объединяет сотни алгоритмов в едином интерфейсе.</p><h2>Анализ данных и обработка больших массивов информации</h2><p>Julia идеален для работы с Big Data:</p><ul><li>DataFrames.jl предоставляет инструменты, знакомые пользователям Pandas/R, но работает быстрее.</li><li>Поддержка многопоточности и распределенных вычислений (через интерфейс DistributedArrays.jl) позволяет обрабатывать терабайты данных.</li></ul><p>Компании используют Julia для анализа страховых рисков, а ученые — для обработки огромного количества данных, полученных в процессе исследований.</p><h2>Итоги</h2><p>Julia — это не просто язык для академиков. Он уже используется в реальной сфере везде, где важны скорость, точность и масштабируемость. Уже сейчас мы наблюдаем, как MATLAB-разработчики массово переходят на Julia, устав от закрытой экосистемы, а научные группы выбирают Julia для сложных вычислений там, где Python слишком медленный.</p><p>Тренд только набирает обороты. Добавляются новые функции типа встроенной поддержка GPU, а количество вакансий для разработчиков на Julia, особенно в сфере машинного обучения, постоянно растет.</p><p>Ты точно программист, если читаешь это! Больше мемов, инсайтов и боли кодеров <a href="https://t.me/+ajgz7pDecB4xZTI6">тут</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>10 способов заработать на искусственном интеллекте в 2025</title>
      <link>https://tproger.ru/articles/10-sposobov-zarabotat-na-iskusstvennom-intellekte-v-2025</link>
      <comments>https://tproger.ru/articles/10-sposobov-zarabotat-na-iskusstvennom-intellekte-v-2025?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Валерия Турчак]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/10-sposobov-zarabotat-na-iskusstvennom-intellekte-v-2025</guid>
      <description><![CDATA[<p>Топ-10 способов заработать на искусственном интеллекте. Как ИИ может приносить прибыль бизнесу и специалистам.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/10-sposobov-zarabotat-na-iskusstvennom-intellekte-v-2025">10 способов заработать на искусственном интеллекте в 2025</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Оптимизация]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Яндекс]]></category>
      <category><![CDATA[JetBrains]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[PyCharm]]></category>
      <category><![CDATA[YouTube]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[ARM]]></category>
      <category><![CDATA[Персональные данные]]></category>
      <category><![CDATA[TikTok]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[CMS]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Figma]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Notion]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 28 Mar 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>С созданием продуктов и контента на основе ИИ все более-менее понятно, но с тем, как на этом зарабатывать самим разработчикам, вопросов больше. Поэтому мы изучили рынок и нашли конкретные направления, где прямо сейчас можно получать доход от своих навыков.</p><p>В статье — 10 актуальных направлений, которые уже работают. Если у вас есть опыт в разработке, автоматизации или работе с данными, вы сможете найти здесь идеи, как использовать свои знания и монетизировать их с помощью ИИ.</p><h2>Разработка персонализированных ИИ-ассистентов</h2><p>Готовые нейросети умеют много, но работают стандартно. Бизнесу и частным пользователям нужны ИИ-помощники, которые решают проблемы быстрее, чем человек, и точнее, чем универсальные решения.</p><h3>Для кого это актуально</h3><ul><li><b>Частные специалисты. </b>Врачи, юристы, бухгалтеры, маркетологи — все, кому нужен персональный помощник для работы с клиентами и документами.</li><li><b>Бизнес.</b> Компании хотят автоматизировать поддержку клиентов, ведение заказов, анализ рынка.</li><li><b>Образовательные платформы.</b> ИИ-ассистенты помогают отвечать на вопросы студентов, генерировать тесты, проверять задания.</li></ul><h3>Что можно делать</h3><ol><li><b>ИИ-секретарь.</b> Принимает заявки, записывает клиентов, напоминает о встречах. Подойдет для стоматологий, салонов красоты, частных консультантов.</li><li><b>Финансовый помощник.</b> Считает расходы, прогнозирует бюджет, напоминает о платежах. Полезен для ИП, фрилансеров и небольших компаний.</li><li><b>HR-бот.</b> Проводит первичный отбор резюме, задает вопросы кандидатам, помогает составлять вакансии. Актуально для кадровых агентств и больших компаний.</li><li><b>Юридический помощник.</b> Автоматически проверяет договоры, ищет ошибки, консультирует по типовым вопросам. Удобно для юристов и бухгалтеров.</li><li><b>AI для интернет-магазинов. </b>Рекомендует товары, помогает выбрать размер, отвечает на вопросы клиентов.</li></ol><h3>Какие инструменты использовать</h3><ul><li><b>GPT-4, YaLM 2</b> — для текстовых ассистентов. GPT-4 доступен через OpenAI API, YaLM 2 — российская разработка, можно скачать бесплатно.</li><li><b>Rasa, BotPress</b> — платформы для создания AI-чатботов. У Rasa есть open-source версия, BotPress прост в настройке.</li><li><b>Speech-to-Text API от Google, Яндекс SpeechKit</b> — если нужен голосовой помощник.</li><li><b>LangChain</b> — библиотека для сложных ИИ-ассистентов, которые работают с базами данных и API.</li></ul><h3>Как зарабатывать</h3><ol><li><b>Фриланс.</b> Создавать AI-ассистентов под заказ через Kwork, Upwork, FL.ru.</li><li><b>Подписка.</b> Разрабатывать SaaS-решения, где пользователи платят за доступ.</li><li><b>Готовые решения.</b> Продавать ассистентов для популярных ниш (например, AI-бот для кафе).</li><li><b>Консалтинг.</b> Настраивать AI для бизнеса, обучать сотрудников.</li></ol><h2>Создание ИИ-плагинов для популярных платформ</h2><p>Люди работают в привычных инструментах. Разработчики пишут код в VS Code и PyCharm, дизайнеры — в Figma, контентщики — в Notion. Они не хотят менять свои приложения, но хотят больше удобства. Все, что помогает работать быстрее и качественнее. В коде, дизайне, контенте, аналитике. Например:</p><ul><li><b>Для разработчиков</b> — автогенерация комментариев к коду, поиск ошибок, оптимизация функций.</li><li><b>Для дизайнеров</b> — генерация UI-компонентов, адаптация интерфейса под мобильные устройства.</li><li><b>Для копирайтеров </b>— улучшение текстов, анализ стиля, сокращение длинных фраз.</li><li><b>Для маркетологов</b> — анализ трендов, поиск лучших заголовков, генерация A/B-тестов.</li></ul><h3>Где размещать плагины</h3><p>Каждая крупная платформа имеет свой маркетплейс. У Figma — Figma Community, у VS Code — Marketplace, у Notion — интеграции через API. Для российских пользователей доступны плагины в маркетах JetBrains и Tilda. Если продукт полезен, его заметят и начнут скачивать.</p><h3>Как монетизировать</h3><p>Есть три варианта. Можно сделать плагин бесплатным, но продавать PRO-функции. Можно продавать подписку, если у плагина есть постоянные пользователи. А можно зарабатывать на кастомных версиях, когда бизнесу нужен ИИ-инструмент под конкретные задачи.</p><p>Все дело в том, что люди готовы платить за удобство. Они уже привыкли к ИИ, но не хотят тратить время на сложные настройки. Поэтому если плагин реально экономит часы работы — его будут часто устанавливать и использовать, если более сложная разработка, а точнее решение проблемы — тогда дополнительно нужно будет подключить продвижение среди профессионального сообщества.</p><h2>Консультирование бизнеса по внедрению ИИ-инструментов</h2><p>Бизнес тоже хочет использовать ИИ-инструменты, но не всегда понимает как. Руководители слышали про ChatGPT, нейросети для генерации контента и автоматизацию процессов, но не знают, с чего начать. Это и создает спрос на ИИ-консультантов.</p><p>Компаниям не нужны сложные теории, им нужны конкретные решения. Например, в интернет-магазине можно внедрить чат-бота, который отвечает на вопросы клиентов и рекомендует товары. В логистике — ИИ, который прогнозирует задержки поставок. В HR — сервис, который анализирует резюме и находит лучших кандидатов. Но бизнесу нужен специалист, который расскажет, какие технологии выбрать, как их адаптировать и сколько это стоит.</p><h3>Кто может зарабатывать на AI-консалтинге</h3><p>Разработчики, аналитики, ИИ-специалисты. Главное — не просто разбираться в технологиях, а уметь объяснять их бизнесу. Если человек работал с нейросетями, настраивал ML-модели или интегрировал ИИ в проекты, он уже может предлагать услуги консультирования.</p><h3>Как искать клиентов</h3><p>Есть три варианта. Первый — через фриланс-биржи (Kwork, FL.ru). Второй — через личные связи и нетворкинг. Третий — через выступления и статьи. Если эксперт показывает, как ИИ решает бизнес-задачи, к нему приходят клиенты.</p><h3>Форматы работы</h3><p>Можно делать разовые консультации: разбирать задачи бизнеса и предлагать решения. Можно вести проект: помогать внедрять ИИ, настраивать инструменты, обучать сотрудников. Можно продавать готовые гайды и обучающие материалы для компаний.</p><p>Все дело в том, что бизнесу не нужны просто ИИ-модели. Им нужны работающие решения, которые экономят деньги и время. И если разработчик может объяснить, как это сделать, значит первый миллион не за горами.</p><h2>Фриланс на кастомизации популярных нейросетей</h2><p>Готовые нейросети работают хорошо, но не идеально. Компании хотят, чтобы ИИ понимал их задачи, работал точнее и выдавал лучшие результаты. Для этого нейросети кастомизируют: дообучают, настраивают под конкретные данные, добавляют нужные функции.</p><h3>Что именно можно делать?</h3><p>Если клиенту нужен ИИ для обработки юридических документов, обычный GPT-4 не подойдет. Он слишком общий. Но если загрузить в него базу данных по российскому законодательству и дообучить, он начнет давать точные ответы. Или, например, компания хочет, чтобы Stable Diffusion генерировала изображения в их фирменном стиле. Это тоже делается через дообучение.</p><p>Многие заказывают кастомизацию напрямую, если специалист показывает примеры работ в ТГ или на GitHub.</p><p>Дообучение можно делать через LoRA, Dreambooth (для изображений) или Fine-tuning API OpenAI (для текста). Например, в 2024 году российская компания «Самолет» <a href="https://t.me/smlttech/579">использовала LoRA</a> для дообучения модели Stable Diffusion XL. Задача была необычная — генерация реалистичных интерьеров квартир по фотографиям помещений с голыми стенами. Компания обучила нейросеть на мудборде фирменного стиля от дизайнеров, после чего последняя начала создавать качественные и детализированные изображения в нужной стилистике. Результат — свыше 15 000 генераций с высоким качеством за несколько месяцев. Среднее время на создание одного изображения — около минуты.</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-03-21/a6e5c05c-2bd9-4659-808c-6f1b80d4aeab.png" alt="" /></figure><p>Если работать с открытыми моделями, подойдут Hugging Face, TensorFlow, PyTorch. Также часто используют DeepPavlov и SpeechKit от Яндекса.</p><h2>ИИ и обработка данных: сервисы и микрозадачи</h2><p>Данные есть везде. Компании собирают их тоннами, но не знают, что с ними делать. ИИ помогает сортировать, анализировать и превращать их в полезные решения. И здесь разработчики могут зарабатывать, создавая сервисы или выполняя микрозадачи.</p><p>Пример. У интернет-магазинов есть отзывы клиентов, но в сыром виде они бесполезны. ИИ-сервис может анализировать тональность, находить жалобы и предлагать улучшения. Или у компании есть база с тысячами заявок, но их надо разбирать вручную. ИИ может автоматически классифицировать их по темам и срочности.</p><p>Если говорить о реальных инструментах, то вот что доступно в России:</p><ul><li><b>Yandex DataSphere</b> — облачная платформа для анализа данных, которая работает даже без мощного сервера.</li><li><b>SberCloud ML Space</b> — среда для работы с моделями, подходит для обработки больших массивов.</li><li><b>Toloka, Kaggle, HFLabs</b> — площадки, где можно находить небольшие задачи по обработке данных и зарабатывать на их решении.</li></ul><p>Микрозадачи подходят тем, кто хочет попробовать ИИ на практике, но не готов делать сложные проекты. Компании выкладывают заказы на разметку данных, проверку моделей, улучшение работы алгоритмов. Это может быть что-то простое — например, оценить, правильно ли ИИ распознал текст, или классифицировать изображения.</p><h2>Разработка ИИ-инструментов для генерации контента</h2><p>Контент нужен всем. Бизнесу — для рекламы, блогерам — для постов, компаниям — для сайтов. ИИ научился писать тексты, создавать изображения и даже генерировать видео. Значит, можно зарабатывать на инструментах, которые помогают пользователям делать это проще и быстрее.</p><h3>Что можно разрабатывать</h3><p><b>— ИИ-копирайтеры.</b> Люди хотят тексты, но не все умеют писать. ИИ может создавать статьи, объявления, описания товаров. Но универсальные решения вроде ChatGPT часто дают скучные или шаблонные тексты. Поэтому востребованы узкоспециализированные инструменты. Например, генератор объявлений для интернет-магазинов, помощник для создания постов в соцсетях или ИИ-редактор, который чистит текст и делает его понятнее.</p><p><b>— Генераторы изображений. </b>Stable Diffusion и Kandinsky умеют рисовать, но не все пользователи могут ими пользоваться. У кого-то нет мощного компьютера, кто-то не понимает, как писать промты. Решение — сервис, который генерирует картинки по понятным настройкам. Например, инструмент для создания обложек книг, логотипов или картинок в стиле акварели.</p><p><b>— ИИ для видео.</b> Видео — самый сложный контент, но именно его сейчас массово автоматизируют. Можно сделать инструмент, который превращает текст в видео. Или сервис, который создает анимации по фотографиям. Еще один вариант — автоматический монтаж для TikTok и YouTube Shorts. Это уже работает в CapCut, но нишевых решений пока мало.</p><h3>Как продавать</h3><p>Если инструмент решает конкретную задачу, можно продавать подписку или лицензии. Например, сервис для генерации статей может работать по модели Freemium — часть функций бесплатна, но за расширенные возможности нужно платить.</p><p>Другой вариант — интеграция с существующими платформами. Например, добавить ИИ-генерацию изображений в маркетплейсы, чтобы продавцы могли делать красивые карточки товаров. Или встроить инструмент в CMS, чтобы владельцы сайтов генерировали тексты прямо в админке.</p><h2>Заработок на открытых ИИ-моделях</h2><p>ИИ-модели — инструмент, который можно дорабатывать и продавать. Разработчики не обязаны строить нейросеть с нуля, если есть открытые решения, которые можно адаптировать под нужды клиентов.</p><h3>Что можно делать?</h3><p>— <b>Дообучать существующие модели для конкретных задач. </b>Например, взять текстовую модель (YaLM, YandexGPT), загрузить в нее данные из банковского сектора и получить ИИ-консультанта для клиентов. Компании готовы платить за такие точные модели, потому что стандартные решения не всегда подходят под их специфику.</p><p>— <b>Создавать удобные сервисы на базе моделей. </b>Разработчику не обязательно продавать саму нейросеть — можно сделать веб-приложение, чат-бот или плагин, который использует ее возможности. Например, сервис для генерации юридических документов, инструмент для проверки SEO-текстов или нейросеть, которая находит ошибки в коде.</p><p>— <b>Продавать доступ к мощностям для работы с моделями.</b> Многие хотят использовать ИИ, но не имеют ресурсов. Если у вас есть сервер с видеокартами, можно сдавать его в аренду через облачные платформы, например, через Yandex DataSphere или SberCloud ML Space.</p><p>—<b> Продавать доработанные модели на маркетплейсах. </b>Если модель улучшена и решает конкретные задачи, ее можно разместить на Hugging Face, AI Hub, Replicate. Компании и частные пользователи готовы платить за доступ к таким моделям.</p><p>Можно работать напрямую с бизнесом, создавая кастомизированные модели. Или выкладывать доработанные решения на маркетплейсы, где их будут использовать за подписку или разовые платежи. Хороший вариант — продвигать свои разработки через ТГ-каналы, GitHub и тематические форумы.</p><h2>Разработка ИИ-решений для EdTech</h2><p>Законодательство по ИИ в образовании в России только формируется. Есть требования к хранению персональных данных на российских серверах, но использование генеративных нейросетей официально не запрещается. С 2025 года вводится ГОСТ на использование нейросетей в учебных публикациях.</p><p>Разработка образовательных ИИ-продуктов начинается с Python. Для машинного обучения чаще выбирают TensorFlow, PyTorch и scikit-learn. Также используются NLP-библиотеки и модели от Hugging Face, например, GPT или BERT. Для анализа изображений и рукописного текста используют OpenCV и OCR-технологии.</p><h3>Популярные решения</h3><ol><li><b>Персонализация обучения</b> — ИИ подстраивает задания под уровень ученика.</li><li><b>Автоматическая проверка</b> — оценка тестов, эссе, программного кода.</li><li><b>Генерация контента</b> — тестов, конспектов, видео, анимаций.</li><li><b>ИИ-наставники и чат-боты</b> — круглосуточные помощники для студентов.</li><li><b>Прогнозирование успеваемости</b> — анализ данных и раннее выявление проблем.</li></ol><p>Те, кто создают удобные инструменты, получают продукт, за который готовы платить.</p><p>В EdTech чаще всего зарабатывают по модели freemium. Это значит, что основные функции бесплатные, а за расширенные — пользователи платят. Так работают российские платформы Stepik и Учи.ру.</p><p>Другой вариант — продавать лицензии школам и университетам. Например, школа или вуз покупает доступ ко всей платформе сразу, а студенты получают ее бесплатно.</p><p>Очень популярный формат маркетплейсов, когда платформа соединяет авторов курсов и учеников, забирая процент от продаж. Пример — Udemy.</p><p>Российские компании (Skyeng, Puzzle English) часто комбинируют несколько моделей сразу. Они продают подписки, предлагают бесплатный доступ с рекламой и отдельно монетизируют корпоративных клиентов.</p><h2>Разработка нейросетевых ботов для мессенджеров и соцсетей</h2><p>Кроме очевидного клиентского сервиса, нейроботы нужны для внутренней работы компаний. Допустим, сотрудник хочет оформить отпуск. Вместо заполнения формы он пишет чат-боту. Тот распознает текст запроса, проверяет даты по корпоративному календарю и отправляет заявку начальнику. Сотрудник экономит время, а HR не завален бумагами.</p><p>Самым простым способом подключения нейросетей к мессенджерам остаются специальные платформы и библиотеки. Например, для ТГ подходит библиотека aiogram, для VK есть официальное API и готовые SDK. Есть универсальные решения — Dialogflow и Rasa, которые можно подключать сразу к нескольким мессенджерам одновременно.</p><p>Нужно учитывать технические и правовые моменты. Например, все персональные данные, которые собирает и обрабатывает бот, должны храниться на серверах в России. Это требование закона о персональных данных (152-ФЗ). Если бот записывает голосовые сообщения пользователей, нужно предупредить их об этом и получить согласие на обработку.</p><p>Популярные задачи:</p><ul><li>Автоматизация клиентского сервиса в соцсетях (прием заказов, консультации).</li><li>HR-помощники (отвечают на типовые вопросы сотрудников).</li><li>Информационные и новостные боты (генерируют персонализированные подборки новостей и статей на основе предпочтений пользователя).</li><li>Боты для образовательных и корпоративных целей (отвечают на частые вопросы, проверяют знания сотрудников и учеников).</li></ul><p>Зарабатывать на нейросетевых ботах можно по-разному:</p><ul><li>Создание бота под заказ конкретной компании с оплатой за разработку и ежемесячную поддержку.</li><li>Разработка готового продукта, который компания приобретает по лицензии с ежемесячной платой за доступ.</li><li>Подписная модель для небольших бизнесов, когда бот размещается на сервере разработчика, а компании платят ежемесячно за его использование.</li></ul><p>Бизнесу и пользователям нужен удобный сервис, который решает задачи прямо в любимом мессенджере. Чем проще и понятнее он работает, тем больше за него платят.</p><h2>Создание собственных ИИ-курсов и менторство</h2><p>Сейчас рынок образования в ИИ переполнен общей теорией. Людям не хватает конкретики, практических заданий и личного подхода. Поэтому специалисты начинают зарабатывать не только на разработке ИИ, но и на обучении других.</p><h3>Форматы обучения</h3><p>Можно делать записанные курсы с видеоуроками, разбирать задачи в закрытых ТГ-группах, проводить живые воркшопы или консультировать индивидуально. В каждом формате важно давать ученикам не только информацию, но и практику: реальные кейсы, проверку заданий, разбор ошибок.</p><h3>Как выбрать тему</h3><p>Самый выгодный вариант — узкоспециализированные направления. Например, внедрение ИИ в бизнес-процессы, автоматизация работы с данными, настройка нейросетей для определенных задач. Компании и специалисты ищут не общие знания, а конкретные решения, которые можно сразу применить в работе.</p><h3>Как монетизировать обучение</h3><p>Можно продавать доступ к курсам по подписке или разово, делать бесплатную базу и платные продвинутые модули. Персональное менторство ценится выше, потому что дает быстрые и точные ответы на вопросы учеников. Популярный вариант — запуск курса с ограниченным набором учеников и дополнительной возможностью индивидуального сопровождения.</p><p>Главное — качественный контент. Нужно записать видеоуроки, подготовить задания, создать удобную платформу для обучения. Если нет желания разрабатывать сайт с нуля, подойдут готовые платформы. Давайте ученикам реальную пользу и готовые решения, которые можно сразу применять. Тогда обучение станет стабильным источником дохода.</p>]]></content:encoded>
    </item>
    <item>
      <title>Анатомия данных: как устроено управление информацией</title>
      <link>https://tproger.ru/articles/anatomiya-dannyh--kak-ustroeno-upravlenie-informaciej</link>
      <comments>https://tproger.ru/articles/anatomiya-dannyh--kak-ustroeno-upravlenie-informaciej?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анна Ельцова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/anatomiya-dannyh--kak-ustroeno-upravlenie-informaciej</guid>
      <description><![CDATA[<p>Объем информации растет, но без системного подхода данные превращаются в шум. Разбираемся, как в компаниях структурируют, анализируют и защищают данные, чтобы они работали на бизнес, а не создавали хаос.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/anatomiya-dannyh--kak-ustroeno-upravlenie-informaciej">Анатомия данных: как устроено управление информацией</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Big Data]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Data Science]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 14 Mar 2025 08:30:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Данные — новая нефть, золото, уран? Забудьте. Данные — это океан, который заливает сервера, базы и облака, пока инженеры пытаются не захлебнуться в логах и аналитике. Управление данными — одна из самых молодых и недооценённых дисциплин в IT. Её не было 15 лет назад, но сегодня без неё невозможно представить ни один крупный бизнес.</p><p>Какого масштаба поток данных? Несколько лет назад мы прикинули: на каждого жителя Земли уже тогда приходилось по шесть Ленинских библиотек информации. А теперь умножьте это на два — каждый год. Гигабайты превращаются в терабайты, петабайты в зетабайты, а полезного в этом потоке — крохи. Львиная доля — шум: багованные логи, дубли, мемы и бесконечные тиктоки.</p><p>Но и нужных данных становится больше. Ещё недавно с корпоративной информацией работали в основном финансисты и риск-менеджеры. Сегодня же данные — фундамент всех бизнес-процессов. Без них не запустишь персонализированные продукты, не оптимизируешь расходы и не предскажешь спрос.</p><p>Задача на ближайшие годы — не просто накапливать информацию, а научиться управлять этим потоком так, чтобы он работал на бизнес, а не создавал хаос. Но как?</p><h2>Цифровой профиль вместо личного визита: как банки превратились в дата-платформы</h2><p>Еще десять лет назад банковское обслуживание выглядело совсем иначе: клиент приходил в отделение, садился напротив операциониста, показывал документы и так подтверждал свою личность. После чего совершал нужные операции. Сегодня всё решает смартфон — в приложении можно совершить большую часть финансовых операций, а банки повсеместно используют алгоритмы, чтобы сделать обслуживание еще более удобным и персонализированным. Эта эволюция не случилась за ночь. Сначала были «банк-клиенты», потом интернет-банки, затем мобильные приложения. Теперь банки становятся экосистемами, обменивающимися данными в реальном времени. А значит, объём собираемой информации растёт экспоненциально.</p><h2>Как обуздать поток данных</h2><p>Как же устроена работа с данными в крупных организациях? В ее основе — корпоративное хранилище данных (КХД), своего рода фундамент, где собирается информация из всех внутренних систем компании. Это может быть классическая реляционная база, озеро данных или другая технология — главное, чтобы существовала централизованная площадка для консолидации информации. Без такого фундамента невозможно выстроить эффективную систему управления.</p><p>Еще один ключевой элемент — системы класса MDM (Master Data Management), отвечающие за управление основными данными. Они собирают информацию из разных источников и устраняют несоответствия, создавая единое представление о каждом объекте: клиенте, продукте, сделке, контрагенте. В результате формируется так называемый «золотой профиль» — наиболее точная и полная версия данных.</p><p>Пример из жизни: клиентка выходит замуж и меняет фамилию, контактные данные, адрес. MDM-система анализирует изменения, понимает, что это все тот же человек, и сохраняет его историю взаимодействий с банком, включая информацию о счетах и сбережениях. При этом существуют разные типы MDM-систем: для работы с физическими и юридическими лицами, для учета сделок и контрактов, а также для управления справочными данными.</p><p>Данных в корпоративных хранилищах огромное количество — порой они исчисляются петабайтами. Однако без удобных инструментов остаются неструктурированным массивом, с которым сложно работать. Представьте, что атрибуты в системе названы по сложному шаблону (Naming Convention), и вам приходится разбираться с названиями вроде «CustActStatCD345x». Даже если они более-менее понятны, разобраться, какие именно данные скрываются за каждым атрибутом, все равно бывает непросто.</p><p>Чтобы упростить поиск и обработку информации, в организациях внедряются репозитории метаданных, каталоги и глоссарии. По сути, они работают как корпоративный аналог голосового помощника: сотрудник вводит запрос на понятном языке, а система подсказывает, где искать нужные сведения. Благодаря этому время на поиск информации сокращается в разы.</p><p>Но у каталогов и глоссариев есть еще одна важная функция — создание единого языка внутри компании. Например, слово «клиент» в разных отделах может означать совершенно разные вещи. Для одних это любой человек, заключивший договор, для других — только активные заемщики, для третьих — все, у кого когда-либо был счет. В результате одно подразделение может считать, что у компании 5 миллионов клиентов, другое — что 10 миллионов, а третье — всего 2 миллиона. И все будут правы в рамках своих критериев.</p><p>Такие расхождения не просто усложняют подготовку отчетности, но и приводят к ошибкам в стратегическом планировании. Поэтому важно четко формализовать термины и их значения: «активные клиенты», «кредитные клиенты», «клиенты с открытыми счетами» и т. д. Это не просто вопрос удобства, а критически важный аспект для точности бизнес-аналитики и принятия решений.</p><h2>Когда ошибок не избежать: темная сторона больших данных</h2><p>Ошибки в данных неизбежны. Человеческий фактор никто не отменял: сотрудник может пропустить букву, перепутать цифры или случайно нажать не ту клавишу. Даже автоматические системы ввода, например, OCR для распознавания документов, тоже не дают 100% точности. Машины, конечно, ошибаются реже (для сравнения: у авиадиспетчеров всего одна ошибка на тысячу операций, а в автоматизированной системе ошибки возникают на порядки реже), но полностью исключить погрешности невозможно.</p><p>Однако настоящая угроза не в самих ошибках, а в том, как они распространяются. Одна неточность в первичных данных, попадая в систему, начинает размножаться как вирус — заражает новые массивы, реплицируется при каждом использовании информации и в итоге распространяется каскадом по всей организации.</p><p>Исправлять такие ошибки — адская работа. Нужно не просто найти источник сбоя, но и проследить весь путь ошибки: где она появилась, куда распространилась, какие данные уже испорчены. Например, исправление всего одной неточности в персональных данных может занять до двух часов. Теперь умножьте это на тысячи подобных случаев — и получите астрономические затраты.</p><p>Бороться с ошибками проще на этапе их предотвращения, чем потом выгребать последствия. Поэтому компании внедряют сотни и тысячи системных проверок, чтобы отсекать брак ещё на входе. Некоторая информация очевидна: например, серия паспорта РФ — это всегда четыре цифры, а номер — шесть. Подобные форматные проверки легко автоматизировать.</p><p>Но есть и более сложные кейсы. Если человек запрашивает кредит, его возраст явно не может быть 12 или 120 лет. Или, скажем, в анкете указано имя «Екатерина», а в графе «пол» значится «мужской» — это очевидная ошибка. Такие проверки интегрируются прямо в фронт-офисные системы, чтобы сотрудники физически не могли ввести неадекватные данные.</p><p>Разработка и внедрение этих механизмов требует времени и ресурсов. Но если посмотреть на цифры, становится понятно: это копейки по сравнению с теми суммами, которые пришлось бы тратить на армию корректировщиков, устраняющих миллионы ошибок.</p><h2>Хранители цифрового будущего</h2><p>Централизация данных — не просто тренд, а необходимость. Без консолидации информации не построить ни предиктивную аналитику, ни эффективные государственные системы. Конечно, можно мечтать о мире, где всё хранится в изолированных базах, но это так же бессмысленно, как пытаться заменить автомобили конной тягой.</p><p>Однако большие данные — большая ответственность. Мы все знаем, как часто звонят «следователи МВД» или «капитаны ФСБ» с предложением срочно перевести деньги. Основная угроза — не внешние кибератаки, а человеческий фактор. Большинство утечек персональных данных — не результат сложного взлома, а банальный «вынос» информации инсайдерами.</p><p>Хотя нас пока не уничтожает «Скайнет» из фильмов 90-х, бережное отношение к данным — уже не вопрос выбора, а необходимость. Три базовых принципа цифровой гигиены помогут снизить риски:</p><ol><li><b>Минимум данных.</b> Если сервису нужен только email, не указывайте номер телефона и адрес. Чем меньше информации вы раздаёте, тем сложнее её украсть.</li><li><b>Выбор надёжных сервисов.</b> Крупные компании вкладываются в кибербезопасность, потому что их репутация на кону. У небольших организаций ресурсы на защиту ограничены, а контроль слабее.</li><li><b>Здравый смысл.</b> Самые сложные системы защиты бесполезны, если пользователь игнорирует элементарные правила безопасности.</li></ol><p>Сегодня мы лишь в общих чертах коснулись темы управления данными. За кадром остались вопросы технологий, контроля качества и информационной безопасности. Но ясно одно: способность эффективно работать с данными — ключевой фактор конкурентоспособности любой крупной компании, а специалисты в этой сфере сейчас необходимы.</p>]]></content:encoded>
    </item>
    <item>
      <title>«Умнейший ИИ в истории» Grok 3 представлен официально — Маск обещает революцию</title>
      <link>https://tproger.ru/news/-umnejwij-ii-v-istorii--grok-3-predstavlen-oficialno---mask-obeshhaet-revolyuciyu-254483</link>
      <comments>https://tproger.ru/news/-umnejwij-ii-v-istorii--grok-3-predstavlen-oficialno---mask-obeshhaet-revolyuciyu-254483?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/-umnejwij-ii-v-istorii--grok-3-predstavlen-oficialno---mask-obeshhaet-revolyuciyu-254483</guid>
      <description><![CDATA[<p>xAI представила Grok 3 — «умнейший ИИ в истории», который превзошёл ChatGPT в анализе данных, генерации кода и поиске информации</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/-umnejwij-ii-v-istorii--grok-3-predstavlen-oficialno---mask-obeshhaet-revolyuciyu-254483">«Умнейший ИИ в истории» Grok 3 представлен официально — Маск обещает революцию</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Илон Маск]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 18 Feb 2025 05:30:49 GMT</pubDate>
      <content:encoded><![CDATA[<p>Компания <b>xAI</b> Илона Маска <a href="https://x.com/elonmusk/status/1891700271438233931">представила</a> <b>Grok 3</b> — новую версию чат-бота, которую разработчики называют <b>«самым умным ИИ на планете»</b>.</p><h2>Что умеет Grok 3?</h2><ul><li><b>Глубокий анализ данных</b>: модель обучалась на <b>суперкомпьютере Colossus</b>, использующем <b>100 000 чипов Nvidia H100</b>. Это позволило существенно улучшить логику рассуждений.</li><li><b>DeepSearch</b>: новый алгоритм поиска, который <b>перелопачивает весь интернет</b> для получения точного ответа.</li><li><b>Самокоррекция</b>: Grok 3 умеет <b>исправлять собственные ошибки</b> без вмешательства человека.</li><li><b>Игровая генерация</b>: прямо на презентации бот <b>создал гибрид Tetris и Bejeweled</b> за несколько минут.</li></ul><h2>Чем Grok 3 пугает разработчиков?</h2><p>По словам инженеров <b>xAI</b>, модель настолько продвинута, что <b>«их пугает её потенциал»</b>. Grok 3 уже <b>обошёл ChatGPT-4o, Claude 3.5 и DeepSeek-V3</b> в тестах по математике, кодингу и научным задачам.</p><p>Особенно удивил демонстрационный запуск: ИИ <b>рассчитал траекторию полёта на Марс и обратно</b> в режиме реального времени, учитывая климатические особенности планеты и сроки возвращения.</p><h2>Кто уже в зоне риска?</h2><ul><li><b>Google</b>: функция <b>DeepSearch</b> позиционируется как прямой конкурент традиционным поисковым системам.</li><li><b>OpenAI</b>: несмотря на успехи GPT-4o, тесты показывают, что Grok 3 работает эффективнее в задачах, требующих аналитического мышления.</li><li><b>DeepSeek</b>: китайская компания, недавно обогнавшая многих конкурентов, теперь получила серьёзного соперника.</li></ul><h2>Когда ждать?</h2><p>Пока что доступ к <b>Grok 3</b> предоставляется ограниченно. Маск обещает <b>открытую регистрацию уже в марте 2025 года</b>.</p><p>А вскоре после этого компания планирует <b>запустить игровую студию</b>, в которой кодить и придумывать механики будет… сам Grok 3.</p>]]></content:encoded>
    </item>
    <item>
      <title>Лучшие курсы по анализу данных для начинающих с нуля — онлайн обучение Data Analyst</title>
      <link>https://tproger.ru/articles/kursy-po-analitike-dannyh</link>
      <comments>https://tproger.ru/articles/kursy-po-analitike-dannyh?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анастасия Шишкина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kursy-po-analitike-dannyh</guid>
      <description><![CDATA[<p>Лучшие курсы для аналитика данных: рейтинг актуальных обучающих программ. Подборка онлайн-обучения профессии Data Analyst с нуля и для специалистов с опытом</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kursy-po-analitike-dannyh">Лучшие курсы по анализу данных для начинающих с нуля — онлайн обучение Data Analyst</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Big Data]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Обучающие курсы]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Data Science]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 12 Feb 2025 17:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>На сегодняшний день курсы аналитика данных позволяют изучить основы статистики, машинного обучения, обработки естественного языка, анализа социальных сетей и других методов, используемых в анализе данных. Также можно научиться работать с популярными инструментами и библиотеками, такими как Python, R, SQL, Tableau, Power BI и другими.</p><p>Вместе с экспертами <a href="https://kursfinder.ru/">Kursfinder</a> я проанализировала более 60 предложений, чтобы составить рейтинг из 50 курсов по аналитике данных. В статье они распределены по подборкам для удобства навигации: в начале я собрала 10 самых лучших, по моему мнению, программ обучения. Далее идет дополнительный список, а в конце статьи вы найдете подборку бесплатного обучения. Полный список <a href="https://kursfinder.ru/data-analytics/">курсов по аналитике данных</a> ищите в каталоге Kursfinder.</p><h2>ТОП-10 лучших курсов по аналитике данных в 2026 году</h2><ol><li><a href="https://experts2.ru/pwQqbD?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=1">Аналитик данных</a> от Eduson Academy — лучшее обучение data analyst с личным куратором.</li><li><a href="https://experts2.ru/jXdTep?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=2">Профессия: Аналитик</a> от ProductStar — отличное обучение профессии с помощью в трудоустройстве.</li><li><a href="https://experts2.ru/FrpbDy?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=3">Аналитик данных</a> от Skypro — самое быстрое обучение с азов.</li><li><a href="https://experts2.ru/XutvJx?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=4">Аналитика с 0: быстрый старт</a> от ProductStar — лучшее обучение на аналитика данных с нуля.</li><li><a href="https://experts2.ru/KcsjxL?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=5">Mini-MBA: Аналитик 2.0</a> от SF Education —  лучший курс MBA по аналитике.</li><li><a href="https://experts2.ru/zaUXlx?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=6">Программирование для анализа данных</a> от Skypro — лучший курс по программированию для анализа данных.</li><li><a href="https://experts2.ru/yckVQp?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=7">Аналитик данных</a> от SF Education — отличное повышение квалификации.</li><li><a href="https://experts2.ru/ZuAryo?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=8">Аналитик данных с нуля</a> от Нетологии — отличный вариант для отработки практики на реальных проектах.</li><li><a href="https://experts2.ru/rbLuKe?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=9">Аналитик данных</a> от Бруноям — живое общение с преподавателями.</li><li><a href="https://experts2.ru/zhWEty?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=10">Аналитик данных ISA</a> от Skillfactory — возможность участия в стажировках.</li></ol><p>Онлайн-обучение на аналитика данных может быть полезно новичкам, которые только начинают свой путь в этой области, и профессионалам, желающим расширить свои компетенции. Кроме того, программы могут быть интересны и тем, кто не планирует связывать свою карьеру с анализом данных, но хочет лучше понимать, как работают современные технологии и какие возможности они предоставляют.</p><h2>Онлайн-курсы для аналитика данных</h2><p><b>1. </b><a href="https://experts2.ru/pwQqbD?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=1">Аналитик данных</a> |<b> Eduson Academy </b></p><p>На программе от Eduson Academy студенты изучат методы сбора, обработки и анализа данных, а также научатся создавать дашборды для визуализации результатов. Они освоят SQL и NoSQL для работы с базами данных и познакомятся с инструментами, такими как Python, R и Tableau. Курс также поможет им решать бизнес-задачи, развивая критическое мышление и коммуникативные навыки.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-07/a68a288d-2b5b-49a4-bebb-e249e2348970.png" alt="" /></figure><ul><li>Стоимость: 136 464 рубля</li><li>Длительность: 6 месяцев</li><li>Формат обучения: видеолекции, скринкасты, тренажеры, тесты</li><li>Сертификат: удостоверение о повышении квалификации + диплом</li></ul><p><b>Кому подойдет: </b></p><ul><li>новичкам с нуля.</li></ul><p><b>Преимущества:</b></p><ul><li>постоянная помощь от личного куратора;</li><li>можно выбрать свой график обучения;</li><li>содействие в поиске работы;</li><li>первые уроки предоставляются бесплатно.</li></ul><p><b>Недостатки:</b></p><ul><li>техническая поддержка отвечает с задержками.</li></ul><p><b>Программа обучения:</b></p><ul><li>Анализ проблемы для принятия решения</li><li>Системный подход в управлении</li><li>Процесс анализа в компании</li><li>Создание консолидированных таблиц</li><li>Оптимизация процессов и повышение эффективности</li></ul><p><a href="https://experts2.ru/pwQqbD?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=1">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>2. </b><a href="https://experts2.ru/jXdTep?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=2">Профессия: Аналитик</a> | <b>ProductStar </b></p><p>Освоите основы анализа данных. Научитесь изучать потенциальных клиентов, рынок и конкурентов, а также выявлять перспективы развития мобильных приложений. Познакомитесь с методами оптимизации процессов и применением технологий машинного обучения. Вы научитесь понимать смысл информации, используя математические методы. Сможете анализировать бизнес-процессы и представлять данные в виде удобных и информативных дашбордов.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-07/fb65b727-db69-40c3-a653-78ae8f8c7475.png" alt="" /></figure><ul><li>Стоимость: от 112 752 рублей</li><li>Длительность: 10 месяцев</li><li>Формат обучения: видеоуроки, вебинары, домашняя работа</li><li>Сертификат: есть</li></ul><p><b>Кому подойдет: </b></p><ul><li>новичкам с нуля.</li></ul><p><b>Преимущества:</b></p><ul><li>крупные проекты для портфолио;</li><li>без навыков кодинга;</li><li>рассрочка без процентов;</li><li>три мини-программы в подарок;</li><li>стажировки в партнерских компаниях.</li></ul><p><b>Недостатки:</b></p><ul><li>в первом тарифе нет доступа к смежным курсам.</li></ul><p><b>Программа обучения:</b></p><ul><li>Цели и методы работы специалиста по анализу данных</li><li>Место и функции аналитика в коллективе</li><li>Разбивка показателей: система метрик и их структура</li><li>Анализ метрик и работа с индивидуальными показателями</li><li>Основные математические операции и алгоритмы</li><li>Модификация, интеграция и исключение информации</li></ul><p><a href="https://experts2.ru/jXdTep?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=2">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>3. </b><a href="https://experts2.ru/FrpbDy?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=3">Аналитик данных</a> | <b>Sky Pro</b></p><p>Программа обучает собирать и анализировать данные для нахождения ценных инсайтов и принятия обоснованных решений. Вы освоите инструменты и методы статистического анализа, машинного обучения и визуализации данных. Научитесь применять эти навыки для решения бизнес-задач, таких как прогнозирование и оптимизация. Познакомитесь с популярными инструментами, такими как Python, R и Tableau, и научитесь создавать отчеты и презентации для представления результатов.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-07/cd5d6051-b047-4d79-b223-0f913dbd652f.png" alt="" /></figure><ul><li>Стоимость: 178 956 рублей</li><li>Длительность: 12 месяцев</li><li>Формат обучения: вебинары, домашняя работа, тестирования</li><li>Сертификат: удостоверение о повышении квалификации или диплом</li></ul><p><b>Кому подойдет: </b></p><ul><li>новичкам с нуля.</li></ul><p><b>Преимущества:</b></p><ul><li>множество способов оплатить обучение;</li><li>проводятся регулярные групповые занятия;</li><li>предусмотрены индивидуальные встречи с преподавателем;</li><li>оплата производится через месяц.</li></ul><p><b>Недостатки:</b></p><ul><li>ограниченное количество мест на программу.</li></ul><p><b>Программа обучения:</b></p><ul><li>Работа с ячейками и таблицами в Excel</li><li>Применение базовых формул в Excel</li><li>Основные экономические индикаторы</li><li>Чем отличаются разные типы расходов</li><li>Как работают логические операторы</li><li>Ключевые виды хранилищ информации</li></ul><p><a href="https://experts2.ru/FrpbDy?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=3">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>4. </b><a href="https://experts2.ru/XutvJx?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=4">Аналитика с 0: быстрый старт</a> | <b>ProductStar </b></p><p>Программа обучает основам аналитики, сбору и анализу данных, работе с инструментами аналитики, статистике, машинному обучению, Data Science и визуализации данных. Участники узнают, как применять аналитику в бизнесе, работать с большими данными и базами данных. Освоите базовые показатели IT-продуктов и научитесь создавать их иерархию. Ментор контролирует ваш прогресс и помогает успешно пройти испытательный срок при приеме на работу.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-07/12bc4571-bbd7-47bb-9643-7b5fb1d4def7.png" alt="" /></figure><ul><li>Стоимость: 59 232 рубля</li><li>Длительность: 2 месяца</li><li>Формат обучения: видеоуроки, вебинары, домашняя работа</li><li>Сертификат: есть</li></ul><p><b>Кому подойдет: </b></p><ul><li>новичкам с нуля.</li></ul><p><b>Преимущества:</b></p><ul><li>рассрочка без процентов;</li><li>три мини-программы в подарок;</li><li>комфортный темп работы;</li><li>стажировки в партнерских компаниях.</li></ul><p><b>Недостатки:</b></p><ul><li>маловато времени для обучения.</li></ul><p><b>Программа обучения:</b></p><ul><li>Цели специалиста по анализу данных</li><li>Инструменты для работы</li><li>Образ идеального аналитика</li><li>Как формулировать корректные вопросы</li><li>Что представляет собой HADI</li><li>Как функционирует HADI</li><li>Все стадии процесса дизайн-мышления</li><li>Как оптимизировать работу с метриками</li></ul><p><a href="https://experts2.ru/XutvJx?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=4">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>5. </b><a href="https://experts2.ru/KcsjxL?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=5">Mini-MBA: Аналитик 2.0</a> |<b> SF Education </b></p><p>Курс обучает анализу данных и принятию обоснованных решений. Вы освоите методы сбора, обработки и визуализации данных, научитесь работать с большими массивами и разрабатывать стратегии. Курс поможет вам выявлять проблемные места в бизнес-процессах, оптимизировать работу компаний и управлять рисками. Вы научитесь представлять данные наглядно и эффективно работать в команде.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-07/9f90c80f-a84e-4f9f-a9e5-e85ef5e972bb.png" alt="" /></figure><ul><li>Стоимость: 166 248 рублей</li><li>Длительность: 9 месяцев</li><li>Формат обучения: видеоуроки, практика, домашняя работа</li><li>Сертификат: диплом</li></ul><p><b>Кому подойдет: </b></p><ul><li>новичкам с нуля;</li><li>начинающим специалистам.</li></ul><p><b>Преимущества:</b></p><ul><li>три дня обучения бесплатно;</li><li>курс в подарок;</li><li>экономия до 75%;</li><li>помощь с устройством на работу.</li></ul><p><b>Недостатки:</b></p><ul><li>иногда происходят технические сбои.</li></ul><p><b>Программа обучения:</b></p><ul><li>Основные умения работы в Excel</li><li>Углубленные навыки работы в Excel</li><li>Разработка программ на языке Python</li><li>Выступления для специалистов</li><li>Знакомство с основами бизнес-анализа</li><li>Работа с разработчиками</li><li>Освоение основ финансового учета и анализа</li></ul><p><a href="https://experts2.ru/KcsjxL?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=5">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>6. </b><a href="https://experts2.ru/zaUXlx?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=6">Программирование для анализа данных</a> | <b>Skypro </b></p><p>На программе вы освоите основные языки программирования: Python, SQL и R. Научитесь обрабатывать и анализировать большие массивы данных, используя библиотеки и фреймворки для ускорения разработки. Получите навыки решения практических задач, таких как прогнозирование и классификация. Освоите создание отчетов и презентаций для визуализации результатов анализа.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-07/b1eed0c4-10a2-42db-b327-4c4e6138929e.png" alt="" /></figure><ul><li>Стоимость: 169 596 рублей</li><li>Длительность: по запросу</li><li>Формат обучения: вебинары, домашняя работа, тестирования</li><li>Сертификат: удостоверение о повышении квалификации или диплом</li></ul><p><b>Кому подойдет: </b></p><ul><li>новичкам с нуля.</li></ul><p><b>Преимущества:</b></p><ul><li>множество способов оплатить обучение;</li><li>проводятся регулярные групповые занятия;</li><li>предусмотрены индивидуальные встречи с преподавателем;</li><li>оплата производится через месяц.</li></ul><p><b>Недостатки:</b></p><ul><li>не указана длительность обучения.</li></ul><p><b>Программа обучения:</b></p><ul><li>Знакомство с программированием</li><li>Основы работы с Python</li><li>Графики и визуализация данных</li><li>Основы работы с Big Data</li><li>Работа с Hadoop и Spark</li><li>Классификация и регрессия</li><li>Кластеризация и нейронные сети</li><li>Работа с NoSQL базами данных</li></ul><p><a href="https://experts2.ru/zaUXlx?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=6">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>7.</b> <a href="https://experts2.ru/yckVQp?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=7">Аналитик данных</a> |<b> SF Education  </b></p><p>Занятия обучают основам анализа данных и работе с большими объемами информации. Вы научитесь собирать, обрабатывать данные, работать с базами данных и SQL, анализировать данные с помощью Python и Power BI, строить математические модели и прогнозировать результаты. Курс включает работу с реальными кейсами, что помогает создать портфолио для поиска работы.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-07/7fb2d77f-52cd-47da-8f2b-58cb9e257937.png" alt="" /></figure><ul><li>Стоимость: 83 184 рубля</li><li>Длительность: 4 месяца</li><li>Формат обучения: видеоуроки, практика, домашняя работа</li><li>Сертификат: диплом</li></ul><p><b>Кому подойдет: </b></p><ul><li>продолжающим специалистам.</li></ul><p><b>Преимущества:</b></p><ul><li>три дня обучения бесплатно;</li><li>курс в подарок;</li><li>экономия до 75%;</li><li>помощь с устройством на работу.</li></ul><p><b>Недостатки:</b></p><ul><li>не для новичков.</li></ul><p><b>Программа обучения:</b></p><ul><li>Основы работы с Excel</li><li>Углубленные знания и умения в Excel</li><li>Работа с информацией в Power Query</li><li>Разработка программ на Python</li><li>Основы математики</li><li>Модуль по развитию карьеры</li><li>Навыки межличностного общения</li></ul><p><a href="https://experts2.ru/yckVQp?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=7">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>8.</b> <a href="https://experts2.ru/ZuAryo?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=8">Аналитик данных с нуля</a> | <b>Нетология  </b></p><p>На программе учат собирать, обрабатывать и визуализировать данные, работать с базами данных и SQL/NoSQL, разрабатывать алгоритмы и прогнозировать события. Студенты научатся автоматизировать процессы, интерпретировать результаты анализа и работать с популярными инструментами, такими как Python, R, Tableau и Power BI. Курс готовит к карьере в анализе данных или к продолжению обучения на более продвинутых программах.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-07/d1667a06-bc0a-4fee-a451-36342359ee6d.png" alt="" /></figure><ul><li>Стоимость: от 99 000 рублей</li><li>Длительность: от 6 месяцев</li><li>Формат обучения: видео лекции, практические задания, теория, домашние задания, итоговые проекты</li><li>Сертификат: диплом о профессиональной переподготовке</li></ul><p><b>Кому подойдет: </b></p><ul><li>новичкам с нуля.</li></ul><p><b>Преимущества:</b></p><ul><li>крутые дополнительные материалы;</li><li>техническая поддержка высокого уровня;</li><li>удобное мобильное приложение;</li><li>уведомления о сроках выполнения задач;</li><li>возможность возврата денежных средств.</li></ul><p><b>Недостатки:</b></p><ul><li>скидка скоро закончится.</li></ul><p><b>Программа обучения:</b></p><ul><li>Знакомство с Google Таблицами</li><li>Продвинутые возможности Google Таблиц</li><li>Как работает аналитическое мышление</li><li>Основы статистического анализа</li><li>Усовершенствованное представление данных</li><li>Python как средство для анализа данных</li><li>Машинное обучение в повседневной жизни</li></ul><p><a href="https://experts2.ru/ZuAryo?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=8">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>9. </b><a href="https://experts2.ru/rbLuKe?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=9">Аналитик данных</a> | <b>Бруноям </b></p><p>Студенты научатся собирать, обрабатывать и анализировать большие объемы данных, визуализировать результаты с помощью инструментов, таких как Python, R и SQL, создавать дашборды и отчеты для их представления, а также автоматизировать рутинные задачи. Они получат навыки интерпретации данных в различных предметных областях, таких как бизнес, медицина и финансы, и научатся эффективно коммуницировать результаты анализа.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-07/babdc95c-4950-4bc0-a808-7a546bb77e5c.png" alt="" /></figure><ul><li>Стоимость: 29 900 рублей</li><li>Длительность: 4 месяца</li><li>Формат обучения: видео уроки, дополнительные материалы, чат с личным наставником</li><li>Сертификат: есть</li></ul><p><b>Кому подойдет: </b></p><ul><li>новичкам;</li><li>специалистам смежных профессий.</li></ul><p><b>Преимущества:</b></p><ul><li>теория без излишней академичности;</li><li>большое количество практических заданий;</li><li>интуитивно понятный интерфейс платформы;</li><li>возможность оформить рассрочку на выгодных условиях.</li></ul><p><b>Недостатки:</b></p><ul><li>в группе более 10 человек.</li></ul><p><b>Программа обучения:</b></p><ul><li>Определение и рассмотрение темы</li><li>Разногласия в понимании целей</li><li>Стандартные задачи Data Analyst</li><li>Инструменты и платформы для работы</li><li>Взаимодействие с другими отраслями</li><li>Реальные сценарии и образцы</li><li>Обзор ключевых хранилищ информации</li></ul><p><a href="https://experts2.ru/rbLuKe?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=9">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>10. </b><a href="https://experts2.ru/zhWEty?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=10">Аналитик данных ISA</a> | <b>Skillfactory   </b></p><p>Программа обучает работе с большими данными, статистике, машинному обучению, Data Science и Data Engineering. Вы научитесь собирать и обрабатывать данные, применять алгоритмы для прогнозирования и классификации, создавать нейронные сети, работать с распределенными вычислениями и визуализировать данные. Курс также включает изучение основ Data Science и Data Engineering для старта карьеры в этих областях.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-07/415a0c6b-3c11-4de5-8347-af2f5ed05273.png" alt="" /></figure><ul><li>Стоимость: от 185 076 рублей</li><li>Длительность: 14 месяцев</li><li>Формат обучения: тренажеры, тесты, видеоуроки, онлайн-митапы и проекты</li><li>Сертификат: диплом о профессиональной переподготовке установленного образца</li></ul><p><b>Кому подойдет: </b></p><ul><li>новичкам с нуля.</li></ul><p><b>Преимущества:</b></p><ul><li>обучение под контролем экспертов;</li><li>поддержка от коллектива специалистов;</li><li>предоставление учебных материалов;</li><li>обучение в рамках организации.</li></ul><p><b>Недостатки:</b></p><ul><li>кому-то программа может показаться слишком долгой.</li></ul><p><b>Программа обучения:</b></p><ul><li>Анализ бизнес-моделей и методов анализа данных</li><li>Логические задания для интервью</li><li>Работа с аналитическими документами</li><li>Углубление знаний на примерах из практики</li><li>Метрики, связанные с продуктами и маркетингом</li><li>Пирамида метрик и анализ экономики на уровне юнитов</li></ul><p><a href="https://experts2.ru/zhWEty?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=10">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><h2>Еще 21 дополнительных курсов аналитики данных</h2><p>Дополнительные программы помогут вам углубить понимание основных концепций и методов, а также освоить новые инструменты и техники.</p><ul><li><a href="https://experts2.ru/xRVmga?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Аналитика данных с МФТИ</a> от Нетологии. На программе вы изучите основы анализа данных и получите необходимые навыки для работы с большими объемами информации. Обучение идет с акцентом на практику.</li><li><a href="https://experts2.ru/NymqjQ?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Аналитик данных</a> Яндекс Практикум. На конкретных примерах вы сможете понять, чем занимаются специалисты по анализу данных, узнаете, какие навыки вы получите в процессе обучения, и выполните свои первые практические упражнения.</li><li><a href="https://experts2.ru/XwHlxk?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Финансы и анализ данных</a> от Нетологии. Освойте программу высшего образования в дистанционном формате, делая акцент на практической составляющей.</li><li><a href="https://experts2.ru/uXvqRz?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Аналитик данных</a> от Хекслета. Освойте ключевые показатели деятельности компаний и научитесь самостоятельно их рассчитывать, применяя SQL и Google Sheets. Проведите когортный анализ и составьте прогноз, представив данные в виде графиков с помощью Superset и Python.</li><li><a href="https://experts2.ru/PbdrkM?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Введение в Data Science</a> от Skillbox. Вы сможете примерить на себя роль дата-инженера, аналитика и эксперта в области машинного обучения.</li><li><a href="https://experts2.ru/raGwhJ?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Аналитик данных</a> от OTUS. Научитесь эффективно анализировать данные: изучите требования, освойте статистику и работу с инструментами бизнес-аналитики.</li><li><a href="https://experts2.ru/oQAwhz?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Аналитик данных</a> от Международной Школы Профессий. Станьте специалистом по анализу данных: работайте с системами управления базами данных, создавайте отчеты и визуализируйте данные в Power BI, изучите Python для работы с базами данных.</li><li><a href="https://experts2.ru/PZakoj?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Python, BI и BigData </a>от ProductStar. Освойте искусство анализа данных с использованием Python, и вы станете незаменимым специалистом в любой цифровой компании.</li><li><a href="https://experts2.ru/dZHkfh?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Менеджмент AI- и BigData-продуктов</a> от ProductStar. Освойте искусство разработки продуктов на основе больших данных и научитесь использовать искусственный интеллект.</li><li><a href="https://experts2.ru/xEguHt?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Data Analyst </a>от Skillbox. Вы будете проводить анализ, представлять данные в наглядном виде и создавать интерактивные панели управления в системах бизнес-аналитики.</li><li><a href="https://experts2.ru/gaTvHt?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Data Analyst</a> от Skillfactory. Вы получите надежную базу для развития в профессии аналитика данных: научитесь аналитически мыслить и освоите основные инструменты.</li><li><a href="https://experts2.ru/mfqzDB?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Статистические методы анализа данных</a> от «Специалист». Вы освоите методы ввода и обработки информации в программе SPSS Statistics, а также получите начальные знания о статистическом анализе данных и ключевых подходах прикладной статистики.</li><li><a href="https://experts2.ru/iOthZr?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Инженер-экономист в сфере экономики и анализа данных</a> от Профессионального стандарта. Программа даст вам возможность получить востребованную и хорошо оплачиваемую профессию инженера-экономиста в области экономики и анализа данных.</li><li><a href="https://experts2.ru/ueLibF?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Big Data</a> от Профессиональный стандарт. Программа даст вам возможность получить знания и навыки, которые позволят вам стать специалистом в области обработки больших объемов информации и работы с Интернетом вещей.</li><li><a href="https://experts2.ru/tBhGnp?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Библиотеки Python для Data Science: Numpy, Matplotlib, Scikit-learn</a> от GeekBrains. Познакомьтесь с базовыми принципами и определитесь, что вам ближе: разработка алгоритмов для машинного обучения или анализ данных.</li><li><a href="https://experts2.ru/QgzItr?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Онлайн магистратура "Науки о Данных"</a> от Skillfactory. Станьте обладателем диплома магистра по направлению «Наука о данных» от МФТИ. Получите практические навыки, работая над реальными проектами.</li><li><a href="https://experts2.ru/BefJkp?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Математика для анализа данных</a> от Нетологии. Школа поможет специалистам в области анализа данных разобраться в математических принципах: научиться выявлять закономерности в больших объемах информации и делать достоверные предсказания.</li><li><a href="https://experts2.ru/mvgxEW?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Excel для работы</a> от Skypro. Научитесь эффективно работать с таблицами, что позволит вам повысить производительность и получать доход от работы на фрилансе.</li><li><a href="https://experts2.ru/FabNig?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Математика для анализа данных</a> от Яндекс Практикум. Программа поможет восполнить пробелы в знаниях статистики, разобраться в контексте использования статистических тестов и освоить способы визуализации больших объемов информации.</li><li><a href="https://experts2.ru/fstTlW?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Аналитик BI c 0 до PRO</a> от IQBI. Вы освоите способы получения доступа к информационным ресурсам, обработки и анализа данных, а также научитесь создавать интерактивные дашборды в Power BI.</li><li><a href="https://experts2.ru/FabNig?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Математика для анализа данных плюс</a> от Яндекс Практикум. Углубленный курс для тех, кто уже освоил базовую программу «Математика для анализа данных».</li></ul><h2>Еще 5 курсов по SQL для анализа данных</h2><p>Курсы по SQL для анализа данных помогут вам освоить основы работы с базами данных и научиться писать простые запросы.</p><ul><li><a href="https://experts2.ru/FzxyiQ?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Обработка и анализ данных в SQL</a> от SF Education. Для всех, кто желает освоить работу с таблицами, разработку запросов и анализ данных, в SF Education создана программа обучения SQL с нуля.</li><li><a href="https://experts2.ru/IxBvsk?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">SQL и получение данных</a> от Нетологии. Вы научитесь пользоваться одним из ключевых инструментов для работы с данными и их анализа. Сможете выполнять аналитические задания и расширите свои перспективы для профессионального роста и развития.</li><li><a href="https://experts2.ru/uatTgJ?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">SQL для анализа данных</a> от Skypro. Освойте профессию, и вы можете трудиться из дома, самостоятельно определяя график работы, и получать доход, используя свои аналитические способности.</li><li><a href="https://experts2.ru/dRezjI?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">SQL с 0 для анализа данных</a> от ProductStar. Вам предстоит работать с массивами информации и находить в них закономерности, используя для этого SQL, Python и другие средства.</li><li><a href="https://experts2.ru/luUaXy?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Онлайн-курс SQL для анализа данных</a> от Бруноям. За два месяца вы сможете освоить SQL для работы с данными: вы научитесь составлять запросы, извлекать необходимые сведения и анализировать их без привлечения разработчиков.</li></ul><h2>Еще 3 курсов по Python для анализа данных</h2><p>С помощью программ по Python для анализа данных вы научитесь работать с библиотеками, такими как NumPy, Pandas, Matplotlib, Seaborn и другими, а также освоите основы машинного обучения и Data Science.</p><ul><li><a href="https://experts2.ru/hlcMrE?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Python для анализа данных</a> от Нетологии. Вы научитесь пользоваться главным инструментом для обработки данных и применения методов машинного обучения. Освойте работу с информацией на всех стадиях: от сбора, обработки и анализа до представления в наглядном виде.</li><li><a href="https://experts2.ru/pEuRlg?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Python для анализа данных</a> от Яндекс Практикум. В течение трех месяцев вы сможете овладеть актуальным инструментом для анализа и обработки информации.</li><li><a href="https://experts2.ru/McFxga?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Python Аналитик данных</a> от EasyUM. Получите новую специальность всего за пять месяцев. Научитесь работать с данными и извлекать из них выгоду для бизнеса.</li></ul><h2>Бесплатные курсы аналитики данных</h2><p>Станьте профессионалом и откройте для себя новые возможности в карьере. Бесплатные курсы по аналитике данных помогут вам освоить основы и начать применять полученные знания на практике.</p><p><b>1. </b><a href="https://experts2.ru/FbojsI?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Аналитик данных: первые шаги для погружения в профессию</a> — <b>Eduson Academy</b></p><p>В процессе обучения вы не только получите базовые знания в области анализа данных, но и сможете применить их на практике, используя специализированные онлайн-симуляторы.</p><p><b>Главное о курсе:</b></p><ul><li>длительность — две недели;</li><li>подойдет любому уровню.</li></ul><p><b>2.</b> <a href="https://experts2.ru/cwHtyL?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Основы анализа данных и Python</a> — <b>Яндекс Практикум</b></p><p>Школа поможет освоить азы, познакомим с языком программирования Python и определим, насколько вам подходит работа с данными.</p><p><b>Главное о курсе:</b></p><ul><li>четыре кейса по работе;</li><li>подойдет людям без опыта.</li></ul><p><b>3. </b><a href="https://experts2.ru/BTlqns?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Введение в аналитику данных</a> — <b>Хекслет</b></p><p>Вы освоите базовые принципы и способы анализа информации, а также научитесь применять инструменты для ее обработки и наглядного представления результатов.</p><p><b>Главное о курсе:</b></p><ul><li>самостоятельное изучение;</li><li>неограниченный доступ к теории.</li></ul><p><b>4.</b><a href="https://experts2.ru/zRdpZi?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop"> Какую профессию выбрать в анализе данных</a> —<b> Яндекс Практикум</b></p><p>Вы узнаете о различных типах аналитиков и их обязанностях, а также о том, к чему следует быть готовым и на какой доход можно рассчитывать. Это поможет вам принять решение о выборе профессии, которая вам подходит.</p><p><b>Главное о курсе: </b></p><ul><li>информация о разных профессиях;</li><li>длительность — два часа.</li></ul><p><b>5. </b><a href="https://youtube.com/playlist?list=PL5qhgSQBDXlcW4IEhlN6fuMzM9GSiBX74&amp;si=yJjJJja2cOHXyTLS">Python для начинающих аналитиков</a> — <b>Skypro: онлайн-университет</b></p><p>Канал опубликовал уроки по анализу данных с использованием Python от Skypro в открытом доступе, чтобы вы могли самостоятельно изучить этот инструмент.</p><p><b>Главное о курсе:</b></p><ul><li>девять уроков;</li><li>для аналитиков.</li></ul><p><b>6. </b><a href="https://youtube.com/playlist?list=PLDyJYA6aTY1kcb2fIGFZ9064fi-u1sLyf&amp;si=TogUD89gL8aLzJw7">Курс по Data Analytics</a> — <b>Школа itProger / Программирование</b></p><p>В процессе обучения вы освоите навыки работы в области анализа данных и научитесь применять различные библиотеки для обработки информации.</p><p><b>Главное о курсе:</b></p><ul><li>основы работы;</li><li>вводная часть по анализу.</li></ul><p><b>7. </b><a href="https://experts2.ru/fpXJxh?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Анализ данных в R</a> — <b>Stepik</b></p><p>Участники освоят базовые принципы программирования на языке R, что даст им возможность оперативно и результативно справляться с разнообразными задачами, связанными с обработкой информации.</p><p><b>Главное о курсе:</b></p><ul><li>19 уроков;</li><li>26 тестов;</li><li>50 интерактивных задач.</li></ul><p><b>8. </b><a href="https://youtu.be/uZ-l13XzejA?si=mF0FiMMB6b44z-QS">Анализ данных. Введение в Python</a> — <b>VK Team</b></p><p>Задача программы — дать слушателям представление о том, как устроен анализ данных, какие инструменты используются, с какими проблемами и методами работы сталкивается специалист в этой области.</p><p><b>Главное о курсе:</b></p><ul><li>длительность — два часа;</li><li>базовые инструменты при работе с данными.</li></ul><p><b>9. </b><a href="https://experts2.ru/qhFwoM?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Анализ данных просто и доступно</a> — <b>Stepik</b></p><p>В процессе решения практических заданий участники смогут освоить базовые принципы машинного обучения в интересной и понятной форме.</p><p><b>Главное о курсе: </b></p><ul><li>108 уроков;</li><li>36 тестов.</li></ul><p><b>10. </b><a href="https://experts2.ru/zFrksQ?sub1=tproger-kf&amp;sub2=analitika-dannykh-kursy&amp;sub4=netop">Основы статистики</a> — <b>Stepik</b></p><p>В рамках программы слушатели познакомятся с ключевыми концепциями и подходами математической статистики.</p><p><b>Главное о курсе: </b></p><ul><li>29 уроков;</li><li>105 тестов.</li></ul><p><b>11. </b><a href="https://youtu.be/MwlgWMK_GZE?si=2bH8sw-RoRcowdY7">Все, что нужно знать о профессии аналитика данных</a> — <b>faces &amp; cases</b></p><p>Татьяна поделилась тем, что ее больше всего мотивирует в работе и как можно объяснить суть этой профессии даже пожилому человеку.</p><p><b>Главное о курсе: </b></p><ul><li>введение в профессию;</li><li>роль аналитика в команде и в жизни.</li></ul><h2>Профессии, связанные с аналитикой данных</h2><ul><li>Data Scientist — специалист, который занимается анализом больших объемов данных с помощью алгоритмов машинного обучения и статистики. Он может работать с различными типами данных и решать разнообразные задачи.</li><li>Бизнес-аналитик — профессионал, который анализирует бизнес-процессы компании и предлагает решения для оптимизации этих процессов. Он может использовать данные для выявления тенденций, определения слабых мест и разработки стратегий развития.</li><li>Аналитик данных — специалист, который анализирует данные, чтобы выявить закономерности, тенденции и тренды. Он может работать с разными типами данных (например, с текстовыми, графическими, аудио- и видеоданными) и использовать различные методы анализа (например, статистические, машинное обучение, глубокое обучение).</li><li>Системный аналитик — профессионал, который занимается анализом информационных систем компании. Он может разрабатывать требования к новым системам, оптимизировать существующие системы и обеспечивать их бесперебойную работу.</li><li>Аналитик социальных медиа — специалист, который анализирует данные из социальных медиа для выявления трендов, интересов аудитории и эффективности рекламных кампаний.</li><li>Аналитик маркетинговых данных — профессионал, который использует данные для анализа эффективности маркетинговых кампаний и определения наиболее эффективных каналов продвижения.</li><li>Аналитик интернет-трафика — специалист, который анализирует данные интернет-трафика для выявления тенденций, определения популярных сайтов и разработки стратегий продвижения.</li><li>Аналитик Big Data — профессионал, который работает с большими объемами данных и использует специальные инструменты и технологии для их анализа.</li><li>Аналитик информационной безопасности — специалист, который анализирует данные о безопасности информационных систем компании и разрабатывает меры по их защите.</li><li>Аналитик продуктов — профессионал, который анализирует данные о продуктах компании и определяет их сильные и слабые стороны. Он может разрабатывать стратегии развития продуктов и оптимизировать их характеристики.</li></ul><h2>Как долго учиться?</h2><p>Срок обучения может варьироваться в зависимости от выбранного формата обучения, интенсивности занятий и начального уровня знаний.</p><p>Если вы выбираете очное обучение в вузе, то это может занять от четырех до шести лет для получения степени бакалавра и дополнительно полтора-два с половиной года для получения степени магистра. Однако, помимо теоретических знаний, важно также получить практические навыки работы с инструментами и методами анализа данных.</p><p>Если вы предпочитаете более короткие сроки обучения, можно рассмотреть онлайн-курсы или краткосрочные программы профессиональной переподготовки. Они могут длиться от нескольких месяцев до года или более, в зависимости от интенсивности занятий и выбранной программы.</p><h2>Требования и необходимые навыки</h2><p>Требования и навыки могут варьироваться в зависимости от конкретной компании и проекта, но, как правило, включают в себя следующее:</p><ul><li>Знание основ статистики и математики: специалист должен понимать и применять статистические методы для анализа данных, такие как среднее, медиана, мода, дисперсия, ковариация, корреляция, регрессионный анализ и другие.</li><li>Умение работать с базами данных и системами управления данными (СУБД): профессионал должен знать, как хранить, извлекать и обрабатывать данные из различных источников.</li><li>Навыки программирования: знание языков программирования, таких как Python, R, SQL, может быть полезным для автоматизации задач и обработки данных.</li><li>Понимание алгоритмов и структур данных: работник должен знать, как работают алгоритмы и структуры данных, чтобы эффективно обрабатывать и анализировать большие объемы данных.</li><li>Умение работать с инструментами для анализа данных: знание таких инструментов, как Tableau, Power BI, Excel, Google Data Studio, может быть полезным для визуализации данных и создания отчетов.</li><li>Понимание бизнес-процессов: специалист должен понимать, как бизнес-процессы работают и как данные могут быть использованы для улучшения этих процессов.</li><li>Аналитическое мышление: способность анализировать данные и выявлять тенденции и закономерности может быть полезной для выявления проблем и возможностей.</li><li>Умение работать с большими объемами данных: аналитик должен уметь обрабатывать и анализировать большие объемы данных, чтобы выявить скрытые закономерности и тенденции.</li><li>Умение работать с облачными сервисами: знание облачных сервисов, таких как Google Cloud Platform, Amazon Web Services, может быть полезным для хранения и обработки данных.</li><li>Знание методов машинного обучения: понимание методов машинного обучения может быть полезным для создания моделей и прогнозирования будущих событий.</li><li>Знание основ информационной безопасности: понимание принципов информационной безопасности может быть полезным для защиты данных и предотвращения несанкционированного доступа.</li></ul><h2>Уровень заработной платы</h2><p>Размер заработной платы определяется уровнем квалификации и местом работы. В столице, например, для начинающих специалистов диапазон дохода составляет от 60 000 до 180 000 рублей в месяц, для специалистов среднего уровня — от 200 000 до 300 000 рублей, а для опытных работников — до 400 000 рублей.</p><p>Чтобы получить актуальную информацию о вакансиях и зарплатах, рекомендуется обратиться к специализированным ресурсам, таким как <a href="https://hh.ru/vacancies/analitik-dannyh">hh.ru.</a> На этих сайтах вы сможете найти предложения от прямых работодателей с указанием требований и условий оплаты труда.</p><h2>Заключение</h2><p>Курсы аналитика данных помогают освоить основы статистики, машинного обучения и других методов анализа, а также научиться работать с популярными инструментами и библиотеками. Это может быть полезно профессионалам, а также новичкам, которые только начинают свой путь в анализе данных. Для того чтобы стать успешным кандидатом, необходимо постоянно совершенствовать свои знания, следить за тенденциями в области и быть готовым к постоянному обучению.</p><p><b>Подборки по схожим темам:</b><b></b></p><ol><li><a href="https://tproger.ru/articles/top-35-kursov-po-sozdaniyu-sajtov--onlajn-obuchenie-po-razrabotke-sajtov-s-nulya">Лучшие курсы по созданию сайтов</a></li><li><a href="https://tproger.ru/articles/top-61-kursov-veb-razrabotchika--luchwee-onlajn-obuchenie-programmirovaniyu-besplatno-i-platno">Лучшие курсы веб-разработчика</a></li><li><a href="https://tproger.ru/articles/kursy-verstki-html-i-css-253340">Лучшие курсы HTML и CSS</a></li><li><a href="https://tproger.ru/articles/kursy-c---i-c-">Лучшие курсы по языкам программирования</a></li></ol><p><i>В случае, если вы заметили в списке неактуальную информацию или хотите добавить в него проверенную программу или учебное заведение, пожалуйста, дайте мне знать в комментариях.</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Топ-10 малоизвестных языков программирования, которые могут выстрелить в будущем</title>
      <link>https://tproger.ru/articles/top-10-maloizvestnyh-yazykov-programmirovaniya--kotorye-mogut-vystrelit-v-budushhem</link>
      <comments>https://tproger.ru/articles/top-10-maloizvestnyh-yazykov-programmirovaniya--kotorye-mogut-vystrelit-v-budushhem?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/top-10-maloizvestnyh-yazykov-programmirovaniya--kotorye-mogut-vystrelit-v-budushhem</guid>
      <description><![CDATA[<p>Языки программирования будущего. Показываем, какие языки наиболее перспективны. Рассматриваем плюсы и минусы каждого Tproger</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/top-10-maloizvestnyh-yazykov-programmirovaniya--kotorye-mogut-vystrelit-v-budushhem">Топ-10 малоизвестных языков программирования, которые могут выстрелить в будущем</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Языки программирования]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Инструменты командной строки]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Квантовые вычисления]]></category>
      <category><![CDATA[Интернет вещей]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[смарт-контракты]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 07 Feb 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Технологический ландшафт постоянно обновляется, и ведущую роль в продвижении инноваций играют языки программирования. Сегодня большинство продуктов создается на Python, C и C++, Java, JavaScript, PHP, но специалисты постоянно развивают другие инструменты.</p><p>Мы собрали топ-10 малоизвестных и относительно новых языков программирования, которые с высокой долей вероятности могут стать популярными в профессиональной среде.</p><h2>Критерии отбора языков</h2><p>Каждый язык остается востребованным, пока им пользуются для написания кода. Например, COBOL, который появился еще в середине прошлого века, до сих пор применим в банковской системе США, а Fortran — в прикладной математике.</p><p>Однако стремительное развитие компьютерных технологий побуждает к разработке принципиально новых, более эффективных и производительных инструментов. Они могут выполнять сугубо утилитарные задачи (вроде управления системами и устройствами), или становятся универсальными средствами программирования.</p><p>Иногда даже сами создатели языка не подозревают, какой продукт у них появился. Так случилось с С, который разработали американские программисты Керниган и Ритчи. Они всего лишь хотели перенести любимую игру с сервера на офисный компьютер, но поскольку действующая операционка не подходила для этих целей, пришлось создавать новый язык. Теперь им пользуются миллионы программистов во всем мире.</p><p>В топ языков программирования входят перспективные для развития инструменты. При отборе мы пользовались экспертными данными, собранными из авторитетных профессиональных источников. Рассмотрим ключевые факторы.</p><h3>Технологический прогресс</h3><p>Языки программирования развиваются параллельно с техническим прогрессом. К числу наиболее актуальных направлении в современной индустрии относятся:</p><ul><li>Искусственный интеллект. Для разработки таких технологий и управления ими нужны языки, способные продуктивно работать со сложными алгоритмами, массивами данных и параллельными вычислениями.</li><li>Квантовые технологии. Новые архитектурные концепции могут «заставить» нас использовать абсолютно непривычные языки.</li><li>Мобильные устройства и IoT. Эта отрасль задает тренд на развитие легких по структуре и более производительных языков, которые работают со встраиваемыми системами.</li><li>Аппараты. Распространение многоядерных процессоров и распределенных по разным компьютерам систем повышает потребность в языках программирования, поддерживающих параллелизм.</li><li>Блокчейн. Да, чтобы проводить смарт-контракты и писать децентрализованные приложения, привычных языков может быть недостаточно.</li></ul><h3>Отраслевые потребности</h3><p>На развитие и востребованность языков программирования влияют и потребности различных отраслей. Например, финансовый сектор нуждается в языках, которые обеспечивают максимальный уровень безопасности и надежности. К таким языкам можно отнести, например, F#.</p><p>В сфере здравоохранения нужны языки, которые упрощают анализ данных диагностики или используются для машинного обучения систем, задействованных в прогнозировании заболеваний. Таким инструментом может стать, например, Solidity. Созданный на этом языке софт на основе ИИ можно применять для аналитики диагностических данных с последующим прогнозированием течения заболеваний.</p><p>В игровой индустрии нужны языки, которые обеспечивают высокую производительность и возможность реализации интерактивных технологий гейминга (например, дополненную реальность) в онлайн-режиме.</p><h3>Тренды в сообществах разработчиков</h3><p>Еще один значимый фактор отбора программных языков — потребности сообщества разработчиков. Профи и любители ориентируются на простоту синтаксиса, наличие библиотек и фреймворков, легкость в использовании инструмента для выполнения реальных задач.</p><p>По этой причине языки с открытым исходным кодом и популярные «народные» продукты с активными сообществами развиваются быстрее. Они способствуют обширной инфраструктуре в виде вспомогательных инструментов и ресурсов.</p><h2>Топ-10 языков программирования</h2><p>Рассмотрим уникальные особенности, сильные стороны и сферы применения языков программирования, которые обладают большим потенциалом.</p><h3>Zig</h3><p>Этот язык в последнее время стал одним из самых обсуждаемых в профессиональном сообществе. В популярных профильных изданиях его даже называют «новой звездой на небосводе современной разработки».</p><p>Его создатель, американский программист Эндрю Келли, ставил задачу объединить плюсы низкоуровневого программирования с надежностью и удобством высокоуровневых языков.</p><p>Это типизированный компилируемый инструмент с инновационными концепциями в основе. Статическая типизация отвечает за максимальную надежность кода и позволяет выявить большинство ошибок еще до выполнения программ.</p><p>Основные плюсы:</p><ul><li>продукты на Zig отличаются стабильностью, безопасностью и простотой дальнейшей поддержки;</li><li>язык можно использовать для разработки низкоуровневого ПО в качестве легковесной альтернативы C;</li><li>выполнение кода в процессе компиляции и ручное управление памятью делает работу более простой и безопасной;</li><li>производительность Zig делает его подходящим инструментом для системного программирования и создания приложений с лимитированными ресурсами.</li></ul><p>Язык будет все активнее использоваться в проектах, где важны производительность и максимальный уровень контроля. Он идеально подходит для разработки игр, сетевого и системного программирования.</p><p>Код на Zig выглядит следующим образом:</p><p>Пример проекта на Zig — репозиторий <a href="https://github.com/zig-gamedev/zig-gamedev?tab=readme-ov-file"> Zig-gamedev</a> для разработки игр на этом языке.</p><figure><img src="https://media.tproger.ru/user-uploads/101528/2025-01-29/7234e496-77ad-449e-a43f-8e3421220993.jpg" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/101528/2025-01-29/f6f7a616-44a0-45ad-9ebc-17c9c4f5421e.png" alt="" /></figure><p>Готовый продукт, созданный на основе модулей библиотеки — фэнтезийная игра от первого лица и с открытым миром Tides of Revival.</p><h3>Crystal</h3><p>Язык с Ruby-подобным, предельно простым синтаксисом и высокой производительностью. Как и Zig, он статически типизирован и компилируем. Объединяет ясность и простоту Ruby с эффективностью и скоростью C.</p><p>В числе главных преимуществ Crystal:</p><ul><li>сходство с синтаксисом Ruby делает его предельно простым для изучения;</li><li>по производительности Crystal не уступает самым востребованным компилируемым языкам;</li><li>проверка в процессе компиляции и глобальный вывод типов позволяют выявлять ошибки на ранних этапах разработки, поэтому язык оптимален для создания приложений.</li></ul><p>Производительность, безопасность и простота применения делают Crystal отличным выбором для написания сценариев, в том числе высокого уровня. На этом языке разрабатывают инструменты командной строки, микросервисы и веб-продукты различной степени сложности. По мере развития фреймворков и библиотек Crystal становится все более востребованным и имеет все шансы войти в число основных языков для разработки приложений.</p><p>Примеры сервисов, созданных на Crystal:</p><ul><li>Kinko booking — платформа для бронирования гостиниц в туристических агентствах в режиме реального времени;</li><li>Eat App — облачные приложения автоматизации для ресторанного бизнеса, повышающие эффективность работы предприятий;</li><li>Nabobil.no — европейский каршеринг.</li></ul><p>Пример кода наглядно демонстрирует лаконичность Crystal:</p><p>puts “Hello World!”</p><h3>Elixir</h3><p>Язык, в котором реализована функциональная методика создания кода, построен на базе виртуальной машины  Erlang. Использует динамическую типизацию переменных, подходит для работы с распределенными системами.</p><p>Главные плюсы:</p><ul><li>динамичность и функциональность языка позволяют использовать его для разработки масштабируемых и отказоустойчивых приложений;</li><li>поскольку код выстраивается из процессов, он отлично справляется с параллелизмом и одновременным выполнением множества задач, в том числе на разных устройствах;</li><li>идеально подходит для создания и поддержки распределенных систем, а также приложений реального времени;</li><li>системы на Elixir продолжают работу даже при отказе нескольких составных частей.</li></ul><p>Язык будет все чаще использоваться для разработки масштабируемых, распределенных и отказоустойчивых бэкенд-систем. Это относится к игровым онлайн-платформам, информационным ресурсам реального времени и другим приложениям с большим трафиком. Поскольку спрос на такие продукты только растет, будущее Elixir выглядит вполне определенным.</p><p>Код тоже предельно лаконичен:</p><p>IO.puts(“Hello, World!”)</p><p>На Elixir создан фреймворк <a href="https://github.com/phoenixframework/phoenix">Phoenix</a>, который содержит модули для разработки быстро масштабируемых приложений.</p><figure><img src="https://media.tproger.ru/user-uploads/101528/2025-01-29/e8f90602-b194-4714-b535-b7839a2ebc95.png" alt="" /><figcaption>Фреймферк Phoenix</figcaption></figure><h3>Nim</h3><p>Этот статически-типизированный и компилируемый язык развивает концепции Ada, Modula, Python, но стремится превзойти их по эффективности и выразительности.</p><p>Основные преимущества:</p><ul><li>язык используется для метапрограммирования — то есть для настройки и генерации кода;</li><li>универсальный синтаксис позволяет применять Nim как для веб-разработки, так и для научных вычислений и работы с большими данными;</li><li>поскольку язык компилируемый, разработчик может использовать для работы не только собственные библиотеки, но и фреймворки на C и C++.</li></ul><p>Nim уже сейчас применяется для веб-разработки, системного программирования и создания сценариев. Однако его универсальность, эффективность и возможность  метапрограммирования делают его инструментом с большим потенциалом, в том числе в сфере разработки продуктов на основе ИИ.</p><p>Код на Nim с последующим компилированием:</p><p>Самые известные фреймворки на Nim —  это <a href="https://github.com/dom96/jester">Jester</a> и <a href="https://github.com/karaxnim/karax">Karax</a>. Первый используется для серверной разработки, второй — для клиентской. Обе библиотеки есть в свободном доступе на GitHub.</p><h3>F#</h3><p>Функционально ориентированный язык, работающий на базе экосистемы .NET — кроссплатформенной среды для разработки приложений.</p><p>Преимущества F#:</p><ul><li>лаконичный и ясный синтаксис, относительно простой для понимания;</li><li>надежный вывод типов, что позволяет использовать F# для машинного обучения, анализа массивов данных и параллельного программирования;</li><li>благодаря безопасности подходит для разработки приложений, работающих с конфиденциальными данными в финансовой сфере.</li></ul><p>Поскольку вся финансовая отрасль постепенно уходит в цифру, а системы становятся все более сложными, F#, как производительный и точный инструмент, все чаще будет использоваться для создания ПО, в котором важна надежность и предельная корректность выполняемых операций.</p><p>В плане лаконичности F# вполне сравним с предыдущими примерами:</p><p>printfn “Hello, world!”</p><p><a href="https://github.com/giraffe-fsharp/Giraffe#giraffe">Giraffe</a> — популярная библиотека на F# для разработки веб-приложений с высокой производительностью и безопасностью.</p><figure><img src="https://media.tproger.ru/user-uploads/101528/2025-01-29/d1fb7e13-8df1-4d82-a7dc-b0e39f088c02.png" alt="" /></figure><p>Еще один полезный фреймворк на этом языке — <a href="https://saturnframework.org/">Saturn</a>.</p><h3>Julia</h3><p>Высокопроизводительный и высокоуровневый язык с динамической типизацией. Изначально создавался для сложных математических вычислений и анализа данных. Объединяет скорость C++ и простоту Python.</p><p>Плюсы Julia:</p><ul><li>высокая скорость, благодаря компиляции Just-In-Time и множеству опций диспетчеризации, делают язык предпочтительным инструментом для сложных вычислений и анализа данных;</li><li>подходит для создания эффективного нативного кода для исполнения алгоритмов на реальном оборудовании;</li><li>язык постоянно обновляется и совершенствуется.</li></ul><p>Способность Julia обрабатывать большие массивы данных и работать со сложными задачами применяется для глубокого обучения, а также разработки ИИ. Язык используется для научных исследований в экономике, физике, астрономии и других дисциплинах. Благодаря тому, что сообщество Julia постоянно растет, а библиотеки регулярно пополняются, язык имеет большой потенциал в науке и машинном обучении.</p><p>Простой сценарий на Julia выглядит так:</p><p>Примеры библиотек на Julia для научных разработок по астрофизике <a href="https://juliaastro.github.io/">JuliaAstro</a>, <a href="https://github.com/JuliaSpace">JuliaSpace</a>, по биологии и химии: <a href="https://biojulia.net/">JuliaBio</a>, <a href="https://github.com/JuliaMolSim">Molecular simulations</a>, по экономике:  <a href="https://julia.quantecon.org/">QuantEcon</a>, <a href="https://github.com/JuliaQuant">JuliaQuant</a>.</p><h3>Scala</h3><p>Этот язык считается флагманом функционального программирования, то есть работает не с конкретными переменными, а с функциями, которые их описывают. Scala компилируется в Java и может использоваться там, где применяется этот язык (практически везде).</p><p>Преимущества:</p><ul><li>объектно-ориентированный подход позволяет создавать более четкий и структурированный код для широкого спектра продуктов;</li><li>лаконичность — простой и краткий синтаксис более удобен, он быстрее пишется и читается;</li><li>код на Scala кроссплатформенный и запускается где угодно, поэтому программистам не нужно думать о совместимости.</li></ul><p>Масштабируемость Scala и его универсальность позволят этому языку в будущем частично заменить Java и в полной мере реализовать концепцию функционального программирования во множестве проектов.</p><p>Код на Scala:</p><p>@main def hello() = println(“Hello, World!”)</p><p>Библиотека <a href="https://github.com/scala-js/scala-js">Scala.js</a> компилирует этот язык в JavaScript. Этого инструмента достаточно, чтобы начать разработку с объектно-ориентированным подходом.</p><h3>Red</h3><p>Минималистичный, лаконичный по синтаксису, но при этом функционально полноценный язык был создан как универсальный инструмент для решения самого широкого круга задач — от написания сценариев до низкоуровневого системного программирования.</p><p>Ключевые преимущества:</p><ul><li>простота синтаксиса, легкость в освоении и использовании делают Red идеальным инструментом для начинающих программистов;</li><li>несмотря на минималистичность, язык обладает мощью и гибкостью, что позволяет использовать его для приложений любого уровня сложности;</li><li>есть множество GUI-библиотек, которые существенно упрощают написание кода на Red.</li></ul><p>Сейчас применение языка ограничивается локальными проектами, но эксперты уверены, что его широкое распространение — вопрос времени. Способность поддерживать как высоко-, так и низкоуровневые проекты позволяет рассчитывать, что Red войдет в число наиболее востребованных языков для мобильной и веб-разработки, IoT, создания драйверов и графических интерфейсов.</p><p>Код на Red:</p><p>На Red написан проект <a href="https://github.com/glebdmitriew/smartXML">SmartXML</a>, предназначенный для хранения и передачи структурированных данных. Он также поддерживает вычисления с большими числами и используется в прикладной математике.</p><h3>Ballerina</h3><p>Язык с открытым исходным кодом, специально созданный для работы с облачными технологиями и разработки сетевых сервисов.</p><p>Плюсы Ballerina:</p><ul><li>использует объектно-ориентированный подход и существенно упрощает обработку данных;</li><li>идеально подходит для работы с микросервисами;</li><li>совмещает функции языка и платформы для интеграции веб-сервисов, поддерживает множество протоколов.</li></ul><p>По мнению экспертного сообщества, Ballerina имеет все шансы стать со временем новым стандартом в разработке облачных структур и веб-сервисов, благодаря разнообразным встроенным инструментам.</p><p>Код на Ballerina выглядит следующим образом:</p><p>На языке, в частности, написано расширение <a href="https://choreo.dev/">Choreo</a> для создания, развертывания и тестирования облачных приложений непосредственно из редактора Visual Studio Code.</p><figure><img src="https://media.tproger.ru/user-uploads/101528/2025-01-29/d6cf2389-97e1-46e1-9375-1f264ed125cd.png" alt="" /></figure><h3>Solidity</h3><p>Высокоуровневый язык, разработанный для виртуальной машины Ethereum. Функционирует на основе блокчейна и смарт-контрактов. Синтаксис Solidity напоминает Python, при этом язык основан на принципиально иных концепциях.</p><p>Плюсы Solidity:</p><ul><li>позволяет быстро и эффективно создавать смарт-контракты, не испытывая технических сложностей;</li><li>относительно прост для освоения для тех, кто знаком с Python и Java.</li></ul><p>Большинство экспертов считают, что со временем смарт-контракты будут использоваться практически во всех отраслях промышленности, где есть цифровые технологии. Уже сегодня смарты применяют для управления цепями поставок, а также в сфере здравоохранения для сохранения конфиденциальности данных пациентов.</p><p>Создание смарт-контракта на Solidity выглядит так:</p><p>На Solidity работают децентрализованные проекты типа Uniswap и Compound, где можно брать кредиты в крипте без посредников, а также NFT-маркетплейсы OpenSea и Rarible.Игра<a href="https://www.cryptokitties.co/"> Cryptokitties</a> для покупки, разведения и продажи виртуальных кошек тоже написана на этом языке.</p><figure><img src="https://media.tproger.ru/user-uploads/101528/2025-01-29/f8295011-b3a6-402d-a281-2711f1e10f39.png" alt="" /></figure><h2>Как выбрать язык для изучения</h2><p>При выборе перспективного языка программирования разработчику в первую очередь стоит учитывать область своих профессиональных интересов. Собственные инструменты есть в сферах веб-приложений, игр, продуктов на основе ИИ, программ для аналитики данных.</p><p>Аспекты, на которые стоит обязательно обратить внимание —  активность сообщества и наличие подробной документации. Все языки из представленного нами списка развиваются и имеют обширную аудиторию пользователей.</p><p>Значение имеют и вспомогательные инструменты — библиотеки и фреймворки. Готовые решения значительно упрощают как освоение языка, так и разработку конкретных продуктов для прикладных задач.</p><p>Следите за трендами ИТ-индустрии. Направления с серьезным потенциалом развития в ближайшие 10 лет: ИИ; квантовые вычисления; интернет вещей; блокчейн и смарт-контракты; автоматизация и робототехника.</p><p>Изучив новые языки раньше других, вы сможете опередить рынок и стать востребованным специалистом с минимальной конкуренцией. Если вы новичок, вы дадите мощный старт своей карьере разработчика.</p><p>А если хотите изучить хотя бы один из языков (или просто присматриваетесь) — все самые полезные инструменты <a href="https://t.me/+Qi8OJ_0gQZUyMWEy">тут</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Запускаем локально Deepseek-R1 для приложения RAG</title>
      <link>https://tproger.ru/articles/zapuskaem-lokalno-deepseek-r1-dlya-prilozheniya-rag</link>
      <comments>https://tproger.ru/articles/zapuskaem-lokalno-deepseek-r1-dlya-prilozheniya-rag?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Михаил Бородин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/zapuskaem-lokalno-deepseek-r1-dlya-prilozheniya-rag</guid>
      <description><![CDATA[<p>Как запустить DeepSeek локально и использовать её для поиска по документации? Разбираем ключевые особенности модели, её преимущества перед ChatGPT, влияние на рынок и применение технологии RAG. </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/zapuskaem-lokalno-deepseek-r1-dlya-prilozheniya-rag">Запускаем локально Deepseek-R1 для приложения RAG</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 03 Feb 2025 15:32:07 GMT</pubDate>
      <content:encoded><![CDATA[<p>Последние две недели интернет-общественность активно обсуждает DeepSeek — новую генеративную модель, которая вызвала большой интерес благодаря своей эффективности. Главный сюрприз: при качестве ответов, сравнимом с ChatGPT, её обучение обошлось значительно дешевле. Это уже повлияло на рынок: акции Nvidia потеряли около 20% стоимости всего за один день.</p><p>DeepSeek доступна бесплатно как через веб-интерфейс, так и через мобильное приложение. Однако сегодня мы рассмотрим не такой очевидный, но не менее важный аспект — локальный запуск модели.</p><p>Разберём это на примере небольшого проекта. Представьте, что у вас есть массив документации, и вам необходимо эффективно искать информацию или проводить анализ данных. Один из подходов, который можно применить, — технология RAG (Retrieval-Augmented Generation), которая сочетает поиск по тексту с генерацией ответов на основе релевантных данных. Давайте разберём, как DeepSeek можно адаптировать под эту задачу.</p><h2>Что такое RAG?</h2><p>Retrieval-Augmented Generation (RAG) – передовая техника ИИ, разработанная для повышения точности и надежности языковых моделей путем интеграции поиска внешней информации в процесс генерации ответа. В отличие от традиционных генеративных моделей, которые полагаются исключительно на обученные знания, RAG осуществляет динамический поиск релевантной информации перед генерацией ответа, уменьшая количество галлюцинаций и повышая точность фактов.</p><p>Процесс работы RAG состоит из трех ключевых этапов. Во-первых, он извлекает соответствующие документы или данные из базы знаний, которая может включать структурированные БД, векторные хранилища или даже API в режиме реального времени. Затем полученная информация объединяется с внутренними знаниями модели (это гарантирует, что ответы будут основаны на актуальных и надежных источниках). Наконец, модель генерирует обоснованный ответ, используя как свои обученные языковые возможности, так и новые полученные данные.</p><p>Такой подход дает значительные преимущества. Основывая ответы на внешних источниках, RAG минимизирует неточности и обеспечивает актуальность информации, что делает его особенно полезным в финансах, здравоохранении и праве. Он широко применяется в чат-ботах, системах ИИ с расширенным поиском, корпоративном поиске знаний и управляемыми ИИ научными ассистентами, где точность и достоверность фактов имеют решающее значение.</p><h2>Как будет выглядеть архитектура решения?</h2><p>База знаний — коллекция релевантной и актуальной информации, которая служит основой для RAG. В нашем случае это документы, хранящиеся в каталоге.</p><figure><img src="https://media.tproger.ru/user-uploads/111465/2025-01-31/5c92069e-d5bd-4a70-b782-cea18d487f7c.jpeg" alt="" /></figure><p>Перед тем, как начать реализовывать данную архитектуру, необходимо установить следующие библиотеки (тестировалось на Python 3.11):</p><p>Вот как вы можете загрузить ваши документы в LlamaIndex в виде объектов:</p><p>Векторные хранилища принимают список объектов Node и строят из них индекс.</p><h2>VectorStoreIndex в RAG</h2><p>В системе Retrieval-Augmented Generation (RAG) индекс VectorStoreIndex используется для хранения и извлечения векторных вкраплений документов. Это позволяет системе находить релевантную информацию на основе семантического сходства, а не точного совпадения ключевых слов.</p><p>Процесс начинается с встраивания документов. Текстовые данные преобразуются в векторные вкрапления с помощью модели. Эти вкрапления представляют смысл текста в числовой форме, что облегчает сравнение и поиск похожего контента. После создания вкрапления хранятся в векторной базе данных — FAISS, Pinecone, Weaviate, Qdrant или Chroma.</p><p>Пользователь отправляет запрос, который также преобразуется во вкрапление с помощью той же модели. Затем система ищет похожие вкрапления, сравнивая запрос с сохраненными векторами с помощью метрик сходства — косинусоидального сходства или евклидово расстояния. Наиболее релевантные документы извлекаются на основе их оценок сходства.</p><p>Полученные документы передаются в качестве контекста в большую языковую модель (LLM), которая использует их для создания ответа. Этот процесс гарантирует, что LLM имеет доступ к релевантной информации, повышая точность и уменьшая количество галлюцинаций.</p><p>Использование VectorStoreIndex улучшает системы RAG, обеспечивая семантический поиск, улучшая масштабируемость и поддерживая поиск в реальном времени. Это гарантирует, что ответы будут контекстуально точными и основанными на наиболее релевантной доступной информации.</p><p>Построить векторный индекс очень просто:</p><p>Дальше остается скачать и запустить модель deepseek-R1 с помощью ollama. Для этого необходимо установить ollama <a href="https://ollama.com/download">https://ollama.com/download</a>.</p><p>После того, как вы запустите у себя эту модель командой</p><p>достаточно выполнить следующий код, чтобы RAG начал работать</p><p>Теперь можно встроить данное решение в десктопный клиент, создав пользовательский интерфейс с помощью <a href="https://streamlit.io">Streamlit</a>, чтобы обеспечить взаимодействие пользователя через чат с приложением RAG. Либо можно сделать телеграм-бот, тогда создать интерфейс будет ещё проще.</p>]]></content:encoded>
    </item>
    <item>
      <title>Проекции в Vertica: что это, как использовать и почему не стоит создавать их под каждый запрос</title>
      <link>https://tproger.ru/articles/proekcii-v-vertica--chto-eto--kak-ispolzovat-i-pochemu-ne-stoit-sozdavat-ih-pod-kazhdyj-zapros</link>
      <comments>https://tproger.ru/articles/proekcii-v-vertica--chto-eto--kak-ispolzovat-i-pochemu-ne-stoit-sozdavat-ih-pod-kazhdyj-zapros?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Марина Орлова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/proekcii-v-vertica--chto-eto--kak-ispolzovat-i-pochemu-ne-stoit-sozdavat-ih-pod-kazhdyj-zapros</guid>
      <description><![CDATA[<p>Иван Якунин, продуктовый аналитик команды Fintech Marketplace, рассказал про то, как в Авито работают с Vertica, и на примерах объяснил, что такое проекции, и когда их стоит использовать.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/proekcii-v-vertica--chto-eto--kak-ispolzovat-i-pochemu-ne-stoit-sozdavat-ih-pod-kazhdyj-zapros">Проекции в Vertica: что это, как использовать и почему не стоит создавать их под каждый запрос</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 28 Jan 2025 15:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Привет, меня зовут Иван Якунин, я продуктовый аналитик команды Fintech Marketplace. Мы занимаемся биллингом в Авито, изучаем как пользователи покупают на платформе, и с помощью этих данных создаём безопасные и быстрые платежные инструменты.</p><p>В Авито мы используем несколько аналитических баз данных, чтобы выстраивать свое DWH, и аналитику на его основе. Одна из них — Vertica. В статье я расскажу про проекции — одну из отличительных особенностей Vertica, которые мы используем, чтобы оптимизировать работу наших витрин и дашбордов. В условиях когда количество данных постоянно растет, а ресурсы кластера ограничены, проекции являются хорошим способом оптимизировать расчеты в базе данных.</p><h2>Что такое Проекция</h2><p>В большинстве баз данных таблица — это физическая структура, один объект, который хранится на диске. В Vertica таблица — это логическая структура, а физическим объектом, который хранится на диске, выступают как раз проекции. При этом одна таблица (логическая структура) может ссылаться на несколько проекций (физических структур).</p><p>Создавая таблицу, вы всегда создаёте вместе с ней её первую проекцию, которая в Vertica называется супер-проекцией. Следующие проекции, созданные уже вручную, будут копией данных супер-проекции, но при этом вы можете менять сортировку, сегментирование, фильтры, группировку данных.</p><p>Наиболее близкая аналогия из других БД — это материализованные представления (materialized view). Vertica обновляет проекции при изменении супер-проекции так же, как другие БД обновляли бы материализованные представления с флагом ON COMMIT (обновляется при изменении источников представления).</p><p>Таблица — логическая структура, и может ссылаться сразу на несколько проекций. Это позволяет SQL-запросам выполняться эффективнее: можно указывать одну таблицу, но оптимизатор Vertica будет анализировать при считывании какой проекции с диска запрос удастся выполнить дешевле и быстрее. Проще говоря, таблица — это символическая ссылка на несколько копий одних и тех же данных, собранных по-разному, и считывается та копия, которую будет дешевле всего использовать в запросе.</p><p>Теперь посмотрим на то, как выглядят проекции в коде. Создадим таблицу, с которой будем работать. Здесь я приведу небольшой семпл данных, который мы будем использовать.</p><p>Посмотрим, в какой момент у нас появляется проекция. Для этого посмотрим на план выполнения запроса, если мы запросим всю созданную нами таблицу:</p><p>Видим, что с диска на самом деле считывается проекция test_projection, но при этом у нее есть дополнительное название b0. Узнаем, откуда оно взялось.</p><p>Вывод:</p><p>Теперь понятно, что мы считали одну из реплик проекции. Их две, потому что коэффициент репликации K в кластере равен 1. Прежде, чем мы перейдем к проекциям, зафиксируем результат «до», чтобы было с чем сравнивать. Посмотрим на план запроса с группировкой по неделям.</p><p>Вывод:</p><p>Теперь создадим новую проекцию для этой таблицы.</p><p>Выбираем временной промежуток длиной в неделю, и группируем значения внутри таблицы. Вызов функции start_refresh необходим, чтобы запустить обновление проекции от супер-проекции. До момента её вызова значение UpToDate для этой проекции будет "no", и ей нельзя будет пользоваться. Кроме того, когда мы создали проекцию, то мы можем обращаться к ней напрямую по имени, минуя ссылку через основную таблицу.</p><p>Посмотрим, как изменился план выполнения предыдущего запроса.</p><p>Теперь в этом запросе считывается наша новая проекция, так как выполнение с ней дешевле — данные уже сгруппированы по неделям. Теперь базе данных нужно считать всего три строки. Разницу между десятью и двумя строками мы не почувствуем, этот пример тестовый, но на реальной витрине это позволит сэкономить много времени и ресурсов.</p><p>Что произойдет, если мы добавим данные в таблицу? Наша проекция сгруппирована по неделям, а супер-проекция нет. Попробуем добавить несколько дней, которые относятся к уже существующей неделе. Вот так выглядят значения до изменения данных, мы можем обратиться к проекции минуя таблицу-ссылку, напрямую по её имени:</p><figure><img src="https://media.tproger.ru/user-uploads/109956/2025-01-27/0840fb89-062e-47b4-9267-f71fb190cfa2.png" alt="" /></figure><p>Теперь вставим данные:</p><p>После вставки данных мы можем не запускать обновление проекции, теперь Vertica будет самостоятельно поддерживать её в актуальном состоянии. Вот как выглядят данные после вставки новых дней:</p><figure><img src="https://media.tproger.ru/user-uploads/109956/2025-01-27/7d6547ce-8699-49f5-af84-d36debac1d09.png" alt="" /></figure><h2>Когда можно использовать проекции</h2><p>Выше мы рассмотрели основную особенность проекций — они автоматически обновляют свою актуальность относительно супер-проекции и всё это скрывается за одной и той же таблицей. Это позволяет ускорять тяжёлые, повторяющиеся расчеты.  Причём не только один и тот же повторяющийся кусок кода, но скорее код который использует похожие разрезы, так как Vertica принимает решение о том, какую проекцию считывать, анализируя стоимость запроса. Чаще всего подобные ситуации возникают, если в регламентных расчетах одну из витрин используют много зависящих от неё витрин, либо при визуализации данных на дашбордах. Дальше мы разберем второй случай, посмотрим как можно с помощью проекций ускорить построение графиков в дашборде.</p><p>Представим, что у нас есть таблица, в которой много сырых данных, и нам необходимо построить дашборд в большом количестве разрезов. Например, это могут быть события одного из продуктов, и нам необходимо настроить аналитику воронки этого продукта, и всех метрик, которые мы хотим видеть. Событий может быть очень много, и мы можем ждать загрузки дашборда довольно долго. Пользователи дашборда могут часто менять параметры графиков, это будет вызывать частые обращения к БД с однотипными запросами. С помощью проекций мы можем предсказать и рассчитать выполнение самых тяжелых и частых запросов, и ускорить выполнение дашборда.</p><p>Для примера будем использовать ту же таблицу, что мы создали раньше, но создадим для нее еще пару проекций, сгруппированных по месяцам и дням. И напишем очень простой запрос в redash, с помощью которого можно построить линейный график суммы покупок по датам с выбранной гранулярностью.</p><figure><img src="https://media.tproger.ru/user-uploads/109956/2025-01-27/b54f66e3-5aa5-46d4-b19b-a5bdbbb55b21.png" alt="" /></figure><p>Так мы можем ускорить выполнение дашбордов которые строятся по большому количеству разрезов. При этом нам не придется беспокоиться о том, как обновлять каждый разрез, ставить его на расписание, и писать большие запросы.</p><p>Но важно помнить, что проекции занимают место в хранилище, поэтому не стоит создавать их под каждый запрос. Если мы создадим проекцию под запрос, который будет выполняться только один раз, то время расчёта проекции будет равно выполнению этого запроса. Важен баланс между ускорением расчетов, и ресурсами диска/процессора, которые мы тратим на расчёт и хранение проекции.</p><h2>Итог</h2><p>Проекции — это предварительно обработанные данные из основной супер-проекции таблицы.</p><p>То, что Vertica обновляет проекции самостоятельно открывает большое поле для оптимизации витрин и запросов в системах визуализации данных. Проекции можно использовать, когда у вас есть часто переиспользуемые куски кода, особенно если данных много. Ключевое слово «часто», потому что создавать проекции для одноразовых запросов плохо — они занимают место в хранилище и не помогают выиграть время расчёта.</p>]]></content:encoded>
    </item>
    <item>
      <title>Сравниваем форматы сериализации на Go: скорость и удобство</title>
      <link>https://tproger.ru/articles/sravnivaem-formaty-serializacii-na-go--skorost-i-udobstvo</link>
      <comments>https://tproger.ru/articles/sravnivaem-formaty-serializacii-na-go--skorost-i-udobstvo?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Марина Орлова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/sravnivaem-formaty-serializacii-na-go--skorost-i-udobstvo</guid>
      <description><![CDATA[<p>Дмитрий Королёв, бэкенд-разработчик в Авито, разобрал на примерах, чем отличаются друг от друга форматы сериализации данных и как выбрать самый удобный.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/sravnivaem-formaty-serializacii-na-go--skorost-i-udobstvo">Сравниваем форматы сериализации на Go: скорость и удобство</a>»</p>]]></description>
      <category><![CDATA[Golang]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 20 Dec 2024 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Привет! Меня зовут Дмитрий Королёв, я бэкенд-разработчик в Авито.</p><p>В большинстве современных приложений используется сериализация данных: для передачи данных между клиентом и сервером, для хранения сложных структур в базах данных, при передаче информации между микросервисами или отправке сообщений в очереди.</p><p>Правильный выбор формата сериализации может существенно повлиять на производительность приложения, размер передаваемых данных и читаемость кода.</p><p>В этой статье я покажу бенчмарки нескольких самых популярных форматов сериализации в языке Golang и расскажу про преимущества и недостатки каждого из них. Это поможет вам выбрать подходящий формат для вашего проекта с учетом его потребностей. Например, меньший размер сериализованных, если вы хотите сэкономить место при хранении данных или сетевые ресурсы при их передаче, время сериализации/десериализации, если для вашего приложения критична скорость и т. д.</p><h2>Какие бывают форматы сериализации</h2><p>Можно разделить существующие форматы сериализации на две большие группы — бинарные и текстовые. У каждой из них есть свои характеристики, по которым можно оценить, насколько формат подходит для ваших целей. Для начала расскажу про ключевые моменты, на которые нужно обратить внимание при выборе.</p><h2>Бинарные форматы</h2><p>Avro, Protobuf, CBOR и Msgpack относятся к бинарным форматам сериализации данных. Ключевые различия между ними:</p><ul><li>Схема данных:Avro поддерживает схемы данных, которые описывают структуру сериализованных данных. Это позволяет легко изменять схему данных и делает его подходящим для развивающихся схем данных.Protobuf также использует схемы данных и автоматически генерирует код на основе схемы. Это позволяет легко создавать и обновлять структуру данных.CBOR и Msgpack не предоставляют встроенной поддержки схем данных, поэтому данные сериализуются без дополнительной информации о структуре.</li><li>Avro поддерживает схемы данных, которые описывают структуру сериализованных данных. Это позволяет легко изменять схему данных и делает его подходящим для развивающихся схем данных.</li><li>Protobuf также использует схемы данных и автоматически генерирует код на основе схемы. Это позволяет легко создавать и обновлять структуру данных.</li><li>CBOR и Msgpack не предоставляют встроенной поддержки схем данных, поэтому данные сериализуются без дополнительной информации о структуре.</li><li>Человекочитаемость:Бинарные форматы не предназначены для чтения человеком, однако Avro и Protobuf можно сериализовать в json. Это может быть полезно в целях дебага, но мало пригодно для production среды.</li><li>Бинарные форматы не предназначены для чтения человеком, однако Avro и Protobuf можно сериализовать в json. Это может быть полезно в целях дебага, но мало пригодно для production среды.</li><li>Компактность и производительность:CBOR и Msgpack более компактны и имеют лучшую производительность при сериализации и десериализации данных, поскольку сериализованные сообщения не содержат метаданных.Avro и Protobuf также обеспечивают хорошую компактность и производительность, но процесс сериализации и десериализации может быть более сложным из-за схемы данных. Например, в случае с avro во время сериализации проводится анализ схемы, чтобы впоследствии определить каким образом обрабатывать то или иное поле.</li><li>CBOR и Msgpack более компактны и имеют лучшую производительность при сериализации и десериализации данных, поскольку сериализованные сообщения не содержат метаданных.</li><li>Avro и Protobuf также обеспечивают хорошую компактность и производительность, но процесс сериализации и десериализации может быть более сложным из-за схемы данных. Например, в случае с avro во время сериализации проводится анализ схемы, чтобы впоследствии определить каким образом обрабатывать то или иное поле.</li><li>Эволюционность:Avro и Protobuf обеспечивают поддержку обратной совместимости при изменении схем данных. Это облегчает эволюцию данных в распределенных системах.CBOR и Msgpack не предоставляют встроенной поддержки для эволюции данных и требуют дополнительных усилий при изменении структуры данных. Например, потребуется изменить поведение обрабатывающей логики при удалении полей из структуры сообщения, сериализованного в одном из этих форматов.</li><li>Avro и Protobuf обеспечивают поддержку обратной совместимости при изменении схем данных. Это облегчает эволюцию данных в распределенных системах.</li><li>CBOR и Msgpack не предоставляют встроенной поддержки для эволюции данных и требуют дополнительных усилий при изменении структуры данных. Например, потребуется изменить поведение обрабатывающей логики при удалении полей из структуры сообщения, сериализованного в одном из этих форматов.</li></ul><h2>Текстовые форматы</h2><p>JSON (JavaScript Object Notation) и XML (Extensible Markup Language) — два разных текстовых формата для сериализации и обмена данными. Вот ключевые различия между ними:</p><ul><li>Синтаксис:JSON использует более легкий и компактный синтаксис для представления данных — в виде пар «ключ:значение». Структура данных обычно более краткая и простая.XML использует размеченный синтаксис с использованием открывающих и закрывающих тегов, что делает его более развернутым и многословным.</li><li>JSON использует более легкий и компактный синтаксис для представления данных — в виде пар «ключ:значение». Структура данных обычно более краткая и простая.</li><li>XML использует размеченный синтаксис с использованием открывающих и закрывающих тегов, что делает его более развернутым и многословным.</li><li>Удобочитаемость:JSON-документы человек может легко читать и понимать благодаря простому синтаксису.XML также человекочитаем, но его сложнее интерпретировать из-за многочисленных тегов и атрибутов.</li><li>JSON-документы человек может легко читать и понимать благодаря простому синтаксису.</li><li>XML также человекочитаем, но его сложнее интерпретировать из-за многочисленных тегов и атрибутов.</li><li>Размер данных:JSON-документы обычно имеют меньший размер по сравнению с XML благодаря компактному синтаксису.XML-документы обычно более объемные и занимают больше места.</li><li>JSON-документы обычно имеют меньший размер по сравнению с XML благодаря компактному синтаксису.</li><li>XML-документы обычно более объемные и занимают больше места.</li><li>Поддержка данных:JSON поддерживает ограниченное количество данных-типов, включая строки, числа, булевы значения, массивы и объекты.XML позволяет создавать собственные структуры данных с использованием DTD или XSD и может представлять более сложные структуры.</li><li>JSON поддерживает ограниченное количество данных-типов, включая строки, числа, булевы значения, массивы и объекты.</li><li>XML позволяет создавать собственные структуры данных с использованием DTD или XSD и может представлять более сложные структуры.</li><li>Валидация:JSON обычно не имеет встроенной системы валидации, поэтому она может потребовать дополнительных инструментов.XML поддерживает валидацию данных с использованием DTD или XSD.</li><li>JSON обычно не имеет встроенной системы валидации, поэтому она может потребовать дополнительных инструментов.</li><li>XML поддерживает валидацию данных с использованием DTD или XSD.</li></ul><h2>Бенчмарки: сравниваем форматы сериализации между собой</h2><p>Для этой статьи мы выбрали самые известные форматы: Avro, Protobuf, Msgpack, XML, CBOR и несколько известных библиотек для работы с JSON</p><p>Тестирование проводилось на ПК с такими характеристиками: Apple M1 Pro 3.2 GHz 10 cores (8 performance and 2 efficiency), 32 GB LPDDR5, APPLE SSD AP0512R.</p><p>Всего проводились замеры данных трех разных объемов:</p><ul><li>1 строка</li><li>100 строк</li><li>100 000 строк</li></ul><p>Использовались только целочисленные, только строковые и смешанные (строки+числа) данные. Все поля nullable с разной степенью заполненности. Размер сериализованных данных измерялся только для 100 000 строк, поскольку на 1 или 100 строках результат мог бы получиться недостаточно репрезентативным.</p><p>Ниже на отдельных диаграммах показаны время сериализации и десериализации и объем полученных данных для каждого формата.</p><p>Исходники можно увидеть <a href="https://github.com/Jimiliani/go-serialization-benchmarks/tree/main">здесь</a>.</p><h2>1 строка</h2><p>Целые числа</p><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/289abc6f-34e5-4940-9f2e-e86cdcd0e8d4.png" alt="" /><figcaption>Диаграмма</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/b1418eda-a1b4-400a-aa0b-761dacfb7d73.png" alt="" /><figcaption>Диаграмма</figcaption></figure><p>Строковые данные</p><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/58cae728-56dc-4a0e-b506-5d9136fd0dc5.png" alt="" /><figcaption>Диаграмма</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/6612c8e2-012d-466f-8743-3b4353f79ced.png" alt="" /><figcaption>Диаграмма</figcaption></figure><p>Смешанные данные</p><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/b17d7dcc-cba5-4828-8e39-693b3fa74486.png" alt="" /><figcaption>Диаграмма</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/85f36e11-6dd6-4668-92c7-74fe20190b4c.png" alt="" /><figcaption>Диаграмма</figcaption></figure><h2>100 строк</h2><p>Целые числа</p><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/3b4c8048-dd47-4fcb-a8fe-455a46800150.png" alt="" /><figcaption>Диаграмма</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/76b84452-d28f-48d5-86e7-87a09d9437f5.png" alt="" /><figcaption>Диаграмма</figcaption></figure><p>Строковые данные</p><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/f95b3273-5543-4e09-9bfa-219af08947c0.png" alt="" /><figcaption>Диаграмма</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/89c49554-0603-405e-b35a-abb9dfd0b6cf.png" alt="" /><figcaption>Диаграмма</figcaption></figure><p>Смешанные данные</p><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/046f792c-a002-4f9a-a4c9-d5c477a603ca.png" alt="" /><figcaption>Диаграмма</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/ba278c81-a01d-419f-884a-6cafb7e81296.png" alt="" /><figcaption>Диаграмма</figcaption></figure><h2>100 000 строк</h2><p>Целые числа</p><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/4d4c38c2-d041-4bbb-876c-f24c3e7c1da6.png" alt="" /><figcaption>Диаграмма</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/49cfc662-65c0-4522-9d06-e88c28972d83.png" alt="" /><figcaption>Диаграмма</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/ed282660-4536-4bcf-ac90-c1525f118bd0.png" alt="" /><figcaption>Диаграмма</figcaption></figure><p>Строковые данные</p><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/8e56d5d9-8e40-479a-9eb6-0523e365e869.png" alt="" /><figcaption>Диаграмма</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/882ac883-675a-4476-9b9c-578f3288a3d6.png" alt="" /><figcaption>Диаграмма</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/3aa674f1-58b0-4f32-bfdf-7ed026e7b946.png" alt="" /><figcaption>Диаграмма</figcaption></figure><p>Смешанные данные</p><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/9aae4838-dfe5-4a6e-8bd3-f3376297cd32.png" alt="" /><figcaption>Диаграмма</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/e9ff18b4-ca01-45c2-92b2-7d9ac6ec706d.png" alt="" /><figcaption>Диаграмма</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/109956/2024-12-19/6261ce1b-6b89-4253-a10a-6c9d9956546c.png" alt="" /><figcaption>Диаграмма</figcaption></figure><h2>Плюсы и минусы каждого формата</h2><p>Помните, что результаты могут отличаться на вашем устройстве от тех, что я привел в статье. Если говорить о преимуществах и недостатках каждого формата, вот, что я бы выделил:</p><h2>Json</h2><p>+ в golang довольно шустро работает по сравнению с бинарными форматами сериализации, особенно это заметно на больших объемах текстовых данных;</p><p>+ человекочитаемый формат данных;</p><p>- поддержка эволюции схемы данных ложится на разработчика, поскольку для этого формата сериализации схема отсутствует;</p><p>- система типов не поддерживает из коробки decimal, datetime, enum и прочие полезные типы, имеющиеся в других форматах сериализации (например, <a href="https://protobuf.dev/programming-guides/proto3/#enum">enum в protobuf</a>);</p><p>- размер сериализованных данных значительно больше, чем в любом бинарном формате;</p><h2>XML</h2><p>+ человекочитаемый формат;</p><p>+ XSD (xml schema) позволяет парсеру не только проверить правильность синтаксиса документа, но также и его структуру, типы данных и модель содержания;</p><p>- поддержка эволюции схемы данных ложится на разработчика, поскольку для этого формата сериализации схема отсутствует;</p><p>- xml использует явные открывающие и закрывающие теги, а так же атрибуты, что добавляет дополнительные символы, в связи с этим сообщения получаются довольно многословными (исторические причины, по которым xml выглядит именно так, кратко описаны <a href="https://stackoverflow.com/a/116235">здесь</a>);</p><p>- из-за дополнительных тегов и атрибутов также увеличивается время, требуемое на сериализацию и десериализацию, и значительно вырастает размер сериализованных данных;</p><h2>Cbor</h2><p>+ быстрая (де)сериализация и маленький объем сериализованных данных в сравнении с текстовыми форматами сериализации;</p><p>- поддержка эволюции схемы данных ложится на разработчика, поскольку для этого формата сериализации схема отсутствует;</p><p>- не человекочитаемый формат;</p><h2>Msgpack</h2><p>+ быстрая (де)сериализация и маленький объем сериализованных данных в сравнении с текстовыми форматами сериализации;</p><p>- поддержка эволюции схемы данных ложится на разработчика, поскольку для этого формата сериализации схема отсутствует;</p><p>- не человекочитаемый формат;</p><h2>Avro</h2><p>+ есть поддержка как бинарного, так и в текстового форматов, что может быть полезно, например при работе в тестовой среде;</p><p>+ схема данных описывается в json-формате, за счет полей в схеме достигается backward и forward compatibility;</p><p>- avro во время сериализации проводит анализ схемы, чтобы впоследствии определить каким образом обрабатывать то или иное поле, это оказывает негативный эффект на время сериализации;</p><h2>Protobuf</h2><p>+ быстрая (де)сериализация и маленький объем сериализованных данных в сравнении с текстовыми форматами сериализации;</p><p>+ схема данных описывается в .proto файлах, на основе которых генерируются объекты в необходимом вам языке. С помощью описанных в схеме полей достигается backward и forward compatibility (с oneof есть <a href="https://yokota.blog/2021/08/26/understanding-protobuf-compatibility/">нюансы</a>);</p><p>- не человекочитаемый формат;</p><p>Выбор формата сериализации зависит от конкретных требований проекта. Например, если важна человекочитаемость данных и легкая отладка, то JSON может быть предпочтителен благодаря своей простоте и широкой поддержке во многих языках программирования.</p><p>С другой стороны, если производительность играет решающую роль и необходимо передавать большие объемы данных, то бинарные форматы, такие как Protobuf или MessagePack, могут быть более эффективными. Но важно помнить, что каждый случай — частный и выбор формата сериализации зависит от конкретных потребностей проекта, учитывая требования к производительности, размеру данных, удобству отладки и поддержке в используемых технологиях.</p><p>Предыдущая статья: <a href="https://habr.com/ru/companies/avito/articles/783534/">Повышение качества данных с использованием Zero Bug Policy</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Генерация данных с помощью Python: зачем это нужно и как применять</title>
      <link>https://tproger.ru/articles/generaciya-dannyh-s-pomoshhyu-python--zachem-eto-nuzhno-i-kak-primenyat</link>
      <comments>https://tproger.ru/articles/generaciya-dannyh-s-pomoshhyu-python--zachem-eto-nuzhno-i-kak-primenyat?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/generaciya-dannyh-s-pomoshhyu-python--zachem-eto-nuzhno-i-kak-primenyat</guid>
      <description><![CDATA[<p>Генерация данных с помощью Python. Зачем это нужно и как применять. Рассматриваем основные библиотеки и примеры ✔ Tproger</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/generaciya-dannyh-s-pomoshhyu-python--zachem-eto-nuzhno-i-kak-primenyat">Генерация данных с помощью Python: зачем это нужно и как применять</a>»</p>]]></description>
      <category><![CDATA[Big Data]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 27 Nov 2024 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Генераторы — эффективный инструмент в Python, который позволяет создавать и определенным образом обрабатывать последовательности данных. Это один из ключевых элементов в экосистеме Python, предназначенный для работы с данными в более продуктивном режиме. Тем, кто только начинает осваивать программирование на Питоне, важно понять ценность генераторов и научиться обращению с этим инструментом для решения практических задач.</p><p>Опытные программисты говорят, что генераторы — это способ избавить оперативную память от избыточного потока информации и тем самым сэкономить ресурсы. Это сугубо прикладное решение, которое помогает разработчикам делать больше, тратя при этом меньше программных средств. Однако важно правильно пользоваться генераторами и знать о возможностях их практического применения.</p><p>Узнаем, что собой представляет генерация данных в Python, как используется этот инструмент и какие библиотеки применяются для работы с генераторами.</p><h2>Основные области применения генерации данных</h2><p>В языке Python генераторы — это специальные функции, предназначенные для создания итераторов, то есть объектов, которые используются для перебора некоторых последовательностей значений. В отличие от стандартных функций, генераторы могут «приостанавливать» работу с сохранением текущего состояния и при следующем вызове продолжать выполнение команды с того же места.</p><p>Такая функция нужна, чтобы обрабатывать огромные объемы информации, при этом не загружая все данные в память. Генераторы существенно экономят ресурсы компьютера и делают работу с данными более эффективной и быстрой.</p><p>Ключевое отличие генераторов от стандартных итерируемых объектов в использовании команды yield вместо return. Таким образом, функция с yield автоматически становится генератором. Когда разработчик вызывает такую функцию, она выполняется не в полном объеме, а возвращает объект каждый раз по мере новой генерации данных.</p><p>Понять работу генераторов проще на примерах. Если у вас есть файл, который весит десятки гигабайт, и в нем нужно найти и обработать строки, подходящие под определенное условие, или сравнить с данными другого большого файла, то генератор будет наиболее эффективным способом выполнить задачу.</p><p>Или другой пример. Нужно проанализировать почти бесконечный поток данных (показания счетчиков, котировки на бирже, сетевой трафик), рассчитать наступление вероятности конкретного события и вычислить математическую последовательность. Загрузить в компьютер такой объем данных нереально — для них просто не хватит оперативной памяти, а иногда и жесткого диска. Наиболее целесообразное решение в такой ситуации — обрабатывать данные частями, чтобы не перегружать процессор. Как раз для этого используются генераторы Python.</p><h3>Где применяется генерация данных</h3><ul><li><b>Тестирование программного обеспечения.</b> Сложные программные продукты нуждаются в проверке перед запуском. Генерация тестовых данных используется для проверки функциональности программ.</li><li><b>Машинное обучение.</b> С помощью генерации синтетических данных выполняется обучение моделей и нейросетей.</li><li><b>Анализ и визуализация данных.</b> Посредством генераторов Python в ускоренном режиме подготавливаются данные для презентаций и демонстраций.</li><li><b>Прототипирование. </b>Генерация данных Python используется для первичной отладки макетов и черновых версих программных продуктов.</li></ul><p>Генераторы — это инструменты, которые позволяют функциям возвращать последовательность полученных результатов вместо единственного значения. Такой способ идеален для создания итераторов.</p><h3>Основные плюсы генераторов</h3><ul><li><b>Существенная экономия памяти.</b> Данные загружаются по мере необходимости, а не сплошным потоком, что позволяет без излишних затрат времени и оперативных ресурсов обрабатывать значительные объемы информации.</li><li><b>Ленивая загрузка. </b>Инструменты поддерживают ленивую загрузку, то есть генерируют значения исключительно при запросе, что на порядок ускоряет выполнение программ.</li><li><b>Удобство.</b> С помощью генераторов создают последовательности данных, используя минимальное количество строк кода, что делает их максимально удобными для практического применения.</li><li><b>Управление потоком.</b> Благодаря генераторам достигается максимальный контроль при исполнении программы, при этом сохраняется состояние функции, а управление передается коду. При следующем вызове программа исполняется с места, на котором она была приостановлена.</li></ul><p>Для понимания работы генераторов важно усвоить концепцию ленивой загрузки. Она означает, что значения вычисляются и генерируются исключительно в тот момент, когда они нужны, а не загружаются предварительно целиком. Эта опция актуальна при работе с большими данными — она оптимизирует ресурсы и ускоряет процесс вычислений.</p><p>Вот один из примеров ленивой загрузки:</p><p>Здесь значения в диапазоне от 0 до 4 вычисляются и выводятся на экран в порядке очереди, но при этом в памяти компьютера не сохраняются. Значение генерируется только в момент запроса, а не автоматически. Такой алгоритм позволяет работать с огромными объемами данных, которые не загружаются целиком в память устройства.</p><p>Ленивые вычисления особенно ценны при работе с потенциально бесконечными последовательностями — числами Фибоначчи, потоками данных и другими. Если бы генераторов данных в Python не было, такие программы могли бы просто исчерпать память, после чего выполнение задачи было бы невозможно.</p><h2>Библиотеки Python для генерации данных</h2><p>Использование специальных библиотек, то есть файлов с готовыми шаблонами кода, существенно упрощает работу программистов. Такие пакеты создают, чтобы разработчики не набирали каждый раз заново с нуля одинаковый код. Достаточно выбрать нужный файл из конкретной библиотеки, открыть его, ввести свои значения и почти мгновенно получить результат.</p><p>Рассмотрим самые популярные библиотеки Python для генерации данных.</p><h2>Faker</h2><p>Библиотека используется для генерации фейковых текстовых данных с различной локализацией. Подходит для множества ситуаций — тестирования написанного года, заполнения баз данных, в том числе обширных, анонимизации данных.</p><p>Библиотеку Faker используют, когда требуется проверить функциональность приложения. Если это софт для работы с обширными базами данных пользователей, его нужно протестировать на практике. Но вводить реальную информацию в программу некорректно и небезопасно.</p><p>Поэтому разработчики пользуются «Фейкером». Эта библиотека генерирует в нужном количестве данные несуществующих пользователей — их имена и фамилии, даты рождения, номера телефонов, адреса и другую информацию. Синтетические данные создаются случайным образом каждый раз, когда пользователь запускает атрибут.</p><p>Faker поддерживается на Python в версии 3.7 и выше. Список данных, которые может сгенерировать программа, довольно велик, при этом каждый пункт имеет подпункты для дополнительных настроек. То есть фейковая информация, создаваемая этим инструментом, будет довольно детальная.</p><h2>NumPy и SciPy</h2><p>Это библиотеки для генерации числовой и статистической информации.</p><h3>NumPy</h3><p>Незаменимый инструмент для работы с числовыми значениями и сложной математикой, а также с векторами и матрицами. В библиотеке содержатся готовые способы применения различных математических операций — от расчета детерминанта и сингулярного разложения до решения квадратных уравнений. Значительно упрощает работу с многомерными массивами — в этом формате передаются данные для моделей в методах глубокого машинного обучения. По этой причине NumPy входит в базовый пул библиотек для работы с нейросетями.</p><h3>SciPy</h3><p>Библиотека основана на NumPy и существенно расширяет ее функционал. Здесь используется линейная алгебра и методы работы с распределением вероятностей, интегральными исчислениями, преобразованиями Фурье. SciPy предназначена для сложных математических вычислений, в ней огромное количество функций, которые используются для научного анализа. Библиотека расширяет функции NumPy и использует методы продвинутой математики.</p><p>В пакете программ есть функции для построения графиков и оперативной обработки изображений. При этом используются сложные и трудоемкие операции, которые довольно просто описываются в виде кода. SciPy можно использовать для обработки различных сигналов, в том числе фото и видео.</p><h2>Pandas</h2><p>Библиотека для обработки и анализирования структурированных баз данных, в том числе результатов исследований и вычислений, представленных в виде таблиц. Исходный код Pandas в открытом доступе есть на GitHub — пользователи могут самостоятельно дополнять способы обработки и делать обновления.</p><p>Pandas — эффективный инструмент для дата-сайентистов и аналитиков данных. С этой библиотекой специалисты могут группировать, обрабатывать, визуализировать массивы данных, создавать таблицы, распределять информацию по определенным признакам.</p><p>Библиотека успешно используется для маркетинговой, продуктовой, математической аналитики. Основное преимущество инструмента — возможность обработки больших данных для их дальнейшего использования в машинном обучении. «Пандас» поддерживает базовые статистические методики, используемые для работы с данными.</p><h2>Scikit-Learn</h2><p>Библиотека базируется на NumPy и SciPy, содержит алгоритмы для аналитической работы с информацией — кластеризации, распределения по классам, регрессии и других операций. Scikit-Learn используется также для машинного обучения.</p><p>По мнению экспертного сообщества, Scikit входит в число лучших библиотек для обработки огромных массивов данных. Ее используют такие сервисы, как Spotify, Evernote и другие. Генерация данных лежит в основе алгоритмов, с которыми работает этот пакет.</p><p><b>Область применения библиотеки:</b></p><ul><li><b>Рекомендательные системы.</b> Сюда относится реклама, основанная на интересах пользователя, сервисы с музыкой, кино, книгами, которые предлагают наименования специально для конкретного посетителя.</li><li><b>Распознавание текста и изображений.</b> Система переводит в цифру текстовый формат и картинки.</li><li><b>Прогнозирование.</b> Алгоритмы предсказывают действия пользователей, финансовые колебания на бирже и другие события на основе существующих данных.</li><li><b>Обработка результатов.</b> Библиотека используется для анализа результатов научных, медицинских и прочих исследований.</li></ul><p>Машинное обучение — это обширная отрасль с широкими перспективами. Scikit-Learn используется для тестирования моделей и совершенствования различных программных продуктов.</p><h2>Mimesis</h2><p>Высокопроизводительный генератор, альтернатива Faker. Обладает теми же базовыми функциями, но имеет дополнительный расширенный функционал. Библиотека используется для загрузки реалистичных фейковых данных в средах тестирования и разработки.</p><h2>Примеры использования для различных задач</h2><p>Генератор представляет собой объект, который не вычисляет значение сразу всех загруженных элементов, а действует последовательно. В его памяти хранится только последний элемент, при этом переход к следующему происходит только при выполнении метода next(). Предыдущее значение утрачивается.</p><p>Рассмотрим несколько конкретных примеров применения генерации данных на Python.</p><h3>Faker</h3><p>Начнем с библиотеки Faker. Она используется для тестирования кода, генерирования данных для тестирования программных продуктов, анонимизации.</p><p>Пример кода на Python выглядит следующим образом:</p><p>Пользователь импортирует библиотеку, объявляет генератор фейковых данных и помещает в переменную fake. Этот генератор создается с поддержкой русского языка, что указывается с помощью команды "ru_RU". На последней строчке появляется случайное ФИО.</p><h3>NumPy</h3><p>С помощью библиотеки NumPy можно задать генерацию случайных чисел. Делается это через модуль numpy.random. Код будет выглядеть следующим образом:</p><p>Такой код создает массивы из случайных данных.</p><h3>Scikit-learn</h3><p>Библиотека Scikit-learn генерирует достаточный объем данных для тестирования различных моделей с целью их обучения.</p><p>Например, функция sklearn.datasets.load_moscow () содержит условные данные о ценах на недвижимость в Москве. Матрица содержит 506 наблюдений и 13 столбцов.</p><p>Такой набор используется для многовариантной регрессии.</p><h2>Советы по эффективному применению генерации данных</h2><p>Генераторы в Питоне — не просто теоретические конструкции, но действенный инструмент для практического использования в реальных сценариях.</p><p>Функции и библиотеки для генерации используют для обработки огромных массивов информации. Например, если необходимо проверить объемный файл в формате CSV, можно применить генератор для его построчного чтения и последующей обработки. При этом загрузка файла в память не понадобится.</p><p>Применение генераторов будет полезно для <b>видео-скрапинга</b> — извлечения данных из веб-страниц и их анализа. Инструмент будет извлекать HTML-страницы поочередно, отбирая необходимые данные и отбрасывая ненужные. Такой способ позволяет работать с большими ресурсами без сбоев в системе, зависаний и остановок.</p><p>Генераторы незаменимы <b>в сетевом программировании</b>, например, когда требуется принять или отправить огромный поток данных. При взаимодействии с протоколами HTTP и другими можно запустить генератор, который будет получать данные из сети порционно и поэтапно с ними работать. Таким способом можно обойтись без буферизации памяти.</p><p>Актуально использование генераторов <b>в разработке игры</b>. С их помощью разрабатывается процедурный контент — например, ландшафты игрового мира, уровни или встречи с препятствиями. Генерируя контент в динамическом режиме по мере надобности, инструменты создают условно бесконечные либо случайные игровые элементы, тем самым обеспечивая полноценный геймплей.</p><p>Опытные разработчики советуют тщательно тестировать и отлаживать генераторы. Эти функции могут быть сложными для понимания в сравнении с обычным, поэтому важно уделять максимум вниманию проверке корректной работы инструментов. Рекомендуется применять тесты для проверки работы генераторов и понимания особенностей потока данных. Это поможет исправить возникающие проблемы.</p>]]></content:encoded>
    </item>
    <item>
      <title>Python и SQL: что изучать в первую очередь для анализа данных</title>
      <link>https://tproger.ru/articles/python-i-sql--chto-izuchat-v-pervuyu-ochered-dlya-analiza-dannyh-</link>
      <comments>https://tproger.ru/articles/python-i-sql--chto-izuchat-v-pervuyu-ochered-dlya-analiza-dannyh-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Ксения Андреева]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/python-i-sql--chto-izuchat-v-pervuyu-ochered-dlya-analiza-dannyh-</guid>
      <description><![CDATA[<p>Python и SQL — самые популярные инструменты для работы с данными. Но какой из них изучать первым? Разбираемся в статье.  </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/python-i-sql--chto-izuchat-v-pervuyu-ochered-dlya-analiza-dannyh-">Python и SQL: что изучать в первую очередь для анализа данных</a>»</p>]]></description>
      <category><![CDATA[Big Data]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Data Science]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 22 Nov 2024 09:10:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Два самых популярных инструмента для работы с данными — Python и SQL. Они хороши для обработки, анализа данных и для их визуализации и интерпретации. У новичков часто возникает вопрос: начать изучение с Python или SQL? В этой статье расскажем о каждом языке и как они взаимно дополняют друг друга.</p><h2>Коротко про Python</h2><p>Python — это язык программирования, известный своей простотой и читаемостью кода. Он популярен благодаря мощным библиотекам (Pandas, NumPy и Matplotlib), которые помогают эффективно обрабатывать данные, выполнять сложные вычисления и визуализировать результаты. Ещё Python используется для машинного обучения — с помощью библиотек Scikit-learn и TensorFlow.</p><h2>Коротко про SQL</h2><p>SQL— стандартный язык управления базами данных. Он используется для извлечения данных из баз данных по типу MySQL, PostgreSQL или SQLite. Знание SQL необходимо для работы с большими объёмами уже структурированных данных — от простых до сложных запросов.</p><h2>Как эти инструменты дополняют друг друга</h2><p>Python и SQL часто используются совместно в анализе данных. SQL применяется на начальном этапе работы для извлечения нужных датасетов из баз данных. Так специалисты получают доступ к необходимым данным без необходимости выгрузки больших массивов информации вручную.</p><p>Как только данные извлечены с помощью SQL, на помощь приходит Python. С его помощью можно легко преобразовать «сырые» данные в удобный формат для более глубокого анализа. Библиотеки помогают буквально очистить данные от шумов и пропущенных значений, проводить детальный анализ с использованием статистических методов или алгоритмов ML.</p><h2>Почему Python стал стандартом для анализа данных</h2><ul><li><b>Простота и хорошая читаемость. </b>Python интуитивно понятен и лёгок в освоении, потому подходит для начинающих аналитиков данных.</li><li><b>Самые разные библиотеки. </b>NumPy, Pandas и Matplotlib позволяют проводить сложные вычисления и визуализацию данных практически без усилий.</li><li><b>Сообщество и поддержка. </b>Большое сообщество разработчиков поддерживает и развивает язык. А значит, существует много ресурсов для обучения, форумов поддержки и готовых решений для рядовых задач анализа данных.</li><li><b>Универсальность. </b>Python используется не только для анализа данных, но и в веб-разработке, научных исследованиях, ML и многом другом. Потому этот язык — универсальный инструмент для решения самых разных задач.</li></ul><p><a href="https://numpy.org/">NumPy</a> — библиотека для работы с многомерными массивами чисел, матрицами и выполнения высокоуровневых математических функций. Основной объект NumPy — это массив (numpy array). Библиотека позволяет выполнять операции над массивами целиком без использования циклов for, а это ускоряет работу.</p><p><a href="https://pandas.pydata.org/">Pandas</a> даёт возможность работать с высокоуровневыми структурами (Series и DataFrame)  для удобного хранения и работы. DataFrame — двумерная таблица с метками строк и столбцов, похожая на таблицы SQL или Excel. В Pandas легко фильтровать данные и группировать их по выбранным критериям.</p><p><a href="https://matplotlib.org/">Matplotlib</a> — это основная библиотека для создания статических визуализаций. В библиотеке можно работать над визуализацией данных от простых линейных графиков до сложных диаграмм. Matplotlib легко интегрировать с другими инструментами Python (та же Pandas), а значит, можно создавать графики на основе уже обработанных данных.</p><h2>SQL в управлении и извлечении данных из баз</h2><p>Одной из ключевых фишек SQL является возможность извлечения нужных наборов данных на основании заданных критериев — особенно важно для аналитиков, которым нужно «вытащить» информацию из больших массивов данных. А ещё с помощью SQL можно проводить агрегации, сортировки и фильтрации. Так легко подготовить данные для дальнейшего анализа и/или визуализации.</p><p><b>В SQL много команд для работы с данными:</b></p><ul><li>SELECT используется для выборки данных из одной или нескольких таблиц с указанием конкретных столбцов и условий;</li><li>WHERE для указания условий фильтрации записей в тандеме с SELECT. С помощью WHERE можно ограничивать результаты запроса только теми данными, которые соответствуют заданным критериям.</li><li>JOIN используется для объединения строк из двух или более таблиц на основе логической связи. С помощью JOIN можно комбинировать данные из разных источников в одном запросе;</li><li>GROUP BY применяется для группировки строк по указанным столбцам. Поможет при подсчёте среднего значения или суммы;</li><li>ORDER BY помогает сортировать результаты запроса по одному или нескольким столбцам как в возрастающем (ASC), так и убывающем (DESC) порядке.</li></ul><h2>Что изучать первым?</h2><p>Оба языка имеют свои особенности и применяются для самых разных задач в работе с данными. В первую очередь нужно понять, какой из языков изучать первым. И это зависит от ваших задач и целей.</p><p><b>При выборе между Python и SQL стоит учитывать:</b></p><ul><li><b>Цели.</b> Если ваша цель — научиться строить модели для ML или проводить глубокий анализ данных с визуализацией, лучше начать именно с Python. Если же ваша цель — извлечение и обработка больших объёмов данных из баз данных, разумнее будет начать с SQL.</li><li><b>Структуру данных.</b> Если вы планируете работать преимущественно таблицами, то на первых порах лучше уйти в освоение SQL.</li><li><b>Глубину анализа. </b>Для более сложных аналитических задач, требующих написания алгоритмов или автоматизации процессов обработки данных, подойдёт Python благодаря большому количество библиотек, доступных для работы.</li></ul><p><b>Если вы решили начать с Python:</b></p><ol><li>Изучите основы языка — переменные, условные операторы, циклы и функции;</li><li>Узнайте больше о ключевых библиотеках для анализа данных — Pandas (для работы с таблицами), NumPy (для числовых операций) и Matplotlib (для визуализации);</li><li>Пробуйте реализовать простые проекты и задачи по анализу реальных данных для закрепления теории: это могут быть и простые задачи по анализу продаж, и проекты по аналитике данных покупателей. Главное здесь — это пробовать и закреплять теорию на практике!</li></ol><p><b>Если вы решили начать с SQL:</b></p><ol><li>Освойте основные команды SELECT, INSERT, UPDATE и DELETE;</li><li>Научитесь использовать WHERE для фильтрации результатов запросов и ORDER BY для их сортировки;</li><li>Изучите функции COUNT(), SUM(), AVG() и другие функции для создания сводки информации;</li><li>Изучите основы JOIN-операций для объединения нескольких таблиц на основе общих полей.</li></ol><h2>Python + SQL</h2><p>Совместное использование Python и SQL — по-настоящему сильный инструмент для аналитики, который позволяет объединить возможности программирования и работы с базами данных.</p><p>SQL идеально подходит для извлечения данных из таблиц, а Python хорош своей гибкостью в обработке и анализе полученных с помощью SQL данных. Ещё Python используют для написания скриптов, которые выполняют SQL-запросы к базе данных. Так можно легко автоматизировать процесс извлечения данных и дальнейшей обработки их в Python.</p><p>Используйте библиотеку Pandas для взаимодействия с базами данных через системы по типу <a href="https://www.sqlalchemy.org/">SQLAlchemy</a> и другими ORM. SQLAlchemy — популярная библиотека, которая даёт пользователям набор высокоуровневых интерфейсов для работы с базами данных в Python. Она поддерживает разные системы управления баз данными и помогает взаимодействовать с ними более эффективно.</p><h4>Разбор кейса использования Python и SQL для решения реальной задачи аналитики</h4><p>Дано: компания занимается e-commerce и стремится улучшить свою маркетинговую стратегию на основе анализа покупательских данных. Цель: определение сегментов пользователей, которые приносят наибольший доход, и выявление факторов, влияющих на их поведение.</p><p><b>Шаг 1 — сбор данных</b></p><p>Здесь используем SQL для извлечения данных из базы компании. Например, таблицы с информацией о клиентах и их транзакциях могут выглядеть так:</p><p>Здесь мы объединяем таблицы customers и transactions, получая полную информацию о каждой покупке.</p><p><b>Шаг 2 — анализ данных</b></p><p>После извлечения данных с помощью SQL, используем Python для их анализа. Здесь пригодятся библиотеки Pandas и Matplotlib для обработки и визуализации информации:</p><p>Загрузка данных из SQL-запроса в DataFrame Pandas:</p><p>Группировка по пользователям и расчёт общего дохода:</p><p>Визуализация распределения дохода по пользователям:</p><p>Здесь мы видим распределение доходов по пользователям и определяем ключевые сегменты клиентов.</p><p><b>Шаг 3 — прогнозирование и стратегия</b></p><p>Используя библиотеки Python для машинного обучения (например, Scikit-learn), можно создать модель прогнозирования вероятности дополнительных покупок или ухода клиента:</p><p>Подготовка данных для модели — признаки и целевая переменная:</p><p>Разделение на обучающую и тестовую выборки:</p><p>Обучение модели классификации:</p><p>Оценка точности модели на тестовых данных:</p><p>Так мы можем определить вероятных «ушедших» клиентов, равно как и тех, кто может совершить повторную покупку.</p><h2>Ресурсы для обучения</h2><p>Сейчас на рынке онлайн-обучения доступно великое множество онлайн-курсов, книг и других материалов, способных помочь как начинающим, так и опытным специалистам.</p><p><b>Онлайн-курсы:</b></p><ol><li><b>Coursera</b> — например, курс «Python for Everybody» от университета Мичигана поможет изучить основы программирования на Python с акцентом на работу с данными;</li><li>В <b>edX</b> можно найти курсы по SQL от университетов Гарвард или MIT. Курс «Introduction to SQL» поможет освоить базовые принципы работы с базами данных;</li><li><b>DataCamp</b> специализируется на обучении работе с данными и предлагает интерактивные курсы по Python и SQL.</li></ol><p><b>Книги:</b></p><ol><li><a href="https://www.ozon.ru/product/python-for-data-analysis-python-dlya-analiza-dannyh-na-angl-yaz-214809222/">«Python для анализа данных» Уэса МакКинни</a> подходит для тех, кто хочет освоить Python именно в контексте анализа данных;</li><li><a href="https://www.ozon.ru/product/sql-dlya-chaynikov-9-e-izdanie-teylor-allen-dzh-627957958/">9-ое издание «SQL для чайников» Аллена Тейлора</a> — простое введение в мир SQL поможет новичкам быстро понять основы работы с базами данных;</li><li><a href="https://www.ozon.ru/category/mark-lutts-izuchaem-python/">«Изучаем Python» Марка Лутца</a> — одно из самых популярных пособий для начинающих.</li></ol><p><b>Ещё материалы:</b></p><ol><li><b>YouTube-каналы.</b> Например, на канале <a href="https://www.youtube.com/channel/UCCezIgC97PvUuR4_gbFUs5g">Corey Schafer</a> есть много полезных и практических видео по Python;</li><li><a href="https://ru.stackoverflow.com/">Stack Overflow</a> — хорошая площадка для поиска ответов на специфические вопросы по программированию;</li><li><b>Изучение официальной документации к языкам и библиотекам</b> (например, юзер гайд по <a href="https://pandas.pydata.org/docs/user_guide/index.html">Pandas</a> или алфавитный список вопрос по <a href="https://www.sqlite.org/doclist.html">SQLite</a>) поможет расширить знания.</li></ol><h2>В заключение</h2><p>В современном мире аналитики данных владение и Python, и SQL одинаково важны и нужны для обработки и визуализации информации. Python поможет проанализировать большие объёмы неструктурированных данных с помощью библиотек по типу Pandas и NumPy, а SQL поможет извлечь информацию из таблиц.</p><p>Работая одновременно с Python и SQL, можно не только эффективно обрабатывать данные из разных источников, но и извлекать из них полезные выводы для принятия решений на основе сухих фактов: сколько заказов было сделано, сколько отменено, как ведут себя пользователи.</p><p>Начав изучение с одного языка и постепенно переходя к другому, вы только укрепите свои позиции как аналитик данных и сможете лучше и эффективнее работать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Рекомендательные системы и реализация Content-based системы</title>
      <link>https://tproger.ru/articles/rekomendatelnye-sistemy-i-realizaciya-content-based-sistemy</link>
      <comments>https://tproger.ru/articles/rekomendatelnye-sistemy-i-realizaciya-content-based-sistemy?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алина Т]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/rekomendatelnye-sistemy-i-realizaciya-content-based-sistemy</guid>
      <description><![CDATA[<p>Введение в рекомендательные системы: идеи, типы, метрики, преимущества и недостатки. Реализация content based системы для аниме</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/rekomendatelnye-sistemy-i-realizaciya-content-based-sistemy">Рекомендательные системы и реализация Content-based системы</a>»</p>]]></description>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Рекомендательные системы]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 23 Sep 2024 14:30:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Небольшое введение в рекомендательные системы: основные идеи, типы, метрики и как они работают.</p><p>Данную статью я условно разделю на 3 части: общая теория по рекомендательным системам, работа с данными, для которых будем строить систему и реализация системы.</p><h2>Теория (самый страшный зверь)</h2><p><b>Рекомендательная система</b> — это система, которая пытается предсказать или отфильтровать предпочтения в соответствии с выбором пользователя. Рекомендательные системы используются в различных областях, включая фильмы, музыку, новости, книги, исследовательские статьи, поисковые запросы, социальные теги и продукты в целом.</p><h3>Метрика</h3><p>Чаще всего для оценки расстояния используют косинусное сходство (Cosine Similarity).</p><p>Представление данных в форме вектора имеет ещё одно полезное свойство. Мы можем измерить близость двух векторов или угол между ними. Чем угол меньше, тем они ближе.</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/988719a6-3e3f-4e91-a5ee-21543c1e8113.png" alt="" /><figcaption>Косинусное расстояние</figcaption></figure><h4>TF-IDF</h4><p>– применяется для анализа значимости слова в документе, который является частью большой коллекции документов либо корпуса. С помощью этой статической меры можем составить вектор, с которыми работают рекомендательные системы.</p><p>TF — это частота слова в тексте – количество раз, когда слово появляется в документе, деленное на общее количество слов в документе (каждый документ имеет свою частоту терминов). Обратная частота данных IDF — это логарифм обратной частоты распространенности слова в корпусе. Распространенностью называется отношение числа текстов, в которых встретилось искомое слово, к общему числу текстов в корпусе.</p><p>Обратная частота данных определяет вес редких слов во всех документах корпуса.</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/f9c5ac07-bef8-4610-b039-30b9628e3243.png" alt="" /><figcaption>Визуализация работы TF-IDF</figcaption></figure><p>Scikit-Learn предоставляет преобразователь под названием TfidfVectorizer в модуле feature_extraction.text для векторизации с оценками TF-IDF.</p><h3>Проблемы</h3><ul><li>Холодный запуск</li></ul><p>Эта проблема возникает, когда в систему добавляются новые пользователи или новые элементы, новый элемент не может быть рекомендован пользователям изначально, когда он вводится в систему рекомендаций без какой-либо оценки или обзоров, и, следовательно, трудно предсказать выбор или интерес пользователя.</p><ul><li>Разреженность</li></ul><p>Это происходит много раз, когда большинство пользователей не дают оценок или отзывов о товарах, которые они приобрели, и, следовательно, модель оценки становится очень разреженной, что может привести к проблемам разреженности данных, это уменьшает возможности найти набор пользователей с похожими оценками или интерес.</p><ul><li>Конфиденциальность</li></ul><p>Как правило, человеку необходимо передать свою личную информацию в систему рекомендаций для получения более полезных услуг, но это вызывает проблемы с конфиденциальностью и безопасностью данных, многие пользователи не решаются передавать свои личные данные в системы рекомендаций. которые страдают от проблем с конфиденциальностью данных.</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/285ccfed-6750-432c-a50e-049b235cd8db.png" alt="" /><figcaption>Проблемы рекомендательных систем</figcaption></figure><h2>Типы рекомендательных систем</h2><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/6369bbb2-e2c3-40c3-aeb0-23a6ee9e9f3b.png" alt="" /><figcaption>Типы рекомендательных систем</figcaption></figure><h3>Popularity-based</h3><p>Наиболее простая система выдает рекомендации на основе популярности (popularity-based recommender systems). Чем выше средний рейтинг фильма, купленного товара или статьи, тем вероятнее, что система будет рекомендовать именно их.</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/26dda6af-41ad-48e9-b476-a479ee73d288.png" alt="" /><figcaption>Сводка по popularity-based системам</figcaption></figure><h3>Сontent-based filtering</h3><p>Вторым типом рекомендательных систем является, так называемая, фильтрация на основе содержания (content-based filtering). В данном случае алгоритм рекомендует товары или услуги, схожие с теми, которые пользователь приобретал ранее. Например, если вы посмотрели фильм «Матрица» с Киану Ривзом, то в дальнейшем система будет рекомендовать вам научную фантастику, а также другие фильмы с участием этого актера.</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/b7e0f036-2076-430d-8c31-894e1325f6e6.png" alt="" /><figcaption>Сводка по content-based системам</figcaption></figure><h3>Collaborative filtering</h3><p>Третий тип — коллаборативная система (collaborative filtering). Она основывается на сопоставлении пользователей и товаров (или услуг, новостей и т.д.). Математически и графически в данном случае мы работаем с матрицами предпочтений (user-item matrix).</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/cd0d48e9-660c-4226-98b3-b9576c749915.png" alt="" /><figcaption>Сводка по collaborative системам</figcaption></figure><p>Основная предпосылка таких систем заключается в том, что предыдущих данных пользователей должно быть достаточно для создания прогноза. То есть нам не нужно ничего, кроме исторических данных, пользовательского ввода, текущих трендовых данных и так далее. Он считается одной из очень умных рекомендательных систем, которые работают на сходстве между разными пользователями, а также на товары, которые широко используются в качестве веб-сайтов электронной коммерции, а также веб-сайтов онлайн-фильмов. Он проверяет вкус похожих пользователей и дает рекомендации.</p><p>Сходство не ограничивается вкусом пользователя, более того, может учитываться сходство между различными предметами. Система будет давать более эффективные рекомендации, если у нас будет большой объем информации о пользователях и товарах.</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/8eeff0c6-e41d-4ea6-b1bc-d24dec21501f.png" alt="" /><figcaption>Отличие collaborative  фильтрации от content-based</figcaption></figure><p>Что такое User-item matrix?</p><p>Матрица полезности показывает предпочтения пользователя в отношении определенных элементов. В данных, полученных от пользователя, мы должны найти некоторую связь между элементами, которые нравятся пользователю, и теми, которые ему не нравятся, для этого мы используем матрицу полезности. В нем мы присваиваем определенное значение каждой паре пользователь-элемент, это значение известно как степень предпочтения. Затем мы рисуем матрицу пользователя с соответствующими элементами, чтобы определить его отношения предпочтений.</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/00f96901-5282-43c0-8afd-7d1ff4930727.png" alt="" /><figcaption>Алгоритм работы матрицы предпочтений</figcaption></figure><p>В совместной фильтрации используются два подхода:</p><h4>а)  Совместная фильтрация ближайших соседей на основе пользователей (user-based)</h4><p>Коллаборативные системы, основанные на пользователях (user-based), находят близких по предпочтениям пользователей и рекомендуют одному из них то, что уже попробовал другой.</p><p>User Profile:</p><p>В профиле пользователя мы создаем векторы, описывающие предпочтения пользователя. При создании профиля пользователя мы используем матрицу полезности, которая описывает отношения между пользователем и элементом. С помощью этой информации лучшая оценка, которую мы можем сделать относительно того, какой элемент нравится пользователю, — это некоторая агрегация профилей этих элементов.</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/23506a47-4642-4cb8-b667-4c453d33bd0a.png" alt="" /><figcaption>Сводка по совместной фильтрации на основе пользователя</figcaption></figure><h4>b)  Совместная фильтрация ближайших соседей на основе элементов (item-based)</h4><p>Системы, основанные на предмете рекомендации (item-based), сравнивают непосредственно близость товаров или услуг. Причем что отличает эту систему, сходство определяется на основе предпочтений всех пользователей, которые оставили свои оценки.</p><p>Item Profile:</p><p>В Content-Based Recommender мы должны создать профиль для каждого элемента, который будет представлять важные характеристики этого элемента.</p><p>Например, если мы делаем фильм как объект, то его актеры, режиссер, год выпуска и жанр являются наиболее значимыми характеристиками фильма. Мы также можем добавить его рейтинг из IMDB (база данных фильмов в Интернете) в профиле товара.</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/4dc7f1a9-ae3e-4f0d-94a7-ed57f7b2e272.png" alt="" /><figcaption>Сводка по совместной фильтрации на основе элементов</figcaption></figure><p>На этом мы закончим с ознакомлением с системами и перейдем к самому интересному — коду.</p><h2>Немного о данных</h2><p>Датасет я создала свой собственный, содержащий в себе данные об аниме (японской анимации) с сайта MyAnimeList(MAL). Очевидно, ниже приведенный код может быть использован для других наборов данных.</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/c3b6ab0a-4eb7-49de-97c8-b55d59437e52.png" alt="" /><figcaption>Структура датасета</figcaption></figure><p>Проведем небольшой анализ данных, чтобы иметь общее представление с чем же все таки работаем.</p><p>Посмотрим, какие жанры и теги чаще всего встречаются.</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/8c8dd06b-2373-47e7-ba31-43105dcb1286.png" alt="" /><figcaption>Наиболее часто встречаемые теги и жанры в датасете</figcaption></figure><p>Самые популярные жанры – школа, научная фантастика, экшен, комедия и романтика. Самый популярный тег – суперсилы.</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/57b9ab27-381d-4a26-90c8-f1e2b1989246.png" alt="" /><figcaption>Распределение рейтинга по демографическим группам</figcaption></figure><p>Чаще всего высокие оценки у сененов (аниме, рассчитанные на юношей до 18-ти лет), но в целом результаты почти одинаковые.</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/79932762-0e3a-4856-802e-b40c308886cd.png" alt="" /><figcaption>Распределение рейтинга по возрастным ограничениям</figcaption></figure><p>Высокие оценки имеют аниме с рейтингами R-17 и PG-13, то есть большинство аниме рассчитано на подростков от 13 до 17 лет.</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/fa5d509e-147f-46b0-ac50-62b900c0cd6a.png" alt="" /><figcaption>Распределение аниме по возрастному ограничению и демографии</figcaption></figure><p>Аниме для детей имеют возрастной рейтинг для всех или для детей (до 13). Сёдзе (произведение для девушек до 18 лет) чаще всего имеет рейтинг для детей. Чем выше возрастное ограничение, тем увеличивается процент содержания сененов и сейненов (произведение для юношей до 18 и старше соответственно)</p><p>Выделим релевантные параметры для рекомендаций.</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/c5573ece-579b-4cbb-a350-b5f0313cab9a.png" alt="" /><figcaption>Параметры для каждого элемента</figcaption></figure><h2>Рекомендательная система (Content Based)</h2><p>Для меры сходства (Cosine similarity) выберем linear kernel (ядра являются мерами сходства, т.е. s(a, b) &gt; s(a, c), если объекты a и b считаются “более похожими”, чем объекты a и c), так как это быстрее.</p><p>Теперь у нас есть матрица парного косинусного сходства (cosine similarity) для всех фильмов в нашем наборе данных. Следующим шагом будет написание функции, которая возвращает 30 наиболее похожих фильмов на основе оценки косинусного сходства.</p><p>Наконец, проверим, как работает наша модель</p><p>Теперь сравним полученный список рекомендаций с рекомендациями на популярных сайтах (на примере аниме “Vinland Saga”)</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/9f5554a1-f506-40d0-a76a-a40a9d9e0fe5.png" alt="" /><figcaption>Рекомендации к аниме Vinland Saga</figcaption></figure><p>Самый популярный сайт на западе (MAL): Shingeki no Kyojin, Dororo, Kenpuu Denki Berserk, 91 Days, Golden Kamuy, Kingdom, Arslan Senki, Shingeki no Kyojin: The Final Season, Mushoku Tensei, Youjo Senki… – совпадает более чем на 70% с полученными результатами. Некоторые произведения не вошли, так как у них не были заполнены некоторые параметры или они вышли раньше 2000-х. Сайт, где рекомендации основываются полностью на отзывах пользователей (AnimePlanet): Shingeki no Kyojin, Berserk, Dororo, One Piece, Arslan Senki, Shoukoku no Altair, Akatsuki no Yona, Shingeki no Kyojin 3, Jormungand, Kingdom, Shigurui, Golden Kamuy 2, 91 Days, Kiseijuu… – похожие результаты как и выше. Можно сделать вывод, что система рекомендаций довольно хорошо работает – она показывает результаты, наиболее похожие на введенное аниме.</p><p>Одна из особенностей построенной системы рекомендаций заключается в том, что она рекомендует фильмы независимо от рейтингов и популярности.</p><p>Поэтому добавим механизм, где также учитывается рейтинг рекомендуемых произведений. То есть будем советовать не только наиболее похожие по тегам и жанрам, но и по популярности.</p><figure><img src="https://media.tproger.ru/user-uploads/106087/2024-09-20/2c2874d8-2a82-463e-85a7-3928ed65c4e8.png" alt="" /><figcaption>Усовершенствованная система рекомендаций</figcaption></figure><p>По сути объединили две системы, основанные на контенте: одна принимала на вход демографический параметр и возрастный рейтинг, а другая – метаданные, такие как студия, жанр и темы для составления прогнозов. А также разработали простой фильтр, чтобы отдать предпочтение фильмам с высоким рейтингом.</p><h2>Источники</h2><p>Посмотреть полную реализацию кода:</p>]]></content:encoded>
    </item>
    <item>
      <title>Аналитик данных: обзор профессии и курса от MDS</title>
      <link>https://tproger.ru/articles/analitik-dannyh-obzor-professii-i-kursa-ot-mds-erid-ljn8kpzea</link>
      <comments>https://tproger.ru/articles/analitik-dannyh-obzor-professii-i-kursa-ot-mds-erid-ljn8kpzea?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Владислав Юсупов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/analitik-dannyh-obzor-professii-i-kursa-ot-mds-erid-ljn8kpzea</guid>
      <description><![CDATA[<p>Разобрали профессию аналитика данных: в каких задачах он нужен, какие инструментами пользуется для работы, и рассказали, где можно их изучить.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/analitik-dannyh-obzor-professii-i-kursa-ot-mds-erid-ljn8kpzea">Аналитик данных: обзор профессии и курса от MDS</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Обучение программированию]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Образование]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 15 Feb 2024 09:50:02 GMT</pubDate>
      <content:encoded><![CDATA[<ol><li><a href="https://tproger.ru/#one">Кто такой аналитик данных</a></li><li><a href="https://tproger.ru/#two">Какие задачи выполняет аналитик данных</a></li><li><a href="https://tproger.ru/#three">Какими инструментами должен владеть аналитик данных</a></li><li><a href="https://tproger.ru/#four">Примеры успешных проектов и достижений аналитиков данных</a></li><li><a href="https://tproger.ru/#five">Где обучиться профессии аналитик данных</a></li></ol><p>В этой статье мы рассмотрим преимущества курса от MDS, который поможет вам освоить профессию аналитика данных. Мы расскажем, какие инструменты и задачи выполняет аналитик. А также о том, как пройти курс и научиться эффективно обращаться с данными.</p><h2>Кто такой аналитик данных</h2><p>Аналитик данных — это специалист, который помогает компаниям понять, что происходит с их данными и как они могут быть использованы для принятия решений. Он собирает информацию, анализирует ее и представляет результаты в виде отчетов, графиков или таблиц.</p><p>Главная цель — помочь компаниям понять, что происходит с их данными и как они могут быть использованы для улучшения бизнес-процессов или продуктов.</p><h2>Какие задачи выполняет аналитик данных</h2><ul><li>Сбор информации из различных источников: таких как базы данных, отчеты, опросы и другие. Примеры источников данных, которые могут быть использованы, включают продажи, маркетинговые исследования, финансовые отчеты, данные о клиентах и другие.</li><li>Очистка данных: после сбора данных аналитик проверяет их на наличие ошибок или пропусков, а также удаляет ненужную информацию. Например, если в данных есть дубликаты или неправильные значения, аналитик должен их удалить или исправить.</li><li>Анализ данных: пользуется разными методами и инструментами для изучения данных и выявления трендов, закономерностей и других интересных фактов. Например, он может использовать статистические методы, такие как корреляционный анализ, регрессионный анализ и т. д.</li><li>Интерпретация результатов: после анализа данных аналитик представляет результаты в виде отчетов, графиков или таблиц, которые помогают понять, что происходит с данными и как они могут быть использованы для принятия решений. Например, он может показать, какие продукты или услуги наиболее популярны среди клиентов или какие маркетинговые кампании приводят к наибольшему количеству продаж.</li><li>Рекомендации: на основе полученных результатов аналитик может давать рекомендации по улучшению бизнес-процессов или продуктов компании. Например, он может рекомендовать изменить стратегию маркетинга или улучшить качество продукта на основе данных о клиентах.</li></ul><h2>Какими инструментами должен владеть аналитик данных</h2><p>Вот некоторые из них:</p><ul><li>Программное обеспечение для работы с данными: Excel, SQL, Python, R и другие.</li><li>Инструменты для визуализации данных: Tableau, Power BI, QlikView и другие.</li><li>Статистические пакеты: SPSS, SAS, R и другие.</li><li>Инструменты для анализа текста: NLP (Natural Language Processing), Text Analytics и другие.</li><li>Инструменты для анализа социальных медиа: Hootsuite, Sprout Social, Meltwater и другие.</li><li>Инструменты для анализа веб-трафика: Google Analytics, Adobe Analytics, Mixpanel и другие.</li><li>Инструменты для анализа баз данных: MongoDB, Cassandra, Hadoop и другие.</li><li>Инструменты для анализа временных рядов: Prophet, ARIMA, Holt-Winters и другие.</li><li>Инструменты для анализа геопространственных данных: ArcGIS, QGIS, Google Earth Engine и другие.</li><li>Инструменты для анализа социальных сетей: Facebook Insights, Twitter Analytics, Instagram Insights и другие.</li></ul><h2>Примеры успешных проектов и достижений аналитиков данных</h2><p>Вот несколько примеров:</p><ul><li>Анализ данных для оптимизации маркетинговых кампаний: аналитики данных анализируют данные поведения клиентов, о предпочтениях и интересах, чтобы определить самые эффективные маркетинговые стратегии. Например, они могут использовать данные о покупках, посещении веб-сайтов или социальных сетей, чтобы определить, какие продукты или услуги наиболее популярны и как лучше продвигать их.</li><li>Прогнозирование спроса и оптимизация цепочки поставок: аналитики данных могут использовать данные о продажах, запасах и спросе, чтобы предсказать будущий спрос на продукты или услуги. Это позволяет компаниям оптимизировать свою цепочку поставок, снизить затраты и улучшить обслуживание клиентов.</li><li>Анализ данных для улучшения бизнес-процессов: аналитики данных могут анализировать данные о бизнес-процессах, чтобы определить, где есть возможности для улучшения. Например, они могут использовать данные о времени выполнения задач, ошибках и простоях, чтобы определить, как оптимизировать процессы и повысить эффективность.</li><li>Анализ данных для принятия финансовых решений: аналитики данных могут анализировать финансовые данные, чтобы помочь компаниям принимать обоснованные решения. Например, они могут использовать данные о доходах, расходах и инвестициях, чтобы определить, какие проекты или инвестиции являются наиболее прибыльными.</li></ul><h3>Какая зарплата у аналитика данных</h3><p>Зарплата аналитика данных может различаться в зависимости от опыта, квалификации, кейсов и места работы. В России средняя зарплата аналитика данных составляет около 100 000 рублей в месяц.</p><h2>Где обучиться профессии аналитик данных</h2><p><a href="http://ed4.edscale.online/click?o=40&amp;a=553&amp;link_id=781&amp;sub_id4=LjN8KPZea">Курс от MDS</a> — это образовательная программа, которая помогает людям получить необходимые знания и навыки для работы в области анализа данных. Курс включает в себя изучение различных инструментов и методов анализа данных, а также практические задания, которые помогут закрепить полученные знания. Вы изучите логические операторы SQL, функции Excel, работу с дашбордами BI и визуализацию данных в Python. Вы сможете прогнозировать на основе данных и помогать бизнесу принимать решения.</p><p>Программа курса включает следующие темы:</p><ol><li>Введение в анализ данных: основы статистики, математические методы, программирование.</li><li>Сбор данных: работа с базами данных, SQL, NoSQL, Hadoop.</li><li>Очистка данных: удаление ошибок и пропусков, нормализация данных.</li><li>Анализ данных: статистические методы, корреляционный анализ, регрессионный анализ.</li><li>Визуализация данных: создание графиков и диаграмм для представления информации.</li><li>Интерпретация результатов: анализ трендов и закономерностей, прогнозирование будущих событий.</li><li>Рекомендации: разработка рекомендаций по улучшению бизнес-процессов или продуктов компании.</li></ol><p>Moscow Digital School ведет образовательную деятельность на основе государственной лицензии № Л035-01298-77/00180373.</p><p>После прохождения итоговой аттестации студенты получат удостоверение о повышении квалификации, которое подтвердит компетенции в области анализа данных и выделит среди других кандидатов при поиске вакансий.</p><p>Какие еще есть преимущества:</p><ul><li>Офлайн выпускной по итогам обучения.</li><li>Добавление в профессиональный чат курса.</li><li>Полезные для вашей работы чек-листы и материалы.</li><li>Удостоверение гособразца о прохождении программы Moscow Digital School.</li><li>Дистанционное обучение 24/7 в образовательной платформе MDS.</li><li>Возможность пройти практику после курса.</li></ul><p>В заключение, можно сказать, что профессия аналитика данных будет продолжать развиваться и оставаться востребованной в будущем. С увеличением объема данных и необходимостью их анализа для принятия решений, спрос на квалифицированных аналитиков данных будет только расти.</p><p>Однако, чтобы оставаться конкурентоспособными и востребованными на рынке труда, аналитики данных должны постоянно совершенствовать свои навыки и знания. Это включает в себя изучение новых инструментов и методов анализа данных, а также развитие навыков коммуникации и презентации результатов. Поэтому прохождение курса может стать отличным решением для развития и получения таких навыков.</p><p><i>Реклама ООО «Стратеджик Инсайтс»,</i> <i>LjN8KPZea</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Data-Driven подход: как бизнесу работать с данными</title>
      <link>https://tproger.ru/articles/data-driven-podhod-kak-biznesu-rabotat-s-dannymi</link>
      <comments>https://tproger.ru/articles/data-driven-podhod-kak-biznesu-rabotat-s-dannymi?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Фадеев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/data-driven-podhod-kak-biznesu-rabotat-s-dannymi</guid>
      <description><![CDATA[<p>Рассказали о Data-Driven подходе, который позволяет принимать решения на основе данных: статистике, определенных метриках и их анализе.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/data-driven-podhod-kak-biznesu-rabotat-s-dannymi">Data-Driven подход: как бизнесу работать с данными</a>»</p>]]></description>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 29 Dec 2023 13:37:40 GMT</pubDate>
      <content:encoded><![CDATA[<p>Традиционно решения, касающиеся вопросов управления бизнесом, принимались руководящим составом компании исходя из опыта и интуиции, но подобный подход не всегда давал положительные результаты.</p><p>С развитием технологий появился новый способ принятия решений, основанных на данных: статистике, определенных метриках и их анализе.</p><p>Такой подход более объективен, рассмотрим почему.</p><p>Автор — Евгений Фадеев, разработчик платформы CXDP.</p><h2>Что такое Data-Driven подход</h2><p>Data-Driven подход (data driven decision making, принятие решений на основе данных) – это метод управления бизнесом, базирующийся на аналитике данных.</p><p>Data-Driven появился в противовес методам highest paid person’s opinion (основанный на мнении руководства) и best practices (базирующийся на общепринятых стандартах). В то время, как мнение руководства может быть необъективным и порой неверным, а общепринятые стандарты оказываются хорошей подоплекой не в ста процентах случаев, принятие решений на основе данных помогает свести ошибки к минимуму, так как опирается на конкретные цифры и статистику.</p><h2>Основные принципы работы бизнеса при Data-Driven подходе</h2><p>В каждой компании могут быть свои принципы работы с данными, но если смотреть всецело, то можно выделить два основных – это качество и работа с гипотезами.</p><p>Качество подразумевает под собой качественный сбор информации, то есть исключение ошибок, по общему правилу и в полном объеме. Работа с гипотезами это постоянное тестирование процессов и поиск новых работающих алгоритмов на основе анализа собранных данных.</p><p>При data-driven подходе в маркетинге исследуются определённые метрики. Основные из них:</p><ul><li>Конверсия, или сколько клиентов выполнили целевое действие – покупку, подписку на рассылку или регистрацию.</li></ul><ul><li>Удержание, или показатель количества клиентов, которые вернулись к покупке после первого взаимодействия.</li></ul><ul><li>Отток как противоположность удержанию, или показатель количества переставших использовать продукт в от или иной период. Удержание и отток связаны, так как чтобы успешно выполнить первое, надо понять причины второго.</li></ul><ul><li>Вовлечённость показывает активность взаимодействия с продуктом, например количество сессий; время, проведённое в сервисе; количество действий, выполненных пользователем.</li></ul><ul><li>Индекс потребительской лояльности показывает вероятность рекомендации продукта другим пользователям, этот же индекс помогает понять уровень удовлетворенности клиентов.</li></ul><h2>Инструменты для Data-Driven подхода</h2><p>Основными инструментами для анализа и работы с данными являются:</p><ul><li>платформы для хранения данных – например, CRM-системы;</li><li>программы для анализа – платформы, управляемые языками программирования, например, R или Python;</li><li>системы для коммуникации, они же сервисы для обмена информацией – ярким примером могут быть BI-системы с дашбордами.</li></ul><p>При этом не обязательно использовать три разных системы, бывает, что одна платформа объединяет в себе две и более функций. Например, всем известные Google Analytics, «Яндекс Метрики» и App Metrica одновременно являются хранилищем данных и анализируют их.</p><p>Существуют также более продвинутые системы работы с данными –  CDP (c англ. Customer Data Platform). Это программное обеспечение, которое формирует единый цифровой профиль клиента, собирая воедино различные сведения о нем из разных источников в режиме реального времени. В то время как в CRM содержатся данные о непосредственном взаимодействии клиентов с компанией (звонки, транзакции, заявки), CDP, в свою очередь, собирает и объединяет данные из разных систем (CRM-системы, CMS, ERP, мобильного приложения, касс), систематизирует их в цифровой портрет клиента и является основой для автоматизации и персонализации маркетинга.</p><p>На этом эволюция не остановилась, и появился подвид CПлюсы и минусы Data-Driven подходаDP-систем со встроенным модулем коммуникации или так называемые CXDP ( c англ. Customer Experience Data Platform). Помимо умения создавать цифровой профиль покупателя, это программное обеспечение может осуществлять персонализированные коммуникации: e-mail, SMS, Push-уведомления, мессенджеры и многое другое.</p><h2>Плюсы и минусы Data-Driven подхода</h2><p>Безусловным плюсом Data-Driven подхода является его объективность и повышенная точность, ведь он основан на конкретной статистике конкретной организации. То или иное решение, базирующееся на аналитике данных имеет логическое обоснование, что позволяет оценить существующую производительность и разработать четкий путь к достижению целей.</p><p>Из недостатков можно назвать финансовую затратность и сложность в работе. Для осуществления Data-Driven подхода необходимы квалифицированные специалисты, а, значит, дополнительное обучение уже имеющихся сотрудников либо использование решения на аутсорсе. Однако результаты использования data-driven подхода могут принести большую пользу бизнесу, и в этом случае все затраты окупятся многократно.</p><p>Также стоит отметить, что Data-driven подход всё же не может полностью заменить опыт. В некоторых ситуациях, например непредвиденных обстоятельствах, мнение опытного руководства может быть намного продуктивнее подхода, основанного на анализе данных.</p>]]></content:encoded>
    </item>
    <item>
      <title>Identifying the Top 10 Failures in the Process of Monitoring Your Software Application</title>
      <link>https://tproger.ru/articles/identifying-the-top-10-failures-in-the-process-of-monitoring-your-software-application</link>
      <comments>https://tproger.ru/articles/identifying-the-top-10-failures-in-the-process-of-monitoring-your-software-application?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Andrey Stolbovsky]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/identifying-the-top-10-failures-in-the-process-of-monitoring-your-software-application</guid>
      <description><![CDATA[<p>Look at ten mistakes that companies often make when monitoring applications, and give professional advice on how to avoid them.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/identifying-the-top-10-failures-in-the-process-of-monitoring-your-software-application">Identifying the Top 10 Failures in the Process of Monitoring Your Software Application</a>»</p>]]></description>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 31 Oct 2023 08:33:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>An essential requirement in today’s technological environment is for reliable application monitoring. Any disruption or downtime can have a significant impact on operations, customer satisfaction, and ultimately, the bottom line for businesses that rely heavily on digital systems. However, when it comes to application monitoring, even the most seasoned professionals are prone to making straightforward but crucial errors. If these errors are not corrected, they may have disastrous results. In this thorough article, we’ll examine ten oversights that companies frequently make when monitoring their applications and offer professional advice on how to avoid them.</p><h2>1. Neglecting Application Monitoring</h2><p>The very first and most critical mistake is not monitoring your applications at all. While this may seem painfully obvious, it remains a surprisingly prevalent issue in the tech world. Effective application monitoring encompasses a spectrum of essential components, including logging, metrics, tracing, and real user monitoring (RUM). Neglecting any of these facets can leave your organization blind to critical issues lurking within your system.</p><p>Solution: Kickstart your journey to effective application monitoring by implementing a comprehensive strategy that encompasses all these facets. The tech industry offers a plethora of modern platforms and tools that make data collection and analysis easier than ever. For instance, tools like Grafana, New Relic, Datadog and ELK Stack (Elasticsearch, Logstash, Kibana) can help you to establish a robust monitoring strategy and ensure the reliability and performance of your applications. There is no excuse for overlooking this fundamental step in ensuring the reliability and performance of your applications. To ensure a robust application monitoring strategy, it’s essential to follow the <a href="https://sre.google/sre-book/monitoring-distributed-systems/#xref_monitoring_golden-signals">four golden signals</a>: latency, traffic, errors, and saturation. These signals act as critical indicators of your application’s health and performance. Latency measures response time, traffic gauges demand, errors pinpoint issues, and saturation helps identify resource bottlenecks. By paying close attention to these signals, you can proactively detect and address problems, ensuring the reliability and performance of your applications. In a tech landscape filled with powerful tools like Grafana, New Relic, Datadog, and ELK Stack, implementing these signals is a fundamental step in effective application monitoring, allowing you to stay ahead of potential issues and provide a seamless user experience.</p><h2>2. Noisy Alarms</h2><p>Effective monitoring systems generate alarms to promptly notify you of potential issues. However, setting up alarms without careful consideration can lead to an overwhelming barrage of notifications. Too many unnecessary alerts can result in what is known as “alert fatigue,” making it challenging to identify genuine problems amidst the noise.</p><p>Solution: Prune your alarms ruthlessly that you do not act upon. Regularly review and refine your alerting thresholds and conditions. Disable or fine-tune alarms that are not delivering value or are prone to false positives. The ultimate goal is to create an alarm system that provides actionable insights, not a cacophony of distractions.</p><h2>3. Focusing Solely on Availability and Errors</h2><p>While monitoring for system availability and errors is essential, it’s crucial to recognize that this limited scope may not unveil the full picture of your application’s health. Consider a scenario where your application ceases to receive new requests, yet it reports 100% availability and zero errors. This situation can go unnoticed if you’re only monitoring these two metrics.</p><p>Solution: Broaden your monitoring horizons by including alarms that detect anomalies such as a sudden drop in incoming requests. To ensure a more comprehensive view of your application’s health, monitor a variety of system behaviors beyond mere availability and error counts.</p><h2>4. Rate vs. Sum: Understanding Counter Metrics</h2><p>Understanding the difference between rate and sum when dealing with counters in monitoring systems is vital.  Failing to grasp this distinction can lead to erroneous interpretations of your metrics. This concept is elucidated in an <a href="https://www.robustperception.io/rate-then-sum-never-sum-then-rate/">article </a>by Robust Perception.</p><p>Solution: Invest in educating your team on the nuances of the rate vs. sum concept. Ensure that your monitoring tools and systems correctly handle counter metrics. A deep understanding of how data is collected and interpreted is imperative for meaningful analysis.</p><h2>5. Neglecting Dashboard Reviews: The Importance of Proactive Monitoring</h2><p>Even with a robust set of alarms in place, new and subtle issues can escape detection. Regularly reviewing dashboards allows you to identify outliers, trends, and patterns that may not trigger alarms but could signify underlying problems.</p><p>Solution: Make dashboard reviews a standard practice, ideally on a weekly basis. Encourage your team to actively seek out unusual trends or behaviors and investigate them promptly. Dashboard reviews should be an integral part of your proactive maintenance strategy.</p><h2>6. Failing to Act on Dashboard Findings: The Cost of Inaction</h2><p>Identifying anomalies in your dashboards is only the first step. If you fail to take action based on these findings, your system’s issues will continue to accumulate, rendering your monitoring efforts ineffective.</p><p>Solution: Establish a clear process for investigating and addressing issues identified through dashboard reviews. Assign responsibilities to team members for prompt follow-ups on anomalies and the implementation of necessary fixes.</p><h2>7. Aggregating Percentiles Incorrectly: A Statistical Pitfall</h2><p>Percentiles serve as valuable metrics for understanding the distribution of data in your monitoring system. However, aggregating percentiles incorrectly, such as taking averages of percentiles or calculating percentiles of percentiles, can distort the true picture of your data. Incorrect aggregation of percentiles can obscure data insights by combining non-linear values. Averaging percentiles can misrepresent the central tendency, while percentiles of percentiles may lead to an artificial “meta-percentile” that doesn’t align with the underlying data distribution, undermining accurate analysis.</p><p>Solution: Always calculate percentiles on the entire dataset, rather than attempting to aggregate them. When dealing with large datasets, consider using histograms for aggregating percentiles. This approach ensures a more accurate representation of your data distribution.</p><h2>8. Inconsistent Metric Labeling</h2><p>Consistency in metric labeling is essential for maintaining a clear and organised monitoring system. Without a standardized naming convention, interpreting and managing your metrics becomes a daunting challenge.</p><p>Solution: Establish a clear and consistent policy for naming metric labels early in the monitoring setup process. Decide on conventions for capitalization, separators, and abbreviations. Ensure that all team members adhere to these standards. Consistency simplifies troubleshooting and on-call duties, particularly for engineers less familiar with the system.</p><h2>9. Neglecting Runbooks in Alarms</h2><p>When alarms trigger, it’s essential that the recipient knows what actions to take to resolve the issue. Neglecting to include runbooks or documentation alongside alarms can lead to confusion and delays in incident response.</p><p>Solution: Develop detailed runbooks to accompany each alarm. These runbooks should provide step-by-step instructions on how to diagnose and mitigate the issue associated with the alarm. Ensure that all team members have access to these runbooks for efficient incident resolution. Additionally, establishing a process for continuous runbook improvement is crucial. Regularly polling on-call engineers after their shifts can help gather valuable feedback on the runbooks’ effectiveness. This feedback loop enables ongoing refinement, making incident response even more streamlined and efficient.</p><h2>10. Overloading Metrics with High Cardinality Data: A Balancing Act</h2><p>Monitoring systems are adept at handling a significant volume of metric data. However, they may struggle when inundated with high cardinality metadata, such as complete endpoints, usernames, or IP addresses. Including such data in labels without proper management can overwhelm your monitoring system.</p><p>Solution: Exercise caution when determining what metadata to include in metric labels. Canonicalize, group, and simplify labels wherever possible. For data that doesn’t belong in metrics, utilise logging or other appropriate mechanisms. Remember that overloading your monitoring system with excessive labels can lead to performance issues and increased operational overhead.</p><p>Ultimately, effective application monitoring is a complex process that necessitates painstaking attention to detail and a steadfast dedication to best practices. The dependability, performance, and resilience of your applications can be greatly improved by avoiding these ten common mistakes. To stay ahead of potential problems, keep in mind that monitoring is a continuous process, so you must regularly review and improve your monitoring approach. Adopting these lessons will help your business be better prepared to successfully and confidently navigate the complex world of application monitoring. The significance of vigilance in application monitoring cannot be overstated in an age where technology forms the foundation of our way of life.</p>]]></content:encoded>
    </item>
    <item>
      <title>Comparing Cloudwatch and Grafana: Unveiling the Power of Cloud Monitoring</title>
      <link>https://tproger.ru/articles/comparing-cloudwatch-and-grafana-unveiling-the-power-of-cloud-monitoring</link>
      <comments>https://tproger.ru/articles/comparing-cloudwatch-and-grafana-unveiling-the-power-of-cloud-monitoring?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Andrey Stolbovsky]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/comparing-cloudwatch-and-grafana-unveiling-the-power-of-cloud-monitoring</guid>
      <description><![CDATA[<p>Talk about Cloudwatch and Grafana tools and find out which is better for your specific needs in this comprehensive comparison.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/comparing-cloudwatch-and-grafana-unveiling-the-power-of-cloud-monitoring">Comparing Cloudwatch and Grafana: Unveiling the Power of Cloud Monitoring</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Визуализация]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 30 Oct 2023 10:05:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloud monitoring is critical in today’s digital landscape, where the cloud has become the backbone of many businesses. With cloud-hosted applications and services becoming increasingly complex, the ability to ensure their reliability and performance is a mission-critical endeavour. Amazon Web Services’ (AWS) native monitoring and observability service, CloudWatch, and the open-source monitoring and observability platform, Grafana, are two powerful tools that come to the rescue.</p><p>I am Andrey Stolbovsky, SDM at Amazon. Before Amazon I was developing Monitoring at Yandex, and in this articale I will demystify these tools and help you make informed decisions about which is best for your specific needs in this comprehensive comparison.</p><h2>I. Understanding the Basics</h2><p>To begin this journey of comparison, it is critical to first understand the fundamental nature of these tools. CloudWatch is AWS’s native monitoring and observability service. It is designed to be tightly integrated with AWS services, allowing you to collect, visualise, and analyze data from various AWS resources. Grafana, on the other hand, is an open-source platform that serves as a unified monitoring and observability solution. It’s known for its adaptability, allowing you to connect to a wide range of data sources, making it an excellent choice for multi-cloud and hybrid environments.</p><p>The key difference lies in their origins and design philosophies. CloudWatch is specifically designed for AWS services, making it a seamless choice for AWS-centric environments. Grafana, however, follows a more open-source, community-driven approach, catering to those who operate in diverse cloud and on-premises ecosystems.</p><h2>II. Features and Capabilities</h2><h3>CloudWatch</h3><p>Metrics collection and visualisation are core features of CloudWatch. It can collect data from various AWS resources and provide visually appealing graphs and dashboards.</p><p>Alarms and notifications: CloudWatch allows you to set up alarms for certain metrics, notifying you when specific thresholds are breached.</p><p>Log management and analysis: It provides built-in log management features to monitor and analyze logs across your AWS infrastructure.</p><p>Integration with other AWS services: CloudWatch seamlessly integrates with other AWS services, enhancing its capabilities.</p><h3>Grafana</h3><p>Data source flexibility: One of Grafana’s key strengths is its ability to connect to various data sources, not limited to AWS, making it ideal for multi-cloud and hybrid environments.</p><p>Dashboard customization and templating: Grafana offers a highly customizable dashboard creation, enabling you to tailor monitoring solutions to your specific needs.</p><p>Community-driven plugins and extensions: Grafana’s vibrant community contributes plugins and extensions, expanding its functionality.</p><p>Support for on-premises and multi-cloud environments: The platform is versatile, making it a valuable tool for businesses with diverse infrastructure needs.</p><h2>III. Performance and Scalability</h2><h3>CloudWatch</h3><p>Within the AWS ecosystem, CloudWatch scales automatically with the resources you use, making it well-suited for AWS-centric environments. However, this scalability can come with a price, as costs may increase as you collect more data and add more resources.</p><h3>Grafana</h3><p>Grafana shines in multi-cloud and hybrid environments. It can adapt to various data sources, providing a unified monitoring solution across your entire infrastructure.</p><p>Its scalability is advantageous when dealing with diverse environments. Additionally, Grafana can be integrated with CloudWatch to extend its capabilities to AWS services.</p><h2>IV. Ease of Use and Flexibility</h2><h3>CloudWatch</h3><p><b></b>The AWS Console interface makes CloudWatch accessible to AWS users. Setup and configuration are relatively straightforward, especially for those who are already familiar with the AWS environment. But, it may have a learning curve for users who are new to AWS, and some limitations may be encountered when dealing with non-AWS resources.</p><h3>Grafana</h3><p><b></b>Grafana’s intuitive UI for dashboard creation appeals to both beginners and experts. It excels in providing a flexible, user-friendly environment. The ability to connect to various data sources may slightly increase the learning curve, but it’s a trade-off for the versatility it offers.</p><h2>V. Cost Considerations</h2><p>AWS has made a name for itself by pioneering a “pay-as-you-go” pricing model that allows businesses to pay only for the services they use. This model, although a blessing for scalability, can be a double-edged sword if not managed judiciously. AWS CloudWatch, being an integral part of the AWS ecosystem, falls under this pricing model. However, the cost structure can sometimes be tricky to decipher.</p><p>Under the AWS umbrella, CloudWatch employs a multi-tier pricing model that charges based on the number of custom metrics, custom events, and logs you monitor. To understand the cost implications, you’ll need to have a clear picture of your usage patterns and the specific AWS resources you intend to monitor. It’s important to keep a close eye on the AWS pricing calculator, and if you’re new to AWS, it’s highly advisable to start with AWS’s Free Tier to get a sense of your potential costs.</p><p>For smaller businesses, this can be a cost-effective way to get started with cloud monitoring, as the “pay-as-you-go” model allows for cost scalability based on real usage. However, large enterprises with extensive cloud infrastructure may find the costs rising significantly as their operations grow.</p><p>To optimise your costs with CloudWatch, you can employ a few strategies:</p><ul><li>Resource Tagging: Tagging your AWS resources can help you track and monitor specific resource groups, making it easier to allocate costs and ensure efficient utilisation.</li><li>Custom Metric Management: Carefully select and define your custom metrics to avoid unnecessary costs associated with excessive metric creation.</li><li>Set Up Alarms: Establish CloudWatch alarms to monitor resource usage proactively and trigger notifications only when necessary.</li><li>Scheduled Monitoring: Adjust the frequency of data collection to reduce the volume of data processed by CloudWatch, which can have a direct impact on costs.</li><li>Utilise AWS Trusted Advisor: This AWS tool can help identify opportunities for cost optimisation within your AWS environment, including CloudWatch.</li></ul><p>On the other side of the cloud monitoring spectrum, Grafana is renowned for its open-source nature, which can be incredibly cost-effective. However, it’s essential to understand that while Grafana itself is open source, there are associated costs related to hosting, support, and integrations.</p><p>Grafana’s open-source foundation offers a wealth of flexibility and customisation options without the need for upfront licensing fees. This open-source nature makes it a cost-effective solution for organisations looking to create dashboards and visualisations based on the data collected from various sources.</p><p>When it comes to Grafana, there are a few potential cost considerations:</p><ul><li>Hosting: If you decide to host Grafana on your own infrastructure, you’ll need to budget for server resources, network costs, and ongoing maintenance.</li><li>Support: Grafana offers various support plans, each with a different level of service and pricing. Depending on the complexity of your deployment and your organisation’s needs, you may choose to invest in a support plan to ensure smooth operations.</li><li>Plugins and Data Sources: While Grafana itself is open source, you might need to invest in plugins or data sources to integrate with specific data platforms, and these may come with associated costs.</li><li>Scaling: As your monitoring needs grow, scaling Grafana to accommodate increased traffic and data sources might incur additional expenses.</li></ul><p>Understanding these cost considerations is crucial to determining the most cost-effective approach for your organization’s unique cloud monitoring requirements.</p><h2>VI. Real-World Use Cases</h2><p>To provide you with a clearer understanding of when to use CloudWatch, let’s explore some real-world scenarios where this native AWS service excels.</p><ul><li>Native AWS Environment: CloudWatch truly shines in environments where AWS is the primary cloud provider. Its seamless integration with AWS resources simplifies monitoring and ensures that you get the most out of your AWS services.</li><li>Startups and SMBs: Smaller businesses benefit from CloudWatch’s ease of use and cost-effective pricing. It’s an excellent choice for those looking to scale their applications without a steep learning curve.</li><li>Success Stories: Companies like Airbnb, Netflix, and Samsung have experienced significant improvements in their operations by harnessing CloudWatch. For instance, Netflix uses CloudWatch to monitor its microservices architecture, ensuring a seamless streaming experience for millions of users.</li></ul><p>Now, let’s explore instances where Grafana’s flexibility and extensibility make it a preferred choice.</p><ul><li>Multi-Cloud and Hybrid Environments: If your organisation operates across multiple cloud providers or uses a hybrid setup with on-premises infrastructure, Grafana’s data source flexibility is invaluable. It allows you to create a unified view of your entire environment.</li><li>Customization: For organizations with unique monitoring requirements, Grafana’s custom dashboards and the vast library of community-driven plugins provide the ability to tailor monitoring solutions to your exact specifications.</li><li>Success Stories: Grafana has become a staple in companies like PayPal, Red Hat, and eBay. PayPal, for instance, utilises Grafana to monitor thousands of servers across different data centers and cloud providers, ensuring uninterrupted payment services.</li></ul><h2>VII. Integration Possibilities</h2><p>While CloudWatch and Grafana are powerful tools individually, combining them strategically can result in an observability powerhouse.</p><p>Data Source Integration: Grafana can connect to CloudWatch as a data source, allowing you to leverage its native AWS integration while also benefiting from Grafana’s visualization and alerting capabilities. This hybrid approach provides a holistic view of your AWS resources while offering extensive customization options.</p><p>Cross-Cloud Monitoring: In scenarios where your organization uses multiple cloud providers, you can use Grafana to consolidate data from AWS CloudWatch, Azure Monitor, and Google Cloud Monitoring into a single dashboard. This approach simplifies cross-cloud monitoring and enhances your ability to manage resources effectively.</p><p>Custom Alerts and Visualisation: Grafana can be used to create custom alerts and visualizations for CloudWatch metrics. This means you can fine-tune your monitoring strategy to meet your specific needs, ensuring that you only receive alerts relevant to your environment.</p><p>Efficient Resource Utilisation: By combining CloudWatch and Grafana, you can optimise resource utilisation and cost efficiency. For example, you can set up dynamic scaling with CloudWatch while visualising performance data and trends in Grafana, allowing for data-driven decisions on resource allocation.</p><h2>Conclusion</h2><p>The choice between CloudWatch and Grafana ultimately depends on your specific needs and the complexity of your cloud environment. CloudWatch, with its native integration and ease of use, is ideal for organisations deeply rooted in AWS and those looking for a straightforward solution.</p><p>On the other hand, Grafana’s flexibility, community-driven plugins, and compatibility with various data sources make it a top choice for companies operating in multi-cloud environments, hybrid setups, or those with unique monitoring requirements.</p><p>The good news is that you don’t necessarily have to choose one over the other. In fact, harnessing the strengths of both CloudWatch and Grafana through strategic integration can unlock a new level of observability and monitoring capability.</p>]]></content:encoded>
    </item>
    <item>
      <title>Почему дата-сайентисту нужны ещё и графы</title>
      <link>https://tproger.ru/articles/pochemu-data-sajentistu-nuzhny-eshhyo-i-grafy</link>
      <comments>https://tproger.ru/articles/pochemu-data-sajentistu-nuzhny-eshhyo-i-grafy?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вика Овсянникова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/pochemu-data-sajentistu-nuzhny-eshhyo-i-grafy</guid>
      <description><![CDATA[<p>Разбираемся, что это такое, в анализе каких данных они нужны. А также рассматриваем, в каких задачах найдётся применение теории графов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/pochemu-data-sajentistu-nuzhny-eshhyo-i-grafy">Почему дата-сайентисту нужны ещё и графы</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Big Data]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Data Science]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 13 Oct 2023 10:06:01 GMT</pubDate>
      <content:encoded><![CDATA[<p>На небе только и разговоров что о графах. Говорят, что их сложно и скучно учить, но зато используют в таких задачах, с которыми <a href="https://tproger.ru/articles/osnovnye-instrumenty-dlya-raboty-s-dannymi-ot-sbora-do-analiza-erid-ljn8ktdcg/">классические методы</a> <a href="https://tproger.ru/translations/top-10-python-bibliotek-dlja-data-science/">анализа данных</a> не справляются. Давайте разбираться, в каких именно и почему не стоит игнорировать графы, даже если вы новичок в Data Science.</p><h2>И что это такое — графы?</h2><p>Графы — это абстракция, которую используют для выявления связей между сущностями: множество вершин и множество рёбер, которые их соединяют. Впервые теорию графов применил Леонард Эйлер для решения задачи о Кёнигсбергских мостах. Нужно было найти такой маршрут, чтобы пройти по всем семи сооружениям только один раз и вернуться в исходную точку. С помощью теории графов Эйлер доказал, что это невозможно.</p><figure><img src="https://media.tproger.ru/user-uploads/75379/2023-10-12/6e18f6f0-e0e3-444a-aa31-74ba4fd6a49d.png" alt="" /><figcaption>Нагляднее всего оказалось строить маршрут в виде точек (вершин), которые попарно связаны между собой путями (рёбрами). Источник: https://math.stackexchange.com/questions/1173328/eulers-solution-of-seven-bridges-of-königsberg-in-layman-terms</figcaption></figure><h2>А они вообще востребованы?</h2><p>Способов анализа структурированных данных становится недостаточно, чтобы делать глубокие предсказания. Если для расчёта спроса и предложения товаров хватит классических методов вроде статистических функций, то для рекомендаций этих товаров можно применять больше действенных методов, в том числе и графы. Поэтому их используют чаще, нежели лет пять назад.</p><p>Компании вроде Uber, Google, Pinterest <a href="https://www.assemblyai.com/blog/ai-trends-graph-neural-networks/">переходят</a> на графы, мотивируя это тем, что производительность таких методов выше, по сравнению с другими современными ИИ-архитектурами. А <a href="https://www.gartner.com/en/newsroom/press-releases/2021-03-16-gartner-identifies-top-10-data-and-analytics-technologies-trends-for-2021">по прогнозам Gartner</a> к 2025 году графы будут использоваться в 80% инноваций в области данных и аналитики по сравнению с 10% в 2021 году.</p><p>Стоит оговориться: графы всё ещё достаточно узкопрофильное направление и используют их не повсеместно. Но дополнительный скил точно не будет лишним — появится больше сфер, в которых можно работать.</p><h2>И какие задачи можно решать графами?</h2><p>Графы помогают работать с нелинейными данными, которые сложно структурировать в табличный формат и выгоднее представлять в виде связей между объектами — то есть между вершинами через рёбра. Тогда получается сетка, похожая на карту дорог.</p><figure><img src="https://media.tproger.ru/user-uploads/75379/2023-10-12/37e1f883-7b1d-4cbe-95bd-9f0cb780a248.png" alt="" /><figcaption>Сравнение графовой и реляционной (табличной) баз данных. Источник: https://phoenixnap.com/kb/graph-database</figcaption></figure><p>Графы и нейронные сети на их основе используют, например, в биологии. С их помощью биологические сущности (белки, РНК, химические соединения) можно представить в виде «сетки», определить, как они связаны между собой, предсказать новые взаимодействия между ними или свойства.</p><p><a href="https://www.frontiersin.org/articles/10.3389/fgene.2021.690049/full">Здесь</a> можно почитать про графовые методы в биологии.</p><h3>Рекомендовать товар или друзей</h3><p>В Газпромбанке есть граф для выявления групп людей со схожими интересами. Он помогает идентифицировать паттерн поведения клиентов, исходя из которого мы предполагаем, какие приложения будут им наиболее полезны. Например, ведут они активный образ жизни, занимаются спортом — значит, порекомендуем похожие спортивные товары.</p><p>Схожая механика используется в социальных сетях и дейтинговых приложениях — для рекомендаций друзей и хранения данных, которые генерируют пользователи.</p><p>Можно обойтись и без графов: самостоятельно придумать критерии и прописать алгоритм, который будет высчитывать количество взаимодействий между людьми. Но это долго, дорого, ресурсозатратно и есть риск упустить что-то важное, но неочевидное. Графы же позволяют использовать данные сами по себе, любое взаимодействие уже даёт информацию, которую можно анализировать и потенциально применить для решения задач.</p><figure><img src="https://media.tproger.ru/user-uploads/75379/2023-10-12/1615e071-f401-40e4-8549-b77344a23833.png" alt="" /><figcaption>С помощью графов можно быстрее сформировать и проанализировать рекомендации, а также легче их представить: два человека — узла — пообщались, то есть между ними выстроилась связь — ребро. В реляционных базах данных хранить такие сети взаимодействий неудобно.</figcaption></figure><h3>Выявлять мошенничество</h3><p>Можно построить цепочку транзакционной активности: человек А перевёл деньги человеку B, а тот — человеку C. Если в этой схеме появляется лицо, которое занесено в чёрный список, то мы идентифицируем её как фрод. То есть если в длинной цепочке переводов один из узлов замечен в мошенничестве, то стоит обратить на неё пристальное внимание.</p><figure><img src="https://media.tproger.ru/user-uploads/75379/2023-10-12/a4412fa1-7342-4001-a67a-3281a6b69ca9.png" alt="" /></figure><p>Зачастую мошенники, когда берут кредиты и хотят оформить банкротство, чтобы их не платить, используют разные адреса, номера телефонов, паспортные данные. Или меняют их незначительно, чтобы исправления не были заметны сразу. И то, и то можно назвать подозрительной активностью.</p><p>Сложно самостоятельно просчитать наперёд и учесть в алгоритмах, что у человека сегодня одни паспортные данные, а завтра другие. Для графа это не нужно прописывать: он проскорит и зафиксирует людей с такой подозрительной активностью самостоятельно.</p><h3>Строить маршруты</h3><p>С помощью графа можно найти самый короткий и быстрый маршрут из точки А в точку B. Он будет учитывать не только длину дорог, но и поможет предсказать, где и когда трафик меньше.</p><figure><img src="https://media.tproger.ru/user-uploads/75379/2023-10-12/2376e2e6-e0f2-4833-bbfa-38b84d17604a.png" alt="" /><figcaption>Рёбра в данном случае — это изменяющиеся величины, которые отражают и учитывают, где, например, ночью дороги пустые, а где в шесть утра пробки и аварии, которые надо объехать. Источник: http://www.geocenter-consulting.ru/news/item/259</figcaption></figure><h3>Ранжировать информацию по достоверности</h3><p>В Google графы использовали для ранжирования веб-страниц. Чтобы самый полезный сайт поставить на первое место, придумали алгоритм PageRank.</p><p>Каждый сайт был узлом, а ссылки на другие сайты внутри — связями. За счёт этого сайт, который ссылался на более достоверные источники, оказывался выше. Например, если одна из страниц ссылалась на сайт правительства Соединённых Штатов, а другая — на жёлтую прессу, вторая уходила вниз в поисковой выдаче.</p><p>Сейчас используют и другие алгоритмы, тот же GPT, но в начале 2000-х Google выстрелил благодаря графам, которые качественнее определяли «авторитетность».</p><h3>Хранить взаимосвязи между сущностями</h3><p>Ещё одна важная предметная область, где применяются графы — графы знаний. Это семантическая структура, в которой хранится информация о разных сущностях и взаимосвязях между ними. Вершиной‎ графа может быть как абстрактное понятие (например, концепция), так и материальный объект (например, предмет или человек).</p><p>На основе графов знаний работают, например, голосовые помощники — Alexa от Amazon.</p><p>Так могут <a href="https://towardsdatascience.com/a-guide-to-the-knowledge-graphs-bfb5c40272f1">выглядеть</a> взаимосвязи в графах знаний:</p><figure><img src="https://media.tproger.ru/user-uploads/75379/2023-10-12/f45a90f6-b25b-400d-ae0c-4e35acb91415.png" alt="" /></figure><h2>Звучит интересно. А сложно их учить?</h2><p>Действительно, графы — универсальный и многогранный инструмент, который используется для решения самых разных задач. Держать в голове весь их функционал довольно сложно. Для начала достаточно понимать, что из себя представляют графы и в каких предметных областях они применяются. А далее изучать конкретные алгоритмы и инструменты в зависимости от задачи.</p><h2>Где можно узнать о них подробнее?</h2><ul><li>ТГ-канал про графы: @sberlogawithgraphs</li><li><a href="https://web.stanford.edu/class/cs224w/">Курс Стэнфордского университета</a></li><li>Книга <a href="https://www.ozon.ru/product/vvedenie-v-teoriyu-grafov-uilson-robin-599251283/">«Введение в теорию графов»</a> Р. Уилсона</li><li>Книга про графовые нейронные сети: Graph Representation Learning. William L. Hamilton</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Почему Data Office – не модный термин, а новая карьерная возможность</title>
      <link>https://tproger.ru/articles/pochemu-data-office-ne-modnyj-termin-a-novaya-karernaya-vozmozhnost</link>
      <comments>https://tproger.ru/articles/pochemu-data-office-ne-modnyj-termin-a-novaya-karernaya-vozmozhnost?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Ирина Тюльпакова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/pochemu-data-office-ne-modnyj-termin-a-novaya-karernaya-vozmozhnost</guid>
      <description><![CDATA[<p>Потребность в специалистах по Data Office растёт. В статье рассказали, кто эти люди — и как устроена сфера в целом.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/pochemu-data-office-ne-modnyj-termin-a-novaya-karernaya-vozmozhnost">Почему Data Office – не модный термин, а новая карьерная возможность</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Data Science]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 18 Sep 2023 08:26:01 GMT</pubDate>
      <content:encoded><![CDATA[<p>Сейчас о важности Data Office говорят в основном крупные компании, но в ближайшие годы он в том или ином виде станет частью большинства бизнесов, которые работают с данными. А значит вырастет потребность в специалистах по Data Office. В статье рассказываем, чем эти люди занимаются сейчас и кому подходит такая работа.</p><h2>Что такое Data Office</h2><p>Есть три основных значения:</p><ol><li><b>Функция работы с данными внутри компании.</b> Цель — привести данные в тот вид, который позволит на их основе принимать и монетизировать управленческие решения.</li><li><b>Обособленное подразделение, работающее с данными. </b>В российском секторе пока что присутствует в крупном и отчасти в среднем бизнесе. Процесс перехода небольших компаний на облачные решения, SaaS и PaaS-платформы, которые предоставляли подобный сервис, замедлился из-за ухода многих международных игроков.</li><li><b>Интерфейс доступа к накопленным данным.</b> Проще говоря, информация: какие данные у компании есть, где применяются, как устроены процессы их обработки и так далее — всё, что обычно называют Data Governance.</li></ol><figure><img src="https://media.tproger.ru/user-uploads/23823/2023-09-04/08a21dea-21ae-4a6f-b5fa-c0285c63b220.png" alt="" /></figure><h3>Перспективы развития Data Office</h3><p><a href="https://www.gartner.com/smarterwithgartner/3-top-take-aways-from-the-gartner-chief-data-officer-survey">Согласно прогнозу</a> Gartner, в ближайшее время Data Office станет «критически важной функцией, сравнимой с ИТ, бизнес-операциями, HR и финансами в 75% крупных компаний».</p><p>Сейчас функция работы с данными есть у всех топовых игроков российского технологического бизнеса, ритейла, телекома; постепенно она охватывает и средний бизнес. Так что поле для применения талантов действительно широкое.</p><p>Универсальности Data Office добавляет модульная структура: не нужен Data Lake — можно обойтись без него, не требуется Data Governance — аналогично. В каждой компании Data Office будет таким, каким его хочет видеть бизнес.</p><h2>Структура Data Office</h2><p>Работа с данными состоит из нескольких блоков, которыми занимаются разные специалисты: таким образом, прийти к этой работе можно из множества областей. Для примера возьмём типичный набор блоков, из которых состоит Data Office в крупной компании.</p><figure><img src="https://media.tproger.ru/user-uploads/23823/2023-09-04/47092020-bf8c-43a0-8a42-e853f950ca92.jpeg" alt="" /></figure><h3>Методологический</h3><p>Отвечает за то, как правильно считать показатели, которые мы хотим извлекать из данных, какие данные брать, из каких систем — по сути, это фундамент работы Data Office. Благодаря ему создаётся single point of truth — единое понимание накопленных данных и методология расчёта показателей для аналитики.</p><p>Всем знакома такая вещь, как выручка — но оказывается, взгляды на то, что считать выручкой, у подразделений одной компании сильно разнятся: одни рассматривают РСБУ, другие МСФО, одни с учётом сопоставимости с предыдущими периодами, другие без и так далее.Между тем есть совет директоров, CEO, CFO и, конечно, их не устраивает ситуация, когда у них 25 разных выручек. Им нужно получить какую-то достоверную точку отсчёта. Здесь и возникает та самая регламентирующая функция Data Office, которая обеспечивает договорённость со всеми игроками и генерирует правильные точки входа в данные.</p><p>В основном в этом блоке работают бизнес-аналитики и владельцы продуктов/процессов/сервисов. От них требуют хорошего знания бизнес-процессов, их моделирования и реинжиниринга. Кроме того, очень важны коммуникативные навыки, знание нотаций моделирования бизнес-процессов.</p><h3>Технический</h3><p>Зона ответственности — построение систем хранения и обработки данных внутри компании, включая весь спектр интеграции, систему управления мастер-данными (MDM), разработку прикладных сервисов доступа к данным. И здесь задействован целый кластер ролей: архитекторы, бизнес- и системные аналитики, разработчики, тестировщики, администраторы, DevOps. Их общая цель — получить мощное и надёжное хранилище.</p><p>Для хорошей работы нужна служба эксплуатации и поддержки этого хранилища. В этой же службе могут быть и DBA — администраторы баз данных, которые следят за работоспособностью и производительностью базы данных, занимаются её техническим обслуживанием, мониторят загрузку хранилища и разбирают инциденты.</p><p>Часто технические команды становятся хорошими инкубаторами для роста: в них вместе работают и junior, и middle, и senior-специалисты. Конечно, никто не доверит джуну задачи по сборке ядра хранилища, но ему и без этого будет чем заняться.</p><p>Технический стек зависит от целевого стека компании, но он всегда включает знание SQL, 1–2 наиболее распространённых языка программирования (часто Python и Java), Git, Jira + Confluence, навыки работы с наиболее распространёнными системами ETL и оркестрации. Почти всегда требуются технический английский и навыки работы с технической документацией.</p><h3>Взаимодействие с бизнесом или Data Stewards</h3><p>Эти специалисты помогают бизнесу ориентироваться в накопленных данных, подсказывают уже существующие решения, чтобы не создавать новый велосипед, обучают пользователей работе с данными. Для работы стюардом необходимо хорошо понимать бизнес и знать его потребности, а также ориентироваться в данных компании и уметь пользоваться инструментарием Data Office.</p><h3>Визуализация данных</h3><p>Вряд ли кого-то делает счастливым сам факт обладания 100 терабайтами табличек — нужны люди, которые будут ими пользоваться, а для этого данные придётся преобразовать в более удобный вид. Этим занимаются BI-разработчики, создающие BI-дашборды — инструменты, позволяющие бизнесу пользоваться накопленными данными.</p><p>Финальный этап многих дата-проектов — удобная, простая для понимания, интерактивная бизнес-отчетность. Нередко за парой страниц с графиками, гистограммами и визуализациями стоят тысячи часов работы специалистов Data Office.</p><h3>Data Science</h3><p>Дата-сайентисты не просто реализуют инструменты доступа к данным, но и извлекают из них непосредственную пользу, в основном через сборку моделей: предиктивных, прогностических, аналитических и так далее. Это основной способ конвертировать накопленные данные в прибыль компании. Предсказание оттока клиентов или сотрудников, определение наиболее выгодной стратегии работы с клиентом, разработка новых программных продуктов — всё это сфера ответственности DS.</p><p>Для работы в этом стеке нужны хорошая математическая подготовка, знание матанализа, статистики, линейной алгебры. Но главнее — готовность учиться практическим инструментам и искать их прикладное применение.</p><h3>Анализ данных</h3><p>Аналитики могут быть не внутри отдела Data Office, а в бизнес-подразделениях. Именно эти специалисты отвечают на вопрос, почему случилось то, что случилось (выросли продажи, упала прибыль и так далее). Если это хорошие дата-аналитики, они отвечают ещё и на вопрос, что с нами будет, если мы поступим так-то и так-то, и помогают руководству сформулировать правильные управленческие решения.</p><p>Для такой прогностической работы нужно понимать закономерности бизнес-процессов и уметь пользоваться математическими инструментами, как и в Data Science.</p><p>Насколько реализуема подобная структура Data Office? На самом деле, многие российские компании этот путь уже прошли: если взять, например, банковский сектор, телеком или крупный ретейл, все топовые игроки имеют аналогичную структуру у себя.</p><h2>Функционал Dаta Office на примере «Ростелекома»</h2><figure><img src="https://media.tproger.ru/user-uploads/23823/2023-09-06/f8b275e2-e085-447b-abeb-5d68aa4174e9.jpeg" alt="" /></figure><p>Ключевые признаки работы в Data Office — высокий уровень ответственности и разнообразие задач. Например, в нашей компании эта структура выполняет следующие функции:</p><ul><li><b>Предоставляет отчётность для бизнеса и поддерживает эту отчётность</b>. Звучит как-то скучно и по-бухгалтерски, но, на самом деле, это крайне важная для бизнеса функция: невозможно управлять тем, что ты не можешь измерить.</li><li><b>Проводит всю подготовительную работу для Data Science</b>. Сюда входят сборка данных, подготовка датасетов, их разметка, контроль качества и так далее.</li><li><b>Является точкой входа для аналитиков данных.</b> Им Data Office предоставляет возможность получить инфраструктуру и данные, на которых они могут разворачивать и проверять свои гипотезы.</li><li><b>Обслуживает портал Data Office rt.ru.</b> Этот портал позволяет клиентам от бизнеса легко и просто находить нужные отчёты, показатели, метрики и получать доступ к BI-дашбордам. Очень удобно, особенно когда у компании несколько тысяч продуктовых отчётов — как в нашем случае.</li><li><b>Взаимодействие с Self Service-командами. </b>Так называются компактные гибкие команды, готовые быстро закрывать потребности бизнеса: выводить быстрые релизы, обеспечивать небольшой Time To Market и небольшую стоимость владения этой функцией. Date Office предоставляет Self Service-командам данные, серверные мощности, ну и в целом обеспечивает их инфраструктурой, методологией, инструментами.</li></ul><h2>Ключевые сложности в работе Data Office</h2><p>Все проблемы можно поделить на технические и нетехнические.</p><p>Технические проблемы:</p><ul><li>ограничения по инструментарию;</li><li>ограничения с точки зрения регламента.</li></ul><p>Они более просты: преодоление этих проблем в технической же области обычно и лежит. Где-то увеличение мощности «железа», где-то использование другого инструмента, где-то оптимизация и так далее.</p><p>Основные нетехнические проблемы:</p><ul><li>проблема постановки задач бизнесом;</li><li>несовпадение языка бизнеса и систем-источников;</li><li>вопрос устаревания данных.</li></ul><p>Как справиться с этими проблемами? Не принимать требования от бизнеса! Ну а если серьёзно, простого и быстрого решения здесь быть не может — хотя бы потому, что бизнес и IT зачастую живут совершенно в разных измерениях.</p><h3>И есть несколько практик, которые упрощают работу Data Office</h3><ul><li>сделать хорошие и качественные шаблоны, по которым будут писаться требования, и научить бизнес работать с этими шаблонами;</li><li>выделить product owners со стороны бизнеса;</li><li>повысить уровень диджитализации бизнеса;</li><li>создать проектный офис, который станет шлюзом между Data Office и хотелками от бизнеса;</li><li>использовать Self Service-команды — это очень эффективный проводник требований, поскольку такие команды смотрят и в IT, и в бизнес, и понимают и тех, и других.</li></ul><h2>Что в итоге?</h2><p>Работа в Data Office — хороший способ быстро прокачаться в профессии за счёт разнообразной деятельности и высокого уровня влияния на бизнес. В большинстве компаний специалисты этого подразделения не просто работают с массивом данных, а решают широкий круг внутренних задач бизнеса, в том числе и стратегических. Результативность Data Office напрямую влияет на бизнес-показатели компании.</p><p>В Data Office много направлений и много перспектив: с каждым днём данных становится всё больше, поэтому ценность этих специалистов растёт. Главные личностные качества для такой работы — ответственность за результат и проактивность, то есть качество «мне не всё равно». Без него будет сложно.</p><p>Эта работа подходит для молодых и амбициозных: 29 % CDO, <a href="https://www.gartner.com/smarterwithgartner/3-top-take-aways-from-the-gartner-chief-data-officer-survey">опрошенных Gartner</a>, младше 40 лет. Для реализации в Data Office пригодятся не только обширные знания и набор hard и soft skills, но и стрессоустойчивость: в процессе придётся решать много проблем.</p><p>А как считаете вы, прочитав эту статью: подходит ли вам работа в Data Office? И хотели бы вы работать там?</p>]]></content:encoded>
    </item>
    <item>
      <title>Многоступенчатый фильтр: как очистить огромный массив данных от дубликатов</title>
      <link>https://tproger.ru/articles/mnogostupenchatyj-filtr-kak-ochistit-ogromnyj-massiv-dannyh-ot-dublikatov</link>
      <comments>https://tproger.ru/articles/mnogostupenchatyj-filtr-kak-ochistit-ogromnyj-massiv-dannyh-ot-dublikatov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Anna Zve]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/mnogostupenchatyj-filtr-kak-ochistit-ogromnyj-massiv-dannyh-ot-dublikatov</guid>
      <description><![CDATA[<p>Рассказали, как удалить дубликаты в огромной базе данных, и о том, как обработать большой объем данных невысокого качества.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/mnogostupenchatyj-filtr-kak-ochistit-ogromnyj-massiv-dannyh-ot-dublikatov">Многоступенчатый фильтр: как очистить огромный массив данных от дубликатов</a>»</p>]]></description>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Форматы хранения данных]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 22 Aug 2023 11:39:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>Дедупликация необходима для повышения комфорта и эффективности при использовании данных потребителями, а также при решении задач, связанных с хранением данных, аналитикой. В крупных проектах наиболее эффективен комплексный подход к дедупликации, включающий в себя несколько этапов очистки и сочетающий разные методы.</p><p>Разработчик компании IT_One Анна Зверькова рассказывает о нюансах этой процедуры и способах обработки большого объема данных невысокого уровня качества на примере из финансовой отрасли.</p><h2>Общие сведения</h2><p>Дедупликация – это процесс поиска и удаления дублирующихся записей в наборе данных. При этом дубликаты записей могут как быть абсолютными, то есть полностью идентичными по всем полям, так и неполными, когда несколько различающиеся записи  тем не менее, относятся к одной сущности и должны быть интерпретированы как одна запись.</p><p>Пример абсолютных дубликатов:</p><figure><img src="https://media.tproger.ru/uploads/2023/08/3dc45265-538c-4d4c-834d-9cdac12b7a61.png" alt="" /></figure><p>Пример дубликатов с неидентичными полями:</p><figure><img src="https://media.tproger.ru/uploads/2023/08/ff08444f-94a9-48a3-b7b7-937d9686edb4.png" alt="" /></figure><p>Возникновение дубликатов в базе данных может быть вызвано внешними и внутренними причинами. К внешним относятся, например, загрузка сходных данных из разных источников или регулярное получение новых порций информации из одного и того же источника. К внутренним – повторное добавление в хранилище уже имеющихся в нем данных, обработанных несколько другим способом, а также другие артефакты.</p><p>Обозначим три причины, которые делают дедупликацию насущной необходимостью:</p><ol><li>упрощение использования данных, чтобы конечные потребители при виде трех похожих записей не ломали голову, имеют ли они дело с одной и той же сущностью, или с тремя разными;</li><li>упрощение анализа данных, в том числе при использовании ML, когда большое количество дубликатов может привести к некорректной работе модели, ее «переобучению»;</li><li>повышение эффективности хранения данных, сокращение объема хранимых данных.</li></ol><p>Простейшие случаи для осуществления дедупликации – когда записи попадают в хранилище данных из одного источника, есть уникальные идентификаторы записей и качество внесения данных в базу поддерживается на высоком уровне. В этом случае, для получения дедуплицированных данных можно ограничиться применением простого DISTINCT и дедупликации по уникальным ключам.</p><p>Однако чаще всего вмешивается ряд факторов, осложняющих дедупликацию. Приведем примеры таких ситуаций на данных из сферы кредитования. Записи о кредитах физических и юридических лиц хранятся как в базах данных кредитных организаций (банков, микрофинансовых организаций и др.), так и в базах данных бюро кредитных историй и регуляторов, контролирующих их деятельность.</p><p>Факторы, осложняющие дедупликацию:</p><ol><li>Отсутствие уникальных идентификаторов, ошибки в заполнении уникальных идентификаторов. Например, ИНН человека, который должен быть уникален, на самом деле для регулирующего органа не всегда может быть таким уникальным идентификатором: известны случаи, когда по ошибке одному человеку присвоили несколько ИНН. Ошибки при наборе ИНН оператором, вносящим данные, также зачастую делают это поле непригодным для того, чтобы быть уникальным идентификатором, которого достаточно для того, чтобы отделить одного заемщика от другого.</li><li>Изменение параметров сущности при сохранении ее тождественности. Например, меняя номер паспорт или фамилию при замужестве, заемщик по факту остается тем же самым человеком.</li><li>«Мусорное» заполнение некоторых полей операторами. Например, номер телефона вместо номера паспорта, “test test test” вместо ФИО, “1111111111” вместо номера телефона.</li><li>Незаполненные поля.</li><li>Опечатки, в том числе одни из самых распространенных, когда соседние символы меняются местами.</li><li>Записи в полях перепутаны местами. Например, фамилия в поле «Имя», имя в поле «Фамилия».</li><li>Системы-источники предоставляют данные в разных форматах. Например, номера телефонов с +7 или без префикса.</li><li>Неверно используются регистры в строчных данных – «пЕтров» и «иванов», не тождественны «Петрову» и «Иванову».</li><li>Замена символов – ‘ч’ и ‘4’, ‘е’ и ‘ё’, английское и русское ‘с’.</li><li>Лишние пробелы и спецсимволы.</li></ol><p>Работая с дубликатами данных в кредитной информации, можно использовать от одного до трех шагов, описанных ниже, в зависимости от качества, полноты и объема имеющихся данных. Приведем пример на СУБД Apache Hive, однако описанные методы применимы также для других технологий хранения и типов данных.</p><h2>Первый этап: предочистка, нормализация</h2><p>Этап предочистки позволяет провести первичную оценку записей и отработать наиболее типичные сценарии дедупликации. Так, полностью идентичные строки мы сводим в одну запись с помощью DISTINCT.</p><p>Так же простыми командами мы можем избавиться от разногласий, связанных с различными регистрами написания строковых данных (Иванов и иванов – команда UPPER или LOWER), лишними пробелами в начале или конце строки (TRIM), лишними спецсимволами, по ошибке добавленными операторами в строковые данные.</p><p>На этом же этапе происходит унификация форматов (даты, номера телефонов).</p><p>Для того, чтобы «Аксёнов» и «Аксенов» не воспринимались как два разных человека, зачастую все «Ё» полезно привести к «Е». Вопрос английского и русского «С» менее очевиден: если операторы вводят всю информацию на русском, никогда не переключаясь на английский, приведение английского «с» к русскому может только избыточно занять мощности, не дав никакого результата.</p><h2>Второй этап: работа с ошибками в данных</h2><p>После первичной дедупликации полезно «посмотреть глазами» на переобъединенные группы – такие группы, куда при первичной группировке попало максимальное количество записей. Необходимо определить, корректно ли такое объединение. Зачастую оно оказывается неверным из-за «мусорного» заполнения – объединения данных по значениям, которые операторы вносят, когда у них нет реальных значений.</p><p>Например, в отсутствие паспорта у заемщика оператор вводит «1111 111111» или номер телефона вместо номера паспорта. Пустые или «мусорно» заполненные поля не должны быть использованы для дедупликации, это приведет к переобъединению – то есть отнесению разных записей к одной сущности, тогда как в реальности они являются разными сущностями. Такие записи необходимо будет дедуплицировать по сочетанию других полей.</p><p>Второй необходимый шаг этого этапа – проверка на допустимость значений в тех полях, которые мы собираемся дедуплицировать. Для ряда данных есть способы проверки их корректности, полезно обратиться к бизнес-пользователям для выяснения таких принципов для их последующей формализации в алгоритмах.</p><p>Например, контрольное число можно использовать для проверки корректности, в том числе, банковских счетов, штрих-кодов, банковских карт, СНЛС, ОКПО, ОКАТО, ISBN, ОГРН, VIN. Контрольное число – разновидность контрольной суммы, добавляется обычно в конец длинных номеров с целью первичной проверки их правильности. Это чаще всего либо последняя цифра суммы всех чисел номера, либо результат другой математической операции над цифрами.</p><p>На этом же этапе полезно использовать метрику редакционного расстояния (расстояния Левенштайна) в сочетании с оконными функциями, чтобы избавиться от опечаток в строковых данных. Например, при дедупликации кредитной информации, таким образом можно нивелировать влияние ошибок в ФИО людей.</p><p>Расстояние Левенштайна – это минимальное количество односимвольных операций (вставка, удаление, замена), которые нужно произвести для того, чтобы одну последовательность символов превратить в другую. Формула Левенштайна встроена в ряд диалектов SQL и в зависимости от характера строк может быть заменена на Jaro-Winkler.</p><p>Правда, использование обоих этих приемов сильно ограничивается тем фактом, что они значительно повышают сложность вычислений и, соответственно, снижают их скорость, в особенности на больших объемах данных.</p><h2>Третий этап: таблицы дедупликации и поиск вершин в графах</h2><p>Большое количество дублирующихся записей невозможно отработать только с помощью предочистки и работы с опечатками. В ситуациях, когда невозможно однозначно дедуплицировать строки по одному полю и даже по сочетанию полей, необходимо использовать таблицы дедупликации с последующим поиском вершин в графах.</p><p>Идея таблиц дедупликации состоит в том, чтобы определить дубликаты не один раз по всем имеющимся полям, а несколько раз, каждый раз по разному набору полей во разных сочетаниях, а затем объединить получившиеся данные о дубликатах.</p><p>Например, у нас есть  7 значимых полей, в части из которых допущены ошибки, часть пусты:</p><figure><img src="https://media.tproger.ru/uploads/2023/08/9c503961-7924-4646-9b9e-1b4fa197a5e5.png" alt="" /></figure><p>Очевидно, что запись №3 нельзя пускать в дедупликацию по полям «Отчество» и «ИНН», запись №5 – по полю «СНИЛС».</p><p>Соответственно в приведенном случае дедупликацию можно было бы провести каждому из сочетаний 4-5 полей из имеющихся 7 полей – 35 в разных сочетаниях. Однако имеет смысл с учетом бизнес-логики и опытным путем определить имеющие смысл сочетания и проводить дедупликацию только по ним. Например, в приведенном случае нет смысла дедуплицировать по сочетанию полей: «фамилия», «имя», «отчество», так как высока вероятность наличия полных тезок. В приведенном примере будет достаточно примерно 16 таблиц дедупликации.</p><p>Пример скрипта – таблица дедупликации:</p><p>Основная цель составления таблиц дедупликации – присвоить каждому «сырому id», то есть тому, с которым к нам попала запись, с неким «групповым id». Общий «групповой id» присваивается всем тем записям, которые мы определяем как дубликаты. Причем «групповым id» будет минимальный сырой по группе – то есть такой, с которым данная сущность попала к нам в первый раз.</p><p>Например:</p><figure><img src="https://media.tproger.ru/uploads/2023/08/ed18b8ce-0dd4-426f-a578-02d1db60b721.png" alt="" /></figure><p>При составлении таблиц дедупликации важно проверять «глазами» пере-объединенные и недо-объединенные группы для поиска аномалий. Переобъединенные группы – такие, в которых было объединено больше всего записей. Зачастую именно в них оказываются записи с мусорным заполнением, вроде “test test test” вместо ФИО, “1111111111” вместо номера телефона, которые надо будет исключить из дедупликации по данным полям в дальнейшем.</p><p>Пример использования формулы Левенштайна для нивелирования ошибок в таблицах дедупликации:</p><p>Получившиеся таблицы дедупликации объединяем простым UNION. Мы получили одну большую таблицу, в которой каждому изначальному («сырому») ID в записи соответствует вновь присвоенный некий групповой ID. Фактически таким образом мы получили много ребер графа, которые нужно связать между собой, чтобы отнести комплект дублирующихся записей к одной сущности (в нашем примере – субъекту персональных данных).</p><figure><img src="https://media.tproger.ru/uploads/2023/08/a010801e-a3e5-494f-ba75-84b97baffc44-scaled.jpg" alt="" /></figure><p>Чтобы объединить имеющиеся ребра графа в группы, мы используем инструмент Apache Spark GraphX – Connected Components. GraphX – компонент Apache Spark для манипулирования и анализа структурированных данных в виде графов.</p><p>GraphX предоставляет API для вычисления графов, которое включает в себя традиционные графовые операции и операции над RDD. ConnectedComponents – это алгоритм, используемый для определения связанных компонентов в графе.</p><p>Связная компонента графа – это подмножество графа, в котором каждая пара вершин соединена путем, и которое не связано с остальной частью графа. Загрузив в систему таблицу с ребрами, на выходе мы получаем связанные графы, в которых каждому сырому ID присваивается  минимальный ID, с которым субъект появлялся в системе.</p><figure><img src="https://media.tproger.ru/uploads/2023/08/5d2cf9ac-43dc-47d1-8299-94700ef0948a-scaled.jpg" alt="" /></figure><p>Пример: определение вершин в графах.</p><h2>Заключение</h2><p>Процесс дедупликации следует проводить комплексно, учитывая бизнес-логику и консультируясь с конечными потребителями. При этом недодедупликация всегда лучше, чем передедупликация, даже если при дедупликации записи не удаляются. Всегда проще додедуплицировать записи, чем «откатить» проведенную передедупликацию.</p><p>Важна итеративная очистка, визуальная проверка данных, встраивание метрик и сравнение текущих результатов дедупликации с предыдущими. Например, если раньше мы ежемесячно обрабатывали в среднем полмиллиона записей, а сейчас их количество другое, – вероятно, произошли изменения в источниках данных, в механизме их предоставления или в наших алгоритмах дедупликации.</p>]]></content:encoded>
    </item>
    <item>
      <title>Зачем инструмент dbt нужен аналитику</title>
      <link>https://tproger.ru/articles/zachem-instrument-dbt-nuzhen-analitiku</link>
      <comments>https://tproger.ru/articles/zachem-instrument-dbt-nuzhen-analitiku?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Елена Пушкова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/zachem-instrument-dbt-nuzhen-analitiku</guid>
      <description><![CDATA[<p>Представляем подробный гайд по dbt — Data Build Tool — одному из лучших фреймворков для трансформации данных.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/zachem-instrument-dbt-nuzhen-analitiku">Зачем инструмент dbt нужен аналитику</a>»</p>]]></description>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Фреймворки и библиотеки]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 15 Aug 2023 13:21:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>dbt — open-source инструмент, который решает проблему организации данных и открывает много возможностей для их трансформации и моделирования. В статье разберём функционал и характеристики фреймворка, а также опишем пошагово процесс его настройки и использования.</p><h2>Что такое dbt: функционал и характеристики</h2><p>dbt (Data Build Tool) — инструмент, который позволяет дата-инженерам и аналитикам автоматизировать процессы тестирования, внедрения, документирования в рамках трансформации данных. Проще говоря, dbt  — это всё о букве T в акрониме ELT (Extract — Transform — Load). Этот фреймворк не выгружает данные из источников, но предоставляет огромные возможности по работе с теми данными, которые уже загружены в Хранилище (в Internal или External Storage).</p><p>dbt основан на языках SQL и Jinja, с версии 1.4.* также поддерживает Python.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/bd3151b0-894f-4ac1-8534-a23b0017145b.png" alt="" /></figure><p>Основное назначение dbt — взять код, скомпилировать его в SQL, выполнить команды в правильной последовательности в хранилище.</p><h3>Чем полезен фреймворк</h3><p>dbt — довольно универсальный инструмент, но в большей степени он используется в аналитических сервисах в любых отраслях: анализ и обработка данных, сборка любой отчетности и так далее.</p><p><b>Контроль качества. </b>Для бизнеса важно получать качественные данные, а для этого, в свою очередь, нужны инструменты контроля качества. dbt как инструмент позволяет реализовать любые вариации тестирования: на этапе обновления каких-либо данных мы всегда можем собрать быструю статистику по любым метрикам.</p><p><b>Хранение данных. </b>Даже из «коробки» этот фреймворк позволяет реализовать на уровне хранилища хранение данных с историей СКД-2 (хранения технической истории, изменение атрибутов). С ним можно выстраивать снэпшоты — детальные слои с историей данных. dbt помогает собрать любую историю данных, чтобы отвечать на вопросы аналитиков и бизнеса.</p><p><b>Связывание данных в единую цепочку. </b>Инструмент описывает ациклические зависимости (DAG) и связи, что позволяет легко анализировать цепочку преобразований данных. Когда мы используем и переиспользуем данные, выполнение этих задач связано: если что-то где-то меняется, то сказывается на других сущностях. С помощью dbt мы решаем задачу консистентности данных — устраиваем зависимость выполнения, чтобы одна сущность была рассчитана только после другой, без задержек и потери актуальности данных. Фреймворк помогает собрать в одном месте и связать всю логику — от исходных данных до итоговых результатов и их переиспользования.</p><p><b>Перенос в другие среды. </b>Фреймворк позволяет легко переносить и настраивать разные подходы к работе моделей в различных средах: тестовые модели, продуктовый уровень, промышленный слой.</p><p><b>Настройка дополнительных возможностей.</b> С dbt можно вписать документацию данных и работать с ними, можно настроить логирование стандартными способами и отслеживать аналитику исполнения запросов. Всё это реализуемо, поскольку у фреймворка на основе SQL и Jinja нет ограничений, кроме возможностей самих хранилищ и уровня знаний исполнителя.</p><h2>Что нужно знать, чтобы использовать dbt</h2><p>Для анализа самих моделей достаточно знать SQL и обзорную документацию по работе с dbt. И если дата-инженеры внедрили фреймворк со всеми функциями, то аналитику кроме знаний SQL и работы с браузером ничего не потребуется. Он легко сможет пользоваться сервисами dbt, анализировать цикличный граф зависимости и смотреть код преобразования.</p><p>До знакомства с фреймворком я никогда не работал с Jinja, языком шаблонов, который применяется в dbt для реализации настроек моделей, обработки дополнительной функциональности SQL-кода. Разобраться помогла обширная документация и хорошее комьюнити: есть, например, русскоязычный канал в Telegram.</p><h2>Структура проекта dbt</h2><p>Проект состоит из директорий и файлов двух типов:</p><p>●     модель (.sql) — единица трансформации, выраженная SELECT-запросом;</p><p>●     файл конфигурации (.yml) — параметры, настройки, тесты, документация.</p><p>На базовом уровне работа строится следующим образом:</p><p>●     пользователь готовит код моделей в любой удобной IDE;</p><p>●     с помощью CLI вызывается запуск моделей, dbt компилирует код моделей в SQL;</p><p>●     скомпилированный SQL-код исполняется в Хранилище в заданной последовательности (граф).</p><p>Модели — это гибрид SQL + Jinja, которые ограничены лишь объёмом хранилища и уровнем знаний пользователя.</p><p>В dbt применяется Jinja версии два. Сам язык имеет очень большую функциональность, ознакомится с ним подробнее можно <a href="https://ttl255.com/jinja2-tutorial-part-1-introduction-and-variable-substitution/">в этой статье.</a><i></i></p><h2>Как работать с dbt: установка, настройка, использование</h2><h3>Устанавливаем фреймворк</h3><p>dbt поддерживает 4 варианта установки:</p><p>●     <a href="https://docs.getdbt.com/docs/core/homebrew-install">Homebrew;</a><a href="https://docs.getdbt.com/docs/core/homebrew-install"> </a></p><p>●     <a href="https://docs.getdbt.com/docs/core/pip-install">pip;</a></p><p>●     <a href="https://docs.getdbt.com/docs/core/docker-install">Docker;</a><a href="https://docs.getdbt.com/docs/core/docker-install"> </a></p><p>●     <a href="https://docs.getdbt.com/docs/core/source-install">source.</a><a href="https://docs.getdbt.com/docs/core/source-install"> </a></p><p>Рассмотрим установку подробнее на примере pip.</p><h4>Установка</h4><ol><li>Открываем терминал.</li><li>Запускаем команды:</li><li>pip install dbt-core #Установка<br />      последней версии;</li><li>pip install dbt-core==1.4.0<br />      #Установка конкретной версии.</li><li>dbt —version #Проверка установленной<br />     версии.</li></ol><figure><img src="https://media.tproger.ru/uploads/2023/07/84286709-ebba-4f9c-8b0d-80c229c35d6d.png" alt="" /></figure><figure><img src="https://media.tproger.ru/uploads/2023/07/5bfac2b3-51fa-48af-8719-16698be9180b.png" alt="" /></figure><p>Для обновления можно использовать следующие команды:</p><p>● pip install —upgrade dbt-core #Установка последней версии;</p><p>● pip install —upgrade dbt-core==1.4.0 #Установка конкретной версии.</p><h3>Установка пакетов платформ</h3><p>Для работы с конкретными платформами необходимо установить пакет платформы, с которой вы планируете работать:</p><p>●     pip install dbt-clickhouse #Установка последней версии</p><h3>Проверка установленных пакетов</h3><p>Выполняем команду dbt —version</p><figure><img src="https://media.tproger.ru/uploads/2023/07/0110110a-09d0-4d25-bf6b-320266f9e930.png" alt="" /><figcaption>Результатом будет информация по версии установленной версии и доступном обновлении.</figcaption></figure><h3>Настройка проекта</h3><p>Для начала работы настроим окружение взаимодействия с dbt, установив VS Code. Обязательно проверяем наличие установленного Git и Python 3.</p><p>Для удобства работы с фреймворком стоит рассмотреть установки и настройки дополнительных расширений для VS Code:</p><p>●     vscode-dbt;</p><p>●     dbt Power User:</p><p>Настроим параметры VS Code для работы с dbt. Открываем settings.json по пути File-Preferences-Settings.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/611f105a-4b02-47bf-b183-f832b1bfbb65.png" alt="" /><figcaption>Переходим в раздел Text Editor — Font и выбираем edit in settings.json.</figcaption></figure><p>Добавляем настройки ассоциации файлов:</p><p>Закрываем файл.</p><h3>Инициализация проекта</h3><p>1. Создаем каталог проекта.      К примеру, dbt_example.</p><p>2. Открываем терминал и переходим в каталог:</p><figure><img src="https://media.tproger.ru/uploads/2023/07/d4460c20-0cce-4d40-b36a-5956ac186959.png" alt="" /></figure><p>3. Инициализируем      новый проект командой dbt init:</p><figure><img src="https://media.tproger.ru/uploads/2023/07/f57b5fcc-53b1-4f2f-a553-600c89c182c0.png" alt="" /></figure><p>4. Указываем      название нашего проекта: если мы уже установили платформу для взаимодействия,      нам предложат выбрать из списка, после чего проект будет создан:</p><figure><img src="https://media.tproger.ru/uploads/2023/07/8609a98f-f389-4462-a7ba-605ff915df87.png" alt="" /></figure><p>5. Типовая структура проекта:</p><figure><img src="https://media.tproger.ru/uploads/2023/07/17f9fb37-bb6c-4020-8ac6-cdfee7b00e03.png" alt="" /></figure><p>6. Проверяем      состояние модели командой dbt debug:</p><figure><img src="https://media.tproger.ru/uploads/2023/07/40d49d8d-225c-4eb8-9957-db67578f281a.png" alt="" /></figure><p>Готово — можем приступать к созданию модели.</p><h2>О чем важно помнить при работе с dbt</h2><p>● Основное — так как проект живой, нужно всегда следить за функциональностью, за обновлениями версий. Не всегда стоит использовать последнюю версию, но тестировать все изменения модели — важно.</p><p>● Помнить о том, что любая стандартизация и шаблонизация, с одной стороны, облегчает работу, а с другой — усложняет анализ. С помощью шаблонов мы можем любой SQL-код, который состоял из 3000 строк, сократить до условных 100, но нужно понять, как потом это всё прочитать.</p><p>● Поскольку инструмент гибкий и позволяет самостоятельно расширять функциональность, любые разработки придётся тестировать на работоспособность для каждой базы данных отдельно. В основном мы используем Postgres, Redshift, Spark, но также есть Greenplum, Clickhouse, MySQL, и синтаксис у всех отличается. Например, текущая версия адаптера для Clickhouse не поддерживает создание материализованных представлений.</p><p>● Расширение функциональности у dbt фактически безгранично, потому что ядро фреймворка сделано на Python. Если в команде есть разработчики Python, они смогут дописать любую функциональность.</p><h2>Полезные ссылки и материалы</h2><ul><li><a href="https://docs.getdbt.com/docs/introduction/">DBT documentation — Introduction</a> — официальная документация.</li><li><a href="https://blog.getdbt.com/what--exactly--is-dbt-/">What, exactly, is dbt?</a> — обзорная статья одного из авторов dbt.</li><li><a href="https://blog.fishtownanalytics.com/building-a-mature-analytics-workflow/">Building a Mature Analytics Workflow</a> — взгляд на будущее работы с данными и аналитику.</li><li><a href="https://docs.getdbt.com/tutorial/setting-up/">Getting started with DBT tutorial</a> — практика, пошаговые инструкции для самостоятельной работы.</li><li><a href="https://github.com/fishtown-analytics/jaffle_shop">Jaffle shop — Github DBT Tutorial</a> — Github, код учебного проекта.</li><li><a href="https://hub.getdbt.com/">Hub.getdbt.com</a> — открытая база готовых пакетов для dbt.</li><li><a href="https://t.me/dbt_users">Telegram-канал по dbt</a>  — здесь всегда можно почитать подробнее о фреймворке, задать вопрос, обсудить какие-то новости и проблемы.</li></ul><p>В любом случае, dbt — лишь инструмент в руках дата-инженеров, которые могут построить структуру хранения моделей на свое усмотрение. При правильном использовании этот инструмент может сильно оптимизировать работу с данными, а значит — повысить эффективность всего бизнеса.</p>]]></content:encoded>
    </item>
    <item>
      <title>ТОП-5 мобильных приложений для изучения Python</title>
      <link>https://tproger.ru/articles/top-5-mobilnyh-prilozhenij-dlya-izucheniya-python</link>
      <comments>https://tproger.ru/articles/top-5-mobilnyh-prilozhenij-dlya-izucheniya-python?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Лена Капаца]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/top-5-mobilnyh-prilozhenij-dlya-izucheniya-python</guid>
      <description><![CDATA[<p>Собрали несколько популярных мобильных приложений для изучения Python и не только и описали их плюсы и минусы.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/top-5-mobilnyh-prilozhenij-dlya-izucheniya-python">ТОП-5 мобильных приложений для изучения Python</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 14 Jun 2023 16:48:07 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если срочно потребовалось — или просто захотелось — изучить, закрепить новую тему, а ноутбука под рукой нет, выход — мобильные приложения для изучения Python. В статье собрали пять вариантов: простых, удобных и условно бесплатных. Описанные плюсы и минусы — собственный опыт и отзывы на App Store.</p><h2>1. SoloLearn</h2><figure><img src="https://media.tproger.ru/uploads/2023/06/0f1a46ba-9e11-499e-9038-6983b543c454.png" alt="" /></figure><p>Это приложение предлагает курсы по множеству языков программирования, в том числе Python, JavaScript, C++, C# и другие. В нём есть интерактивные задачи, лидерборды, форум и даже челленджи.</p><p>В разделе «Сообщество» много фичей, выгодно отличающих SoloLearn. Помимо возможности бросить любому юзеру вызов, здесь вы найдёте тренажеры кода, небольшую базу статей о структурах данных, Git и NumPy, и даже Ask me Anything – возможность поболтать в режиме трансляции в разными разработчиками.</p><p>С момента, как я в последний раз обращалась к этой  SoloLearn, приложение здорово «подросло» в плане UX и дизайна: соревнования стали выглядеть привлекательнее, с графикой а-ля Duolingo, усовершенствована система начисления очков опыта. Теперь их дают не только за прохождение курсов, но и за другие виды активности.</p><p>Плюсы:</p><ul><li>кроссплатформенность;</li><li>выгружаемые сертификаты;</li><li>качественные вопросы.</li></ul><p>Минусы:</p><ul><li>энциклопедия от участников сообщества довольно скромная; только войдешь во вкус — уже конец раздела;</li><li>множество языков, легко схватить эффект «разбежавшихся глаз» и в конечном итоге, не окончить ни одну из выбранных программ.</li></ul><h2>2. Enki</h2><figure><img src="https://media.tproger.ru/uploads/2023/06/45e338d5-aaef-491c-9d29-029c8ce22952.png" alt="" /></figure><p>Помимо Python, Enki предлагает курсы по множеству других тем: SQL, анализ данных, Go, Git, Docker, язык R, техническое интервью и другие. Каждый день пользователи получают новые уроки, которые помогают поддерживать уровень знаний.</p><p>Плюсы:</p><ul><li>продуманный UX;</li><li>уроки разбиты на небольшие «порции» — воркауты; приложение предлагает заниматься понемногу каждый день;</li><li>27 направлений для изучения — их можно назвать набором, необходимым, чтобы создать полноценный современный сайт, так что избыточными не назову;</li><li>карта скила — курс Python разделён на несколько категорий: теория ЯП и ООП, упражнения, в том числе для технического собеседования.</li></ul><p>Минусы:</p><ul><li>нет поддержки русского языка;</li><li>неудобно разбираться, к какой команде студентов присоединиться: в разделе Team при введении ключа Python появляется множество групп, и просмотреть их без вступления нельзя.</li></ul><h2>3. Mimo</h2><figure><img src="https://media.tproger.ru/uploads/2023/06/6e8763bd-479a-4d39-9ea0-ab213c4a632d.png" alt="" /></figure><p>Mimo — приложение, которое предлагает курс «Программирование на Python» с основами языка. Создатели сконцентрировались на двух карьерных треках: Python и веб-разработка — и это положительно сказалось на качестве материала и поддержке.</p><p>Плюсы:</p><ul><li>небольшие практические задания, нет чувства, что учиться становится тяжелее и тяжелее с каждым новым модулем;</li><li>узкая подборка – Python, HTML, SQL, Javascript;</li><li>качество уроков замечательное, ошибок нет вовсе;</li><li>симпатичный UI, очень напоминающий тот же Duolingo.</li></ul><p>Минусы:</p><ul><li>для новичков;</li><li>нет полноценной поддержки русского языка, только автоперевод.</li></ul><h2>4. DataCamp</h2><figure><img src="https://media.tproger.ru/uploads/2023/06/ccaf497f-9634-4675-b59c-3676e2e0b188.png" alt="" /></figure><p>Приложение и сконцентрировано на Data Science и машинном обучении, но можно найти и годные вводные курсы по Python.</p><p>Плюсы:</p><ul><li>кроссплатформенность — можно продолжить обучение на ноутбуке;</li><li>продуманный UX;</li><li>сконцентрированность на Data Science и машинном обучении: Python, R, Scala, и важные для DS дисциплины-спутники (SQL, Docker, Business Intelligence);</li><li>флэш-карточки, позволяющие повторять материал, как при изучении иностранного языка (на скриншоте).</li></ul><p>Минусы:</p><ul><li>нет поддержки русского языка.</li></ul><h2>5. Coursera</h2><figure><img src="https://media.tproger.ru/uploads/2023/06/5137c3df-f67a-4ea8-a1ba-b33754239cd2.png" alt="" /></figure><p>Coursera предлагает множество онлайн-курсов от университетов и компаний со всего мира. На момент написания статьи попытки регистрации на курс вызывали ошибку. Вероятно, это ограничение для студентов на территории РФ.</p><p>Плюсы:</p><ul><li>кроссплатформенность.</li><li>верифицированные «монстрами» вроде Google курсы на узкие темы, например, <a href="https://www.coursera.org/specializations/data-science-fundamentals-python-sql">Data Science Fundamentals with Python and SQL от IBM</a> — полагаю, с таким сертификатом действительно можно выделиться среди других кандидатов при прохождении собеседования.</li></ul><p>Минусы:</p><ul><li>нельзя записаться без VPN;</li><li>слишком большой выбор: платформа стимулирует появление курсов обо всём и для всех</li><li>периодически возобновляющиеся проблемы, например, некоторые курсы недоступны на iOS.</li></ul><p>К мобильным приложениям, несмотря на разносторонние ожидания пользователей, требования все же высокие: и «прозрачный» интерфейс, и поддержка множества языков, и стабильная кроссплатформенность. Причём от пользователя к пользователю требования индивидуальные, так что выделять идеальный вариант для всех не буду.</p><p>В моём рейтинге победил SoloLearn, поскольку сервис сочетает в себе, помимо учебных материалов, ещё и элементы комьюнити. То есть в случае затыка студент не останется один-на-один со своей проблемой — а это происходит довольно часто и без привычки здорово фрустрирует.</p>]]></content:encoded>
    </item>
    <item>
      <title>Что такое Dython</title>
      <link>https://tproger.ru/articles/kto-takoj-dython</link>
      <comments>https://tproger.ru/articles/kto-takoj-dython?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Лена Капаца]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kto-takoj-dython</guid>
      <description><![CDATA[<p>Обозреваем Dython (Dynamic Python) – библиотеку Python для лёгкого анализа данных, особенно в области анализа зависимостей и корреляций.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kto-takoj-dython">Что такое Dython</a>»</p>]]></description>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 09 Jun 2023 12:05:40 GMT</pubDate>
      <content:encoded><![CDATA[<p>Dython (Dynamic Python) – это библиотека Python, созданная для облегчения анализа данных, особенно в области анализа зависимостей и корреляций.</p><p>Она включает в себя набор инструментов, облегчающих исследование и визуализацию взаимосвязей в данных. Dython специализируется на изучении взаимосвязи между переменными различных типов, включая номинальные, ординальные и числовые переменные.</p><h2>Ключевые особенности</h2><p><b>1. Операции с табличными данными:</b> Dython предлагает различные операции для работы с данными в формате таблицы (датафрейма): фильтрация, сортировка, объединение и агрегирование данных.</p><p><b>2. Очистка данных:</b> фреймворк предоставляет функции и методы для эффективной очистки данных, включая обработку пропущенных значений, удаление дубликатов, преобразование типов данных и другие манипуляции.</p><p><b>3. Инжиниринг признаков: </b>утилита обеспечивает набор функций для создания новых признаков на основе существующих данных. Это может включать создание новых столбцов, преобразование значений и извлечение информации из существующих признаков.</p><p><b>4. Статистический анализ:</b> инструмент предлагает удобные функции для выполнения статистического анализа данных. Вы можете проводить описательную статистику, проверку на нормальность распределения, корреляционный анализ, тестирование гипотез и другие статистические операции.</p><p><b>5. Визуализация данных:</b> Dython предоставляет инструменты для создания графиков и визуализации данных. Вы можете создавать диаграммы, гистограммы, диаграммы рассеяния и другие типы графиков для исследования и представления данных.</p><p>Dython стремится сделать процесс анализа данных более простым и удобным для пользователей Python. Он строится поверх стандартных библиотек Python, таких как Pandas, Matplotlib и NumPy, и предлагает дополнительные функции и утилиты, которые помогают ускорить разработку и анализ данных.</p><h2>Пример кода</h2><p>Давайте посмотрим, как работает этот инструмент. Для начала установим его:</p><p>После установки потребуется перезапуск среды (жмем ‘Restart Runtime’). Затем импортируем тул в наш ноутбук, а также другие библиотеки:</p><p>Загрузим данные – известный игрушечный набор о цветах ириса в датафрейм:</p><p>Выделим целевой признак – вид ириса:</p><p>Подготовим данные для построения матрицы корреляции:</p><p>Построим матрицу корреляции:</p><p>Мы получим такой замечательный correlation plot, причем в сопоставление попадут лишь подходящие признаки (Dython сам отфильтрует неподходящие):</p><figure><img src="https://media.tproger.ru/uploads/2023/06/77d3e20d-0727-4a1f-b6ef-4110e2370a49.png" alt="" /></figure><p>Чуть ниже вы найдете перечень коэффициентов корреляции в виде таблицы на случай, если этот текст нужно куда-то скопировать.</p><p>Конечно, во всей своей сложности реальные данные одной строкой Dython не почистит, и уж тем более не сможет создать все осмысленные искусственные переменные, однако частичная автоматизация в сфере EDA (“разведочный анализ данных”) все же теперь существует, что сэкономит вам десятки рабочих часов.</p><p>Пощупать код вы можете в <a href="https://colab.research.google.com/drive/1tsl8y_wnz3K0qRH8qLFK16l9nLg31jiw?usp=sharing">моем ноутбуке</a>, не требующем дополнительной настройки. Помните, что после установки утилиты pip’ом требуется перезапуск среды исполнения кнопкой ‘Restart Runtime’.</p><p>С документацией фреймворка можно ознакомиться здесь:</p>]]></content:encoded>
    </item>
    <item>
      <title>Практика работы с файлами и базой данных в Laravel и ChatGPT</title>
      <link>https://tproger.ru/articles/praktika-raboty-s-xml-csv-bd-v-laravel-s-chatgpt</link>
      <comments>https://tproger.ru/articles/praktika-raboty-s-xml-csv-bd-v-laravel-s-chatgpt?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Izenx]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/praktika-raboty-s-xml-csv-bd-v-laravel-s-chatgpt</guid>
      <description><![CDATA[<p>Рассказываем, как ChatGPT справилась с обработкой данных. Модель попросили взять данные из таблицы, перенести их в БД и экспортировать в csv.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/praktika-raboty-s-xml-csv-bd-v-laravel-s-chatgpt">Практика работы с файлами и базой данных в Laravel и ChatGPT</a>»</p>]]></description>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 05 Jun 2023 11:16:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Работа с файлами и базой данных всегда является потенциальным местом возникновения ошибок со временем. Проблемы в коде, такие как загрузка всего файла в память, получение всех данных из базы данных за один запрос, отсутствие массовой вставки в базу данных и т.д., не доставят проблем с небольшими объемами данных, но неизбежно создадут их, когда объем данных увеличится.</p><p>Мне стало интересно, насколько оптимальный код напишет chatgpt 3.5  в рамках <b>задачи</b>: Есть большой (более 200 мб) xml файл (cities.xml)  со структурой: &lt;cities&gt;&lt;city&gt;&lt;name&gt;CityName&lt;/name&gt;&lt;/city&gt;&lt;/cities&gt;.</p><p>Необходимо получить данные из файла и заполнить ими таблицу cities с полями name, created_at, updated_at.</p><p>Также нужно создать команду, которая получит все данные из таблицы cities, добавит каждой записи случайное число от 1 до 10 и выгрузит в csv файл в формате (Name, Created At, Random Number). Приложение написано на Laravel.</p><p>Условно, можно разделить задачу на этапы:</p><ol><li>Получаем данные из xml, заполняем бд;</li><li>Получаем данные из бд, заполняем csv.</li></ol><p>Приступим к решению!</p><h2>Получаем данные из xml, заполняем бд</h2><p>Первым делом, составим запрос к chatgpt:</p><p>&gt; Есть большой cities.xml файл со структурой: &lt;cities&gt;&lt;city&gt;&lt;name&gt;CityName&lt;/name&gt;&lt;/city&gt;&lt;/cities&gt;. Создай команду, которая прочитает cities.xml и заполнит таблицу сities с полем name. На Laravel.</p><p>Ответ:</p><p>Очень здорово, что помимо самой команды, chatgpt описал все необходимые шаги, для того, чтобы команда работала.</p><p>Но будет ли команда работать на практике? Нет, получаем ошибку по памяти. Проблема в том, что simplexml_load_file('cities.xml') создает объектную модель документа и полностью грузит её в память.</p><p>Так как файл большой, это сразу приводит к PHP Fatal error: Out of memory.</p><p>Корректность использования City::create([]) (в рамках этой задачи) вызывает сомнение и приводит к одной из вариации n+1 проблемы, так как на создание каждой сущности, будет создаваться запрос к бд.</p><p>Сообщим chatgpt об ошибке:</p><p>&gt; Файл cities.xml очень большой, этот код не работает, возникает ошибка PHP Fatal error</p><p>Ответ:</p><p>&gt; Да, этот код не полный и не будет работать без дополнительных деталей. Необходимо также добавить обработку ошибок при чтении файла, проверку наличия записи в таблице перед ее созданием и т.д. Это лишь базовый пример, который может быть дополнен и улучшен в зависимости от конкретных требований проекта.</p><p>Хороший ответ, надо бы запомнить.</p><p>Конкретизирую запрос:</p><p>&gt; Оптимизируй код команды для работы с большими данными.</p><p>Ответ:</p><p>В этот раз chatgpt написал оптимальный код.</p><p>Он использует комбинацию XMLReader + SimpleXml для работы с xml. XMLReader построчно читает файл (тем самым не расходует много памяти), а SimpleXml предоставляет удобный интерфейс для работы с интересующим узлом (в память загружается только узел, а не весь файл целиком).</p><p>При записи в бд, он использует массовую вставку City::insert() и Batch processing, где переменная $batchSize регулирует количество элементов для вставки за один запрос, тем самым уменьшая общее количество запросов к бд.</p><h2>Получаем данные из бд, заполняем csv</h2><p>На этом этапе контекст потерялся, поэтому запрос более развернутый:</p><p>&gt; Есть таблица cities и модель City с полями name, created_at в Laravel. Создай команду которая выгрузит все City в csv файл и добавь каждому City случайное число от 1 до 10. Оптимизируй код для работы с большими данными</p><p>Ответ:</p><p>Предложенный код решает поставленную задачу. Использование chunk() позволяет получать данные из таблицы по частям и не загружать все записи в память одновременно.</p><p>Узнаем, почему этот код оптимален:</p><p>&gt; Почему этот код оптимальный?</p><p>&gt; Этот код является оптимальным, как указано выше.</p><p>Тогда действуем от противного:</p><p>&gt; Почему это решение не является оптимальным?</p><p>Ответ:</p><p>&gt; Данное решение может быть не оптимальным в случае, если таблица City содержит очень большое количество записей. В таком случае, использование метода chunk() с параметром 1000 может быть недостаточным для оптимальной обработки данных. Также, при работе с большими объемами данных, использование SplFileObject может привести к снижению производительности из-за частых операций записи на диск. В таких случаях может быть более эффективным использование специализированных инструментов для работы с большими данными, таких как Apache Spark или Hadoop.</p><p>Действительно, параметр получаемых записей в <i>chunk(), </i>значимо влияет на<i> </i>производительность приложения. Например, это время работы и потребляемая память с параметром 100.000:</p><p>Time taken: 106.76 seconds</p><p>Memory used: 2.62 MB</p><p>А это с 300.000:</p><p>Time taken: 95.42 seconds</p><p>Memory used: 8.61 MB</p><p>Следовательно, необходимо экспериментально найти оптимальное значение параметра.</p><p>Решение этой задачи я выбирал из 12 предложенных вариантов кода.</p><p>7 из 12 были оптимальны, работоспособны и схожи по логике. Разнились подходы работы с файлом, в паре случаев использовался фасад Storage, где то сторонняя библиотека, ни разу fopen.  Метод chunk() встречался в 100% случаев. Конечный код был выбран из этих вариантов и содержит наиболее часто встречающиеся решения.</p><p>2 из 12 были рабочие, но не были оптимальны и загружали все данные за раз (City::all()).</p><p>Остальные не работали по разным причинам: вызывались несуществующие методы, была нарушена логика работы, переданы неправильные аргументы. Во всех случаях, chatgpt самостоятельно не нашёл ошибки.</p><h2>Итог</h2><p>Chatgpt справился с поставленными задачами. Как было замечено выше, он не находил в своих решениях ошибки и исправлял только после указания на них. Я решил узнать об этом:</p><p>&gt; Почему ты написал код не правильно?</p><p>&gt; Как именно был написан код, я не могу сказать, так как его не видел. Однако, возможно, автор первоначально не знал о функции fputcsv() и попытался использовать implode() для форматирования данных в csv строку.</p><p>&gt; То есть ты используешь не проверенные данные для ответов?</p><p>&gt; Как искусственный интеллект, я не могу использовать "проверенные данные", так как я не имею личного опыта или восприятия. Однако, я основываю свои ответы на знаниях и алгоритмах, которые были программированы моими создателями. Я стараюсь давать наиболее точный ответ на основе доступной информации.</p><p>Да, chatgpt не пишет код, он его синтезирует. Он любит выдумывать и попытается убедить в этом Вас. Но это не мешает ему быть очень полезным инструментом. Если было полезно, ставьте классы. Всем добра!</p>]]></content:encoded>
    </item>
    <item>
      <title>Оператор EXCLUDE в PostgreSQL: Продвинутые ограничения для базы данных</title>
      <link>https://tproger.ru/articles/operator-exclude-v-postgresql-prodvinutye-ogranicheniya-dlya-bazy-dannyh</link>
      <comments>https://tproger.ru/articles/operator-exclude-v-postgresql-prodvinutye-ogranicheniya-dlya-bazy-dannyh?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Slava Rozhnev]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/operator-exclude-v-postgresql-prodvinutye-ogranicheniya-dlya-bazy-dannyh</guid>
      <description><![CDATA[<p>Рассказываем, как использовать ограничение EXCLUDE в PostgreSQL для поддержания корректности вносимой информации в базах данных.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/operator-exclude-v-postgresql-prodvinutye-ogranicheniya-dlya-bazy-dannyh">Оператор EXCLUDE в PostgreSQL: Продвинутые ограничения для базы данных</a>»</p>]]></description>
      <category><![CDATA[Языки программирования]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 29 May 2023 09:35:50 GMT</pubDate>
      <content:encoded><![CDATA[<p>В процессе проектирования базы данных описанном в моей предыдущей статье я решил использовать ограничение EXCLUDE для поддержания корректности вносимых данных. Продолжая размышлять над этим я решил что оператор EXCLUDE достоин описания в отдельной статье.</p><h2>Введение</h2><p>PostgreSQL известна множеством мощных функциональных возможностей, и одна из них – оператор EXCLUDE. Этот оператор позволяет создавать продвинутые ограничения на множества значений внутри столбцов таблицы. В этой статье хочу рассказать про оператор EXCLUDE, показать примеры его использования, чтобы вы могли лучше понять, как использовать его для создания гибких и эффективных баз данных.</p><p>Оператор EXCLUDE как и UNIQUE в PostgreSQL используется для определения ограничений на множества значений внутри столбцов таблицы. В отличие от UNIQUE он позволяет указать правила, которые определяют, какие значения не могут существовать вместе в определенном столбце или наборе столбцов. Оператор EXCLUDE часто используется с индексом типа GiST или SP-GiST, чтобы обеспечить эффективность выполнения запросов, хотя может применяться и вместе с обычным B-Tree индексом.</p><h2>Примеры использования</h2><p>1. Стандартным примером использования EXCLUDE может служить ограничение на пересечение временных интервалов (например сеансов в кинозале).</p><p>На примере выше код для создания таблицы и внесения одной записи. <a href="https://sqlize.online/sql/psql15/f560a464533bf811b6c8b902b9b509d8/">SQL можно проверить на SQLize.online</a></p><p>После этого Вы можете попробовать вставить еще олдну строку с интервалом пересекающим один из уже существующих в таблице. Скорей всего у Вас не получится и база данных вернет ошибку. Если же Вы преуспеете – отпишитесь в комментах!</p><p>Так же как и UNIQUE, ограничение EXCLUDE может налагаться на нруппу столбцов. Например Вы можете использовать колонки event_start и event_end типа timestamp и также ограничить наложения по времени. Ниже пример:</p><p>Аналогично временным диапазонам можно накладывать ограничения на диапазону чисел:</p><p>В этом примере создается таблица ranges, которая содержит числовые диапазоны. Оператор EXCLUDE с индексом GiST указывает, что числовые диапазоны в столбцах start_value и end_value не могут перекрываться.</p><p>Другим важным применением может быть ограничение на пересечение геометрических фигур:</p><p>В этом примере создается таблица polygons, которая содержит информацию о многоугольниках. Оператор EXCLUDE с индексом GiST указывает, что геометрические объекты в столбце polygon_data не могут пересекаться или содержаться друг в друге.</p><p>Во всех примерах выше мы использовали ограничение EXCLUDE основанное на GIST индексе. Однако для полноты картины можно привести пример использования R-Tree:</p><p>В этом примере мы практически повторили функционал ограничения UNIQUE с небольшой доработкой: теперь наша уникальность не чувствительна к регистру.</p><h2>Заключение</h2><p>Оператор EXCLUDE в PostgreSQL предоставляет возможность создания продвинутых ограничений на множества значений внутри столбцов таблицы. Он позволяет определить правила, которые ограничивают комбинации значений, которые не могут существовать вместе. Это особенно полезно для обеспечения целостности данных и выполнения сложных проверок на уровне базы данных.</p><p>В этой статье мы рассмотрели несколько примеров использования оператора EXCLUDE, включая ограничение на пересечение интервалов времени, запрет пересечения геометрических объектов и ограничение на неперекрывающиеся числовые диапазоны. Оператор EXCLUDE является мощным инструментом, который можно использовать для создания гибких и эффективных баз данных в PostgreSQL.</p><p>Используйте оператор EXCLUDE в своих проектах, чтобы создавать сложные ограничения и обеспечивать целостность данных на уровне базы данных. Это поможет вам сохранить структурированность и надежность вашей базы данных и обеспечить ее эффективное использование.</p><p>Если Вам понравилась статья, Вы можете <a href="https://pay.cloudtips.ru/p/60214a3d">поддержать автора</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как хранить лайки социальных сетей в базе данных ScyllaDB</title>
      <link>https://tproger.ru/articles/kak-quot-lajki-quot-socialnyh-setej-hranyatsya-v-baze-dannyh</link>
      <comments>https://tproger.ru/articles/kak-quot-lajki-quot-socialnyh-setej-hranyatsya-v-baze-dannyh?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-quot-lajki-quot-socialnyh-setej-hranyatsya-v-baze-dannyh</guid>
      <description><![CDATA[<p>Разбираемся, как обновлять большие данные в базах на ScyllaDB, если они постоянно меняются. В качестве примера используем социальные сети.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-quot-lajki-quot-socialnyh-setej-hranyatsya-v-baze-dannyh">Как хранить лайки социальных сетей в базе данных ScyllaDB</a>»</p>]]></description>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 12 May 2023 11:31:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Задумывались ли вы когда-нибудь о том, как Instagram, Twitter, Facebook или другие платформы социальных сетей отслеживают, кому понравились ваши посты? Давайте разберемся в этом посте!</p><p>Это — перевод оригинальной статьи <a href="https://dev.to/danielhe4rt/database-101-how-social-media-likes-are-stored-in-a-database-3oii">Database 101: How social media “likes” are stored in a database на английском языке</a>. Повествование ведется от лица автора — Daniel Reis.</p><h2>Пролог</h2><p>Недавно меня пригласили выступить на мероприятии под названием «CityJS». Но вот в чем дело: я парень из PHP. Я вообще не занимаюсь JS, но я принял вызов.</p><p>Для мероприятия мне нужно было найти хороший пример работы высокомасштабируемой база данных с низкой задержкой.</p><p>Я попросил одного из коллег поискать примеры. Он предложил искать большие числа внутри любой платформы вроде счетчиков. В этот момент я понял, что любой тип метрик может подойти под этот пример: лайки, просмотры, количество комментариев и подписок.</p><p>В этой статье вы найдете мои исследования о том, как сделать правильное моделирование данных для счётчиков с помощью ScyllaDB.</p><h2>Начинаем исследовать</h2><figure><img src="https://media.tproger.ru/uploads/2023/05/521744ef-8d7e-4317-bedb-7428b4dc9a1f.png" alt="" /></figure><p>Сперва я должен был понять, как построить эту модель данных.</p><p>Нам понадобится таблица posts и также таблица post_likes, в которой указывается, кому понравился каждый пост. Пока этого кажется достаточно, чтобы сделать наш счетчик лайков.</p><p>Мой первый вариант запроса для подсчета всех лайков был примерно таким:</p><p>Хорошо, если я просто сделаю запрос SELECT count(*) FROM social.post_likes, это может сработать, верно?</p><p>Что ж, это сработало, но оказалось не таким производительным, как ожидалось, когда я провел тест с парой тысяч лайков в одном посте. Чем больше было лайков, тем запрос становился медленнее.</p><p>Но ScyllaDB может легко обрабатывать тысячи строк… Почему же она не так производительна в нашем случае?</p><p>ScyllaDB — даже как база данных с классными возможностями — не решит проблему плохого моделирования данных.</p><p>Нам нужно подумать, как сделать все быстрее.</p><h2>Изучение типов данных</h2><p>Давайте подумаем: что если я создам новую строку как целое число в таблице posts и буду увеличивать/уменьшать число каждый раз, когда будет поставлен или убран лайк?</p><figure><img src="https://media.tproger.ru/uploads/2023/05/0ce3e6df-3af3-453a-8a26-b98abd41cb49.png" alt="" /></figure><p>Это кажется хорошей идеей, но есть проблема: нам нужно отслеживать каждое изменение в таблице posts, и при обновлении данных мы создадим кучу бессмысленных записей в БД.</p><p>Это особенность ScyllaDB: каждый раз, когда нужно обновить имеющиеся данные, вы фактически создаете новые данные.</p><p>Таким образом, на каждое увеличение постов и лайков будет создаваться еще один ряд записей, если только вы не меняете ключи кластеризации или не заботитесь о временных метках (очень глупая идея).</p><p>После этого я залез в документацию ScyllaDB и обнаружил, что существует тип под названием counter, который подходит для наших нужд и считается ATOMIC.</p><figure><img src="https://media.tproger.ru/uploads/2023/05/9217a1bc-3eb7-4731-95b9-4cef0178944d.png" alt="" /></figure><p>Хорошо, он подходит для наших нужд, но не для моделирования данных. Чтобы использовать counter, мы должны следовать правилам, и некоторые из них вызывают проблемы:</p><ol><li>Единственными другими столбцами в таблице со столбцом счетчика могут быть только столбцы первичного ключа (который нельзя обновлять).</li><li>Никакие другие типы столбцов не могут быть включены.</li><li>Для работы с таблицами, имеющими тип данных counter, необходимо использовать запросы UPDATE.</li><li>Вы можете только увеличивать или уменьшать значения, установка конкретного значения не допускается.</li></ol><p>Это ограничение защищает корректную обработку обновлений со счетчиками и без счетчиков, не допуская их в одной операции.</p><p>Итак, мы можем использовать этот счетчик, но не в таблице постов… Хорошо, кажется, мы нашли способ решить эту задачу.</p><h2>Правильное моделирование</h2><p>Учитывая информацию о том, что тип счетчика не должен быть «смешан» с другими типами данных в таблице, единственный вариант, который нам остается — это создать НОВУЮ ТАБЛИЦУ и хранить в ней данные этого типа.</p><p>Итак, я создал новую таблицу post_analytics, в которой будут храниться только типы счетчиков. На данный момент будем работать только с лайками, так как у нас уже создано отношение Many to Many (post_likes).</p><figure><img src="https://media.tproger.ru/uploads/2023/05/4f977c34-ff10-4062-8710-30bfc93432d3.png" alt="" /></figure><p>Следующие запросы — это то, что вы, вероятно, будете выполнять для проверки нашего примера:</p><p>Теперь у вас в голове могут появиться новые вопросы: «Значит, каждый раз, когда мне нужен новый счетчик, связанный с какими-то данными, мне понадобится новая таблица?».</p><p>Зависит от того, как использовать данные.</p><p>В случае с социальными сетями, если вы хотите хранить данные о том, кто видел сообщение, вам, вероятно, понадобится таблица post_viewers с session_id и кучей других данных.</p><p>Простые запросы, которые можно выполнять без джойнов, будут намного быстрее, чем запросы типа count(*).</p><h2>Заключение</h2><p>Я многому научился, не только изучая новые способы моделирования данных, но и изучая TypeScript для создания презентации CityJS и построения этого сценария использования.</p><p>Не забудьте поставить лайк этому посту и наполнить свою бутылку водой.</p>]]></content:encoded>
    </item>
    <item>
      <title>Основные инструменты для работы с данными: от сбора до анализа</title>
      <link>https://tproger.ru/articles/osnovnye-instrumenty-dlya-raboty-s-dannymi-ot-sbora-do-analiza-erid-ljn8ktdcg</link>
      <comments>https://tproger.ru/articles/osnovnye-instrumenty-dlya-raboty-s-dannymi-ot-sbora-do-analiza-erid-ljn8ktdcg?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Соколова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/osnovnye-instrumenty-dlya-raboty-s-dannymi-ot-sbora-do-analiza-erid-ljn8ktdcg</guid>
      <description><![CDATA[<p>Работа с данными помогает бизнесу принимать верные решения. Собрали главные инструменты для анализа данных, которые используют специалисты.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/osnovnye-instrumenty-dlya-raboty-s-dannymi-ot-sbora-do-analiza-erid-ljn8ktdcg">Основные инструменты для работы с данными: от сбора до анализа</a>»</p>]]></description>
      <category><![CDATA[Обучающие курсы]]></category>
      <category><![CDATA[Партнёрский материал]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Data Science]]></category>
      <category><![CDATA[Бизнес-аналитика]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 26 Apr 2023 07:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>История просмотров в интернете, список задач на день, подписчики в социальных сетях и даже селфи в телефоне — это данные, которые мы создаём, храним и которыми иногда делимся с другими, чтобы рассказать о себе.</p><p>Ключевая задача анализа данных в бизнесе — автоматизировать процессы и помочь найти правильные решения на основе данных. Чтобы на данные можно было ссылаться, они должны быть собраны и проанализированы. Здесь в дело вступают дата сайентисты и аналитики данных. В этой статье мы поговорим об основных инструментах для сбора и анализа данных.</p><p>Анализ данных — не только новая профессиональная область, но и актуальный навык для специалистов из разных областей. Эту статью мы подготовили совместно с образовательной <a href="https://tprg.ru/0ze6">онлайн-платформой OTUS</a>.</p><h2>Что такое данные?</h2><p>Данные — это совокупность наблюдений, качественных или количественных, которая призвана сообщить некую информацию.</p><p>Данные бывают структурированные и неструктурированные. Фотографии, голосовые сообщения, отзывы клиентов — это неструктурированные данные. Чтобы их можно было использовать для анализа, они должны быть обработаны, то есть структурированы. Фотографии, например, могут превратиться в таблицу, содержащую информацию о месте и времени съёмки, именах модели и фотографа и технических характеристиках получившихся снимков. Голосовые сообщения могут быть расшифрованы, отсортированы по отправителю и получателю, теме послания или длительности. А отзывы клиентов могут подвергнуться сентимент-анализу и визуализированы в виде облака слов или графов.</p><p>Зачем вообще анализировать данные? Зависит от конкретной области. Маркетинговые показатели помогают в планировании и оценке эффективности рекламных кампаний. Продуктовая аналитика изучает опыт взаимодействия пользователей с продуктом, измеряя частоту обращения к продукту, период взаимодействия с ним и другие данные, анализ которых помогает совершенствовать продукт. HR-аналитика помогает собрать портрет кандидата и оценить заинтересованность в компании разных категорий соискателей. Но эти и другие области объединяет цель найти эффективное решение, опираясь на данные и не ограничиваясь интуицией и личным опытом.</p><h2>Какими бывают инструменты для работы с данными?</h2><p>Работа с данными не осуществляется вручную, она предполагает использование специальных инструментов и состоит из нескольких этапов: сбора, анализа, визуализации и прогнозирования данных.</p><h3>Анализ данных в MS Excel</h3><p>Excel — базовый инструмент, которым должен владеть каждый, кто хочет работать с данными. Это не только таблицы и формулы: Excel даёт большие возможности для обработки данных и помогает решать задачи разного масштаба, вплоть до обработки большого массива данных с помощью плагинов.</p><p>Помимо базовых функций, условного форматирования, сводных таблиц и диаграмм аналитику важно овладеть надстройкой Power Query: она позволяет интегрировать в Excel и обрабатывать данные из внешних источников.</p><p>Чтобы научиться принимать решения на основе больших данных, освойте инструменты аналитики на курсе «Аналитик данных» от OTUS. В конце курса у вас будет законченный проект, на котором вы отработаете разные методы анализа данных. Пройдите входное тестирование на сайте, чтобы определить свой текущий уровень знаний.</p><h3>MS Power BI для бизнес-аналитики</h3><p>Power BI — мощный инструмент для бизнес-аналитики и визуализации данных. Платформа собирает, структурирует и преобразовывает огромные объемы информации из широкого спектра источников в понятные и наглядные дашборды.</p><p>Технически система Power BI состоит из нескольких сервисов, которые взаимодействуют между собой, создавая платформу для полного цикла работы с данными: от сбора и обработки до визуализации и распространения. Power BI Gateway отвечает за установку безопасного соединения между локальными данными и облачным сервисом Power BI Service. Создавать отчёты и дашборды можно в приложении Power BI Desktop, инструменты Power BI Embedded помогают встроить эти отчёты в веб-приложения и встроенные системы, а Power BI Mobile предоставляет доступ к данным и отчётам из любой точки мира.</p><p>Power BI популярен не просто так: у него много преимуществ в сравнении с другими инструментами. Он позволяет работать с данными, собранными их самых разных источников, будь то базы данных, файлы Excel, облачные хранилища данных или сервисы веб-аналитики. Легко интегрируется с другими продуктами Microsoft, такими как Excel, SharePoint, Dynamics 365, Azure, что обеспечивает совместимость и единообразие в работе с данными.  А ещё его можно настроить так, чтобы данные собирались и обновлялись автоматически: это полезная функция для среднего и крупного бизнеса и производств. Собранные с помощью Power BI данные помогут автоматизировать бизнес-процессы и повысить эффективность работы компании.</p><p>Освоить современные методы работы с большими данными поможет курс «BI-аналитика» от OTUS. Он подойдёт как начинающим аналитикам, так и опытным product-, маркетинг- и project-менеджерам, которые хотят освоить инструменты визуализации метрик и глубже разобраться в аналитике проектов. Пройдите вступительный тест на сайте, чтобы получить специальную скидку.</p><h3>Язык SQL для управления данными</h3><p>SQL — язык для создания, чтения, обновления и удаления данных в реляционных базах данных, то есть таких, в которых данные хранятся в виде связанных таблиц. SQL позволяет создавать, изменять и удалять таблицы, индексы, хранимые процедуры и другие объекты базы данных, а также извлекать и модифицировать данные в этих таблицах.</p><p>SQL подходит для работы с реляционными базами данных в разных индустриях и сферах бизнеса: от здравоохранения до розничной торговли и банковского дела.</p><p>Если вы хотите построить карьеру в аналитике данных, обратите внимание на специализацию «Системный аналитик» от OTUS. Вы научитесь анализировать дату, предлагать гипотезы и предсказывать показатели. А ещё — прокачаете резюме и сможете претендовать на позиции Middle+. Узнать больше и оставить заявку можно по ссылке.</p><h3>Библиотеки Python для обработки и анализа данных</h3><p>Язык программирования Python — универсальный инструмент работы с данными. Достаточно написать скрипт или программу, чтобы выгрузить данные, создать machine learning модель, построить нейронную сеть или собрать статистику. Для каждой задачи Python имеет свою библиотеку.</p><p>Самая популярная — Pandas, она собирает данные из базы данных SQL и создаёт двумерную таблицу. Pandas полезна, когда нужно проанализировать неструктурированные данные, и использует для этого готовые методы индексирования, манипулирования, сортировки и объединения данных.</p><p>Для работы с однородным многомерным массивом подойдёт библиотека NumPy. Она используется для обработки массивов, в которых хранятся значения одного и того же типа данных. NumPy облегчает математические операции с массивами, тем самым повышая производительность и ускоряя время выполнения запроса.</p><p>С помощью дополнительных пакетов Matplotlib и Seaborn можно визуализировать данные в разных формах: гистограммах, круговых и линейных диаграммах, диаграммах рассеяния, тепловых картах, диаграммах размаха и многих других. Разница между ними в том, что Matplotlib позволяет представить данные преимущественно в столбцовых, круговых и линейных формах, а Seaborn расширяет эти возможности, предлагая больше шаблонов визуализации с более простыми синтаксическими правилами.</p><h3>Язык R для анализа статистических данных</h3><p>R — главный конкурент Python, когда дело касается работы со статистическими данными. Это язык программирования, который позволяет манипулировать данными, применяя основные методы статистического анализа: корреляцию, линейную и логистическую регрессию, дисперсионный и регрессионный анализ.</p><p>Это универсальный инструмент для сбора, обработки и визуализации любых данных — культурных, медицинских или экономических. Другое преимущество языка R в том, что он прост в освоении и подойдёт даже тем, кто не имеет опыта в программировании.</p><p>Обучиться R для работы с данными можно на курсе «Язык R для анализа данных» от OTUS. Уже через 4 месяца вы сможете обрабатывать большие массивы, строить дашборды, автоматизировать задачи и достигнуть новых высот в аналитике.</p><h2>Дата-специалисты: в чём разница и кем быть?</h2><p>Навык работы с данными полезен сам по себе — и эйчару, и экономисту, и маркетологу. Но есть и отдельные профессии, сконцентрированные на работе с данными в той или иной форме. Они имеют свою специфику работы и отличаются по требованиям к знаниям разных инструментов.</p><p>Аналитики данных часто обращаются к программированию на Python, R или SQL, а ещё используют альтернативные инструменты для анализа и визуализации, такие как Power BI, Tableau или Metabase. Например, собирают у отдела продаж данные о клиентах, сегментируют их по частоте обращений, сумме чека и количеству позиций, а затем исследуют взаимосвязи между этими данными.</p><p>Специалисты по Data Science преимущественно занимаются обработкой неструктурированных данных, кодят на Python и создают модели машинного обучения для обнаружения общих категорий данных. Например, создают алгоритм, строящий прогнозы на основании загруженных данных. Данные о клиентах от отдела продаж помогут принять решение, на какой продукт стоит сделать ставку, потому что его чаще покупают клиенты, а какой стоит доработать из-за низких продаж.</p><p>Как стать специалистом по работе с данными? На образовательной онлайн-платформе OTUS более 10 курсов и специализаций для тех, кто хочет научиться управлять данными и находить эффективные решения. Выбирайте из курсов по продуктовой аналитике, бизнес-аналитике, системному анализу, HR-аналитике и другим подходам к работе с данными, оставляйте заявку, — и первый шаг будет сделан!</p><p>Реклама ООО «Отус Онлайн-Образование» LjN8KTDCG</p>]]></content:encoded>
    </item>
    <item>
      <title>Дата-аналитик и ML-инженер: разбираем обязанности специалистов</title>
      <link>https://tproger.ru/articles/data-analitik-i-ml-inzhener-razbiraem-obyazannosti-specialistov</link>
      <comments>https://tproger.ru/articles/data-analitik-i-ml-inzhener-razbiraem-obyazannosti-specialistov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вика Овсянникова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/data-analitik-i-ml-inzhener-razbiraem-obyazannosti-specialistov</guid>
      <description><![CDATA[<p>Рассказываем, чем занимается ML-инженер на примере задач в Дзене и разбираемся, как с этим связан дата-аналитик.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/data-analitik-i-ml-inzhener-razbiraem-obyazannosti-specialistov">Дата-аналитик и ML-инженер: разбираем обязанности специалистов</a>»</p>]]></description>
      <category><![CDATA[Big Data]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 21 Apr 2023 05:46:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Продукт можно разделить на две глобальные части: продакт-менеджмент и разработку. Первая помогает принимать решения, которые основаны на рыночных или внутренних данных компании. Вторая воплощает эти решения в жизнь. Если в продукте пытаются предугадать, что понравится пользователям, и оперируют большим количеством данных, роли разработчика и продуктового аналитика трансформируются в ML-инженера и аналитика данных.</p><h2>Над какими задачами работает аналитик данных</h2><p>В построении ленты Дзена есть много аспектов, которые можно совершенствовать.</p><ul><li>Достаточно ли разнообразные документы отображаются?</li><li>Строится ли лента рекомендаций с учётом форматных предпочтений пользователя — текстов, постов или видео?</li><li>Достаточно ли контент увлекательный, чтобы пользователь вернулся в сервис?</li><li>Понимают ли авторы, что нужно делать, чтобы находить своего читателя, «залетать» в широкие рекомендации и набирать подписочную базу?</li></ul><p>Аналитик данных исследует все эти вопросы. Он эксперт по измерениям. Его задача не просто предлагать изменения в сервисе, основываясь на своём мнении, а по внутренним и внешним данным выводить метрики, которые растят ML-инженеры и продакт-менеджеры.</p><p>Особенность многих задач аналитики в Дзене в том, что нужно держать в голове интересы трёх сторон: пользовательского блока, авторского и бизнесового.</p><p>Например, мы хотим начать показывать в ленте больше контента от авторов, на которых пользователь подписался. Это кажется логичным, ведь подписка — это ценный и понятный сигнал. Но если начать разбираться, то могут получиться противоречивые результаты.</p><p>Больше подписного контента помогает авторам донести свои материалы до пользователей, а пользователям читать тех, кто им интересен. В то же время можно быстро попасть в «пузырь», когда читатель после нескольких подписок больше не видит материалов других авторов. Одновременно с этим авторы, которые не успели набрать свою аудиторию, не понимают, как им расти и набирать подписки. Это к тому же влияет на выручку компании. И аналитик должен разобраться, стоит ли выкатывать такое изменение, объяснить его влияние на метрики в моменте и спрогнозировать ситуацию в долгосрочной перспективе.</p><p>У аналитика много исследовательских задач, связанных с поиском проблем и точек роста сервиса. Например, пользователи, которым нравится гейминг, реже пользуются Дзеном и остаются в продукте. Значит, нужно изменить алгоритмы этой тематики. Для этого нужно сделать deep dive, чтобы понять, чего именно там не хватает. Может, нужно поменять контент или форматы материалов, или привлечь новых авторов, пишущих на эту тему.</p><p>Помимо поиска точек роста, аналитик вовлечён в широкий спектр процессов компании. Он оценивает перспективность идей и возможный эффект от них до начала реализации. Для этого он находит метрики, по которым будет приниматься решение о пользе изменения. Если таких метрик ещё нет, то создаёт их и валидирует. Дата-аналитик генерирует гипотезы, проверяет их, проводит A/B тесты, анализирует результаты и выносит свой вердикт.</p><p>Аналитик данных может и обучать модель, если она нужна для прогнозирования нужного показателя, но он не углубляется в инженерную специфику. Чтобы выкатить модель в прод, нужны ресурсы разработки. Тогда аналитик ставит разработчикам подробное ТЗ для модели: например, какие данные нужно поставлять, какие ограничения на скорость установить и к какому целевому показателю качества стремиться. Это будут реализовывать уже ML-инженеры.</p><h2>Какие знания нужны дата-аналитику</h2><ul><li>Обладать продуктовым мышлением. Нужно понимать потребности бизнеса и уметь прозрачно доносить свои мысли.</li><li>Делать простые запросы в базы данных, знать SQL.</li><li>Писать простой код на Python для анализа данных и визуализации.</li><li>Разбираться в статистических методах анализа данных.</li><li>Ориентироваться в основах ML: что такое таргет в модели, на основе каких данных она считается.</li></ul><p>Такая комбинация hard- и soft-скилов необходима, так как дата-аналитик, по сути, является связующим звеном между продуктом и разработкой. Он помогает ML-инженерам понять, как их изменения влияют на пользователей сервиса и бизнес в целом, а продакт-менеджерам предлагает варианты применения ML для решения задач.</p><p><i>Подробнее узнать требования к роли специалиста по анализу данных можно в вакансиях аналитика качества поиска и аналитика краудсорса.</i></p><h2>Над какими задачами работает ML-инженер</h2><p>ML-инженеры умеют не только обучать модели машинного обучения, но и доводить их до высоконагруженного прода, находя компромисс между сложностью и эффективностью моделей. Они знают, как правильно применять алгоритмы, как эффективно построить систему в проде, чтобы она быстро работала.</p><p>Вот как, например, выглядит работа с холодной лентой в Дзене.</p><p>Большинство пользователей уже давно присутствуют на платформе. Они лайкают статьи, подписываются на авторов, за это уже можно цепляться и что-то им рекомендовать. И есть пользователи, которые пришли в приложение в первый раз, или пассивные пользователи, которые заходят часто, но никуда не кликают. Для них сложно подобрать рекомендации, потому что информации об их интересах мало.</p><p>Для начала контент можно показывать максимально разнообразно по темам. Не будем показывать всем только борщи или машины, покажем микс — может, что-то зацепит. Если есть хотя бы один позитивный отклик на что-нибудь в этой ленте, то уже можно перестраивать рекомендации, используя сложные модели.</p><p>При этом также можно использовать внешние данные: какие характерные для своей категории сайты посещает пользователь, например, люди определённого возраста. По визитам в интернете и cookie в браузере можно предсказать пол, возраст и строить дальнейшие рекомендации.</p><p>Также ML-инженер умеет подбирать факторы — характеристики, помогающие предсказывать поведение пользователей. В холодной ленте кроме соцдема и быстрой адаптации под пользователя с технической стороны практически больше ничего не нужно. В ленте для горячих пользователей, у которых много кликов, всё интереснее. Нужно из миллионов публикаций выбрать несколько десятков, которые поместятся на экране для показа. Как это сделать?</p><p>Мы это делаем в два этапа. Первый — отбор кандидатов. Из миллионов мы находим тысячи грубым быстрым способом: кто что раньше лайкал, смотрел и читал, и подбираем связанные материалы. Они могут быть связаны тематически, или это может быть тот же автор. Второй этап — ранжирование тысяч отобранных кандидатов с использованием более сложных моделей, вроде нейросети и градиентного бустинга. Достаточно за раз отдать пользователю 20 рекомендаций и подгружать дополнительные по мере необходимости, пока пользователь крутит ленту.</p><figure><img src="https://media.tproger.ru/uploads/2023/04/c63b19ee-f21e-46b6-bb67-409b169ee727.png" alt="" /><figcaption>Схема процесса подбора рекомендаций</figcaption></figure><p>Пользователю может быть интересно много разных тем, он читает их с разной периодичностью. ML-инженер должен узнать, что прямо сейчас на этом устройстве в это время суток лучше показать, в каких пропорциях, в каком формате.</p><p>Можно проверить такой фактор: как часто пользователь смотрит посты в определённой теме. Допустим, в теме «Кино» он тратит в среднем минуту на показ, а в теме «Искусство» — две минуты. Модель учтёт, что пользователь смотрит чаще, и покажет скорее «Искусство», чем «Кино». Дальше этот фактор нужно внедрить во всю нашу инфраструктуру: добавить этот показатель в обучение модели и на бэкенд.</p><h2>Какие знания нужны ML-инженеру</h2><ul><li>Уметь писать алгоритмы. Важно, чтобы у кандидата было алгоритмическое мышление. Мы можем дать такую задачу: в строке с пробелами некоторые повторены несколько раз, нужно их соединить в один.</li><li>Знать основы машинного обучения. Мы даём проблему, просим поставить задачу машинного обучения, придумать, какие характеристики нужно использовать, чтобы её решить, как оценивать решение, и какие могут быть проблемы при внедрении.</li><li>Писать код на Python для построения моделей.</li><li>Знать SQL-подобный язык для запросов к данным. Например, Hive. Это нужно, чтобы провести первичную аналитику, собрать семпл или построить простые графики.</li><li>Развёртывать модели в продакшене. Мы используем Java, потому что Python медленный. При этом мы не требуем наличие Java на входе, языку мы готовы научить.</li></ul><p><i>Также можно посмотреть, какие ещё навыки нужны ML-разработчику и Java-разработчику в ML-команду.</i></p><p>Для нас ML-инженер — это специалист, который разбирается и в программировании, и в ML. В огромных компаниях с тысячами специалистов в штате бывает и более чёткое разделение обязанностей: кто-то делает прототипы, а кто-то потом их внедряет. Когда команда небольшая, то удобнее, чтобы у специалиста были обе компетенции. Так он сможет и понять задачу бизнеса, и сделать прототип, и довести её до конца — для компании это очень ценный профессионал.</p>]]></content:encoded>
    </item>
    <item>
      <title>Простой  и эффективный метод удаления дубликатов из таблицы</title>
      <link>https://tproger.ru/articles/prostoj-i-effektivnyj-metod-udaleniya-dublikatov-iz-tablicy</link>
      <comments>https://tproger.ru/articles/prostoj-i-effektivnyj-metod-udaleniya-dublikatov-iz-tablicy?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Slava Rozhnev]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/prostoj-i-effektivnyj-metod-udaleniya-dublikatov-iz-tablicy</guid>
      <description><![CDATA[<p>Как быстро и просто удалить дубликаты данных в SQL-базе, чтобы избежать ошибок в программном коде, который использует эти данные.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/prostoj-i-effektivnyj-metod-udaleniya-dublikatov-iz-tablicy">Простой  и эффективный метод удаления дубликатов из таблицы</a>»</p>]]></description>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 03 Apr 2023 10:16:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>В целом, удаление дубликатов является важной задачей для поддержания качества и производительности баз данных, а также для предотвращения ошибок в программном коде, который использует эти данные.</p><p>В этой короткой статье я хочу поделиться простым способом удаления дубликатов из таблицы. Запрос работает в базах данных MySQL, MariaDB и PostgreSQL. Если вам интересен такой запрос для других СУБД, напишите мне в комментариях.</p><p>Все вышеизложенные а также любые другие запросы можно воспроизвести на <a href="https://sqlize.online/sql/mysql80/d1e9b10003717a22797d9dcadff996c6/">SQLize.online – онлайн редакторе SQL</a>.</p><p>Давайте начнем. Предположим, у нас есть простая таблица с двумя столбцами: id – это первичный ключ и v простое целочисленное значение</p><p>Приведенный выше код создает таблицу и вставляет несколько значений. Выведем на экран все строки из нашей тестовой таблицы. Как видите, id имеет уникальные значения, но поле val имеет содержит дубликаты:</p><p>Наша задача состоит в том, чтобы удалить строки с поввторяющимися значениями в столбце val и сохранить уникальные значения с минимальным значением идентификатора id.</p><p>Для начала попробуем найти дубликаты. Мы можем использовать простое LEFT JOIN таблицы самой с собой по полю val с дополнительным условием для предотвращения объединения идентичных строк (для наглядности дадим алиасы для таблицы и копии):</p><p>В результате запроса получим следующий результат:</p><p>Видно, что уникальные строки с минимальным id имеют (null) в столбцах из copy_tbl. Это происходит потому что для минимального значения id в исходной таблице нет строк соответсвующих условию в таблице копии. Итак, нам нужно оставить строки в которых нет соответствия (уникальные) и удалить. Это можно осуществить следующим запросом:</p><p>P.S. Уже после написания этой статьи мой коллега <a href="https://ru.stackoverflow.com/users/229437/akina">@Akina</a> предложил более короткую версию:</p><p>Если Вам понравилась статья, Вы можете <a href="https://pay.cloudtips.ru/p/60214a3d">поддержать автора</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Системы для работы с данными: зачем нужны и как их построить</title>
      <link>https://tproger.ru/articles/sistemy-dlja-raboty-s-dannymi-zachem-nuzhny-i-kak-ih-postroit</link>
      <comments>https://tproger.ru/articles/sistemy-dlja-raboty-s-dannymi-zachem-nuzhny-i-kak-ih-postroit?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Александр Белоцерковский]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/sistemy-dlja-raboty-s-dannymi-zachem-nuzhny-i-kak-ih-postroit</guid>
      <description><![CDATA[<p>Рассказываем, как построить качественную инфраструктуру для работы с данными, какие нужны специалисты и как выйти с решением на рынок.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/sistemy-dlja-raboty-s-dannymi-zachem-nuzhny-i-kak-ih-postroit">Системы для работы с данными: зачем нужны и как их построить</a>»</p>]]></description>
      <category><![CDATA[Алгоритмы и структуры данных]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Гостевая публикация]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 30 Dec 2022 11:30:47 GMT</pubDate>
      <content:encoded><![CDATA[<p>Индустрия больших данных растет кратными темпами год к году. По оценке Ассоциации больших данных, в 2021 году объем рынка в России составлял 10-30 млрд рублей, а к 2024 году он достигнет 300 млрд рублей.</p><p>Кроме того, исследования показывают, что 68% данных, которые компании уже собирают, не используются или не приносят никакой ценности. При этом, если бизнес качественно работает с данными, используя эффективные и масштабируемые инструменты, то он скорее всего сможет выжать из них полезную информацию для развития и высвободить ресурсы ценных специалистов, перенаправив их на важные направления.</p><p>Рассмотрим пару отраслевых примеров.</p><p>В мобильной игровой индустрии опыт пользователей и успех развития проекта напрямую зависит от быстрой реакции на события. Как аудитория ведет себя в игре, какие ситуации возникают между пользователями, как они реагируют на встроенные покупки — все это большие массивы данных. Их обработка даже в пределах одной игровой сессии требует специальной инфраструктуры, профильных специалистов и математических алгоритмов. Если команда не обрабатывает эти данные и не использует их вовремя, проект может быстро упустить рыночное преимущество, потерять игроков и деньги.</p><p>В игровой индустрии также есть уникальный пример выхода в физическое пространство — и в случае с AR- или VR-играми командам приходится работать с движением человека в пространстве, для чего нужны сложнейшие технологические системы и моментальная скорость их реакции.</p><p>Другой пример — промышленные компании, которые традиционно более консервативны и также проходят через цифровую трансформацию. Производственные предприятия активно ищут сценарии использования больших данных. При этом им не так важна скорость реакции системы на события, если говорить о секундах и миллисекундах, как корректность этой реакции.</p><p>Сбор данных с датчиков на заводских станках и оборудовании позволяет предугадывать поломки и своевременно их устранять, и, соответственно, минимизировать потери и сократить издержки на простой производственный мощностей. Технические команды должны прорабатывать множество сложных сценариев и сразу учитывать все возможные варианты развития событий.</p><p>Таким образом, данные могут работать в любой сфере бизнеса, если их собирают быстро, хранят надежно и анализируют точно. На каждом этапе важно планировать вычислительные и человеческие ресурсы под разные сценарии нагрузки. Процесс отладки системы во время ее работы обходится бизнесу значительно дороже, чем предварительное тестирование сценариев и соразмерные инвестиции в них. Это касается всех участников процесса. Если система работает недостаточно стабильно, это может привести к простою и отразиться на всем бизнесе.</p><p>Правильно выбранный арсенал инструментов критичен для будущего системы. Если двадцать лет назад это было сложно, сегодня есть выбор доступных инструментов и накопленный опыт в разработке собственных. Мы, например, в VK сначала для собственных задач создали in-memory платформу Tarantool. С ее помощью можно разрабатывать высоконагруженные системы хранения и обработки данных. По мере развития продукта мы вывели его в открытый доступ (open source).</p><p>Мы с большим интересом наблюдаем, как пользователи ищут и находят новые применения технологии. Например, при расширении собственных систем обработки данных, когда нужно легковесное решение для адаптации двух систем друг ко другу. Это особенно актуально в условиях сегодняшнего мира, когда новые системы обработки данных сталкиваются со сложными системами, которые разрабатывались давно.</p><h2>Параметры систем хранения и обработки данных — на что обращать внимание?</h2><p>Если говорить про данные, поддерживающие бизнес-процессы компании, то при разработке систем важно в первую очередь обращать внимание на следующие параметры:</p><h3>Безопасность</h3><p>Безопасность и надежность работы с данными — важнейший показатель по дефолту. При разработке и развитии инфраструктуры критически важно обеспечить безопасное физическое и виртуальное хранение данных, а также их целостность — в этом может помочь резервное копирование, чтобы даже при сбоях информация не была потеряна. Все операции с данными должны соблюдать законодательство той страны, где работает компания. Пользователь может простить задержку ответа или транзакции, но потеря данных может стать серьезным ущербом для репутации.</p><h3>Масштабирование</h3><p>Для того чтобы система была отказоустойчивой, важно постоянно проводить нагрузочное тестирование. В лучшем случае при росте нагрузки сервисы могут грузиться дольше, в худшем — инфраструктура выйдет из строя или потеряет данные пользователей.</p><p>Качественная проработка предполагает, что архитекторы вместе с командой эксплуатации должны изучать, где может возникнуть бутылочное горлышко. Например, если в день запуска мобильной игры на рынок она быстро станет популярной, и инфраструктура к этому не готова, задержка в ответе приведет к оттоку пользователей уже на старте.</p><p>Также любопытен подход управления хаосом (Chaos Engineering). С усложнением систем становится труднее понять, как отдельные компоненты будут реагировать на стрессы.</p><p>Chaos engineering — это методика, которая позволяет спроектировать последовательность стрессовых для систем событий, с уже разработанными инструментами. Например, если система размещена в облаке, можно быстро проверить, как база данных реагирует на неожиданные всплески нагрузки на центральный процессор (CPU) в условиях резкого роста запросов из внешних систем, и внести изменения в кодовую базу, процессы и регламенты восстановления.</p><h3>Экономический аспект</h3><p>Экономика и пользовательский опыт идут рука об руку с компромиссом — команды архитекторов и развития бизнеса должны согласовать уровень сервиса, который учитывает время ответа системы и допустимые финансовые издержки. Важно постоянно тестировать гипотезы: сколько выделено ресурсов, как они должны работать и масштабироваться. Если в день анонса игры в приложение зашли тысячи пользователей, а команда включила автомасштабирование без тестирования, есть серьезный риск неоправданных затрат.</p><p>Для разработки инфраструктуры и управления ресурсами можно подключать облачные решения. В этом случае компания использует готовый сервис (PaaS — платформа как сервис), способный выдержать заданную нагрузку, и платит за те ресурсы, которые реально использовала.</p><h2>Качественная инфраструктура для работы с данными — какая она</h2><p>Работа инфраструктуры завязана на качественной архитектуре платформы данных. Она должна учитывать бизнесовые и технические требования к реакции на событие — будь это действие игрока или выключенный прибор в доме — и балансировать между скоростью и издержками. В какой-то момент даже минимальное улучшение показателей системы будет стоить слишком больших усилий и затрат. При этом данные должны трансформироваться в удобный инструмент для развития бизнеса.</p><p>Средний жизненный цикл данных состоит из четырех стадий. Рассмотрим их на примере промышленной турбины, по информации с датчиков которой можно понять, когда оборудование выйдет из строя.</p><h3>1. Сбор</h3><p>На первом этапе данные собираются. В случае с турбиной простые датчики только передают информацию. Более продвинутые решения могут принимать сигналы и управлять работой оборудования.</p><h3>2. Передача</h3><p>Шлюз, на который передаются данные, отправляет агрегированную информацию. Входящие сообщения попадают в очередь — часто для этого используют брокер сообщений Kafka — на другом конце находится приемник. Очередь нужна для отказоустойчивости и возможности масштабирования решения на несколько объектов.</p><h3>3. Обработка и хранение</h3><p>После того, как сообщение принято, его нужно обработать. На этом этапе важно понимать, в каком виде необходимо хранить данные. В случае турбины может быть полезно сохранить информацию о ее работе в архив, чтобы в любой момент была сделать ретроспективный анализ. Для этого в архитектуре необходимо ввести кластер баз данных для архивов и отдельно — СУБД для быстрого анализа и визуализации.</p><h3>4. Визуализация</h3><p>Это ключевой этап для бизнеса. Важно выбрать быстрый и масштабируемый инструмент, который можно кастомизировать под разные группы заказчиков аналитики внутри компании. Например, визуализацией для топ-менеджмента может быть динамически меняющаяся картинка турбины с проблемными зонами. Визуализация для инженера или аналитика должна быть более функциональной и управляемой, чтобы не приходилось каждый раз обращаться к сырым данным.</p><h2>Строим платформу для работы с данными — какие специалисты нужны</h2><p>Самое главное в любом технологическом проекте — люди, которые над ним работают. Профессиональная команда поможет выстроить эффективные процессы и минимизировать риски. При этом важно помнить, что работа с данными на всех уровнях — сложнейшая сфера, в которой стоит четко разделять зоны ответственности специалистов. Есть два подхода для формирования команды: в первом компания создает внутреннее направление и делает все сама, во втором — решает эти задачи с помощью вендоров и партнеров.</p><p>Внутреннюю команду стоит разделить на несколько стримов:</p><p><b>Архитекторы</b>. В зависимости от сложности задач, это может быть один специалист или целая команда: enterprise-архитектор выстраивает взаимодействие систем в крупной компании; solution-архитектор прорабатывает конкретное решение, а application-архитектор — приложение; архитектор данных планирует, как данные будут работать внутри решения и интегрироваться с внешними системами; security-архитектор отвечает за проектирование безопасного периметра.</p><p><b>Команда бизнес-развития</b>. Специалисты команды вырабатывают бизнес-требования к решению на основе вклада других команд.</p><p><b>Команда эксплуатации и тестирования</b>. Тестировщики, инфраструктурные специалисты и специалисты техподдержки проверяет решение на работоспособность и производительность, собирают обратную связь от внутренних и внешних пользователей системы.</p><p><b>Команда разработчиков.</b> Задача разработчиков — проанализировать вклад других команд, свести его к плану и дорожной карте продукта, донести обратную связь в виде технологической реализации.</p><p><b>Команда маркетинга и аналитики</b>. Специалисты этих команд — связующее звено между пользователями и разработчиками, данными и обратной связью с рынка, что помогает постепенно улучшать решение.</p><p>В поддержке и развитии инфраструктуры должны постоянно участвовать все команды. Это важный фактор, который нужно учитывать в планировании — система должна периодически проходить стадии перепроектирования. Состав команды также зависит от технологического стека проекта. Если проект реализован с помощью решений без программного кода (no-code/ low-code подход) или использует Kubernetes, команды могут быть небольшими. Когда нужна постоянная кастомизация или разрабатываемая платформа должна стать основой для других решений, команда проекта может достигать десятков тысяч специалистов.</p><p>Содержать и развивать такой штат сотрудников может далеко не каждая компания. В этом случае можно найти партнеров. У них уже есть собственная команда, закрывающая основной блок задач, а также опыт развития аналогичных проектов.</p><h2>Сроки и альтернативы — как быстро можно выйти с решением на рынок</h2><p>Платформа для работы с данными состоит из интегрированных между собой инструментов для сбора, обработки, хранения, аналитики и визуализации данных.</p><ul><li>Источниками данных могут быть любые системы, которые собирают потенциально полезную для бизнеса информацию — ERP, CRM, реляционные базы данных, Saas-сервисы и т.д.</li><li>В качестве инструментов для обработки данных чаще всего используют Apache Spark, Kafka, Airflow.</li><li>Для хранения и анализа данных подходят in-memory платформа Tarantool, аналитические базы данных Greenplum, Clickhouse, Vertica, а также инструменты из экосистемы Hadoop.</li><li>С задачей визуализации данных справляются BI-системы — Power BI, Qlik, Tableau, Apache Superset или их аналоги.</li></ul><p>Срок построения современных платформ для работы с данными уникален для каждого бизнеса и отдельного проекта. Все зависит от требований компании, готовности архитектуры и команды, уровня проработки бизнес-модели и ожиданий от данных. Дополнительной сложностью может стать процесс согласования: чем больше бизнес, тем, как правило, дольше принимаются решения об изменениях. В крупных проектах согласование может занимать месяцы. Для того чтобы быстрее запустить инициативу, нужен высокий уровень проработки: сформированная команда, серьезный опыт, партнерство с зарекомендовавшим себя на рынке вендором и тд.</p><p>Если в основе инфраструктуры облачные решения, ситуация может быть обратной. В облачных проектах часто стадии тестирования и согласования сокращают до минимума, используя принцип получения быстрых инсайтов от ошибок. Кроме того, у облачных провайдеров уже есть готовые примеры архитектуры и большой опыт в индустрии. Это позволяет запустить некоторые проекты за месяц. Например, «Магнит», VK Cloud и Tarantool за два месяца запустили онлайн-доставку с помощью партнеров ритейлера и подключили к ней 400 магазинов сети.</p><p>Сегодня большая часть технологических проектов в области работы с данными может быть размещена в облачных сервисах. По данным <a href="https://mcs.mail.ru/promopage/bigdata-issledovanie/?amp&amp;ysclid=lbai5pmqb5777914407">исследования</a>, которое мы провели в этом году, 46% компаний в России используют облачные решения для работы с такими проектами и 29% планируют переезд в облака в ближайшее время. Опыт вендора и модель оплаты за ресурсы по факту использования (Pay-as-You-Go) снимают риски и делает жизнь команды проекта проще. В дальнейшем такие проекты только продолжат набирать популярность, ведь количество данных растет, как и потребность в них, а инвестировать в новые физические ресурсы, масштабирование и обучение команды могут единицы компаний.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как продажа виниловых пластинок сделала из режиссёра монтажа аналитика данных</title>
      <link>https://tproger.ru/articles/kak-prodazha-vinilovyh-plastinok-sdelala-iz-rezhissjora-montazha-analitika-dannyh</link>
      <comments>https://tproger.ru/articles/kak-prodazha-vinilovyh-plastinok-sdelala-iz-rezhissjora-montazha-analitika-dannyh?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Константин Демин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-prodazha-vinilovyh-plastinok-sdelala-iz-rezhissjora-montazha-analitika-dannyh</guid>
      <description><![CDATA[<p>Рассказываем, как вдохновиться на переход в новую профессию во взрослом возрасте и не бросить всё на полпути.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-prodazha-vinilovyh-plastinok-sdelala-iz-rezhissjora-montazha-analitika-dannyh">Как продажа виниловых пластинок сделала из режиссёра монтажа аналитика данных</a>»</p>]]></description>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Яндекс]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 08 Aug 2022 10:59:21 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Хобби, ставшее профессией</h2><p>Монтажом я увлёкся ещё в институте. Тогда компьютеры были не у всех, поэтому монтировал любительские клипы дома на двух видеомагнитофонах. Друзья знали об этом хобби и однажды позвали поработать на местном телевидении.</p><p>Я согласился, было интересно увидеть ТВ изнутри, научиться делать монтаж по-настоящему.</p><figure><img src="https://media.tproger.ru/user-uploads/23823/2024-01-05/0a3dccee-da9e-48a2-a7c2-e597347dc563.jpeg" alt="" /><figcaption>На съемках авторской программы об автомобилях</figcaption></figure><p>Это был 2003 год. С этого момента всё закрутилось! Я ушёл с трубопрокатного завода, где на тот момент работал, и с головой погрузился в новую профессию. Скоро стал одним из лучших специалистов в своём городе <i>(Нил из Липецка</i><i>. — Прим. ред.</i><i>)</i>, поучаствовал в создании первого в России веб-сериала о крипте «Майнеры».</p><figure><img src="https://media.tproger.ru/user-uploads/23823/2024-01-05/4245fc01-e8f7-4479-90f8-f22cd1641004.jpeg" alt="" /><figcaption>Нил за монтажным столом первого в России веб-сериала о криптовалюте «Майнеры»</figcaption></figure><p>«Майнеры» — не обычный сериал с привычной съемкой. В нём есть несколько сцен, снятых на мобильный телефон, но в основном это скринлайты веб-страниц, переписок. Им уделялось основное внимание. Съёмки проходили в Москве, я монтировал отснятый материал в Липецке. Это был интересный опыт в серьёзном проекте.</p><p>В профессии мне всё нравилось, но я чётко понимал, что дальнейшего развития тут не будет. Только перебираться в Москву, где больше возможностей для реализации. Этот вариант я не рассматривал.</p><p>Параллельно развивалась ещё одна история. У нас с супругой был небольшой семейный бизнес по продаже виниловых пластинок. В интернет-магазин заходили пользователи, и я понимал, что важно отслеживать эффективность сайта — почему люди покупают или не покупают, какие предложения работают, а какие проваливаются.</p><figure><img src="https://media.tproger.ru/user-uploads/23823/2024-01-05/27648224-f29a-4929-a132-3f4a55eff93d.jpeg" alt="" /><figcaption>Главная страница семейного интернет-магазина виниловых пластинок</figcaption></figure><p>Тогда я начал изучать аналитику данных. Искал информацию в свободном доступе, проходил интенсивы. Хотел улучшить бизнес, да и в целом увлёкся аналитикой и решился на полноценный курс.</p><h2>Учёба в Практикуме</h2><p>Я пробовал проходить бесплатные уроки на разных платформах, читал мнения студентов о разных школах на форумах. Там увидел много реально хороших отзывов о Яндекс Практикуме. И сделал свой выбор — пришёл в Практикум на <a href="https://practicum.yandex.ru/data-analyst/?utm_source=pr&amp;utm_medium=content&amp;utm_campaign=pr_content_data-analyst_tproger-student">курс</a> «Аналитик данных».</p><p>Семейный бизнес был на «стопе» уже несколько лет из-за кризиса 2014 года, а аналитика данных меня по-прежнему увлекала. Я видел в этом направлении перспективы для развития. Обучение не бросил, хоть было сложно совмещать его с работой.</p><p>Помню, даже в отпуск ездил с ноутбуком и делал домашку в коридоре отеля. С интернетом была беда.</p><p>Плюс, опыта в программировании у меня не было, с математикой тоже не скажу, что дружил. Временами мозг закипал, казалось, что всё зря, ничего не выйдет. Но это же мотивировало дойти до конца, разобраться всё-таки, доказать себе, что всё возможно.</p><p>Спасибо кураторам. Они всегда интересовались, есть ли сложности, помогали, направляли. Семья тоже поддержала, что было важно для меня. Когда ты в 20 лет всё меняешь, это проще, чем в 40: у тебя уже дети, много ответственности. Рисковать становится сложнее, решиться на перемены тоже. Правильное окружение очень помогает пройти этот этап, поддержка жены и сына придаёт сил.</p><h2>Работа по новой профессии</h2><p>Опыта в IT до Практикума у меня не было совсем, всему учился в процессе.</p><p>После окончания курса в конце ноября 2020 года я сразу начал искать работу. Откликался в разные компании, делал тестовые. Кураторы помогли составить грамотное резюме и разобраться с сопроводительными письмами. Давали дельные рекомендации, помогли докрутить все формулировки, объясняли, почему так, а не иначе. Не сделали за меня, а показали правильное направление.</p><p>Я научился подсвечивать свои сильные стороны, понял, как вести себя на собеседовании, что говорить, а что нет.</p><p>Например, меня часто спрашивали про возраст: не поздно ли пришёл в профессию, как связаны монтаж и аналитика? Благодаря карьерному треку я знал, что отвечать на эти вопросы. Моим ответам доверяли.</p><p>В результате, предложения я стал получать всё чаще, мог выбирать компании, где хочу работать. Было дело, прислали тестовое задание от одного известного блогера, довольно остроумное. Но мне не хотелось идти к нему работать.</p><p>В апреле 2021 года мне пришло предложение от NLMK Group на позицию аналитика отдела безопасности в NLMK Group — международную компанию, занимающуюся производством стали. Это ежедневная история: подготовка отчётности с последующей визуализацией, анализ входящих данных, статистика.</p><p>1 июня 2021 я вышел на работу. А с апреля до момента выхода на работу проходил собеседования и процедуру трудоустройства.</p><figure><img src="https://media.tproger.ru/user-uploads/23823/2024-01-05/597b5b31-2a6c-4fba-962b-06c105f5f8d3.jpeg" alt="" /><figcaption>«Аналитика „в полях“)) Иногда чтобы что-то проанализировать, нужно пойти и посмотреть, как это работает»</figcaption></figure><p>Параллельно преподаю аналитику данных студентам в Яндекс Практикуме, чтобы оставаться в IT, не терять навыков А/В-тестирования, статистики, программирования. Благодаря этому сам остаюсь «в теме» и нет ощущения рутины.</p><h2>Как новая профессия поменяла жизнь</h2><p>Мне повезло попасть в IT-сферу сейчас, когда она активно набирает обороты, поэтому у меня появилась уверенность в завтрашнем дне. Даже в условиях сегодняшней нестабильности я знаю, что без работы не останусь, есть куда развиваться дальше.</p><p>Телевидение постепенно теряет популярность. Всё уходит в Интернет, штат ТВ-специалистов и зарплаты сокращаются. Серьёзных перспектив на ТВ для себя я сегодня не вижу.</p><p>В аналитике данных широчайший спектр задач, мне интересно каждый день «нырять» в это, узнавать новое, тестировать. И ты это настроение передаёшь окружающим. Глаза загораются, интереснее жить, цели появляются новые.</p><p>У меня супруга стала frontend-разработчиком, у нас IT-семья. Ещё больше общего стало. Столько новых тем для разговоров появилось, столько планов и идей, это здорово!</p><h2>Совет тем, кто в начале пути</h2><p>Самое главное — пройти этот путь, не бояться пробовать, не бояться сложностей. Настройте своё сознание: отнеситесь к обучению с интересом, не как к тяжёлой работе. Пусть это будет путь открытий, тогда дойти до конца будет гораздо проще. Интерес побеждает трудности и двигает вперёд!</p>]]></content:encoded>
    </item>
    <item>
      <title>Какой вы аналитик?</title>
      <link>https://tproger.ru/quiz/analysis</link>
      <comments>https://tproger.ru/quiz/analysis?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Оксана Щукина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/quiz/analysis</guid>
      <description><![CDATA[<p>Какой вы аналитик? Пройдите тест и узнайте, на кого из известных аналитиков вы похожи: Холмса, Фрейда или Аристотеля, отвечая на вопросы.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/quiz/analysis">Какой вы аналитик?</a>»</p>]]></description>
      <category><![CDATA[Партнёрский материал]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Викторины]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 20 Jul 2022 10:00:20 GMT</pubDate>
    </item>
    <item>
      <title>Выявление и сбор требований к ПО — ultimate guide</title>
      <link>https://tproger.ru/articles/vyjavlenie-i-sbor-trebovanij-k-po-ultimate-guide</link>
      <comments>https://tproger.ru/articles/vyjavlenie-i-sbor-trebovanij-k-po-ultimate-guide?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Елизавета Ржевская]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/vyjavlenie-i-sbor-trebovanij-k-po-ultimate-guide</guid>
      <description><![CDATA[<p>Какие бывают требования к ПО и как их собирать. Пост полностью освещает все аспекты сбора и структурирует информацию для тестировщиков.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/vyjavlenie-i-sbor-trebovanij-k-po-ultimate-guide">Выявление и сбор требований к ПО — ultimate guide</a>»</p>]]></description>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Гостевая публикация]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 14 Jul 2022 08:51:39 GMT</pubDate>
      <content:encoded><![CDATA[<p>Фундаментальное описание требований к ПО и подходов к их выявлению и сбору от тестировщика Noveo Вадима: пост освещает все аспекты этой области знаний, структурирует информацию и не оставляет ни малейшего шанса недопониманиям и «темным» местам. Приятного прочтения!</p><p>Мы с вами как тестировщики каждый день работаем с требованиями. Суть нашей работы — выяснять, соответствует ли разрабатываемая система требованиям заказчика, рынка и отраслевым стандартам. Более того, в наши обязанности входит проверка требований на соответствие критериям качества. В идеальном мире мы с вами были бы просто гарантом качества — судьями, дающими объективную оценку. Но, к сожалению, мир не идеален, и строгое распределение участников проекта на роли чаще всего не представляется возможным. В эпоху повсеместного использования гибких методологий разработки мы с вами должны обладать знаниями, позволяющими выполнять задачи не только контроля качества.</p><p>Цели этого поста заключаются в следующем:</p><ol><li>Определить, что такое требование, какие типы и уровни требований выделяют.</li><li>Понять, какие существуют методы сбора и выявления требований.</li><li>Предоставить почву для дальнейшего изучения сферы системного и бизнес-анализа.</li></ol><h2>Требования</h2><p>Начнем с требований как таковых:</p><ul><li>Что они из себя представляют?</li><li>Какие виды требований выделяются?</li><li>Как они согласуются?</li><li>Какие источники требований можно выделить?</li></ul><h3>Определение требования</h3><p>Прежде чем погрузиться в теорию разработки требований к ПО, попробуйте, основываясь на своих знаниях и опыте, ответить на вопрос: как вы определяете термин «требование»?</p><p>Вопрос, что считать требованием к ПО, является сугубо дискуссионным. Но так или иначе нам с вами необходима отправная точка для изучения темы, поэтому обратимся к уже устоявшимся определениям:</p><p><b>Требования к ПО</b> — это спецификация того, что должно быть реализовано. В них описано поведение системы, свойства системы или ее атрибуты. Они могут служить ограничениями в процессе разработки системы (Ian Sommerville и Pete Sawyer, 1997).</p><p><b>Требования к ПО</b> — совокупность утверждений относительно атрибутов, свойств или качеств <a href="https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0">программной системы</a>, подлежащей реализации. Создаются в процессе разработки требований к <a href="https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5">программному обеспечению</a> (ПО), в результате <a href="https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7_%D1%82%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B9">анализа требований</a> (Википедия).</p><p>Из определений можно выделить следующие пункты, которые относятся к требованиям:</p><ul><li>Спецификация — документ, устанавливающий требования.</li><li>Реализация — интерпретация требований в виде разработанной системы (одни и те же требования можно реализовать различными способами).</li><li>Описание поведения системы (то, как система должна работать при различных входных условиях).</li><li>Описание свойств / атрибутов / качеств системы.</li></ul><p>Как видно выше, устоявшиеся термины не отражают всю полноту понятия «требование к ПО», поэтому также стоит отметить следующее: требования охватывают как видение пользователя, так и внешнее поведение системы, а также представление разработчика о некоторых внутренних характеристиках. Они включают как поведение системы в определенных условиях, так и свойства, которые делают систему полезной и удовлетворяющей конечных пользователей.</p><p>Термин «требование» охватывает довольно широкую предметную область. Поэтому возникает вопрос типизации и классификации требований.</p><h3>Уровни и типы требований</h3><figure><img src="https://media.tproger.ru/uploads/2022/07/Trebovanija_1-1.jpg" alt="" /></figure><p>Требования к ПО состоят из трех уровней:</p><ol><li>Бизнес-требования.</li><li>Пользовательские требования.</li><li>Функциональные требования.</li></ol><p>Отдельно вне иерархии выделяют нефункциональные требования. Они так или иначе всегда представлены на всех уровнях требований и прямо или косвенно влияют также на все из них. Далее подробнее разберем каждый уровень требований отдельно.</p><h3>Бизнес-требования BRQ</h3><p>Бизнес-требование (business requirements) — высокоуровневая бизнес-цель организации или заказчиков системы.</p><p>Бизнес-требования описывают, почему организации нужна такая система, то есть цели, которые организация намерена достичь с ее помощью. Основное их содержание — бизнес-цели организации или клиента, заказывающих систему.</p><figure><img src="https://media.tproger.ru/uploads/2022/07/Trebovanija_2-1.jpg" alt="" /></figure><p>Бизнес-требования — это верхний уровень абстракции требований к системе. Они не относятся напрямую к реализации проекта, а в первую очередь отражают цели бизнеса, абстрагированные от реализации системы. В конечном итоге бизнес-требования формируют документ концепции и границ.</p><p>Если кратко, документ содержит определение следующих понятий:</p><ul><li>Бизнес-возможности, бизнес-проблемы — факты и события, формирующие бизнес-цели, то есть грубо — причины инициации проекта.</li><li>Бизнес-цели — цели, которые должны быть решены разработкой и вводом в эксплуатацию системы. Являются критериями успеха проекта.</li><li>Концепция продукта (Vision) — сжато описывает конечный продукт, который достигнет заданных бизнес-целей.</li><li>Границы проекта (scope) — показывают, на какую часть конечной концепции продукта будет направлен текущий проект или итерация.</li></ul><p><b>Примеры бизнес-требований:</b></p><p>Сократить время обработки заказа на 50% (цель) — система должна предоставить интерфейс, упрощающий создание заказа (концепция).</p><p>Увеличить клиентскую конверсию до 35% (цель) — в системе должны быть представлены механизмы побуждения клиента к заказу (концепция).</p><p>Говоря о сборе и выявлении требований, нельзя опускать вопрос, в каких источниках искать требования. Под <b>источниками требований </b>подразумевается любой источник информации, используя который мы можем сформулировать требование.</p><p><b>Источники бизнес-требований (где искать?):</b></p><ul><li>Внутренняя документация компании (положения, инструкции, приказы).</li><li>Документация по предметной области (профильные литература и статьи, исследования).</li><li>Нормативная документация (законы и иные правовые акты, государственные стандарты).</li><li>Продукты конкурентов.</li></ul><p><b>Стейкхолдеры (у кого спрашивать?):</b></p><ul><li>Инициатор проекта.</li><li>Руководитель проекта (менеджер проекта).</li><li>Руководитель структурного подразделения заказчика (коммерческий директор, директор по маркетингу).</li><li>Бизнес-аналитик.</li></ul><p>P.S. Список стейкхолдеров меняется от проекта к проекту, для каждого проекта необходимо отдельно определять список заинтересованных/ответственных лиц. Списки, представленные мной, являются сугубо примерами из моей практики.</p><p>QA и разработчики, как правило, не участвуют в сборе и анализе бизнес-требований. Но нам важно понимать верхнеуровневые цели, которые преследует проект, так как пользовательские и функциональные требования — это следствие выявления, анализа и декомпозиции бизнес-требований. Работая с бизнес-требованиями, вы в первую очередь погружаетесь в предметную область заказчика. На мой взгляд, это очень важно для всех участников проекта. Если член команды погружен в предметную область заказчика, существенное количество вопросов отпадет, а следовательно, сокращается и время, потраченное на коммуникации.</p><h3>Пользовательские требования URQ</h3><p><b>Пользовательские требования (user requirements) </b>описывают цели или задачи, которые пользователи должны иметь возможность выполнять с помощью продукта, который в свою очередь должен приносить пользу кому-то. Область пользовательских требований также включает описания атрибутов или характеристик продукта, которые важны для удовлетворения пользователе (Карл Вигерс, «Разработка требований к программному обеспечению»).</p><p><b>Пользовательские требования</b> определяют набор пользовательских задач, которые должна решать программа, а также способы (сценарии) их решения в системе (Википедия).</p><figure><img src="https://media.tproger.ru/uploads/2022/07/Trebovanija_3-1.jpg" alt="" /></figure><p>Пользовательские требования также часто именуются фичами.</p><p><b>Фича (функциональность)</b> — функционально обобщенные части системы, решающие отдельные задачи пользователей или интерпретирующие бизнес-процессы (и их артефакты), которые будут реализованы в рамках системы.</p><p>Исходя из вышеописанных определений, пользовательские требования содержат:</p><ul><li>Цели и задачи пользователей.</li><li>Сценарии использования — способ решения задачи пользователей.</li><li>Как следствие, описание самих пользователей системы:</li><li>пользовательские роли,</li><li>уровни доступа.</li></ul><p>В конечном итоге пользовательские требования формируют «Документ пользовательских требований». Пользовательские требования могут быть представлены в виде:</p><ul><li>текстового описания,</li><li>вариантов использования, сценариев использования (Use Case),</li><li>пользовательских историй (User Story),</li><li>диаграммы вариантов использования.</li></ul><p>Как правило, пользовательские требования описываются по следующему шаблону:</p><p>Пользователь должен иметь возможность + {тезис}.</p><p><b>Пример пользовательского требования:</b></p><p>Пользователь должен иметь возможность добавить объект в избранное (функциональность).</p><p><b>Источники пользовательских требований требований (где искать?):</b></p><ul><li>Анализ и декомпозиция бизнес-требований.</li><li>Описание бизнес-процессов.</li><li>Артефакты бизнес-процессов:</li><li>документы входные/выходные,</li><li>стандарты,</li><li>регламенты,</li><li>обрабатываемые данные,</li><li>иная информация, используемая и/или производимая в бизнес-процессе.</li><li>Отраслевые стандарты.</li><li>Реализованные проекты, проекты конкурентов.</li></ul><p><b>Стейкхолдеры (у кого спрашивать?):</b></p><ul><li>Бизнес-аналитик, системный-аналитик.</li><li>Конечные пользователи — люди, взаимодействующие с системой напрямую.</li><li>Косвенные пользователи — люди, использующие результаты работы системы, не взаимодействуя с ней напрямую.</li><li>Представители пользователей.</li><li>Менеджер проекта.</li><li>Руководитель структурного подразделения заказчика.</li></ul><p>Этот уровень требований напрямую входит в круг обязанностей QA-инженера. В задачи QA на этом уровне входит:</p><ul><li>Определение соответствия описания требований критериям качества.</li><li>Анализ требований для проработки сценариев тестирования.</li><li>При достаточном уровне компетенций в предметной области:</li><li>определение соответствия требований устоявшимся отраслевым стандартам (например: системе не достаёт фичи, которая в рамках предметной области системы является обязательной);</li><li>определение соответствия требований с утвержденными бизнес-требованиями. Ответ на вопрос: «Решает ли пользовательское требование бизнес-цели проекта и задачи пользователей?«.</li></ul><h3>Функциональные требования FRQ</h3><p>Функциональные требования (functional requirements) — описание требуемого поведения системы в определенных условиях.</p><p>Функциональные требования определяют, каким должно быть поведение продукта в тех или иных условиях. Они определяют, что разработчики должны создать, чтобы пользователи смогли выполнить свои задачи (пользовательские требования) в рамках бизнес-требований.</p><p>Функциональные требования самые низкоуровневые. Являются результатом декомпозиции верхнеуровневых требований и описывают атомарные функции, которые должны быть реализованы в системе.</p><figure><img src="https://media.tproger.ru/uploads/2022/07/Trebovanija_4-1.jpg" alt="" /></figure><p><b>Пример функциональных требований:</b></p><p>Пользователь должен иметь возможность добавить объект в избранное (URQ):</p><p>FRQ 1 — Добавить в избранное.</p><p>FRQ 2 — Удалить из избранного.</p><p>FRQ 3 — Редактирование дополнительных атрибутов.</p><p>FRQ 4 — Обращение к объекту из меню избранного.</p><figure><img src="https://media.tproger.ru/uploads/2022/07/Trebovanija_5-1.jpg" alt="" /></figure><p><b>Источники требований (где искать?):</b></p><ul><li>Анализ пользовательских требований.</li><li>Таски.</li><li>Прототипы интерфейса (мокапы).</li><li>Отраслевые стандарты.</li><li>Внешние системы и документация к ним (интеграции).</li></ul><p><b>Стейкхолдеры (у кого спрашивать?):</b></p><ul><li>Бизнес-Аналитик.</li><li>Системный аналитик.</li><li>Архитектор.</li><li>Менеджер проекта.</li><li>Разработчики.</li></ul><h3>Нефункциональные требования NFRQ</h3><p>Нефункциональное требование (non-functional requirements) — описание свойства или особенности, которым должна обладать система, или ограничение, которое должна соблюдать система.</p><figure><img src="https://media.tproger.ru/uploads/2022/07/Trebovanija_6-1.jpg" alt="" /></figure><p>На мой взгляд, это крайне исчерпывающее определение. Как вы могли заметить, нефункциональные требования не входят в основную иерархию требований. Их выделяют от других типов требований, так как нефункциональные требования:</p><ol><li>Выявляются и формулируются на всех уровнях иерархии требований.</li><li>Напрямую или косвенно влияют на формирование каждого уровня требований.</li></ol><p>Совет: Чаще всего нефункциональные требования отвечают на вопрос <b>«Как? Каким образом?».</b></p><p>Пример нефункциональных требований, которые являются основной идеей проекта: Тик Ток.</p><p>С точки зрения разработки функциональный скоуп проекта не является уникальным:</p><ul><li>смотреть контент,</li><li>предлагать ротацию контента на основе алгоритмов,</li><li>создавать контент.</li></ul><p>Все эти фичи так или иначе были представлены в других проектах. Ключом успеха проекта в данном случае является его UI/UX. А UI/UX сам по себе не отвечает за функции системы, а отвечает за то, каким образом будут реализованы эти функции.</p><h3>SRS</h3><figure><img src="https://media.tproger.ru/uploads/2022/07/Trebovanija_8-100.jpg" alt="" /></figure><p>В конечном итоге все требования консолидируются в одном документе «Спецификации требований к системе». Выше вы можете видеть структуру документа SRS. Ни в коем случае нельзя воспринимать её как жесткий стандарт (хотя таковой имеется: ISO/IEC/IEEE 29148:2011). Я предлагаю вам использовать эту структуру как <b>чек-лист </b>для определения полноты описания системы. Стоит отметить, что внутренние стандарты документирования и полноты требований меняются от проекта к проекту, но набор типов требований всегда будет идентичен. Кто-то опускает бизнес-требования, для кого-то пользовательские требования тождественны функциональным. В конечном итоге все требования — лишь абстракция, и каждая команда подбирает под себя удовлетворительный уровень детализации этой абстракции.</p><h2>Выявление требований</h2><p>Выявление требований — итеративный процесс, состоящий из следующих этапов:</p><ol><li>Подготовка к выявлению.</li><li>Выявление.</li><li>Утверждение результатов.</li></ol><figure><img src="https://media.tproger.ru/uploads/2022/07/Trebovanija_7-1.jpg" alt="" /></figure><h3>Подготовка к выявлению требований</h3><p>В процессе подготовки к выявлению требований необходимо ответить на следующие вопросы:</p><p>1. Что необходимо выяснить? — Анализируем имеющуюся информацию о системе:</p><p>а. Анализ текущего описания требований к системе.</p><p>b. Анализ текущей реализации системы.</p><p>c. Выявление недостающих и/или недостаточно описанных требований.</p><p>2. <b>У кого? Где?</b> — Определить источник требований:</p><p>а. Собрать список доступных источников, таких как:.</p><p>i. Документация.</p><p>ii. Артефакты бизнес-процессов и/или текущей реализации системы.</p><p>b. Определить список стейкхолдеров, которые могут выступать источником требований к системе.</p><p>3. <b>Каким образом?</b> — Выбрать оптимальный метод выявления требований.</p><h2>Выявление требований. Интервью</h2><p>Самый популярный и, возможно, эффективный метод выявления требований. Представляет из себя беседу с заказчиком.</p><h3>Подготовка к интервью</h3><p>Подготовка к интервью состоит из следующих этапов:</p><p><b>1. Собрать информацию о собеседнике(ах):</b></p><p>а. Роль в проекте?</p><p>b. За какие вопросы ответственен?</p><p><b>2. Подготовить вопросы: </b></p><p>a. Сформулировать проблематику интервью.</p><p>b. Сформулировать вопросы.</p><p>c. Подготовить дополнительные вопросы.</p><p><b>3. Определить тайминг встречи. </b></p><p>a. Нужно стараться уложиться в один час. Чаще всего человек начинает терять концентрацию после 40 минут непрерывной беседы.</p><p>b. Для каждого вопроса определить необходимое время на обсуждение.</p><p>c. Если вы не успеете задать все вопросы в рамках одной встречи, назначьте несколько встреч.</p><p><b>4. Согласовать календарь встреч.</b></p><p>a. Если предполагается несколько встреч — то не обходимо составить график встреч.</p><p>b. Для каждой встречи указать проблематику, вопросы, которые будут обсуждаться, длительность.</p><p>От себя рекомендую подготовить файл с вопросами и планом интервью. Для примера — вот шаблон, который использую я:</p><p><b>Протокол интервью </b></p><p><b>Проект:{}</b></p><p><b>Дата проведения:{}</b></p><p><b>Интервьюер: {Кто проводит интервью}</b></p><p><b>Интервьюируемый:{Кому задаём вопросы}</b></p><p><b>Проблематика:{Тема интервью}</b></p><p><b>Вопрос № 1:</b></p><p>Тайминг вопроса:</p><p>Текст вопроса:</p><p>Таймкод:</p><p>Ответы на вопрос:</p><p>Стейкхолдер 1 —</p><p>Стейкхолдер 2 —</p><h3>Проведение Интервью</h3><p>Проведение интервью — сложный навык, который требует времени и практики. Но просто задавать вопросы, я думаю, будет не сложно. Итак, ниже список рекомендаций, которые помогут вам провести интервью:</p><p>1. Всегда ведем запись встречи.</p><p>a. Спрашиваем собеседника, не против ли он вести запись разговора.</p><p>b. Включаем запись после согласия собеседника.</p><p>2. Small talk для разрядки.</p><p>a. Как настроение?</p><p>b. Как погода?</p><p>c. И т.д. и т.п.</p><p>d. Но не затягиваем, пара вопросов из вежливости, не более.</p><p>3. Начинаем с объявления проблематики.</p><p>4. Стараемся следовать плану встречи. Вопросы задаём последовательно.</p><p>5. Желательно в плане указываем тайм-код, в какую минуту разговора задан вопрос, чтобы упростить дальнейшую обработку протокола.</p><p>6. Стараемся раскрывать вопросы дополнительными вопросами. Беседа должна быть живой, не должна скатываться в сухой формат вопрос-ответ, иначе проще отправить собеседнику опросник и не тратить его время на встречу.</p><p>7. В конце обсуждения не лишним будет подтвердить позицию собеседника закрытым типом вопроса.</p><p>a. Например: Я правильно вас понял, что необходимо реализовать функционал следующим образом {Тезис}?</p><h3>Обработка результатов Интервью</h3><p>После проведения интервью необходимо письменно зафиксировать полученную информацию. Рекомендую делать это сразу после интервью. Итак:</p><p>1. Заполняем протокол встречи.</p><p>a. Читать краткий протокол встречи намного проще, чем смотреть часовую запись в поисках ответов.</p><p>2. Направляем участникам встречи результаты в формате «Вопрос — Зафиксированное решение».</p><p>b. Это необходимо для получения от заказчика письменного утверждения результатов встречи.</p><h3>Плюсы и минусы метода</h3><p><b>Плюсы метода:</b></p><ul><li>Наиболее эффективный способ метод сбора требований.</li><li>Меньшая вероятность недопонимания между собеседниками.</li><li>Большая вероятность выявления «скрытых» требований.</li></ul><p><b>Минусы метода:</b></p><ul><li>Могут возникнуть сложности согласования требований от разных стейкхолдеров.</li><li>Высокие временные затраты.</li><li>Качество проведения интервью напрямую зависит от интервьюера.</li></ul><h2>Выявление требований. Анкетирование</h2><p>Метод анкетирования подразумевает создание анкеты (списка вопросов) и её рассылку большому количеству опрашиваемых.</p><p><b>Подготовка</b><b></b></p><p>Подготовка к анкетированию состоит из следующих этапов:</p><p>1. Собрать контакты опрашиваемых стейкхолдеров.</p><p>2. Подтвердить готовность стейкхолдеров участвовать.</p><p>3. Подготовить анкету:</p><p>a. Анкета должна содержать вводную. Нельзя заставлять опрашиваемого отвечать на вопросы без контекста. Но если вы уверены, что опрашиваемые погружены в контекст, этот пункт можно сократить до обозначения проблематики (общей темы вопросов).</p><p>b. Задавать можно как открытые, так и закрытые вопросы.</p><p>c. Но лично я рекомендую предоставлять опрашиваемым варианты ответа даже в формате открытого вопроса. То есть обозначаем проблематику, предлагаем варианты решения, а также оставляем за опрашиваемым возможность раскрыть свою позицию. По сути аналог варианта «Другое» в опроснике.</p><h3>Проведение</h3><ol><li>Рассылаем анкету опрашиваемым.</li><li>Контролируем сроки опроса (должен быть внутренний дедлайн).</li><li>Ответы, по мере поступления, консолидируем в одном документе (каналы связи с опрашиваемыми могут быть разными, но место хранения требований всегда должно быть одно).</li></ol><h3>Обработка результатов</h3><ol><li>Анализируем ответы.</li><li>Фиксируем требования.</li><li>Утверждаем требования с ответственными лицами.</li></ol><h3>Плюсы и минусы метода</h3><p><b>Плюсы:</b></p><ul><li>Большой охват опрашиваемых.</li><li>Сравнительно небольшие временные затраты.</li><li>Возможность повторного использования анкеты (бриф на стандартизированный проект).</li></ul><p><b>Минусы:</b></p><ul><li>Не подходит для выявления «неявных» требований.</li><li>Невозможно заранее учесть все необходимые вопросы.</li></ul><h3>Выявление требований. Мозговой штурм</h3><p>Мозговой штурм предполагает сбор команды разработки и представителей заказчика на совместную встречу. Этот метод позволяет собрать множество идей от различных заинтересованных лиц (стейкхолдеров) в кратчайшие сроки и практически бесплатно. Во время мозгового штурма участники «накидывают» любые идеи, касающиеся решения проблемы. С помощью этой методики можно проработать несколько различных вариантов решения заданной проблемы, а также разрешить конфликты требований.</p><h3>Подготовка</h3><p>1. Формулируем проблематику:</p><p>а. Необходима краткая и емкая формулировка, которая оставит поле для размышления экспертов.</p><p>b. Проблематика озвучивается экспертам заранее, чтобы у них было время «на подумать».</p><p>2. Подготавливаем дополнительные материалы для отработки идей — например, макеты системы.</p><p>3. Формируем группу экспертов.</p><p>4. Согласовываем дату и время.</p><h3>Проведение</h3><p>1. Ведем запись-протокол. Уведомляем участников о том, что ведется запись.</p><p>2. Озвучиваем регламент встречи:</p><p>a. Тема,</p><p>b. Тайминги,</p><p>c. Правила.</p><p>3. Эксперты озвучивают идеи по очереди.</p><p>4. Эксперты должны озвучивать любые идеи, касающиеся проблематики.</p><p>5. Каждая идея фиксируется и обсуждается.</p><p>6. В некоторых источниках утверждается, что нужен полный запрет на критику. На мой взгляд, это приводит только к сбору сырых идей, без их отработки. «В споре рождается истина».</p><p>7. Коллективное комбинирование собранных идей.</p><h3>Обработка результатов</h3><ol><li>Анализируем идеи.</li><li>Формализуем и описываем (то есть готовим развернутое описание).</li><li>Утверждаем идеи с ответственными.</li></ol><h3>Плюсы и минусы метода</h3><p><b>Плюсы:</b></p><ul><li>Большая вероятность выявить WOW-требования (придумать крутую фичу).</li><li>При наличии на мозговом штурме специалистов, ответственных за разные аспекты системы, увеличивается глубина проработки отдельных требований. То есть низка вероятность придумать нереализуемую фичу.</li></ul><p><b>Минусы:</b></p><ul><li>Ограниченный круг стейкхолдеров, которых можно привлечь.</li><li>Необходима жесткая модерация. При отсутствии контроля за проведением встречи мозговой штурм быстро превращается в неэффективный балаган.</li><li>Необходима высокая вовлеченность участников в проект (грубо говоря — необходима инициатива со стороны экспертов).</li></ul><h3>Другие методы выявления требований</h3><ul><li><b>Анализ документации </b>— изучение и анализ существующей документации, которая напрямую или косвенно касается разрабатываемой системы.</li><li><b>Анализ системных интерфейсов, API и базы данных</b> — анализ систем, которые будут взаимодействовать с разрабатываемой системой.</li><li><b>Анализ пользовательского интерфейса</b> — анализ интерфейсов, функционально похожих (или идентичных) на разрабатываемую систему (отраслевые стандарты UI/UX). Также к этому относится анализ интерфейсов систем, входящих в IT-экосистему заказчика.</li><li><b>Моделирование процессов, поведения системы и пользователей</b> — моделирование процессов и схем данных помогает структурировать и упорядочивать информацию о проекте.</li><li><b>Повторное использование требований </b>— многие элементы систем имеют стандарты исполнения. Например: регистрация — авторизация пользователей.</li><li><b>Вовлечение представителя заказчика в команду разработки</b> — вовлечение заказчика в работу над проектом является одним из постулатов Agile. В целом наличие представителя заказчика в команде разработки экономит уйму времени на коммуникации.</li><li><b>Презентации, демо и т.п.</b> — представление требований/реализации системы заказчику. Данный способ помогает уточнить требования, а также выявить скрытые и/или избыточные требования. Пример: демонстрация мокапов будущей системы пользователям.</li><li><b>Работа в «Поле» (наблюдение)</b> — наблюдение за деятельностью и процессами будущих пользователей.</li><li><b>Обучение </b>— процесс, в котором заказчик или любой другой человек из организации заказчика, знающий процесс, обучает аналитика по принципу «учитель — ученик».</li></ul><p><b>Очевидный факт:</b></p><p>Только комбинируя методы, возможно добиться сбора требований, максимально отвечающих ожиданиям заказчика.</p><h2>Материалы для самостоятельного изучения</h2><p><b>Блоки знаний:</b></p><ul><li><b>Бизнес-анализ</b> — раздел знаний, отвечающий за описание и формализацию бизнес-процессов. Прежде чем интерпретировать бизнес-процессы в виде ПО, необходимо их «правильно» описать и формализовать.</li><li><b>Моделирование бизнес-процессов</b> — изучение различных нотаций описания бизнес-процессов. Неразрывно связан с бизнес-анализом.</li><li><b>Системный-анализ </b>— раздел знаний, отвечающий за анализ процессов непосредственно в самом ПО.</li><li><b>Моделирование систем</b> — изучение нотаций описания систем ПО. Неразрывно связан с системным анализом.</li><li><b>Документирование требований</b> — изучение различных сред документирования информации о проекте и системе.</li><li><b>Управление требованиями</b> (согласование, управление изменениями, трассировка требований) — отдельный процесс в системе знаний об анализе в ИТ. Является одним из самых сложных процессов на долгосрочных проектах с большим количеством итераций.</li><li><b>Прототипирование</b> — изучение различных инструментов для моделирования интерфейсов и архитектуры ПО. Например: Figma для верстки макетов интерфейсов.</li></ul><p><b>Книги:</b></p><ul><li>Вигерс, Карл: Разработка требований к программному обеспечению. 3-е издание, дополненное / Карл Вигерс, Джой Битти. — Санкт-Петербург : БХВ-Петербург, 2019. — 736 с.</li><li>Ильяхов М., Сарычева Л. Пиши, сокращай. Как создавать сильный текст — 2017.</li><li>Гэртнер, Маркус: ATDD — разработка программного обеспечения через приемочные тесты. — ДМК-Пресс, 2013. — <a href="https://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BA%D0%BD%D0%B8%D0%B3/9785457427068">ISBN 978-5-457-42706-8</a>.</li><li>Gojko Adzic, David Evans — Fifty Quick Ideas to Improve Your User Stories — 2014.</li><li>Майкл Мескон, Майкл Альберт, Франклин Хедоури — Основы менеджмента</li></ul><ul><li>Хоп, Грегор Шаблоны интеграции корпоративных приложений (Signature Series) / Грегор Хоп, Бобби Вульф. — Москва : Вильямс, 2019. — 672 с.</li></ul><ul><li>Кон, Майк Пользовательские истории. Гибкая разработка программного обеспечения / Майк Кон. — Москва : Вильямс, 2018. — 256 с.</li></ul><ul><li>Паттон, Джефф Пользовательские истории. Искусство гибкой разработки ПО / Джефф Паттон — Санкт-Петербург : Питер, 2019. — 288 с.</li></ul><ul><li>Cockburn, Alistair Writing Effective Use Cases / Alistair Cockburn. — Addison-Wesley, 2001.</li></ul><ul><li>USE-CASE 2.0</li></ul><ul><li>Фаулер, Мартин UML. Основы. Краткое руководство по стандартному языку объектного моделирования / Мартин Фаулер. — Москва : Символ-Плюс, 2018. — 192 с.</li></ul><ul><li>Гойко, Аджич Impact Mapping. Как повысить эффективность программных продуктов и проектов по их разработке / Аджич Гойко. — Москва : Альпина Паблишер, 2017. — 86 с.</li></ul><ul><li>Коберн, Алистер Быстрая разработка программного обеспечения/ Алистер Коберн. — Москва: Лори, 2002. — 336 с.</li></ul><ul><li>Корнипаев, Илья Требования для программного обеспечения: рекомендации по сбору и документированию / Илья Корнипаев. — Книга по требованию, 2013. — 118 с. Книга</li></ul><ul><li>Ми, Роберт Шаблоны корпоративных приложений / Роберт Ми, Мартин Фаулер. — Москва : Вильямс, 2018. — 544 с.</li></ul><ul><li>Мартин, Роберт Чистая архитектура. Искусство разработки программного обеспечения / Роберт Мартин. — Санкт-Петербург : Питер, 2018. — 352 с.</li></ul><ul><li>BABOK 3.0</li></ul><ul><li>SWEBOK 3.0</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Как искать данные в пространстве невероятно быстро? R*-tree в Go</title>
      <link>https://tproger.ru/articles/kak-iskat-dannye-v-prostranstve-neverojatno-bystro-r-tree-v-go</link>
      <comments>https://tproger.ru/articles/kak-iskat-dannye-v-prostranstve-neverojatno-bystro-r-tree-v-go?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Кирилл Данилов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-iskat-dannye-v-prostranstve-neverojatno-bystro-r-tree-v-go</guid>
      <description><![CDATA[<p>Как использовать R*-tree, чтобы обновлять данные об игроках на сервере даже при онлайне в 1000 человек и выше.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-iskat-dannye-v-prostranstve-neverojatno-bystro-r-tree-v-go">Как искать данные в пространстве невероятно быстро? R*-tree в Go</a>»</p>]]></description>
      <category><![CDATA[Алгоритмы и структуры данных]]></category>
      <category><![CDATA[Golang]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[Пост пользователя]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 11 May 2022 11:45:05 GMT</pubDate>
      <content:encoded><![CDATA[<p>Всем привет! Я являюсь игровым разработчиком в трехмерных играх с большим опытом и в данный момент перехожу на язык Go и перехожу в Highload. Сегодня я бы хотел рассказать о том, с какой интересной задумкой я столкнулся и решил одну интересную проблему.</p><p>Задумывались ли Вы, как быстро работать с любыми пространственными данными, чтобы это было быстро и эффективно?</p><h2>Предыстория</h2><p><i>На моём опыте я участвовал проектах с нагруженностью 2-3 тысячи человек.В среднем, на одном игровой «машине» располагается примерно 500-1000 человек.На опыте был один проект, где вовсе было 3 тысячи человек: два игровых сервера по 1500 тысячи человек</i></p><p>По большей своей части, я занимался клиентом и логическим ядром сервера в виде обращений к БД, работе с кэшем и связью между клиентом и сервером.<br />Поэтому во всех этих игровых проектах, к сожалению, у меня не было доступа к более низкому уровню сети вроде «синхронизации игроков между другими игроками», кроме одного проекта, где мне помог один человек. Он рассказал мне о том, как работает синхронизация между игроками в его игре.</p><p>Представим себе трехмерную игровую карту с 1000 игроков на сервере.  Карта достаточно большая, поэтому нет смысла, чтобы игроки видели друг друг друга на огромных расстояниях. Это бессмысленная нагрузка.</p><p>Эффективнее всего игроку давать какую-то область видимости (например, круг или квадрат вокруг игрока), где он бы видел игроков поблизости. Так это и устроено в игре, а такая область видимости называется «<b>зона стрима</b>».</p><p>Как просчитывается эта зона стрима?</p><p>Не будем углубляться в в жизненный цикл игрового сервера… Буквально каждую секунду на сервере происходит перерасчет зоны видимости игрока. Они — игроки — постоянно двигаются, перемещаются по карте на автомобилях или пешком.</p><p>Так вот, тот самый человек, который помог мне, рассказал, что в его игре при 1000 онлайне сервера расчет происходит так: берется игрок — к нему просчитываются все остальные игроки, и так для всех игроков. То есть, это цикл 1000 * 1000.</p><p>Я был очень сильно удивлен, поэтому начал копать…</p><h2>Подходим к R-tree. Что это, почему и зачем?</h2><p>Пока я копался в базах данных для подготовки к собеседованиям на Go, я наткнулся на GiST индекс, который является подвидом структуры R-tree. Я начал изучать, что это такое — и это ровно то, что и было нужно!</p><p><i>Что такое </i><b>R-tree</b><i>? </i>R-tree — это древовидная структура данных, которая позволяет довольно быстро работать с геопространственными данными.</p><p><i>А </i><b>R*-tree</b><i> что тогда такое? </i>R*-tree — это подвид структуры R*-tree, который более ёмок в построении, но при этом позволяет обращаться к данным быстрее, чем обычный R-tree</p><h2>Ещё чуть-чуть о той сфере, в которой я работаю</h2><p><i>Я рассказал этому человеку об этой структуре данных (R-tree) и скинул одну интересную статью, и он с удовольствием принял эту идею и в ближайшее время её реализует. </i></p><p>Я показал разработчику буквально на примере, взяв библиотеку <a href="https://github.com/dhconnelly/rtreego">rtreego</a>, с какой разницей можно работать с этими данными по времени. Нагрузка при 4000 игроков с R-tree может быть такой же, как у него с 1000 игроков при его реализации!</p><p>Я был очень сильно доволен, так как решил одну интересную проблемку, но тут было ещё более интересно… Сам же я бегло прочитал ту статью, которую скинул, и этот человек указал мне на то, что в статье описан R*-tree, а не только R-tree.</p><p>Мне было крайне интересно узнать разницу между этими алгоритмами, поэтому я стал копать дальше…</p><h2>В чём же разница между R-tree и R*-tree?</h2><p>R-tree невероятно прост в построении и так же невероятно прост в поиске. У этого дерева нет никаких требований.</p><p>R*-tree сложнее в построении, но при этом более эффективен в поисковых запросах.</p><h2>Что же сложного в построении R*-tree?</h2><p>Возьмем в пример построение R-tree, R-tree с линейным разделением и R*-tree:</p><figure><img src="https://media.tproger.ru/uploads/2022/05/Bezymjannyj.jpg" alt="" /></figure><p>В третьем варианте мы можем увидеть более четкое и явно разделение элементов по веткам (красным квадратикам) и деревьям (синим квадратикам), в то время как в первом и втором варианте у нас самая настоящая <b>каша</b>.</p><p>При обычной вставке элемента в R*-tree дерево работает так же как и в R-tree, но.<br />Когда «листья», на которых хранятся элементы, необходимо разделить — R-tree делает это не запариваясь, в то время как R*-tree старается сделать так, чтобы:</p><ol><li>Листья занимали как можно меньшую площадь</li><li>Листья как можно меньше накладывались на другие листья поблизости</li><li>Листья были равно распределены</li></ol><p>За счет соблюдения трех этих правил, построение может быть по времени в 2-3 раза сложнее, но! Поиск по элементам будет эффективнее в 1.5 — 3 раза.</p><p>Если Вам нужно использовать статические данные, R*-tree будет для Вас!</p><h2>Так где нужно использовать R-tree, а где R*-tree?</h2><p>Мы поняли, что R-tree довольно быстрый при вставке, но медленнее по поиску.<br />Просто взять и «перемещать» данные по дереву невозможно, а лишь можно удалять элемент и вставлять его заново.<br />Поэтому мы приходим к выводу.</p><p>Где можно использовать <b>R-tree</b>?</p><ol><li>Игровой стриминг (область видимости игрока в пространстве)</li><li>Карты, где элементы могут перемещаться (те же карты с курьерами или такси, например!)</li><li>Любые геоданные, которые довольно часто обновляются, но чтение чуть менее важно.</li></ol><p>Где можно использовать <b>R*-tree</b>?</p><ol><li>Тот же игровой стриминг, но статических объектов! Например, у игрока есть огромная карта с множеством элементов (как города в GTA, например). Поиск по этим элементам, даже если их миллион, можно делать за мили (или даже нано) секунды!</li><li>Карты, где невероятно множество статических элементов. (Например, карта заведений, домов или элементов, которые меняются довольно редко)</li><li>Любые геоданные, которые почти не обновляются, но требуют невероятно быстрого чтения</li></ol><p>Эти две структуры данных можно комбинировать.<br />Например, карта курьерской доставки, на которой располагаются обычные дома в одной структуре, а во второй будут курьеры, которые перемещаются.</p><p><i>Таким образом, я выяснил, где конкретно в играх (и не только) можно невероятно эффективно пользоваться этими данными, поэтому возьму эту структуру данных на вооружение.</i></p><h2>Возвращаемся к вопросу об R*-tree на языке Go…</h2><p>У меня ушло довольно много времени, ради того, чтобы понять, как это работает.<br />Сначала я попытался переписать R*-tree с Delphi на Go. У меня это заняло два дня и… не получилось, потому что я не понимал устройства этой структуры.</p><p>Тогда я выяснил для себя путь:</p><ol><li>Полностью переписать и разобрать каждое мелкое действие в готовом решении R-tree (<a href="https://github.com/dhconnelly/rtreego">rtreego</a>)</li><li>Разобрать статью об R*-tree, в которой были исходники на Delphi и псевдокоде</li><li>Сделать из R-tree — R*-tree</li></ol><p><b>Спойлер</b>: у меня это удалось</p><h2>Исходники того, что было сделано и из чего это было сделано</h2><p>Во-первых, хочу проявить огромную благодарность человеку, создавшему <a href="https://github.com/dhconnelly/rtreego">rtreego</a> — <a href="https://github.com/dhconnelly">dhconnelly</a> (автор этой библиотеки).</p><p>Во-вторых, хочу выразить невероятную благодарность человеку, который буквально на пальцах описал статью об R*-tree на своём опыте. Информации было невероятно мало, но именно эта статья ответила на многие вопросы! <a href="https://habr.com/ru/sandbox/171056/">Статья *тык*</a></p><p>Ну, и в третьих, статьи из вики: <a href="https://en.wikipediam.org/wiki/R*-tree">R*-tree (wikipediam)</a>, <a href="https://ru.wikipedia.org/wiki/R-%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE_(%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85)">R-tree (wikipedia на русском)</a></p><p>Из <a href="https://github.com/dhconnelly/rtreego">rtreego</a> я взял за основу R-tree и, переварив код на Delphi и псевдокод из <a href="https://habr.com/ru/sandbox/171056/">статьи</a>, мне удалось создать R*-tree на языке Go, который работает ровно так, как описано по алгортиму.</p><h2>Ссылка на репозиторий:</h2><p>Самое важное —</p><p>Всем огромное спасибо за внимание и за то, что смогли осилить эту невероятно <b>не маленькую </b>статью!</p>]]></content:encoded>
    </item>
  </channel>
</rss>