es
Feedback
Точка входа в программирование

Точка входа в программирование

Ir al canal en Telegram

Фундаментальные знания по основам программирования Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/zrgj

Mostrar más

📈 Análisis del canal de Telegram Точка входа в программирование

El canal Точка входа в программирование (@prog_point) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 18 049 suscriptores, ocupando la posición 7 047 en la categoría Tecnologías y Aplicaciones y el puesto 36 297 en la región Rusia.

📊 Métricas de audiencia y dinámica

Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 18 049 suscriptores.

Según los últimos datos del 15 septiembre, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -111, y en las últimas 24 horas de 0, conservando un alto alcance.

  • Estado de verificación: No verificado
  • Tasa de interacción (ER): El promedio de interacción de la audiencia es 7.20%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 2.95% de reacciones respecto al total de suscriptores.
  • Alcance de las publicaciones: Cada publicación recibe en promedio 1 299 visualizaciones. En el primer día suele acumular 532 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 2.
  • Intereses temáticos: El contenido se centra en temas clave como docker, javascript, kubernetes, браузер, контейнер.

📝 Descripción y política de contenido

El autor describe el recurso como un espacio para expresar opiniones subjetivas:
Фундаментальные знания по основам программирования Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/zrgj

Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 16 septiembre, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.

18 049
Suscriptores
Sin datos24 horas
-527 días
-11130 días
Archivo de publicaciones
Как устроена база данных: собираем клон SQLite на C Это обстоятельная серия для тех, кому знаком SQL, но путь данных от запроса до файла скрыт за интерфейсом СУБД. Автор строит клон SQLite с нуля на C и документирует каждый слой. Всего 15 частей: маршрут идёт от цикла чтения команд и компилятора SQL к многоуровневому B-дереву. Сначала появляются цикл чтения команд, простейший компилятор SQL и виртуальная машина. Затем одна таблица в памяти получает тесты, сохранение на диск и курсор для обхода записей. Дальше автор разбирает формат узлов B-дерева, двоичный и рекурсивный поиск, разделение узлов и обновление их родителей. В серии How Does a Database Work? удобно идти по порядку и смотреть, как знакомые операции превращаются в структуры данных. Читать стоит разработчикам, которые работают с SQL и хотят разобраться в индексах, полном сканировании таблицы и границе между памятью и диском.

Как отправлять GET и POST через Fetch API и обрабатывать ошибки fetch() возвращает промис, то есть обещание получить результа
Как отправлять GET и POST через Fetch API и обрабатывать ошибки fetch() возвращает промис, то есть обещание получить результат позже. Этим результатом будет объект Response, а не готовый JSON: тело нужно отдельно прочитать через response.json(). Статусы 404 и 500 не отклоняют промис. Проверяйте response.ok и сами выбрасывайте ошибку. Сетевой сбой промис отклонит, а try...catch поможет обработать обе ситуации. Для тренировки напишите две функции. Первая делает GET-запрос, проверяет статус и структуру списка товаров. Вторая отправляет товар методом POST, превращает объект в JSON через JSON.stringify() и добавляет заголовок Content-Type: application/json. Примеры каждого шага есть в статье о Fetch API.

Поймайте паузу в движении мыши одним таймером Когда пользователь двигает мышь, прокручивает страницу или меняет размер окна,
Поймайте паузу в движении мыши одним таймером Когда пользователь двигает мышь, прокручивает страницу или меняет размер окна, браузер создаёт десятки событий в секунду. Если на каждое отправлять запрос или менять элементы страницы, приложение может работать менее плавно. Дебаунс — приём, который ждёт паузу: новый сигнал отменяет прежний таймер и запускает его заново.
const debounce = (callback, wait) => {
  let timer;
  return (...args) => {
    clearTimeout(timer);
    timer = setTimeout(
      () => callback(...args), wait
    );
  };
};

const onMove = debounce(
  event => console.log(event.clientX), 250
);
window.addEventListener('mousemove', onMove);
Запустите пример, поводите мышью и остановитесь. Обработчик сработает после паузы. Затем уберите debounce и сравните число строк в консоли. Исходный вариант функции и пояснения есть в сниппете Josh W. Comeau.

Добавьте номера к элементам списка без отдельного счётчика Когда в цикле нужны и значение, и его номер, легко завести отдельн
Добавьте номера к элементам списка без отдельного счётчика Когда в цикле нужны и значение, и его номер, легко завести отдельную переменную и обновлять её вручную. Функция enumerate() выдаёт их парой на каждом шаге:
names = ["Аня", "Борис", "Вера"]
for number, name in enumerate(names, start=1):
    print(number, name)
