<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Industry on kenji.blog</title><link>http://kenji.blog/ru/categories/industry/</link><description>Recent content in Industry on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>ru</language><copyright>kenjinote</copyright><lastBuildDate>Sat, 12 Sep 2026 12:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/ru/categories/industry/index.xml" rel="self" type="application/rss+xml"/><item><title>【Проблема 2026 года】Действительно ли существует нехватка ИТ-кадров? Реалии на местах</title><link>http://kenji.blog/ru/p/it-talent-shortage-2026/</link><pubDate>Sat, 12 Sep 2026 12:00:00 +0900</pubDate><guid>http://kenji.blog/ru/p/it-talent-shortage-2026/</guid><description>&lt;img src="http://kenji.blog/p/it-talent-shortage-2026/img/eyecatch.jpg" alt="Featured image of post 【Проблема 2026 года】Действительно ли существует нехватка ИТ-кадров? Реалии на местах" />&lt;h2 id="введение-ловушка-фразы-нехватка-ит-кадров">Введение: Ловушка фразы «Нехватка ИТ-кадров»
&lt;/h2>&lt;p>В японской ИТ-индустрии уже давно циркулируют в СМИ сенсационные фразы вроде «Обрыв 2025 года» и «Нехватка до 790 000 ИТ-специалистов к 2030 году», но то, с чем мы сталкиваемся сейчас, — это кризис совершенно новой фазы, который следует назвать &lt;strong>«Проблемой 2026 года»&lt;/strong>.&lt;/p>
&lt;p>В отчетах Министерства экономики, торговли и промышленности и различных сообщениях СМИ всех обобщают под утверждением «ИТ-инженеров катастрофически не хватает». Однако, если прислушаться к реальным голосам с мест, ситуация оказывается немного сложнее. На самом деле «не хватает не всех». Происходит сильная «поляризация»: &lt;strong>катастрофически не хватает старших инженеров (senior) с продвинутыми навыками, которых компании отчаянно хотят заполучить, в то время как неопытные или малоопытные младшие инженеры (junior) сталкиваются с переизбытком предложения, и им становится все труднее найти работу&lt;/strong>.&lt;/p>
&lt;p>В этой статье мы глубоко разберем и объясним, что на самом деле происходит сейчас в ИТ-индустрии, сдвиг парадигмы от традиционной модели системных интеграторов (SIer) к облачной (cloud-native) и управляемой ИИ разработке, обрыв унаследованных систем, а также разрушительное влияние генеративного ИИ, ярким представителем которого является GitHub Copilot.&lt;/p>
&lt;hr>
&lt;h2 id="1-структурные-изменения-переход-от-традиционных-sier-к-облачной-и-управляемой-ии-разработке">1. Структурные изменения: Переход от традиционных SIer к облачной и управляемой ИИ разработке
&lt;/h2>&lt;p>Долгие годы японскую ИТ-индустрию поддерживала модель системных интеграторов (SIer) с многоуровневой структурой субподряда. Это так называемая «трудоемкая» бизнес-модель, где код пишется строго по спецификациям, а тестовая документация заполняется. Здесь ценность инженера измерялась в «человеко-месяцах», и предполагалось, что если собрать нужное количество людей, проект будет идти своим чередом.&lt;/p>
&lt;p>Однако к 2026 году эта модель достигла своих пределов. Суть DX (цифровой трансформации) сместилась от «простой информатизации» к «трансформации бизнес-моделей», и каскадная (waterfall) разработка с ее низкой гибкостью (agility) больше не может поспевать за изменениями рынка.&lt;/p>
&lt;p>Современный процесс разработки предполагает, что он является &lt;strong>облачным (cloud-native)&lt;/strong> и &lt;strong>управляемым ИИ&lt;/strong>. Контейнеризация (Docker/Kubernetes), микросервисная архитектура и автоматизация CI/CD конвейеров больше не являются «особенными технологиями», а стали «стандартной инфраструктурой».&lt;/p>
&lt;pre class="mermaid">
graph TD
A[&amp;#34;Традиционная модель разработки SIer&amp;#34;] --&amp;gt;|Сдвиг парадигмы| B[&amp;#34;Переходный период (Внедрение Agile, Lift &amp;amp; Shift)&amp;#34;]
B --&amp;gt; C[&amp;#34;Облачная разработка (Микросервисы/Контейнеры)&amp;#34;]
C --&amp;gt; D[&amp;#34;Архитектура, управляемая ИИ и данными (MLOps)&amp;#34;]
D --&amp;gt; E[&amp;#34;Интегрированная платформа генеративного ИИ (Автономные ИИ-агенты)&amp;#34;]
style A fill:#f9d0c4,stroke:#333,stroke-width:2px
style E fill:#d4edda,stroke:#333,stroke-width:4px
&lt;/pre>
&lt;p>Компании больше не ищут «кодеров», которые просто пишут код по заданной спецификации. Им нужны специалисты, способные проектировать облачную инфраструктуру, реализовывать бэкенд и даже внедрять модели машинного обучения в промышленную эксплуатацию (MLOps), превращая бизнес-требования в техническую архитектуру. В областях, требующих столь обширных знаний и опыта, людям, которые «просто знают синтаксис языка программирования», становится все труднее создавать ценность.&lt;/p>
&lt;hr>
&lt;h2 id="2-обрыв-унаследованных-систем-и-истощение-данных-инженерии">2. «Обрыв» унаследованных систем и истощение данных-инженерии
&lt;/h2>&lt;p>Как и предупреждали в связи с «Обрывом 2025 года», многие японские компании все еще полагаются на мейнфреймы и локальные (on-premise) унаследованные системы (созданные на COBOL и т. д.). Из-за многолетних модификаций эти системы превратились в «черные ящики», а в связи с выходом на пенсию старшего поколения специалистов, отвечавших за их обслуживание, поддерживать их становится крайне сложно.&lt;/p>
&lt;p>С другой стороны, со стороны бизнеса поступают сильные запросы: «Мы хотим использовать данные для создания ИИ-моделей и предоставления персонализированного клиентского опыта». Здесь возникает критический разрыв. &lt;strong>Катастрофически не хватает «инженеров данных» (data engineers), которые могли бы очистить, интегрировать и преобразовать разрозненные локальные данные в конвейеры, пригодные для использования в современных конвейерах ИИ/МО (AI/ML)&lt;/strong>.&lt;/p>
&lt;h3 id="математическая-модель-затрат-на-поддержку-унаследованных-систем-и-модернизации">Математическая модель затрат на поддержку унаследованных систем и модернизации
&lt;/h3>&lt;p>Давайте рассмотрим простую математическую модель, сравнивающую затраты на поддержание унаследованной системы ($C_{legacy}$) с инвестициями в модернизацию (обновление) и последующими эксплуатационными расходами ($C_{modern}$).&lt;/p>
&lt;p>Затраты на поддержку унаследованной системы растут с каждым годом. Это связано с устранением сбоев из-за технического долга и ростом затрат на персонал из-за нехватки специалистов по старым технологиям.
Если $t$ — количество лет, это можно выразить следующим образом:&lt;/p>
$$
C_{legacy}(t) = M_0 \times (1 + r)^t + L_0 \times (1 + i)^t
$$&lt;p>Где:&lt;/p>
&lt;ul>
&lt;li>$M_0$: Первоначальные затраты на обслуживание&lt;/li>
&lt;li>$r$: Темп роста затрат на обслуживание из-за технического долга&lt;/li>
&lt;li>$L_0$: Первоначальные затраты на персонал для работы с унаследованными системами&lt;/li>
&lt;li>$i$: Уровень инфляции затрат на персонал из-за нехватки специалистов по старым технологиям&lt;/li>
&lt;/ul>
&lt;p>С другой стороны, модернизация требует значительных первоначальных инвестиций $I$, но благодаря облачным технологиям и автоматизации эксплуатационные расходы $O_m$ остаются низкими и легко поддерживаются на стабильном уровне.&lt;/p>
$$
C_{modern}(t) = I + O_m \times t
$$&lt;p>Во многих случаях очевидно, что в течение нескольких лет (точка безубыточности) $C_{legacy}(t) > C_{modern}(t)$, однако на рынке просто нет достаточного числа «архитекторов» и «инженеров данных», способных реализовать первоначальные инвестиции $I$. Из-за этого многие компании в 2026 году тонут в болоте $C_{legacy}$.&lt;/p>
&lt;pre class="mermaid">
pie title Структура самых дефицитных ИТ-навыков по состоянию на 2026 год
&amp;#34;Специалисты по AI/ML Ops&amp;#34; : 35
&amp;#34;Облачные архитекторы&amp;#34; : 25
&amp;#34;Инженеры данных&amp;#34; : 20
&amp;#34;Миграция унаследованных систем (COBOL и т.д.)&amp;#34; : 15
&amp;#34;Другое&amp;#34; : 5
&lt;/pre>
&lt;hr>
&lt;h2 id="3-разрушительное-влияние-генеративного-ии-github-copilot-и-исчезновение-младших-инженеров">3. Разрушительное влияние генеративного ИИ: GitHub Copilot и исчезновение младших инженеров
&lt;/h2>&lt;p>Говоря о нехватке ИТ-кадров, нельзя не упомянуть &lt;strong>появление генеративного ИИ (Generative AI)&lt;/strong>. Такие инструменты, как GitHub Copilot, Cursor и ChatGPT (серии GPT-4o и O1), коренным образом изменили производительность разработки программного обеспечения.&lt;/p>
&lt;p>В прошлом типичная структура команды предполагала, что старшие инженеры тратили время на сложное проектирование и проверку кода (ревью), в то время как простые операции CRUD (создание, чтение, обновление, удаление), написание шаблонного кода (boilerplate) и тестов поручались (делегировались) младшим инженерам.&lt;/p>
&lt;p>Однако сегодня генеративный ИИ может генерировать 90% этих «задач младших специалистов» за считанные секунды или минуты с высокой точностью. Что произошло в результате? &lt;strong>Компании потеряли смысл нанимать младших инженеров.&lt;/strong>&lt;/p>
&lt;h3 id="изменение-мультипликатора-производительности-за-счет-генеративного-ии">Изменение мультипликатора производительности за счет генеративного ИИ
&lt;/h3>&lt;p>Давайте выразим общую производительность команды разработчиков до и после внедрения ИИ с помощью математических формул.&lt;/p>
&lt;p>Пусть базовая производительность равна $P$.
Пусть прирост производительности старшего инженера благодаря внедрению генеративного ИИ равен $\alpha_{senior}$, а прирост производительности младшего инженера — $\alpha_{junior}$.&lt;/p>
$$
\text{Total Output}_{pre} = N_{senior} \times P_{senior} + N_{junior} \times P_{junior}
$$$$
\text{Total Output}_{post} = N_{senior} \times P_{senior} \times (1 + \alpha_{senior}) + N_{junior} \times P_{junior} \times (1 + \alpha_{junior})
$$&lt;p>На первый взгляд кажется, что производительность младших инженеров также возрастает. Однако в реальности критически важна способность &lt;strong>«проверять правильность сгенерированного ИИ кода, интегрировать его в общую систему и оценивать отсутствие угроз безопасности»&lt;/strong>. Этой способности (понимание контекста и навыки проектирования архитектуры) младшим специалистам не хватает.&lt;/p>
&lt;p>В результате старшие инженеры используют ИИ как «суперталантливого ассистента (младшего разработчика, работающего бесконечно)» и повышают свою производительность в 2-3 раза ($\alpha_{senior} \approx 2.0$). Напротив, когда младшие инженеры без базовых знаний используют ИИ, они генерируют «спагетти-код», который вроде бы работает, но содержит огромное количество технического долга, что приводит к увеличению затрат на ревью (бывают даже случаи, когда фактически $\alpha_{junior} &lt; 0$).&lt;/p>
&lt;p>В итоге компании осознали, что нанять одного старшего инженера (умеющего работать с ИИ) с зарплатой в 1,2 миллиона иен в месяц — это гораздо менее рискованно и более эффективно, чем нанимать трех младших специалистов с зарплатой по 300 тысяч иен. В этом и заключается истинная суть «нехватки кадров». «Старших специалистов, способных эффективно использовать ИИ», совершенно не хватает.&lt;/p>
&lt;pre class="mermaid">
xychart-beta
title Поляризация спроса на вакансии для младших и старших специалистов (2021-2026)
x-axis [&amp;#34;2021&amp;#34;, &amp;#34;2022&amp;#34;, &amp;#34;2023&amp;#34;, &amp;#34;2024&amp;#34;, &amp;#34;2025&amp;#34;, &amp;#34;2026&amp;#34;]
y-axis &amp;#34;Коэффициент вакансий&amp;#34; 0.0 --&amp;gt; 10.0
line [&amp;#34;Старшие (Архитекторы/MLOps и др.)&amp;#34;] [3.0, 3.5, 4.2, 5.8, 7.5, 9.2]
line [&amp;#34;Младшие (Без опыта/Опыт 1-2 года)&amp;#34;] [2.5, 2.2, 1.8, 1.2, 0.8, 0.3]
&lt;/pre>
&lt;hr>
&lt;h2 id="4-за-пределами-промпт-инжиниринга-какие-навыки-действительно-нужны">4. За пределами промпт-инжиниринга: Какие навыки действительно нужны?
&lt;/h2>&lt;p>Так каким же должен быть ИТ-специалист в грядущую эпоху? Слишком поспешно думать, что «достаточно просто овладеть промпт-инжинирингом (prompt engineering)». Искусство давать инструкции на естественном языке становится все проще по мере развития ИИ-моделей и превращается в обыденность (коммодитизацию).&lt;/p>
&lt;p>В реальных условиях сейчас действительно требуются специалисты, способные охватить следующие три области:&lt;/p>
&lt;h3 id="a-предметно-ориентированное-проектирование-ddd-и-бизнес-моделирование">A. Предметно-ориентированное проектирование (DDD) и бизнес-моделирование
&lt;/h3>&lt;p>ИИ может писать код, но он не может «распутать сложные бизнес-спецификации, найти ограниченные контексты (Bounded Contexts) программного обеспечения и спроектировать подходящую модель данных». Навык «предметно-ориентированного проектирования» (Domain-Driven Design, DDD), который позволяет глубоко понять предметную область клиента и перевести ее на технический язык, является одним из самых ценных навыков в эпоху ИИ.&lt;/p>
&lt;h3 id="b-проектирование-архитектуры-и-нефункциональных-требований">B. Проектирование архитектуры и нефункциональных требований
&lt;/h3>&lt;p>Такие «нефункциональные требования», как доступность системы, масштабируемость, безопасность и производительность, не оптимизируются ИИ автоматически. Архитектурные решения вроде «какие облачные сервисы комбинировать», «какой протокол связи между микросервисами использовать» или «где проводить границы транзакций БД», по-прежнему зависят от глубокого человеческого опыта и интуиции.&lt;/p>
&lt;h3 id="c-mlops-и-построение-конвейеров-данных">C. MLOps и построение конвейеров данных
&lt;/h3>&lt;p>Концепция «MLOps» для непрерывной эксплуатации генеративного ИИ и моделей машинного обучения в производственной среде становится все более важной. Специалисты с такими навыками, находящимися на стыке программной инженерии и науки о данных — мониторинг дрейфа моделей (снижения точности), создание конвейеров для непрерывного обучения, оптимизация ресурсов GPU — сейчас на вес золота.&lt;/p>
&lt;hr>
&lt;h2 id="5-стратегии-выживания-для-инженеров-как-преуспеть-после-2026-года">5. Стратегии выживания для инженеров: Как преуспеть после 2026 года
&lt;/h2>&lt;p>В таких условиях как нам, инженерам, строить свою карьеру? Особенно для молодых инженеров ситуация может показаться безнадежной. Однако при правильной стратегии есть масса возможностей для прорыва.&lt;/p>
&lt;h3 id="стратегия-1-стремиться-стать-ии-оркестратором">Стратегия 1: Стремиться стать «ИИ-оркестратором»
&lt;/h3>&lt;p>Вместо того чтобы становиться экспертом в одном языке или фреймворке, вам следует развивать свои способности как «оркестратора», который строит всю систему, комбинируя различные ИИ-инструменты и агенты. Необходимо сократить время, затрачиваемое на самостоятельное написание кода, связывать компоненты, написанные ИИ, и иметь «вид сверху», позволяющий окинуть взглядом всю архитектуру.&lt;/p>
&lt;h3 id="стратегия-2-приобретение-знаний-о-предметной-области">Стратегия 2: Приобретение знаний о предметной области
&lt;/h3>&lt;p>Помимо технических навыков, обзаведитесь глубокими знаниями в конкретной отрасли (финансы, медицина, логистика и т.д.). Инженер, который досконально знает болевые точки рабочих процессов, обладает мощной силой убеждения при предложении технических решений, которую ИИ не может сымитировать. Оставьте «КАК (как создавать)» Искусственному Интеллекту, и сосредоточьтесь на том, «ЧТО (что создавать)» и «ПОЧЕМУ (зачем создавать)».&lt;/p>
&lt;h3 id="стратегия-3-soft-skills-и-управление-заинтересованными-сторонами">Стратегия 3: Soft skills и управление заинтересованными сторонами
&lt;/h3>&lt;p>При масштабной разработке систем успех проекта в конечном итоге зависит от «построения человеческих отношений» и «управления ожиданиями». «Человеческие навыки», такие как определение требований с клиентами, фасилитация внутри команды и достижение консенсуса в сложных решениях — это области, которые ИИ сложнее всего заменить. В будущем будут еще больше цениться специалисты, обладающие превосходными коммуникативными навыками, опирающимися на прочную техническую базу.&lt;/p>
&lt;pre class="mermaid">
graph LR
A[&amp;#34;Просто кодер&amp;#34;] --&amp;gt;|Замещение ИИ| B[&amp;#34;Снижение спроса&amp;#34;]
A --&amp;gt;|Стратегический сдвиг| C[&amp;#34;Системный архитектор&amp;#34;]
A --&amp;gt;|Стратегический сдвиг| D[&amp;#34;Доменный эксперт&amp;#34;]
A --&amp;gt;|Стратегический сдвиг| E[&amp;#34;ИИ-интегратор&amp;#34;]
C --&amp;gt; F[&amp;#34;Высокий спрос и зарплаты (Победители после 2026 года)&amp;#34;]
D --&amp;gt; F
E --&amp;gt; F
style B fill:#f9c2c2,stroke:#333
style F fill:#c8f9c2,stroke:#333,stroke-width:2px
&lt;/pre>
&lt;hr>
&lt;h2 id="заключение-не-бойтесь-а-ловите-волну">Заключение: Не бойтесь, а ловите волну
&lt;/h2>&lt;p>Как вы могли убедиться, реальность «Проблемы 2026 года» и сопутствующей ей нехватки ИТ-кадров заключается не в простом «дефиците людей», а в «несоответствии из-за резкого изменения требуемых навыков».&lt;/p>
&lt;p>Тяжесть унаследованных систем, истощение инженеров данных и сдвиг парадигмы, вызванный генеративным ИИ. Эти волны представляют собой угрозу для традиционных инженеров, но для тех, кто может принять изменения и обновить свой набор навыков, это еще и огромная, беспрецедентная возможность.&lt;/p>
&lt;p>ИИ не отнимает у нас работу, это всего лишь инструмент, позволяющий нам сосредоточиться на более сложной и творческой деятельности. Освободиться от «рутины» кодирования и сфокусироваться на «проектировании» систем и «создании ценности» для бизнеса. Это единственный путь к выживанию и процветанию в ИТ-индустрии после 2026 года.&lt;/p>
&lt;p>Сейчас самое время пересмотреть свой карьерный путь и взять курс на следующую парадигму.
Готовы ли вы «модернизировать» самих себя?&lt;/p></description></item><item><title>Влияние алгоритмов социальных сетей на наше мышление и выбор технологий</title><link>http://kenji.blog/ru/p/sns-algorithm-tech-selection/</link><pubDate>Sat, 12 Sep 2026 12:00:00 +0900</pubDate><guid>http://kenji.blog/ru/p/sns-algorithm-tech-selection/</guid><description>&lt;img src="http://kenji.blog/p/sns-algorithm-tech-selection/img/eyecatch.jpg" alt="Featured image of post Влияние алгоритмов социальных сетей на наше мышление и выбор технологий" />&lt;h2 id="1-введение-демократизация-технической-информации-и-господство-алгоритмов">1. Введение: Демократизация технической информации и господство алгоритмов
&lt;/h2>&lt;p>В современной программной инженерии большая часть технической информации, которую мы потребляем ежедневно, проходит через социальные сети (SNS), такие как X (бывший Twitter), Hacker News, Reddit и LinkedIn, а также новостные агрегаторы. Когда-то мы собирали информацию автономно и в хронологическом порядке через списки рассылки, блоги, управляемые конкретными экспертами, или RSS-ридеры. Однако со взрывным ростом числа новых фреймворков и инструментов, появляющихся каждый день, стало обычной практикой полагаться на «алгоритмы рекомендаций (Recommendation Algorithms)», предоставляемые платформами, чтобы оптимизировать наши ограниченные когнитивные ресурсы (свободное время и внимание).&lt;/p>
&lt;p>Этот сдвиг парадигмы принес огромные преимущества, позволив нам эффективно находить полезные технические статьи и новаторские проекты с открытым исходным кодом. Однако это также вызвало очень серьезный побочный эффект. Факт заключается в том, что &lt;strong>«технологические тренды и передовые методы, которые мы видим, искажаются не объективной оценкой или чисто техническим превосходством, а алгоритмической «функцией оптимизации вовлеченности»»&lt;/strong>.&lt;/p>
&lt;p>В этой статье мы с математической и структурной точек зрения разберем, как продвинутые алгоритмы машинного обучения, работающие за кулисами социальных сетей, формируют наше восприятие и влияют на процесс принятия решений при выборе технологий. Кроме того, мы глубоко рассмотрим опасности «Hype Driven Development (HDD: разработки, управляемой хайпом)», когда люди поддаются энтузиазму, порожденному алгоритмами, и конкретные подходы к отходу от этого в сторону объективного и надежного выбора технологий.&lt;/p>
&lt;hr>
&lt;h2 id="2-эволюция-и-механизмы-алгоритмов-рекомендаций">2. Эволюция и механизмы алгоритмов рекомендаций
&lt;/h2>&lt;p>Когда мы открываем социальную сеть, контент, отображаемый на нашей временной шкале (в ленте), не случаен. За этим стоят модели машинного обучения, тщательно настроенные для максимизации времени пребывания пользователя и увеличения доходов от рекламы. Давайте сначала посмотрим на технологии, лежащие в их основе.&lt;/p>
&lt;h3 id="21-коллаборативная-фильтрация-collaborative-filtering-и-матричное-разложение">2.1 Коллаборативная фильтрация (Collaborative Filtering) и матричное разложение
&lt;/h3>&lt;p>«Коллаборативная фильтрация» служила мощным базовым подходом с первых дней существования рекомендательных систем до настоящего времени. В частности, широко используется «матричное разложение (Matrix Factorization)», которое представляет взаимодействие между пользователями и элементами (постами или статьями) в виде матрицы и отображает их в скрытом пространстве признаков.&lt;/p>
&lt;p>Если мы обозначим матрицу оценок для $M$ пользователей и $N$ элементов как $R \in \mathbb{R}^{M \times N}$, матричное разложение аппроксимирует эту огромную и разреженную (sparse) матрицу произведением матриц скрытых признаков низкой размерности $U \in \mathbb{R}^{M \times K}$ (признаки пользователей) и $V \in \mathbb{R}^{N \times K}$ (признаки элементов) ($K \ll M, N$).&lt;/p>
$$
R \approx U \times V^T
$$&lt;p>Прогнозируемая оценка (вероятность вовлеченности) $\hat{r}_{ij}$ элемента $j$ для конкретного пользователя $i$ вычисляется как скалярное произведение их соответствующих векторов скрытых признаков.&lt;/p>
$$
\hat{r}_{ij} = \mathbf{u}_i \cdot \mathbf{v}_j
$$&lt;p>Эта модель обучается так, чтобы минимизировать следующую функцию потерь ($\lambda$ — член регуляризации для предотвращения переобучения).&lt;/p>
$$
\mathcal{L} = \sum_{(i,j) \in \Omega} (r_{ij} - \mathbf{u}_i \cdot \mathbf{v}_j)^2 + \lambda (\|\mathbf{u}_i\|^2 + \|\mathbf{v}_j\|^2)
$$&lt;p>&lt;strong>Влияние на выбор технологий:&lt;/strong>
Этот алгоритм сближает в скрытом пространстве «Человека А, интересующегося Rust» и «Человека Б, интересующегося Rust». Если А поставит лайк посту о новом веб-фреймворке, существует высокая вероятность того, что этот пост появится и в ленте Б. В результате возникает феномен, когда определенные технологии локально становятся очень популярными среди групп инженеров, предпочитающих конкретные технологические стеки.&lt;/p>
&lt;h3 id="22-рекомендательные-модели-на-основе-глубокого-обучения-dlrm">2.2 Рекомендательные модели на основе глубокого обучения (DLRM)
&lt;/h3>&lt;p>В последние годы получили распространение архитектуры на основе глубокого обучения, такие как Deep Learning Recommendation Model (DLRM), в первую очередь популяризированные Meta (бывший Facebook). DLRM принимает на вход широкий спектр признаков (Features), таких как история прошлых действий пользователя и метаданные элементов, и прогнозирует рейтинг кликов (CTR: Click-Through Rate) и другие показатели.&lt;/p>
&lt;p>Особенностью DLRM является то, что он преобразует разреженные категориальные признаки (например, идентификаторы пользователей, хештеги, на которые они подписаны) в плотные векторы (Dense Vector) через «таблицы встраивания (Embedding Table)» и комбинирует их с непрерывными плотными признаками (например, количество дней с момента создания учетной записи, среднее время пребывания в прошлом).&lt;/p>
$$
\mathbf{e}_{\text{sparse}} = \text{EmbeddingLookup}(\mathbf{x}_{\text{sparse}})
$$$$
\mathbf{h}_{\text{dense}} = \text{BottomMLP}(\mathbf{x}_{\text{dense}})
$$&lt;p>После того как они объединяются (Concatenate) или взаимодействуют (Feature Interaction) посредством скалярного произведения, они подаются в верхний многослойный перцептрон (Top MLP), и окончательная вероятность (например, CTR) выводится с помощью сигмоидной функции $\sigma$.&lt;/p>
$$
\hat{y} = \sigma(\text{TopMLP}(\text{Interact}(\mathbf{e}_{\text{sparse}}, \mathbf{h}_{\text{dense}})))
$$&lt;p>&lt;strong>Влияние на выбор технологий:&lt;/strong>
Огромные модели вроде DLRM способны улавливать даже самые незначительные сигналы (например, небольшое увеличение времени пребывания на «посте с видео» или «посте, содержащем определенное модное слово») и отражать их в прогнозируемом балле. В результате техническая информация, содержащая «провокационные заголовки (например, &amp;ldquo;React уже устарел&amp;rdquo;, &amp;ldquo;Конец микросервисов&amp;rdquo;)» или «визуально яркие демонстрации», с большей вероятностью будет алгоритмически предпочтительной.&lt;/p>
&lt;h3 id="23-обучение-с-подкреплением-и-задача-о-многоруком-бандите-multi-armed-bandits">2.3 Обучение с подкреплением и задача о многоруком бандите (Multi-Armed Bandits)
&lt;/h3>&lt;p>Рекомендательные системы всегда должны исследовать последние предпочтения пользователей. Здесь вступает в игру «задача о многоруком бандите». Она оптимизирует компромисс между «использованием (Exploitation)», то есть показом надежного контента на основе существующих предпочтений, и «исследованием (Exploration)» для обнаружения новых тенденций.&lt;/p>
&lt;p>В типичном алгоритме UCB (Upper Confidence Bound) оценка для выбора ручки (группы контента) $a$ в момент времени $t$ вычисляется следующим образом:&lt;/p>
$$
a_t = \arg\max_{a} \left( \hat{\mu}_a + c \sqrt{\frac{\ln t}{N_a(t)}} \right)
$$&lt;p>Здесь $\hat{\mu}_a$ — среднее вознаграждение (уровень вовлеченности) ручки $a$ к настоящему времени, $N_a(t)$ — количество раз, когда она была выбрана, а $c$ — параметр, регулирующий степень исследования.&lt;/p>
&lt;p>&lt;strong>Влияние на выбор технологий:&lt;/strong>
Алгоритм временно предоставляет бонус к исследованию для постов о недавно появившихся фреймворках или библиотеках (с малым количеством попыток $N_a(t)$) и показывает их случайной группе пользователей. Если в течение этой начальной «фазы исследования» реакция влиятельных лиц (инфлюенсеров) положительна, $\hat{\mu}_a$ резко возрастает и быстро превращается в вирусный шум (базз). Это и есть механизм, из-за которого «внезапно все начинают говорить об этой технологии».&lt;/p>
&lt;hr>
&lt;h2 id="3-математика-эхо-камер-и-пузырей-фильтров">3. Математика эхо-камер и пузырей фильтров
&lt;/h2>&lt;p>По мере продвижения алгоритмической оптимизации пользователи начинают окружать себя «информацией, которая им приятна или которая подкрепляет их существующие убеждения». Это и есть &lt;strong>феномен эхо-камеры (Echo Chamber)&lt;/strong> и &lt;strong>пузырь фильтров (Filter Bubble)&lt;/strong>.&lt;/p>
&lt;p>В теории сетей тенденция схожих людей объединяться называется «гомофилией (Homophily)». В графе $G=(V, E)$ ребра (отношения подписки или распространение информации) между узлами (пользователями) с большей вероятностью образуются при высокой степени сходства атрибутов.&lt;/p>
&lt;p>Алгоритмы рекомендаций в социальных сетях искусственно ускоряют эту гомофилию. Например, представьте, что есть сообщество инженеров, продвигающих «бессерверную архитектуру (Serverless)», и сообщество, поддерживающее «локальное размещение на голом железе (Bare Metal)». Алгоритм учится снижать вес ребер между различными сообществами (Cross-cutting ties) и усиливать ребра внутри одного сообщества (поскольку конфликтующие мнения часто вызывают уход с платформы и рискуют снизить вовлеченность. С другой стороны, иногда крайний гнев может повышать вовлеченность, но в технологической среде преобладает первая тенденция).&lt;/p>
&lt;p>В результате на вашей временной шкале может показаться, что «компании по всему миру переходят на бессерверные технологии», в то время как на временной шкале кого-то другого будет казаться, что «уход из облака (Cloud Repatriation) — это глобальный тренд». Так создаются совершенно изолированные технологические реальности.&lt;/p>
&lt;hr>
&lt;h2 id="4-разработка-управляемая-хайпом-hdd-порожденная-алгоритмами">4. Разработка, управляемая хайпом (HDD), порожденная алгоритмами
&lt;/h2>&lt;p>Сочетание эхо-камер и мощных рекомендательных моделей приводит к одному из крупнейших антипаттернов в инженерной индустрии — &lt;strong>Hype Driven Development (разработке, управляемой хайпом)&lt;/strong>. HDD — это феномен внедрения новых технологий просто потому, что они «обсуждаются в социальных сетях» или «являются последним трендом», без глубокого рассмотрения их реальных преимуществ, компромиссов или соответствия бизнес-требованиям компании.&lt;/p>
&lt;p>Следующая диаграмма Mermaid показывает, как алгоритмы социальных сетей запускают цикл обратной связи HDD.&lt;/p>
&lt;pre class="mermaid">
graph TD
A[&amp;#34;Инженер публикует &amp;#39;огромные преимущества&amp;#39; новой технологии&amp;#34;] --&amp;gt; B[&amp;#34;Алгоритм измеряет начальный CTR и время пребывания (Исследование)&amp;#34;]
B --&amp;gt; C[&amp;#34;Определяется высокая вовлеченность, расширяется показ в лентах похожих пользователей&amp;#34;]
C --&amp;gt; D[&amp;#34;Пользователи, стимулируемые FOMO (страхом упущенной выгоды), распространяют дальше&amp;#34;]
D --&amp;gt; E[&amp;#34;Возникновение иллюзии частотности (ошибочного восприятия), что это &amp;#39;становится отраслевым стандартом&amp;#39;&amp;#34;]
E --&amp;gt; F[&amp;#34;Внедрение в реальные проекты без достаточной проверки (HDD)&amp;#34;]
F --&amp;gt; A
&lt;/pre>
&lt;p>Что пугает в этом цикле, так это то, что алгоритм намеренно вызывает &lt;strong>«Иллюзию частотности (Феномен Баадера — Майнхоф)»&lt;/strong>. Если вы однажды увидите название новой библиотеки управления состоянием, алгоритм воспримет это как сигнал и со следующего дня наполнит вашу ленту разговорами об этой библиотеке. Человеческий мозг ошибочно принимает это за «глобальную эпидемию».&lt;/p>
&lt;p>На графике ниже показана разница в жизненных циклах технологий, которые чрезмерно расхайплены (преувеличены) в социальных сетях, и простых, скучных, но надежных технологий (Boring Technology).&lt;/p>
&lt;pre class="mermaid">
xychart-beta
title Жизненный цикл технологий и динамика их оценки
x-axis [&amp;#34;0 мес.&amp;#34;, &amp;#34;6 мес.&amp;#34;, &amp;#34;12 мес.&amp;#34;, &amp;#34;18 мес.&amp;#34;, &amp;#34;24 мес.&amp;#34;, &amp;#34;30 мес.&amp;#34;, &amp;#34;36 мес.&amp;#34;]
y-axis &amp;#34;Количество упоминаний / Уровень энтузиазма в соцсетях&amp;#34; 0 --&amp;gt; 100
line [10, 85, 95, 45, 20, 10, 5]
line [15, 20, 25, 35, 50, 65, 80]
&lt;/pre>
&lt;p>&lt;em>(Примечание: на графике выше линия, которая резко возрастает и резко падает, представляет «Технологию на хайпе», а медленно и неуклонно растущая линия представляет «Скучную технологию»)&lt;/em>&lt;/p>
&lt;p>Расхайпленные технологии сталкиваются с такими реальными проблемами, как «нехватка документации», «серьезные ошибки в крайних случаях» и «выгорание мейнтейнеров» через 6–12 месяцев после внедрения, и быстро исчезают из социальных сетей. Однако устранение технического долга, однажды встроенного в систему, требует огромных затрат.&lt;/p>
&lt;hr>
&lt;h2 id="5-стратегии-отхода-от-алгоритмов-при-выборе-технологий">5. Стратегии «отхода от алгоритмов» при выборе технологий
&lt;/h2>&lt;p>Итак, как мы можем принимать объективные и взвешенные решения о выборе технологий, находясь под контролем этих алгоритмов? Вот несколько конкретных стратегий не для взлома алгоритмов, а для «выхода» из-под их влияния.&lt;/p>
&lt;h3 id="51-возврат-к-первоисточникам-исходный-код-и-rfc">5.1 Возврат к первоисточникам: исходный код и RFC
&lt;/h3>&lt;p>Самая надежная защита — это перенос источников информации с агрегаторов социальных сетей на &lt;strong>первоисточники (Primary Sources)&lt;/strong>.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Читайте исходный код:&lt;/strong> Вместо того чтобы верить постам в социальных сетях о том, что «эта библиотека работает молниеносно», откройте GitHub и проверьте вычислительную сложность базовой логики и механизм выделения памяти.&lt;/li>
&lt;li>&lt;strong>Следите за RFC (Request for Comments):&lt;/strong> Многие зрелые проекты с открытым исходным кодом (React, Rust, Python и т. д.) используют процесс RFC при внедрении новых функций. В RFC логично и беспристрастно описаны вопросы «зачем нужна эта функция», «каковы архитектурные компромиссы» и «каковы альтернативы», без оглядки на алгоритмическую вовлеченность. Именно здесь кроется истинная техническая ценность.&lt;/li>
&lt;/ol>
&lt;h3 id="52-внимательное-чтение-научных-статей-academic-papers-и-технических-документов-whitepapers">5.2 Внимательное чтение научных статей (Academic Papers) и технических документов (Whitepapers)
&lt;/h3>&lt;p>Когда дело доходит до фундаментального выбора технологий, таких как распределенные системы, базы данных и архитектуры моделей машинного обучения, вам следует читать напрямую научные статьи, опубликованные ACM, IEEE или arXiv, а также подробные технические документы, опубликованные компаниями (например, статья Google о Spanner, статья Amazon о Dynamo), а не резюме в несколько строк в социальных сетях.&lt;/p>
&lt;p>Посты в социальных сетях оптимизированы на «захват внимания читателя», тогда как рецензируемые статьи оптимизированы на «фактическую точность и воспроизводимость». Функции оценки совершенно разные.&lt;/p>
&lt;h3 id="53-построение-фреймворка-для-принятия-решений-в-организации">5.3 Построение фреймворка для принятия решений в организации
&lt;/h3>&lt;p>Чтобы предотвратить HDD на уровне команды или организации, необходим процесс, исключающий субъективную интуицию или причины вроде «потому что я видел это в Twitter». Типичным примером является внедрение &lt;strong>ADR (Architecture Decision Records)&lt;/strong>.&lt;/p>
&lt;p>При внедрении новой технологии следующие пункты всегда должны быть задокументированы и рецензированы:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Context (Контекст):&lt;/strong> Зачем нужна новая технология? Какова текущая проблема?&lt;/li>
&lt;li>&lt;strong>Decision (Решение):&lt;/strong> Что будет принято?&lt;/li>
&lt;li>&lt;strong>Consequences (Последствия):&lt;/strong> Каковы компромиссы? (Чем мы жертвуем и что получаем?)&lt;/li>
&lt;/ul>
&lt;p>Сделав этот процесс обязательным, можно превратить «Хайп (Hype)» в «Инженерию (Engineering)».&lt;/p>
&lt;h3 id="54-философия-boring-technology-club">5.4 Философия Boring Technology Club
&lt;/h3>&lt;p>В технологическом мире есть известная мантра: &lt;strong>&amp;ldquo;Choose Boring Technology&amp;rdquo; (Выбирайте скучные технологии)&lt;/strong>. Она учит нас не тратить токены инноваций (ограниченные ресурсы, которые организация может потратить на новые неизвестные технологии) на выбор инфраструктуры или фреймворков, не связанных напрямую с основными бизнес-ценностями.&lt;/p>
&lt;p>Алгоритмы социальных сетей любят «новизну». Однако для создания надежной системы, способной выдержать реальную эксплуатацию, вам нужны «скучные» технологии с более чем 10-летней историей использования, процедуры восстановления после сбоев для которых дают миллионы результатов в поиске Google (PostgreSQL, Redis, стандартные REST API и т. д.).&lt;/p>
&lt;hr>
&lt;h2 id="6-заключение-как-нам-следует-относиться-к-технологиям">6. Заключение: Как нам следует относиться к технологиям
&lt;/h2>&lt;p>Алгоритмы рекомендаций социальных сетей — это мощные инструменты, которые расширяют наш технологический кругозор и позволяют знакомиться с замечательными сообществами. Однако, поскольку их внутренняя структура (матричное разложение, DLRM, многорукие бандиты) имеет своей главной целью «максимизацию вовлеченности», выдаваемая информация неизбежно будет предвзятой.&lt;/p>
&lt;p>Нам необходимо развить грамотность, чтобы относиться к информации, поступающей в наши ленты, как к одному из «сигналов», а не как к «фактам» или «абсолютным трендам».&lt;/p>
&lt;p>Нужно выйти за пределы эхо-камер, читать исходный код своими глазами, следить за обсуждениями в RFC, расшифровывать математические формулы в научных статьях и смотреть в лицо истинным проблемам нашего бизнес-домена. Это единственный способ практиковать настоящую программную инженерию, не будучи поглощенным волной алгоритмов.&lt;/p></description></item><item><title>Текущее состояние и проблемы ИТ-образования в Японии: последствия обязательного обучения программированию</title><link>http://kenji.blog/ru/p/japan-it-education-aftermath/</link><pubDate>Sat, 12 Sep 2026 12:00:00 +0900</pubDate><guid>http://kenji.blog/ru/p/japan-it-education-aftermath/</guid><description>&lt;img src="http://kenji.blog/p/japan-it-education-aftermath/img/eyecatch.jpg" alt="Featured image of post Текущее состояние и проблемы ИТ-образования в Японии: последствия обязательного обучения программированию" />&lt;h2 id="1-введение-свет-и-тени-обязательного-обучения-программированию">1. Введение: Свет и тени обязательного обучения программированию
&lt;/h2>&lt;p>С обязательным обучением программированию в начальной школе в 2020 финансовом году, его расширением на уроках технологий и домоводства в средней школе в 2021 году и введением нового обязательного предмета «Информация I» в старшей школе в 2022 году, ИТ-образование и информатика в Японии за последние годы пережили смену парадигмы беспрецедентного масштаба. В основе этой серии политических мер лежит чрезвычайно острая и национальная необходимость: развитие логического мышления (программистского мышления) для выживания в эпоху Society 5.0 (супер-умного общества) и решение хронической проблемы нехватки высококвалифицированных ИТ-кадров в промышленности.&lt;/p>
&lt;p>Однако, если взглянуть на передовую линию образования, становится очевидным, что между идеалом, нарисованным государством, и реальностью возник огромный разрыв. Самая серьезная проблема заключается в том, что «изучение программирования как инструмента» и «освоение компьютерных наук как академической дисциплины» полностью смешиваются. Кроме того, существует множество структурных проблем, требующих решения, таких как технические ограничения, вызванные характеристиками ИТ-инфраструктуры, развернутой в масштабах всей страны, и нехватка специализированных навыков у преподавателей.&lt;/p>
&lt;p>В этой статье подведены итоги того, что произошло «после» введения обязательного программирования в Японии, и дан чрезвычайно подробный технический анализ фундаментальных и структурных проблем, с которыми ИТ-образование сталкивается прямо сейчас, с точки зрения теории компьютерных наук, аппаратных ограничений и глобальной конкурентоспособности промышленности. Это не просто рассуждение об образовании, а эссе на 10 000 символов, в котором будущее Японии рассматривается с точки зрения программной инженерии.&lt;/p>
&lt;h2 id="2-ловушка-визуального-программирования-глубокая-и-крутая-пропасть-между-scratch-и-текстовым-кодированием">2. Ловушка визуального программирования: Глубокая и крутая пропасть между Scratch и текстовым кодированием
&lt;/h2>&lt;p>Де-факто стандартом в обучении программированию в начальной школе стали языки визуального программирования (блочное программирование), типичным представителем которых является «Scratch», разработанный MIT Media Lab. Тот факт, что три базовые управляющие структуры алгоритмов: «последовательность (sequence)», «ветвление (selection)» и «цикл (iteration)», могут быть изучены визуально и интуитивно путем соединения блоков, как пазлов, с использованием интуитивно понятного графического интерфейса, является великим изобретением, которое следует высоко оценить в качестве вводного образования.&lt;/p>
&lt;p>Однако здесь кроется серьезная ловушка, так называемая «ловушка абстракции». Это жестокий факт, что «переход от визуального программирования к полноценным текстовым языкам программирования (Python, JavaScript, C++, Rust и т.д.) чрезвычайно сложен, и многие учащиеся сдаются на этом этапе».&lt;/p>
&lt;h3 id="барьер-абстракции-и-черный-ящик-компьютерных-наук">Барьер абстракции и черный ящик компьютерных наук
&lt;/h3>&lt;p>Среды визуального программирования, такие как Scratch, в высокой степени абстрагируют и намеренно скрывают (инкапсулируют) ключевые элементы, составляющие основу компьютерных наук, такие как сложный синтаксис программирования, строгие системы типов и управление жизненным циклом памяти. Это отлично подходит для снижения когнитивной нагрузки на новичков, но становится огромным препятствием при переходе к следующему этапу — настоящей инженерии. В реальной разработке программного обеспечения абсолютно необходимо понимание области видимости переменных (локальные и глобальные переменные), сложных структур данных (массивы, связные списки, хеш-таблицы, бинарные деревья поиска, графы), операций с указателями и областей памяти heap (куча) и stack (стек).&lt;/p>
&lt;p>Следующая диаграмма Mermaid визуализирует препятствия в обучении и точки отсева (drop-off), с которыми сталкиваются новички в процессе перехода от визуального программирования к полноценной информатике.&lt;/p>
&lt;pre class="mermaid">
flowchart TD
A[&amp;#34;Начальная школа: Scratch (визуальный/на основе блоков)&amp;#34;] --&amp;gt; B{&amp;#34;Средняя школа: Барьер перехода к текстовым языкам&amp;#34;}
B --&amp;gt;|Сдаются из-за строгих синтаксических ошибок| C[&amp;#34;Отсев (Аллергия на синтаксис)&amp;#34;]
B --&amp;gt;|Недостаток понимания переменных и статической типизации| D[&amp;#34;Отсев (Барьер типов)&amp;#34;]
B --&amp;gt;|Успешный переход| E[&amp;#34;Старшая школа: Информация I (Основы Python/JavaScript и др.)&amp;#34;]
E --&amp;gt; F{&amp;#34;Барьер проектирования алгоритмов и структур данных&amp;#34;}
F --&amp;gt;|Непонимание временной и пространственной сложности| G[&amp;#34;Неэффективный код (Снижение производительности из-за злоупотребления O(N^2))&amp;#34;]
F --&amp;gt;|Черный ящик управления памятью и ссылок| H[&amp;#34;Превращение в кодера, ограничивающегося поверхностными вызовами API&amp;#34;]
F --&amp;gt;|Концептуальный прорыв| I[&amp;#34;Полноценное изучение CS (C/C++, Java, низкоуровневая архитектура)&amp;#34;]
I --&amp;gt; J[&amp;#34;Высококвалифицированный ИТ-профессионал, которого жаждет индустрия&amp;#34;]
classDef default fill:#f9f9f9,stroke:#333,stroke-width:2px;
classDef error fill:#ffcccc,stroke:#cc0000,stroke-width:2px;
classDef success fill:#ccffcc,stroke:#00cc00,stroke-width:2px;
class C,D,G,H error;
class J success;
&lt;/pre>
&lt;p>Как ясно из этой блок-схемы, простой опыт «написания кода, который перемещает персонажей на экране» не воспитает настоящих инженеров-программистов, способных проектировать масштабируемую распределенную системную архитектуру и оптимизировать производительность до миллисекунд. Между сборкой разноцветных блоков Scratch с помощью мыши и чтением исходного кода ядра Linux на C для отслеживания поведения стека TCP/IP существует абсолютный концептуальный разрыв, который нельзя объяснить просто словами «разница в используемых языках».&lt;/p>
&lt;h2 id="3-ограничения-кодирования-без-математики-и-дискретной-логики-подход-с-точки-зрения-теории-сложности">3. Ограничения кодирования без «Математики» и «Дискретной логики»: Подход с точки зрения теории сложности
&lt;/h2>&lt;p>Самой слабой стороной и фатальным недостатком учебной программы по программированию в Японии является острая нехватка связи между «навыками кодирования» и «математикой/дискретной математикой (Discrete Mathematics)». В лучших программах по информатике (computer science) в США, Индии и других странах акцент делается на эффективности алгоритмов, математической логике и математических доказательствах, а не на самой грамматике языков программирования. Ведь код — это не что иное, как перевод математических формул.&lt;/p>
&lt;h3 id="абсолютное-доминирование-временной-и-пространственной-сложности-big-o-notation">Абсолютное доминирование временной и пространственной сложности (Big O Notation)
&lt;/h3>&lt;p>При оценке и проектировании производительности программного обеспечения нельзя избежать концепций временной сложности (Time Complexity) и пространственной сложности (Space Complexity). Асимптотическая нотация Ландау (Big O Notation) показывает, как увеличивается время выполнения и потребление памяти, когда размер данных, вводимых в алгоритм, равен $N$.&lt;/p>
&lt;p>Математически $f(x) = O(g(x))$ строго определяется следующим образом:&lt;/p>
$$
\exists C > 0, \exists x_0 > 0, \forall x > x_0, |f(x)| \le C \cdot |g(x)|
$$&lt;p>В японском ИТ-образовании, например, при изучении сортировки данных, часто встречаются случаи, когда все заканчивается простым вызовом встроенного метода &lt;code>array.sort()&lt;/code> в Python. Однако то, что действительно требуется в информационной инженерии, — это математическое понимание и доказательство того, почему простая пузырьковая сортировка никогда не используется в практических областях, и почему быстрая сортировка (Quick Sort), сортировка слиянием (Merge Sort) или Timsort принимаются в качестве стандартных библиотек.&lt;/p>
&lt;p>Ниже приведена средняя временная сложность типичных алгоритмов сортировки:&lt;/p>
&lt;ul>
&lt;li>Пузырьковая сортировка (Bubble Sort): $O(N^2)$&lt;/li>
&lt;li>Сортировка выбором (Selection Sort): $O(N^2)$&lt;/li>
&lt;li>Сортировка вставками (Insertion Sort): $O(N^2)$&lt;/li>
&lt;li>Сортировка слиянием (Merge Sort): $O(N \log N)$&lt;/li>
&lt;li>Быстрая сортировка (Quick Sort): $O(N \log N)$&lt;/li>
&lt;li>Пирамидальная сортировка (Heap Sort): $O(N \log N)$&lt;/li>
&lt;/ul>
&lt;p>Например, временная сложность сортировки слиянием $T(N)$ в рамках парадигмы «разделяй и властвуй» (Divide and Conquer) выражается следующим рекуррентным соотношением:&lt;/p>
$$
T(N) = 2T\left(\frac{N}{2}\right) + O(N)
$$&lt;p>Путем разложения и решения этого рекурсивного уравнения с использованием основной теоремы (Master Theorem) выводится идеальная сложность $T(N) = O(N \log N)$.&lt;/p>
$$
T(N) = \Theta(N \log_2 N)
$$&lt;p>При анализе современных больших данных и обработке трафика в масштабе веб-приложений $N$ достигает огромных порядков — сотен миллионов и миллиардов. Если невежественный программист реализует неэффективный алгоритм $O(N^2)$, для данных размером $N = 10^6$ потребуется $10^{12}$ (1 триллион) ненужных операций сравнения, и система фактически зависнет или рухнет. С другой стороны, с $O(N \log N)$ это будет завершено примерно за $2 \times 10^7$ (20 миллионов) операций. Утверждать «я умею программировать» без этой жестокой математической поддержки — все равно что строить небоскреб, не зная строительной механики, и это крайне опасно.&lt;/p>
&lt;h2 id="4-управление-памятью-и-превращение-системной-архитектуры-в-черный-ящик">4. Управление памятью и превращение системной архитектуры в черный ящик
&lt;/h2>&lt;p>Еще более глубокая проблема заключается в том, что понимание управления памятью (Memory Management) и архитектуры ЦП полностью отсутствует. Учащиеся, изучающие только языки высокого уровня с автоматической сборкой мусора (GC), такие как Python и JavaScript, которые в настоящее время преподаются в школах, никогда в жизни не будут задумываться о том, где в физической памяти (RAM) размещаются переменные и объекты (в куче или в стеке), как они выделяются и когда/как освобождаются.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-c" data-lang="c">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// Пример явного и прямого выделения памяти и манипуляций с указателями в C
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;stdio.h&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;stdlib.h&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">int&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">int&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1000000&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// Динамическое непрерывное выделение памяти в куче (системный вызов к ОС)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="kt">int&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">array&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="kt">int&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="nf">malloc&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="k">sizeof&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="kt">int&lt;/span>&lt;span class="p">));&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">array&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="nb">NULL&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">fprintf&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">stderr&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;Memory allocation failed! Out of memory.&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// Инициализация массива с помощью арифметики указателей
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="k">for&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="kt">int&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">n&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="o">++&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">array&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="c1">// Эквивалентно array[i] = i * 2
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// Явное освобождение ресурсов для предотвращения утечки памяти (Memory Leak)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="nf">free&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">array&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">array&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">NULL&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="c1">// Предотвращение появления висячих указателей (Dangling pointer)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Концепции указателей (прямые ссылки на адреса памяти), размещение данных для максимизации частоты попадания в иерархию кэш-памяти ЦП (кэш L1/L2/L3) (Data Locality), а также знания о состоянии гонки (Race Condition) и взаимном исключении (Mutex/Semaphore) в многопоточной среде абсолютно необходимы для разработки высокопроизводительных бэкенд-систем, 3D-игровых движков или встроенных систем для IoT. Приходится признать, что нынешняя учебная программа Министерства образования, культуры, спорта, науки и технологий ограничивается «созданием поверхностных приложений» и сильно отклоняется от своей первоначальной академической цели — «понимания глубин компьютерных наук».&lt;/p>
&lt;h2 id="5-барьер-баз-данных-и-персистентности-отсутствие-реляционной-алгебры">5. Барьер баз данных и персистентности: Отсутствие реляционной алгебры
&lt;/h2>&lt;p>В современных приложениях сохранение и поиск данных (персистентность) являются неизбежными темами. Однако большая часть школьного образования ограничивается «обработкой данных в памяти», которые исчезают после завершения программы. Математическая теория, лежащая в основе реляционных баз данных (RDBMS) и SQL, а именно «реляционная алгебра (Relational Algebra)», предложенная доктором Эдгаром Ф. Коддом, преподается редко.&lt;/p>
&lt;p>Операции с базами данных определяются следующими базовыми операциями, основанными на теории множеств:&lt;/p>
&lt;ul>
&lt;li>Выборка (Selection, $\sigma$): Извлечение кортежей (строк), удовлетворяющих условию.&lt;/li>
&lt;li>Проекция (Projection, $\pi$): Извлечение определенных атрибутов (столбцов).&lt;/li>
&lt;li>Соединение (Join, $\bowtie$): Условное пересечение нескольких отношений.&lt;/li>
&lt;/ul>
&lt;p>Кроме того, изучение структуры индекса «B-Tree (B-дерево)» для мгновенного поиска нужных данных среди огромного количества записей является лучшей практикой применения структур данных. B-Tree минимизирует количество операций ввода-вывода (I/O) на диске и гарантирует скорость поиска $O(\log N)$. Невозможно создать надежную систему, не зная свойств ACID (Atomicity, Consistency, Isolation, Durability) транзакций.&lt;/p>
&lt;h2 id="6-безопасность-и-теория-криптографии-сложность-разложения-на-множители-как-опора-социальной-инфраструктуры">6. Безопасность и теория криптографии: Сложность разложения на множители как опора социальной инфраструктуры
&lt;/h2>&lt;p>Хотя обучение информационной грамотности включает поверхностное обучение безопасности, такое как «давайте использовать сложные пароли» и «давайте не будем переходить по подозрительным ссылкам», математика «теории криптографии», которая является основой интернет-общества, почти не преподается.&lt;/p>
&lt;p>Связь по протоколу HTTPS и цифровые подписи, которые мы используем каждый день, защищены криптографией с открытым ключом, такой как алгоритм RSA. Безопасность RSA зависит от математической сложности (которая считается NP-промежуточной задачей): «разложение огромных целых чисел на простые множители невозможно решить за реальное время на современных классических компьютерах».&lt;/p>
&lt;p>Математические формулы, лежащие в основе криптографии RSA, красивы и применяют функцию Эйлера (totient) и малую теорему Ферма:&lt;/p>
&lt;ol>
&lt;li>Выберите два очень больших простых числа $p$ и $q$.&lt;/li>
&lt;li>Вычислите $n = p \times q$ (это станет частью открытого ключа).&lt;/li>
&lt;li>Вычислите $\phi(n) = (p-1)(q-1)$.&lt;/li>
&lt;li>Выберите $e$ и $d$ такие, что $e \times d \equiv 1 \pmod{\phi(n)}$.&lt;/li>
&lt;li>Шифрование: $C \equiv M^e \pmod{n}$&lt;/li>
&lt;li>Расшифровка: $M \equiv C^d \pmod{n}$&lt;/li>
&lt;/ol>
&lt;p>Таким образом, обучение программированию демонстрирует свою истинную мощь только тогда, когда оно тесно связано с обучением математике. Процесс перевода математических формул в код и их внедрение в общество — вот в чем заключается истинная прелесть науки.&lt;/p>
&lt;h2 id="7-концепция-giga-school-и-безнадежные-ограничения-инфраструктуры-chromebook-и-облачные-ide">7. Концепция GIGA School и безнадежные ограничения инфраструктуры: Chromebook и облачные IDE
&lt;/h2>&lt;p>Говоря об ИТ-образовании в Японии, нельзя не упомянуть о «Концепции GIGA School», национальном проекте, на продвижение которого Министерство образования, культуры, спорта, науки и технологий потратило огромный бюджет. Ожидалось, что этот проект, который обеспечит «одно устройство на каждого ученика» и высокоскоростную сетевую среду для учащихся начальных и средних школ по всей стране, станет катализатором для преодоления отставания в цифровизации. Однако аппаратные характеристики и архитектура реально распределенных терминалов стали серьезным препятствием для полноценного обучения программированию.&lt;/p>
&lt;h3 id="низкопроизводительные-терминалы-и-потеря-среды-локальной-разработки">Низкопроизводительные терминалы и потеря среды локальной разработки
&lt;/h3>&lt;p>Многие терминалы, представленные в качестве стандартных спецификаций концепции GIGA School, — это чрезвычайно дешевые Chromebook, iPad или бюджетные устройства Windows. Их стандартные характеристики таковы:&lt;/p>
&lt;ul>
&lt;li>ЦП: Intel Celeron или дешевый процессор ARM&lt;/li>
&lt;li>Память (RAM): 4 ГБ (Минимально достаточный объем только для запуска современной ОС)&lt;/li>
&lt;li>Хранилище (eMMC): от 32 ГБ до 64 ГБ (Чрезвычайно низкая скорость ввода-вывода)&lt;/li>
&lt;/ul>
&lt;p>Из-за этих скудных аппаратных ограничений фактически невозможно создать «среду локальной разработки», которую профессиональные инженеры используют каждый день. Запуск контейнеров Linux с использованием Docker, запуск тяжелых IDE, таких как Visual Studio Code, с полной функциональностью или запуск локальных серверов Node.js/Python для установки тяжелых библиотек приведет к немедленному истощению памяти и зависанию системы.&lt;/p>
&lt;p>В результате сфера образования вынуждена полностью полагаться на облачные IDE (Google Colaboratory, Replit или легкие веб-инструменты от издателей учебников), которые работают в браузере.&lt;/p>
&lt;pre class="mermaid">
flowchart LR
subgraph &amp;#34;Терминал GIGA (Chromebook / iPad / Бюджетный Windows)&amp;#34;
A[&amp;#34;Веб-браузер (Только рендеринг UI)&amp;#34;]
end
subgraph &amp;#34;Удаленная облачная инфраструктура (AWS / GCP и др.)&amp;#34;
B[&amp;#34;Веб-сервер облачной IDE&amp;#34;]
C[&amp;#34;Среда компиляции/выполнения бэкенда&amp;#34;]
D[&amp;#34;Персистентное файловое хранилище&amp;#34;]
end
A --&amp;gt;| Связь HTTP/WebSocket: Серьезные задержки из-за узких каналов связи в школах | B
B &amp;lt;--&amp;gt; C
B &amp;lt;--&amp;gt; D
&lt;/pre>
&lt;p>Полная зависимость от облачных IDE вызывает следующие чрезвычайно серьезные пробелы в образовании:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Непонимание файловых систем и архитектуры ОС&lt;/strong>: Поскольку у них нет локальной среды, они вообще не приобретают необходимые знания, которыми ИТ-инженеры должны владеть, как воздухом для дыхания (грамотность UNIX), такие как структура каталогов, концепции абсолютных/относительных путей, настройка переменных среды, права доступа к файлам и операции с ОС через CLI (интерфейс командной строки).&lt;/li>
&lt;li>&lt;strong>Задержки в сети и уязвимости инфраструктуры&lt;/strong>: Поскольку предполагается постоянное соединение, по всей стране часто происходят инциденты, когда вся школа получает доступ к сети одновременно, пропускная способность школьной сети исчерпывается, браузеры зависают, а обучение полностью останавливается.&lt;/li>
&lt;li>&lt;strong>Лишение опыта управления версиями (Git)&lt;/strong>: Они лишаются возможности изучить концепции Git и GitHub для управления историей изменений исходного кода и совместной разработки с командами по всему миру через черный экран терминала.&lt;/li>
&lt;/ol>
&lt;p>Когда профессиональный инженер-программист занимается разработкой, работа в терминале (оболочке) является абсолютной основой. Невозможно воспитать настоящие ИТ-кадры без приземленного опыта прямого взаимодействия с ядром локальной ОС с помощью таких команд, как &lt;code>ls&lt;/code>, &lt;code>cd&lt;/code>, &lt;code>grep&lt;/code>, &lt;code>chmod&lt;/code>, &lt;code>git rebase&lt;/code>. Если играть только в песочнице (sandbox) Chromebook, из вас никогда не получится full-stack инженер, который может видеть систему целиком.&lt;/p>
&lt;h2 id="8-безнадежный-разрыв-с-миром-расхождение-между-требованиями-индустрии-и-школьным-образованием">8. Безнадежный разрыв с миром: Расхождение между требованиями индустрии и школьным образованием
&lt;/h2>&lt;p>Последней и, пожалуй, национальной кризисной проблемой японского ИТ-образования является колоссальное снижение конкурентоспособности в глобальном контексте.&lt;/p>
&lt;h3 id="интенсивное-образование-в-области-компьютерных-наук-в-других-странах">Интенсивное образование в области компьютерных наук в других странах
&lt;/h3>&lt;p>В Великобритании (UK) предмет под названием «Вычисления» (Computing) стал обязательным с 5 лет (Key Stage 1) еще в 2014 году. Их учебная программа не ограничивается простым «опытом программирования», а охватывает в высшей степени академическую и систематическую полноценную информатику, начиная от логического проектирования алгоритмов, понимания логических схем с использованием булевой алгебры (Boolean algebra) до сетевых топологий и аппаратной архитектуры.&lt;/p>
&lt;p>В Соединенных Штатах существует строгая стандартная учебная программа K-12 (от детского сада до окончания средней школы), установленная Ассоциацией преподавателей компьютерных наук (CSTA), а в курсе AP (Advanced Placement) Computer Science A, который проходят старшеклассники, полноценное объектно-ориентированное программирование с использованием Java, полиморфизм, рекурсия, реализация структур данных и оценка сложности алгоритмов преподаются на высоком уровне первого курса университета. Жесткость STEM-образования в Индии и Китае, а также глубина выпускаемой оттуда элиты не нуждаются в упоминании.&lt;/p>
&lt;h3 id="безнадежный-разрыв-между-требуемыми-навыками-и-тем-чему-обучают">Безнадежный разрыв между требуемыми навыками и тем, чему обучают
&lt;/h3>&lt;p>Требования, предъявляемые современной индустрией, особенно глобальными мега-венчурными компаниями и технологическими гигантами (GAFAM и др.), к новым инженерам-программистам усложняются с пугающей скоростью каждый год. Требуется обширный и глубокий опыт, включая создание облачной инфраструктуры (AWS, GCP, Kubernetes), проектирование распределенных систем с микросервисной архитектурой, реализацию конвейеров машинного обучения и глубокие знания в области безопасности.&lt;/p>
&lt;p>На следующем графике концептуально показан безнадежный разрыв между уровнем достижения навыков, предоставляемым японским школьным образованием в настоящее время, и уровнем навыков, требуемым передовой индустрией.&lt;/p>
&lt;pre class="mermaid">
xychart-beta
title Навыки в школьном образовании Японии vs Требования индустрии
x-axis [&amp;#34;Визуальные языки&amp;#34;, &amp;#34;Базовый синтаксис/переменные&amp;#34;, &amp;#34;Алгоритмы/сложность&amp;#34;, &amp;#34;ОС/Сети&amp;#34;, &amp;#34;БД/Проектирование систем&amp;#34;, &amp;#34;Облачная/Распределенная архитектура&amp;#34;]
y-axis &amp;#34;Уровень достижения / Требования (%)&amp;#34; 0 --&amp;gt; 100
line &amp;#34;Уровень достижений в современном школьном образовании&amp;#34; [95, 60, 15, 5, 2, 0]
line &amp;#34;Уровень, требуемый индустрией/технологическими компаниями&amp;#34; [0, 20, 85, 90, 95, 100]
&lt;/pre>
&lt;p>Чтобы преодолеть этот огромный разрыв (Долину Смерти - Death Valley), необходим радикальный сдвиг парадигмы школьного образования и колоссальные инвестиции. В условиях острой нехватки учителей, специализирующихся на «информатике», по всей стране, невозможно воспитать инженеров высшего уровня, способных конкурировать в мире, при нынешней системе, когда учителя математики, естественных наук или технологий и домоводства преподают программирование в свободное от основной работы время без надлежащего обучения.&lt;/p>
&lt;h2 id="9-обесценивание-кодирования-в-эпоху-ии-llm">9. Обесценивание «кодирования» в эпоху ИИ (LLM)
&lt;/h2>&lt;p>Ситуация еще больше осложняется взрывным распространением больших языковых моделей (LLM), таких как ChatGPT, и помощников по программированию на базе ИИ, таких как GitHub Copilot. В наши дни, когда ИИ может мгновенно сгенерировать идеальный код на основе инструкций на естественном языке и даже написать тестовый код, рыночная стоимость так называемых «кодеров (Coders)», которые знают только «синтаксис Python» или «как вызывать API», стремительно падает.&lt;/p>
&lt;p>В эпоху ИИ от инженеров-людей не требуется умение запоминать синтаксис языков программирования. Требуются следующие способности:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Определение требований и предметно-ориентированное моделирование (Domain modeling)&lt;/strong>: Способность выделять сложные реальные проблемы, которые необходимо решить, и моделировать их как системы.&lt;/li>
&lt;li>&lt;strong>Проектирование архитектуры&lt;/strong>: Способность составить чертеж всей системы для обеспечения масштабируемости, доступности и ремонтопригодности.&lt;/li>
&lt;li>&lt;strong>Математическая/логическая верификация&lt;/strong>: Способность теоретически проверить и доказать, что сгенерированный ИИ код не содержит дыр в безопасности или узких мест вычислительной сложности.&lt;/li>
&lt;/ol>
&lt;p>По иронии судьбы, все это области глубоких абстрактных «компьютерных наук и математики», а не «поверхностного программирования». Если японское образование обучает только «низкоуровневым навыкам, которые легко заменяются ИИ», это можно назвать лишь национальной потерей.&lt;/p>
&lt;h2 id="10-на-пути-к-интеграции-математических-наук-и-программирования-предложения-для-образования-следующего-поколения">10. На пути к интеграции математических наук и программирования: Предложения для образования следующего поколения
&lt;/h2>&lt;p>Срочной задачей японского ИТ-образования в будущем является отказ от отношения к программированию как к «цели и средству» и возвращение к «исследованию компьютерных наук как математической науки». Язык программирования — это всего лишь инструмент для выражения мыслей, а лежащая в его основе математическая и логическая структура имеет универсальную ценность, которая не меркнет с течением времени.&lt;/p>
&lt;p>Например, в основе искусственного интеллекта (ИИ) и машинного обучения тесно переплетаются линейная алгебра (матричные операции и тензоры), многомерный анализ (градиентный спуск) и теория вероятностей/статистика (байесовский вывод и количество информации). Оптимизация весов в нейронных сетях глубокого обучения формулируется через цепное правило (Chain Rule) с использованием частных производных и обратного распространения ошибки (Backpropagation).&lt;/p>
$$
\frac{\partial L}{\partial w_{ij}^{(l)}} = \frac{\partial L}{\partial z_i^{(l+1)}} \cdot \frac{\partial z_i^{(l+1)}}{\partial w_{ij}^{(l)}} = \delta_i^{(l+1)} \cdot a_j^{(l)}
$$&lt;p>Именно кадры, способные перевести такие сложные математические формулы в код и реализовать их, доведя параллельные вычисления (Parallel Computing) до максимума с учетом аппаратной архитектуры GPU (CUDA) или TPU, поведут за собой ИТ-индустрию следующего поколения. Вот почему мы должны немедленно переключиться с поверхностного образования, которое просто заставляет заучивать синтаксис, на глубокое образование, которое задается фундаментальными принципами вычислений (First Principles).&lt;/p>
&lt;h2 id="11-заключение-трудный-путь-к-истинной-ит-нации-и-наша-решимость">11. Заключение: Трудный путь к истинной ИТ-нации и наша решимость
&lt;/h2>&lt;p>Сделать программирование обязательным в 2020-х годах, несомненно, было уверенным шагом вперед в том смысле, что это заставило японское общество в целом осознать «важность ИТ и информации». Однако это лишь «разминка» на долгом пути.&lt;/p>
&lt;p>Сделать шаг вперед от удовольствия перемещать персонажа-кота в Scratch, научить восторгаться математической красотой алгоритма $O(N \log N)$ и показать радость общения с серверами по всему миру через TCP-пакеты с черного экрана терминала. Восстановить новую образовательную инфраструктуру для преодоления аппаратных ограничений концепции GIGA School, воспитать и расставить преподавателей с высокой специализацией в области CS, а иногда смело привлекать внешних профессиональных инженеров к школьному образованию.&lt;/p>
&lt;p>Проблемы, стоящие перед ИТ-образованием в Японии, чрезвычайно глубоки, укоренились и сложны. Однако, когда промышленность, академические круги и правительство серьезно объединятся для решения этих проблем, не отворачиваясь от них, и построят экосистему, способную постоянно выпускать «настоящих инженеров, способных проектировать и создавать системы с нуля», а не «рабочих, умеющих писать код только по спецификациям», Япония снова сможет возглавить мир как истинная ИТ-нация.&lt;/p>
&lt;p>Как пережить самый трудный и важный этап «после» введения обязательного обучения программированию? Именно сейчас проверяется серьезность и решимость нас, взрослых.&lt;/p>
&lt;hr>
&lt;p>&lt;em>В этой статье был представлен обзор теории сложности и инфраструктурных ограничений концепции GIGA School. Более специализированные темы по компьютерным наукам (подробности алгоритмов распределенных систем и методы управления памятью на низком уровне) будут последовательно рассматриваться в следующих выпусках этой серии.&lt;/em>&lt;/p></description></item><item><title>Углубление "нового цифрового разрыва", вызванного эволюцией генеративного ИИ</title><link>http://kenji.blog/ru/p/generative-ai-digital-divide/</link><pubDate>Sat, 12 Sep 2026 12:00:00 +0900</pubDate><guid>http://kenji.blog/ru/p/generative-ai-digital-divide/</guid><description>&lt;img src="http://kenji.blog/p/generative-ai-digital-divide/img/eyecatch.jpg" alt="Featured image of post Углубление "нового цифрового разрыва", вызванного эволюцией генеративного ИИ" />&lt;h2 id="1-введение-историческая-эволюция-цифрового-разрыва-и-новая-парадигма">1. Введение: Историческая эволюция цифрового разрыва и новая парадигма
&lt;/h2>&lt;p>С момента распространения интернета мы часто слышали термин «цифровой разрыв» (информационное неравенство). Ранний цифровой разрыв касался в первую очередь «физического доступа». То есть это была простая концепция, где наличие компьютера или высокоскоростного доступа в интернет определяло доступ к информации и экономическим возможностям. Впоследствии, по мере того как смартфоны и широкополосный интернет стали общедоступными (коммодитизировались), фокус разрыва сместился на «ИТ-грамотность» (навыки использования информации). Это программные и когнитивные аспекты, такие как умение правильно искать информацию с помощью поисковых систем или владение программным обеспечением.&lt;/p>
&lt;p>Однако стремительное развитие генеративного ИИ (Generative AI) и больших языковых моделей (LLM: Large Language Models), внезапно возникшее в 2020-х годах, фундаментально меняет эту концепцию цифрового разрыва. То, с чем мы сталкиваемся сейчас, — это не просто «разрыв в доступе к информации» или «разрыв в навыках работы с программным обеспечением». Это «разрыв в способности оркестровки (управления и интеграции) ИИ» — крайне серьезный и необратимый «третий цифровой разрыв», который либо экспоненциально увеличит личную продуктивность, либо оставит человека позади эволюции ИИ, лишив его относительной ценности.&lt;/p>
&lt;p>В этой статье мы максимально подробно раскроем истинную природу этого нового цифрового разрыва, вызванного генеративным ИИ, с точки зрения трех уровней: математической модели продуктивности, архитектуры и стоимости оборудования, а также когнитивных аспектов человека.&lt;/p>
&lt;h2 id="2-от-доступа-к-оркестровке-наступление-третьего-цифрового-разрыва">2. От «доступа» к «оркестровке»: Наступление третьего цифрового разрыва
&lt;/h2>&lt;p>Программные инструменты прошлого были по сути «пассивными орудиями». Ограничение традиционного ПО заключалось в том, что оно возвращало детерминированный результат на явный ввод пользователя (например, ввод формулы в электронную таблицу для получения результата вычислений). Однако современный генеративный ИИ, в частности LLM на базе архитектуры Transformer (GPT-4, Claude 3.5, Llama 3 и т.д.), ведет себя как «фрагмент активного интеллекта».&lt;/p>
&lt;p>Из-за этого сдвига парадигмы требуемый от человека набор навыков радикально изменился: от «умения управлять инструментами» к «способности комбинировать несколько ИИ-агентов и инструментов, проектировать и управлять автономными рабочими процессами (AI Orchestration)». Это можно назвать «грамотностью в области оркестровки ИИ».&lt;/p>
&lt;p>Ниже показана эволюция цифрового разрыва от прошлого к настоящему.&lt;/p>
&lt;pre class="mermaid">
flowchart TD
A[&amp;#34;Первый разрыв: Доступ к оборудованию и инфраструктуре (1990-2000-е)&amp;#34;] --&amp;gt; B[&amp;#34;Второй разрыв: ИТ-грамотность и навыки поиска информации (2010-е)&amp;#34;]
B --&amp;gt; C[&amp;#34;Третий разрыв: Промптинг и оркестровка генеративного ИИ (2020-е -)&amp;#34;]
C --&amp;gt; D[&amp;#34;Проектирование автономного выполнения задач с помощью ИИ&amp;#34;]
C --&amp;gt; E[&amp;#34;Интеграция нескольких ИИ-агентов (Agentic Workflows)&amp;#34;]
C --&amp;gt; F[&amp;#34;Продвинутая верификация информации и обнаружение галлюцинаций&amp;#34;]
&lt;/pre>
&lt;p>Выходя за рамки простого промпт-инжиниринга (prompt engineering), сегодня мы вступили в стадию, когда мультиагентные фреймворки, такие как LangChain, AutoGen и CrewAI, используются для того, чтобы системы могли автономно решать проблемы. Между теми, кто «создает чертежи и заставляет ИИ их выполнять», и теми, кто «все еще выполняет рутинную работу своими руками», возникает беспрецедентный в истории человечества разрыв в продуктивности.&lt;/p>
&lt;h2 id="3-эффект-матфея-matthew-effect-в-продуктивности-визуализация-неравенства-с-помощью-математического-подхода">3. Эффект Матфея (Matthew Effect) в продуктивности: Визуализация неравенства с помощью математического подхода
&lt;/h2>&lt;p>«Эффект Матфея» (Matthew Effect), происходящий от слов Нового Завета «ибо всякому имеющему дастся и приумножится, а у неимеющего отнимется и то, что имеет», в социологии и экономике означает феномен, при котором первоначальное преимущество приносит кумулятивную выгоду. С внедрением генеративного ИИ этот эффект Матфея интенсивно проявляется на рынке труда и в интеллектуальном производстве.&lt;/p>
&lt;p>Продуктивность людей, эффективно использующих ИИ, растет не линейно по отношению к времени, а экспоненциально. Это происходит потому, что время, сэкономленное благодаря ИИ, может быть инвестировано в создание еще более продвинутых ИИ-систем, оптимизацию промптов и самообучение. Давайте выразим это с помощью математической модели.&lt;/p>
&lt;p>Продуктивность пользователя, не использующего ИИ $P_{human}(t)$, и продуктивность оркестратора ИИ $P_{AI}(t)$ в момент времени $t$ можно представить следующими моделями:&lt;/p>
$$
P_{human}(t) = P_0 (1 + r_{human})^t
$$&lt;p>
Где $P_0$ — начальная продуктивность, а $r_{human}$ — естественная скорость обучения человека (скорость роста на основе кривой опыта). Как правило, $r_{human}$ очень мала, и рост имеет тенденцию быть арифметическим.&lt;/p>
&lt;p>С другой стороны, продуктивность пользователя, в полной мере использующего ИИ, объединяет в себе скорость улучшения возможностей используемой модели ИИ $r_{model}$ и эффект сложных процентов $\alpha$ от автоматизации рабочих процессов ИИ.&lt;/p>
$$
P_{AI}(t) = P_0 \cdot \exp\left( \int_0^t (r_{human} + \alpha \cdot r_{model}(\tau)) d\tau \right)
$$&lt;p>Поскольку сами модели ИИ развиваются экспоненциально (увеличение количества параметров и объема вычислений на основе законов масштабирования), $r_{model}(t)$ сама по себе увеличивается со временем. В результате разница в продуктивности между ними $\Delta P(t)$ стремительно растет.&lt;/p>
$$
\Delta P(t) = P_{AI}(t) - P_{human}(t)
$$&lt;p>Этот разрыв визуально показан на графике ниже.&lt;/p>
&lt;pre class="mermaid">
xychart-beta
title Расхождение продуктивности во времени (Эффект Матфея)
x-axis [&amp;#34;Год 1&amp;#34;, &amp;#34;Год 2&amp;#34;, &amp;#34;Год 3&amp;#34;, &amp;#34;Год 4&amp;#34;, &amp;#34;Год 5&amp;#34;, &amp;#34;Год 6&amp;#34;]
y-axis &amp;#34;Объем выпуска&amp;#34; 0 --&amp;gt; 200
line [10, 15, 30, 60, 110, 180]
line [10, 12, 14, 16, 18, 20]
&lt;/pre>
&lt;p>&lt;em>(Примечание: Синяя линия обозначает продуктивность оркестратора ИИ, а нижняя линия — продуктивность пользователя, не использующего ИИ)&lt;/em>&lt;/p>
&lt;p>В первый год разница кажется незначительной, но по мере того, как модели ИИ эволюционируют от GPT-3 к GPT-4 и далее к следующим поколениям, пользователи ИИ получают огромный прирост продуктивности просто за счет подключения новых моделей к своим существующим конвейерам автоматизации. Для пользователей без ИИ преодолеть этот разрыв со временем становится математически почти невозможным.&lt;/p>
&lt;h2 id="4-аппаратный-разрыв-барьер-локального-вывода-и-ловушка-облачных-api">4. Аппаратный разрыв: Барьер локального вывода и ловушка облачных API
&lt;/h2>&lt;p>Третий цифровой разрыв порождает не только неравенство в навыках работы с программным обеспечением, но и новое аппаратное неравенство — «доступ к вычислениям (вычислительным ресурсам)» для запуска самых передовых моделей ИИ.&lt;/p>
&lt;p>Существуют два основных подхода к использованию больших языковых моделей: «использование облачного API» или «локальный вывод (Inference) модели». У каждого есть свои плюсы и минусы, и они становятся новым экономическим и физическим барьером.&lt;/p>
&lt;h3 id="ограничения-облачных-api-и-текущие-расходы">Ограничения облачных API и текущие расходы
&lt;/h3>&lt;p>К передовым фронтирным моделям, предоставляемым OpenAI, Anthropic и Google (GPT-4o, Claude 3.5 Sonnet и т.д.), обычно получают доступ через API. Однако, если создать продвинутого автономного агента (Agentic Workflow), генерирующего десятки тысяч вызовов API в день, расходы будут стремительно расти.&lt;/p>
&lt;p>Общая стоимость API $C_{cloud}$ зависит от количества входных и выходных токенов.&lt;/p>
$$
C_{cloud} = \sum_{i=1}^{N} \left( c_{in} \cdot T_{in}^{(i)} + c_{out} \cdot T_{out}^{(i)} \right)
$$&lt;p>
(Где $N$ — количество запросов, $T$ — количество токенов, $c$ — цена за токен)&lt;/p>
&lt;p>В случае масштабной обработки данных или непрерывной векторизации для RAG (Retrieval-Augmented Generation) эти переменные расходы могут стать фатальным бременем для индивидуальных разработчиков и малого бизнеса.&lt;/p>
&lt;h3 id="локальные-llm-и-барьер-vram">Локальные LLM и барьер VRAM
&lt;/h3>&lt;p>С точки зрения избежания облачных затрат и обеспечения конфиденциальности данных растет спрос на локальный запуск моделей с открытыми весами (open-weight), таких как Meta Llama 3 и Mistral. Но здесь возникает физический разрыв в виде «барьера VRAM (видеопамяти)».&lt;/p>
&lt;p>Скорость вывода LLM сильнее зависит от пропускной способности памяти (Memory Bandwidth), чем от вычислительной мощности GPU (FLOPS) (свойство Memory-bound). Если количество параметров модели равно $P$, а точность — 16 бит (2 байта), то для загрузки модели в память требуется как минимум $2P$ байт VRAM. Например, модель с 70 миллиардами (70B) параметров потребует более 140 ГБ VRAM.&lt;/p>
$$
VRAM_{required} \approx \left( \frac{P \times bits\_per\_weight}{8} \right) + Context\_Memory
$$&lt;p>Даже высокопроизводительные графические процессоры, доступные обычным потребителям (NVIDIA RTX 4090), имеют только 24 ГБ VRAM, поэтому запустить модель класса 70B в исходном виде на них невозможно. Здесь на сцену выходят технологии «квантования (Quantization)», такие как AWQ и GGUF, которые сжимают веса до 4 или 8 бит для поиска компромисса, но ухудшение производительности (ухудшение Perplexity) из-за квантования неизбежно.&lt;/p>
&lt;p>Кроме того, в последние годы появились «AI PC» с NPU (нейронными процессорами), но текущие показатели TOPS (тера-операций в секунду) у NPU способны потянуть разве что легкие малые модели (SLM: Small Language Models). Для выполнения действительно сложных выводов локально требуются капиталовложения для создания систем с несколькими GPU стоимостью в миллионы иен (десятки тысяч долларов). Это и есть истинная природа «капиталоемкого цифрового разрыва» в сфере ИИ.&lt;/p>
&lt;h2 id="5-когнитивный-разрыв-галлюцинации-и-цикл-верификации">5. Когнитивный разрыв: Галлюцинации и цикл верификации
&lt;/h2>&lt;p>Что еще страшнее, чем неравенство в оборудовании или навыках, так это «когнитивный разрыв». ИИ генерирует очень беглые и убедительные тексты, но в то же время может правдоподобно выдавать фактологически неверную информацию — так называемые «галлюцинации».&lt;/p>
&lt;p>Возникающий здесь разрыв — это разделение на тех, «кто способен критически анализировать и проверять (фактчекинг) вывод ИИ», и тех, «кто слепо верит выводу ИИ как авторитетной истине». Первые используют ИИ как мощный инструмент для мозгового штурма или создания черновиков, применяя свои собственные экспертные знания для контроля качества (QA) финального результата. Вторые же выпускают в мир ложную информацию, не только теряя доверие к себе, но и способствуя загрязнению информационного пространства в интернете спамовым контентом.&lt;/p>
&lt;p>Процесс цикла когнитивной верификации (Cognitive Verification Loop), направленный на предотвращение этого, показан ниже.&lt;/p>
&lt;pre class="mermaid">
flowchart TD
A[&amp;#34;Намерение человека (Intent)&amp;#34;] --&amp;gt; B[&amp;#34;Ввод промпта в ИИ (Prompting)&amp;#34;]
B --&amp;gt; C[&amp;#34;Генерация моделью ИИ (Generation)&amp;#34;]
C --&amp;gt; D{&amp;#34;Когнитивная верификация (Cognitive Verification)&amp;#34;}
D -- Есть сомнения / логические ошибки --&amp;gt; E[&amp;#34;Фактчекинг с помощью RAG и внешних инструментов&amp;#34;]
E --&amp;gt; F[&amp;#34;Повторная настройка и улучшение промпта&amp;#34;]
F --&amp;gt; B
D -- Факты и логика обоснованы --&amp;gt; G[&amp;#34;Окончательная корректировка на основе предметных знаний человека&amp;#34;]
G --&amp;gt; H[&amp;#34;Вывод конечного результата&amp;#34;]
&lt;/pre>
&lt;p>Чтобы этот цикл работал, необходимо не просто знать, как использовать ИИ, но и обладать глубокими «предметными знаниями (доменными знаниями)» в области генерируемого контента, а также «критическим мышлением». По иронии судьбы, чем больше развивается ИИ, тем больше от людей требуются не базовые навыки управления, а крайне высокие когнитивные способности, такие как философское и логическое мышление и эрудиция для различения истины и лжи.&lt;/p>
&lt;h2 id="6-новое-классовое-общество-оркестраторы-ии-и-работники-ручного-труда">6. Новое классовое общество: Оркестраторы ИИ и работники ручного труда
&lt;/h2>&lt;p>В будущем (или в текущей реальности), когда это неравенство достигнет своего предела, рынок труда будет поляризован беспрецедентным образом.&lt;/p>
&lt;p>&lt;strong>1. Оркестраторы ИИ (топ 1-5%)&lt;/strong>
В своей профессиональной области они создают рабочие процессы, в которых автономно действуют несколько ИИ-агентов. Большую часть таких процессов, как исследования, кодирование, анализ данных и создание отчетов, они делегируют ИИ, специализируясь на «проектировании процессов», «обработке исключений» и «принятии окончательных решений». Их продуктивность будет в десятки и сотни раз выше, чем у традиционных работников, создавая колоссальную экономическую ценность.&lt;/p>
&lt;p>&lt;strong>2. Традиционные работники умственного и ручного труда&lt;/strong>
Это люди, которые пишут код своими руками, работают в Excel своими руками и пишут тексты своими руками. Их работа будет постепенно вытесняться ИИ, или же их оттеснят на позиции «мониторинга и обслуживания на периферии» систем, созданных оркестраторами ИИ, либо на «работу в физическом пространстве». Интеллектуальный труд без использования ИИ столкнется с риском полной потери конкурентоспособности на рынке.&lt;/p>
&lt;h2 id="7-стратегии-выживания-в-условиях-разрыва-и-социальные-рецепты">7. Стратегии выживания в условиях разрыва и социальные рецепты
&lt;/h2>&lt;p>Как люди, компании и общество в целом должны адаптироваться к этому подавляющему разрыву?&lt;/p>
&lt;h3 id="стратегия-для-людей-адаптация-к-смене-парадигмы">Стратегия для людей: Адаптация к смене парадигмы
&lt;/h3>&lt;p>Самое важное — отбросить недооценку того, что «ИИ — это просто чат-бот». Необходимо рассматривать ИИ как «высококвалифицированного стажера» или «команду экспертов» и постоянно развивать в себе привычку думать о том, как декомпозировать свои бизнес-процессы (Task Decomposition) и делегировать их ИИ. Кроме того, даже если вы не умеете программировать, изучение концепций API и структурирования данных (например, JSON) позволит вам создавать мощную автоматизацию, комбинируя инструменты No-Code/Low-Code (Zapier, Make и т.д.) с ИИ.&lt;/p>
&lt;h3 id="стратегия-для-компаний-организационный-дизайн-нативный-для-ии">Стратегия для компаний: Организационный дизайн, нативный для ИИ
&lt;/h3>&lt;p>Для компаний недостаточно просто «раздать аккаунты ChatGPT». Необходимы инвестиции в инфраструктуру, такие как реинжиниринг всех бизнес-процессов с учетом ИИ (BPR: Business Process Re-engineering), создание безопасной среды RAG и тонкая настройка (fine-tuning) локальных моделей с использованием уникальных корпоративных знаний. Также требуется внедрение новых KPI для оценки способностей сотрудников к оркестровке ИИ.&lt;/p>
&lt;h3 id="социальные-рецепты-ии-инфраструктура-как-общественное-благо">Социальные рецепты: ИИ-инфраструктура как общественное благо
&lt;/h3>&lt;p>На государственном и общественном уровне необходимы системы социальной защиты и образования, чтобы третий цифровой разрыв не привел к серьезному экономическому неравенству и социальной нестабильности. Примерами могут служить государственная поддержка исследований и разработок ИИ-моделей с открытым исходным кодом (Open Source) и введение обязательного обучения «критической ИИ-грамотности» в образовательных учреждениях. Кроме того, на повестку дня должно быть вынесено надлежащее правовое регулирование и обновление антимонопольного законодательства для предотвращения «монополизации моделей ИИ и вычислительных ресурсов» со стороны технологических гигантов.&lt;/p>
&lt;h2 id="8-заключение-оседлать-волну-эволюции-или-быть-поглощенным-ею">8. Заключение: Оседлать волну эволюции или быть поглощенным ею
&lt;/h2>&lt;p>«Новый цифровой разрыв», вызванный генеративным ИИ, перестраивает наше общество быстрее и масштабнее, чем любые технологические инновации в прошлом. Этот разрыв проявляется в виде разницы в аппаратных вычислительных ресурсах, инвестиционных возможностях в облачные API и, что самое главное, в «когнитивных и логических навыках оркестровки ИИ».&lt;/p>
&lt;p>Как показывает эффект Матфея в продуктивности, этот разрыв со временем будет увеличиваться до такой степени, что преодолеть его станет невозможно. То, что мы должны сделать сейчас, — это не бояться эволюции ИИ и не верить в него слепо. Мы должны глубоко понять характеристики ИИ как величайшего в истории человечества усилителя интеллекта (Intelligence Amplifier) и осуществить «интеллектуальную самотрансформацию», обновляя свое мышление и рабочие процессы.&lt;/p>
&lt;p>Остаться на этой стороне нового цифрового разрыва или оказаться на той? Этот выбор зависит от нашего ежедневного обучения и действий прямо сейчас.&lt;/p>
&lt;hr>
&lt;p>&lt;em>Пожалуйста, оставляйте свои комментарии к этой статье и конкретные примеры внедрения оркестровки ИИ в разделе комментариев или в социальных сетях автора.&lt;/em>&lt;/p></description></item></channel></rss>