Аргумент start=1 начинает нумерацию с единицы. Программа напечатает номер рядом с каждым именем, а вам не придётся следить за отдельным счётчиком. В разборе Real Python тот же приём применяют к действиям на выбранном шаге, каждому второму элементу и номерам строк в файле. Скопируйте пример, запустите его, затем уберите start=1 и сравните вывод: так сразу станет видно, с какого числа функция считает по умолчанию.

Почему блок не центрируется и как освободить место для отступов Вы добавили автоматические отступы, а блок остался на месте.
Почему блок не центрируется и как освободить место для отступов Вы добавили автоматические отступы, а блок остался на месте. Обычно он уже занимает всю доступную ширину, поэтому свободного места по бокам нет. Сначала ограничьте его размер:
.element {
  max-width: fit-content;
  margin-left: auto;
  margin-right: auto;
}
Значение fit-content не даёт блоку стать шире содержимого. Затем автоматические отступы занимают свободное место слева и справа, и блок оказывается по центру. В гайде Josh W. Comeau этот приём показан с изменяемой шириной контейнера. Повторите опыт: сузьте контейнер и сравните max-width: fit-content с фиксированной шириной width: 200px. В первом случае блок сможет сжаться, во втором может выйти за границы контейнера.

Научите страницу помнить данные после закрытия браузера Форма или настройка сбрасывается после обновления страницы? Для перво
Научите страницу помнить данные после закрытия браузера Форма или настройка сбрасывается после обновления страницы? Для первого упражнения возьмите localStorage: это хранилище в браузере, где данные лежат парами «ключ — значение» и остаются после обновления, закрытия вкладки или браузера. Сохраните небольшое значение, обновите страницу и прочитайте его обратно. Затем удалите запись и повторите проверку. Так вы увидите полный цикл: добавить данные, получить их и очистить, а не просто запомните названия методов. В разборе freeCodeCamp localStorage сравнивают с sessionStorage, данные которого исчезают после закрытия вкладки и доступны только в ней. После упражнения замените значение настройкой темы или содержимым поля формы и найдите сохранённую запись в инструментах разработчика браузера.

Два файла помогают перестать путаться в HEAD и ветках Git Когда похожие термины Git сливаются в одно, сообщения программы трудно читать. Для начала хватит простой модели: heads называют ветки, а HEAD обозначает текущую ветку. Ветки хранятся в каталоге .git/refs/heads, указатель на текущую ветку лежит в файле .git/HEAD. У модели есть исключения, поэтому это отправная точка, а не полное определение. Проверьте её в учебном репозитории: посмотрите файл .git/HEAD и содержимое каталога .git/refs/heads. Цель упражнения: увидеть две разные роли за почти одинаковыми именами. После этого сообщения Git проще разбирать по частям, а не запоминать целиком. В разборе запутанных терминов Git собраны варианты записи HEAD с символами ^ и ~, а также похожие команды reset, revert и restore. Выберите сообщение, которое уже ставило вас в тупик, и разберите его следующим.

Хочешь стать аналитиком? Подай заявку на олимпиаду DANO Попробуй себя в роли аналитика на олимпиаде НИУ ВШЭ и Т-Банка. Тебя ж
Хочешь стать аналитиком? Подай заявку на олимпиаду DANO Попробуй себя в роли аналитика на олимпиаде НИУ ВШЭ и Т-Банка. Тебя ждут: — Тест-драйв профессии до поступления. — Задания, составленные на реальных данных. — Командная работа, как в настоящих исследованиях и аналитических отделах. — Выездной проектный тур для финалистов. — Упрощенный отбор на стажировку в Т-Банке для победителей. Не страшно, если нет опыта в анализе данных. Хватит школьных знаний по математике и логике. Перед каждым этапом будет обучающий модуль. Подай заявку до 5 октября по ссылке

Как устроены хеш-функции и зачем им равномерное распределение Статья с интерактивными визуализациями показывает превращение с
Как устроены хеш-функции и зачем им равномерное распределение Статья с интерактивными визуализациями показывает превращение строки в число и способы оценить результат. Коллизии неизбежны: если диапазон содержит 8 значений, среди 9 разных входов хотя бы два дадут одинаковое число. Хорошая функция равномерно распределяет результаты и создаёт лавинный эффект: при изменении одного входного бита в среднем меняется 50% выходных. murmur3 сравнивают с функцией, которая суммирует коды символов по модулю 1 000 000. На случайных строках разница почти незаметна, но числа от 1 до 1 000 образуют у простой функции узоры. Затем автор собирает на JavaScript хеш-таблицу из корзин: хеш ключа выбирает корзину, а поиск перебирает её элементы до совпадения. Статья Hashing связывает знакомый Map с распределением данных и показывает, почему хеш-функцию нельзя оценивать только на случайном вводе.

Потренируйте CSS-селекторы на предметах виртуального стола Селектор — часть CSS-правила, которая выбирает элементы для оформл
Потренируйте CSS-селекторы на предметах виртуального стола Селектор — часть CSS-правила, которая выбирает элементы для оформления. Например, в правиле p { margin-bottom: 12px; } селектор p выбирает все абзацы, а правило добавляет им нижний отступ. В CSS Diner вместо конспекта сразу дают задачу: ввести селектор и выбрать нужные предметы на столе. Если ответ верный, откроется следующий уровень. Наведите курсор на предмет, чтобы увидеть его HTML-разметку, то есть запись этого предмета в коде страницы. Подсказки по селекторам находятся справа. Пройдите первые уровни и после каждого объясните себе, почему селектор выбрал именно эти элементы. Так вы проверите не память на готовые записи, а понимание связи между HTML-разметкой и CSS-правилом.

Соедините две SQL-таблицы и получите один ответ Когда сведения об одном объекте разнесены по таблицам, запрос к одной таблице показывает только часть картины. Такое хранение уменьшает повторы и позволяет расширять наборы данных независимо друг от друга. INNER JOIN сопоставляет строки двух таблиц по общему уникальному ключу, то есть значению, которое однозначно обозначает объект. Условие ON указывает, какие ключи сравнить, а фильтрация, сортировка и ограничение числа строк выполняются уже после соединения. В шестом уроке SQLBolt это можно потренировать на базе Pixar: к ней добавили таблицу BoxOffice с рейтингами и продажами. Соберите запрос и проверьте, какие данные оказались в одной строке. Если связь не складывается, сначала сравните поля по обе стороны ON.

Проверяйте раскрывающиеся кнопки по контексту, а не по одному атрибуту Кнопка показывает дополнительный текст, и зрячий польз
Проверяйте раскрывающиеся кнопки по контексту, а не по одному атрибуту Кнопка показывает дополнительный текст, и зрячий пользователь просто нажимает её. У человека со вспомогательной технологией та же кнопка может восприниматься иначе: переданная ей информация зависит от контекста. Поэтому наличие aria-expanded ещё не доказывает, что разметка верна. Для тренировки задайте три вопроса: к какому типу относится элемент, уместен ли здесь атрибут и можно ли заменить его встроенным элементом HTML. Стив Френзель разбирает сворачиваемые разделы и интерактивные элементы: аккордеон, отдельный раскрывающий блок и похожие случаи, где контент скрывается без aria-expanded. Возьмите знакомую страницу, определите тип кнопки и сверьте решение с примерами. Образцы из ARIA Authoring Practices Guide автор советует тщательно тестировать: это демонстрации, а не готовый код.

Запоминаем и применяем в работе
Запоминаем и применяем в работе

Как обходить несколько списков одновременно с Python zip() В одном списке лежат названия товаров, в другом цены. zip() соедин
Как обходить несколько списков одновременно с Python zip() В одном списке лежат названия товаров, в другом цены. zip() соединяет элементы с одинаковыми позициями в пары, поэтому оба списка можно обработать в одном цикле. Функция возвращает итератор: пары появляются по мере обхода, а не хранятся в готовом списке заранее. Проверьте ловушку на двух списках разной длины. zip() остановится вместе с самым коротким и пропустит остаток. Сравните list(zip(...)) с itertools.zip_longest(): второй вариант сохранит лишние элементы и подставит заполнитель там, где пары нет. В разборе Real Python показано, как собрать словарь через dict(zip()) и разъединить готовые пары оператором *. Для тренировки замените числа и буквы двумя своими списками и распечатайте получившиеся пары.

Как устроить адаптивную сетку с CSS Grid CSS Grid делит один HTML-элемент на невидимые строки и столбцы без дополнительных эл
Как устроить адаптивную сетку с CSS Grid CSS Grid делит один HTML-элемент на невидимые строки и столбцы без дополнительных элементов для каждой ячейки. Если задать только display: grid, получится один столбец, а строки будут добавляться под вложенные элементы. Сравните проценты и fr. Проценты задают жёсткие доли родительского блока, поэтому колонки общей шириной 100% вместе с промежутком могут выйти за его границы. Единица fr учитывает ширину содержимого и промежутки, затем делит оставшееся место. Для тренировки соберите календарь из семи колонок через repeat(7, 1fr), добавьте свойство промежутка gap, замените доли на проценты и сузьте блок. В интерактивном руководстве Josh W. Comeau результат можно проверить в примерах.

Викторина на Python научит вас собирать программу по частям Небольшой проект помогает увидеть, как ввод, списки и функции раб
Викторина на Python научит вас собирать программу по частям Небольшой проект помогает увидеть, как ввод, списки и функции работают вместе. Вы соберёте викторину, которая задаёт вопросы, предлагает варианты ответов и считает результат. Затем программа научится обрабатывать ошибки, давать подсказки и объяснять ответы. Вопросы переедут в TOML-файл, то есть отдельный файл с данными, а сама викторина получит несколько тем. Туториал Real Python ведёт от первого вопроса до расширенной версии проекта. После прохождения добавьте свой набор вопросов и проверьте, как программа реагирует на неверный ввод.

С днем программиста, коллеги! Желаем, чтобы код компилировался с первого раза, баги находились до релиза, а таски «на пять ми
С днем программиста, коллеги! Желаем, чтобы код компилировался с первого раза, баги находились до релиза, а таски «на пять минут» действительно занимали пять минут.  И конечно, пусть в жизни будет больше приятных сюрпризов — один из них мы уже подготовили. Скорее переходите по ссылке, трясите коробку и забирайте свой подарок ко Дню программиста: https://tprg.ru/PXaD

Симулятор кубиков учит собирать программу по частям Маленький проект полезнее россыпи упражнений, когда результат можно запус
Симулятор кубиков учит собирать программу по частям Маленький проект полезнее россыпи упражнений, когда результат можно запустить и сразу проверить. В этом приложении вы вводите число шестигранных кубиков, а Python показывает случайный бросок рисунком из текстовых символов. Вместо одного большого куска кода программа собирается по этапам. Сначала текстовый интерфейс принимает команду и проверяет ввод. Затем random.randint() выбирает случайное целое число для каждого кубика, а отдельная функция превращает результаты в рисунок. Последний этап посвящён переработке кода, который строит этот рисунок. В туториале Real Python есть код для каждого этапа. Соберите базовую версию, запустите её с правильным и ошибочным вводом, а потом сравните исходный и переработанный варианты функции генерации рисунка.

Поймите, почему один клик запускает несколько функций Если функция обработки клика назначена кнопке и окружающим её элементам
Поймите, почему один клик запускает несколько функций Если функция обработки клика назначена кнопке и окружающим её элементам, одно нажатие запустит их по очереди. Так работает всплытие события: оно поднимается от нажатой кнопки к её родителям по DOM-дереву, то есть структуре HTML-документа, вплоть до корневого элемента. Соберите страницу, где кнопка button вложена в span, а тот — в div. Назначьте функции для button, span, div и body: пусть каждая выводит имя элемента в консоль браузера. Нажмите кнопку и увидите тот же порядок. Затем нажмите span: кнопка промолчит, потому что событие идёт к родителям, а не к дочерним элементам. Разбор на freeCodeCamp.org с иллюстрациями поможет повторить пример. После него поменяйте вложенность элементов и предскажите порядок до клика: так всплытие превратится из термина в понятное поведение.

Читайте ошибку undefined справа налево и находите причину Сообщение Cannot read properties of undefined выглядит расплывчато,
Читайте ошибку undefined справа налево и находите причину Сообщение Cannot read properties of undefined выглядит расплывчато, но указывает на конкретный сбой. Если оно заканчивается на (reading 'name'), программа попыталась взять свойство name у значения, которого нет. Сначала найдите указанное свойство, затем посмотрите, что стоит слева от точки. В строке user.name проблема не в name: переменная user получила undefined. Например, метод find() возвращает такое значение, когда не находит элемент. Возьмите одну такую ошибку и проследите, где переменной присвоили результат. Проверьте условие поиска, имя ключа объекта и не запустился ли код до завершения запроса. В подробном разборе этот путь показан шаг за шагом.