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

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

Открыть в Telegram

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

Больше

📈 Аналитический обзор Telegram-канала Точка входа в программирование

Канал Точка входа в программирование (@prog_point) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 18 026 подписчиков, занимая 7 038 место в категории Технологии и приложения и 36 246 место в регионе Россия.

📊 Показатели аудитории и динамика

С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 18 026 подписчиков.

Согласно последним данным от 20 сентября, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -110, а за последние 24 часа — -5, при этом общий охват остаётся высоким.

  • Статус верификации: Не верифицирован
  • Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 6.84%. В первые 24 часа после публикации контент обычно набирает 3.51% реакций от общего числа подписчиков.
  • Охват публикаций: В среднем каждый пост получает 1 233 просмотров. В течение первых суток публикация набирает 633 просмотров.
  • Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 2.
  • Тематические интересы: Контент сосредоточен на ключевых темах, таких как docker, javascript, kubernetes, браузер, контейнер.

📝 Описание и контентная политика

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

Благодаря высокой частоте обновлений (последние данные получены 21 сентября, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.

18 026
Подписчики
-524 часа
-327 дней
-11030 дней
Привлечение подписчиков
сентябрь '26
сентябрь '26
+55
в 7 каналах
август '26
+63
в 5 каналах
Get PRO
июль '26
+23
в 4 каналах
Get PRO
июнь '26
+47
в 1 каналах
Get PRO
май '26
+58
в 1 каналах
Get PRO
апрель '26
+54
в 3 каналах
Get PRO
март '26
+55
в 5 каналах
Get PRO
февраль '26
+64
в 4 каналах
Get PRO
январь '26
+72
в 2 каналах
Get PRO
декабрь '25
+115
в 5 каналах
Get PRO
ноябрь '25
+83
в 5 каналах
Get PRO
октябрь '25
+140
в 3 каналах
Get PRO
сентябрь '25
+81
в 4 каналах
Get PRO
август '25
+81
в 3 каналах
Get PRO
июль '25
+96
в 3 каналах
Get PRO
июнь '25
+148
в 8 каналах
Get PRO
май '25
+96
в 3 каналах
Get PRO
апрель '25
+76
в 3 каналах
Get PRO
март '25
+187
в 8 каналах
Get PRO
февраль '25
+179
в 5 каналах
Get PRO
январь '25
+153
в 3 каналах
Get PRO
декабрь '24
+178
в 4 каналах
Get PRO
ноябрь '24
+136
в 5 каналах
Get PRO
октябрь '24
+130
в 8 каналах
Get PRO
сентябрь '24
+129
в 5 каналах
Get PRO
август '24
+145
в 4 каналах
Get PRO
июль '24
+94
в 2 каналах
Get PRO
июнь '24
+71
в 4 каналах
Get PRO
май '24
+174
в 5 каналах
Get PRO
апрель '24
+208
в 7 каналах
Get PRO
март '24
+131
в 4 каналах
Get PRO
февраль '24
+127
в 1 каналах
Get PRO
январь '24
+141
в 3 каналах
Get PRO
декабрь '23
+106
в 5 каналах
Get PRO
ноябрь '23
+115
в 3 каналах
Get PRO
октябрь '23
+108
в 1 каналах
Get PRO
сентябрь '23
+134
в 0 каналах
Get PRO
август '23
+250
в 0 каналах
Get PRO
июль '23
+282
в 0 каналах
Get PRO
июнь '23
+360
в 0 каналах
Get PRO
май '23
+475
в 0 каналах
Get PRO
апрель '23
+543
в 0 каналах
Get PRO
март '23
+424
в 0 каналах
Get PRO
февраль '23
+536
в 0 каналах
Get PRO
январь '23
+1 067
в 0 каналах
Get PRO
декабрь '22
+487
в 0 каналах
Get PRO
ноябрь '22
+564
в 0 каналах
Get PRO
октябрь '22
+384
в 0 каналах
Get PRO
сентябрь '22
+612
в 0 каналах
Get PRO
август '22
+494
в 0 каналах
Get PRO
июль '22
+587
в 0 каналах
Get PRO
июнь '22
+969
в 0 каналах
Get PRO
май '22
+621
в 0 каналах
Get PRO
апрель '22
+425
в 0 каналах
Get PRO
март '22
+773
в 0 каналах
Get PRO
февраль '22
+1 309
в 0 каналах
Get PRO
январь '22
+558
в 0 каналах
Get PRO
декабрь '21
+353
в 0 каналах
Get PRO
ноябрь '21
+2 297
в 0 каналах
Get PRO
октябрь '21
+1 689
в 0 каналах
Get PRO
сентябрь '21
+324
в 0 каналах
Get PRO
август '21
+837
в 0 каналах
Get PRO
июль '21
+1 025
в 0 каналах
Get PRO
июнь '21
+627
в 0 каналах
Get PRO
май '21
+769
в 0 каналах
Get PRO
апрель '21
+2 906
в 0 каналах
Get PRO
март '21
+882
в 0 каналах
Get PRO
февраль '21
+2 017
в 0 каналах
Get PRO
январь '21
+9 289
в 0 каналах
Дата
Привлечение подписчиков
Упоминания
Каналы
21 сентября+2
20 сентября+3
19 сентября+2
18 сентября+1
17 сентября+3
16 сентября0
15 сентября+4
14 сентября+1
13 сентября+4
12 сентября+1
11 сентября+3
10 сентября+2
09 сентября+2
08 сентября+8
07 сентября+2
06 сентября+3
05 сентября+1
04 сентября+4
03 сентября+3
02 сентября+2
01 сентября+4
Посты канала
Как превратить функцию Python в веб-приложение с Gradio Если скрипт живёт только в файле, следующий шаг: дать ему страницу в
Как превратить функцию Python в веб-приложение с Gradio Если скрипт живёт только в файле, следующий шаг: дать ему страницу в браузере. Gradio связывает функцию Python с полями ввода и показывает её ответ на странице. Например, пользователь загружает изображение и видит результат модели, не запуская код вручную. Начните с функции приветствия: подключите к ней текстовое поле через gr.Interface, затем запустите приложение командой demo.launch(). После этого замените приветствие своей функцией и проверьте, правильно ли страница передаёт ей данные. Книга freeCodeCamp ведёт от первой формы к обработке нажатий, сохранению данных между действиями, работе с файлами, моделями машинного обучения и публикации приложения в сервисе Hugging Face Spaces.

2
Как привязать подсказку к кнопке через CSS Anchor Positioning Подсказку легко поставить над кнопкой, пока та не оказалась у в
Как привязать подсказку к кнопке через CSS Anchor Positioning Подсказку легко поставить над кнопкой, пока та не оказалась у верхнего края окна. CSS Anchor Positioning связывает элементы и может перенести подсказку вниз, если сверху мало места. Для тренировки дайте кнопке имя через anchor-name, у подсказки задайте position: fixed и свяжите её с кнопкой через position-anchor. Затем position-area: top поставит подсказку сверху, а position-try-fallbacks: bottom проверит место снизу при выходе за край окна. Соберите пример и прокрутите страницу. С absolute подсказка движется вместе с блоком предка, а у fixed её граница — окно браузера. В подробном разборе есть интерактивные примеры и варианты для неполной поддержки браузерами.
390
3
Стек или очередь в Python: выбираем подходящую структуру Стек отдаёт последним то, что добавили последним (LIFO), а очередь о
Стек или очередь в Python: выбираем подходящую структуру Стек отдаёт последним то, что добавили последним (LIFO), а очередь отдаёт первым то, что пришло первым (FIFO). Проверьте: добавьте числа 0–4 в список и вызывайте pop(). Получите 4, 3, 2, 1, 0. Для очереди возьмите deque из модуля collections: добавляйте элементы через append(), а забирайте слева через popleft(). Тогда числа выйдут в исходном порядке. Обычный список тоже позволяет удалить первый элемент через pop(0), но для таких операций он не оптимизирован. В разборе Python Morsels оба сценария показаны на коротких примерах. Повторите их в консоли, затем добавьте элемент слева через appendleft(): так вы увидите, почему deque называют двусторонней очередью.
404
4
Как читать ввод с геймпада в JavaScript и не принять поломку за норму В Gamepad API нет событий о движении стиков и нажатии к
Как читать ввод с геймпада в JavaScript и не принять поломку за норму В Gamepad API нет событий о движении стиков и нажатии кнопок. Контроллер приходится опрашивать в цикле requestAnimationFrame и на каждом кадре заново вызывать navigator.getGamepads(): сохранённый объект содержит старый снимок. В Chromium есть ловушка. Ось отдаёт ноль, пока браузер хотя бы раз не увидит её значение в диапазоне от −0,1 до 0,1. Сильно дрейфующий стик может не попасть туда и выглядеть исправным. Потренируйтесь: подключите геймпад, нажмите кнопку и откройте консоль. Выведите значения осей, проведите стик через центр и проверьте, когда вместо нулей появятся реальные данные. Готовый код и разбор того, почему браузер не всегда определяет модель контроллера, есть в руководстве freeCodeCamp.
489
5
Как выбрать пагинацию для API Пагинация делит ответ API на части. Offset пропускает N строк: он прост, а клиент может открыть
Как выбрать пагинацию для API Пагинация делит ответ API на части. Offset пропускает N строк: он прост, а клиент может открыть страницу. Но база читает пропущенные строки, а изменения списка между запросами дают повторы или потерю записей. Cursor передаёт скрытый указатель на последний элемент. Keyset показывает ключ прямо, например after_id=100. Оба выбирают строки после индексированного ключа. Для неуникального поля нужен дополнительный id, иначе строки можно пропустить. Для тренировки сделайте обработчик с limit=20: запросите 21 запись. Последняя покажет, есть ли продолжение, а клиенту верните первые 20. Добавьте запись между запросами и сравните offset с cursor. В разборе на DEV Community есть SQL-запросы и пример обработчика.
458
6
Какие исключения ловить в Python и какие оставить видимыми Один except для ValueError, TypeError, KeyError и NameError смешив
Какие исключения ловить в Python и какие оставить видимыми Один except для ValueError, TypeError, KeyError и NameError смешивает ошибки данных с багами программы. В CSV-файле неверная дата вызывает ValueError, пропущенная дата приводит к TypeError, а NameError обычно указывает на опечатку в коде. Обрабатывайте проблему там, где понятна причина: ловите ошибки разбора даты, заголовки проверяйте до чтения строк, NameError оставляйте видимым. except Exception, который ловит почти все обычные ошибки, уместен при обработке независимых файлов: ошибка одного не должна останавливать остальные. В разборе Python Morsels этот подход показан на готовом скрипте. Для тренировки по очереди подайте ему CSV с неверной датой, пропущенным полем и ошибкой в заголовке. Сравните сообщения и решите, где нужен except, а где предварительная проверка.
424
7
Превращаем статичную HTML-страницу в редактор на JavaScript Резюме или меню можно отдать автору текста без просьб править фай
Превращаем статичную HTML-страницу в редактор на JavaScript Резюме или меню можно отдать автору текста без просьб править файл. Статья показывает временный редактор: текст меняется в браузере, блоки двигаются и удаляются, ссылки редактируются, а разрывы страниц задаются перед печатью в PDF. Атрибут contenteditable даёт курсор, выделение, вставку и отмену действий. Около ста строк обычного JavaScript добавляют кнопки для блоков и переставляют сами HTML-элементы. Изменения не записываются, поэтому обновление страницы возвращает исходную версию. Повторите разбор freeCodeCamp на простой странице. Добавьте свой блок и проверьте перемещение, удаление и сброс правок после обновления. Так вы потренируете JavaScript на задаче с видимым результатом.
453
8
Инструкция по применению: открыть анкету, ответить на вопросы из школьной тетрадки, по дороге вспомнить QIWI-терминалы, рингт
Инструкция по применению: открыть анкету, ответить на вопросы из школьной тетрадки, по дороге вспомнить QIWI-терминалы, рингтоны по смс и первые разговоры про биткоин, дойти до финала, забрать промокод. Побочный эффект — желание немедленно обсудить всё это с кем-нибудь, кто тоже помнит.
454
9
freeCodeCamp.org выпустил бесплатный курс по Python с тремя проектами Это четырёхчасовой видеокурс для новичков. Вы напишете
freeCodeCamp.org выпустил бесплатный курс по Python с тремя проектами Это четырёхчасовой видеокурс для новичков. Вы напишете три программы для терминала: делитель счёта, игру с перемешанными словами и очередь для караоке. Так упражнения на ввод, условия и циклы складываются в программы, которые можно запустить и проверить. Проекты усложняются постепенно. Делитель счёта принимает суммы и выполняет расчёты. Игра просит угадать слово, ведёт счёт и выдаёт подсказки. В менеджере очереди логика разбивается на функции, а ошибки ввода перехватываются, чтобы программа не завершалась аварийно. В материале freeCodeCamp.org есть программа курса и переход к видео. Начните с первого проекта: повторяйте код за преподавателем и запускайте программу после каждого блока, чтобы сразу увидеть результат.
467
10
Как дать кнопке с иконкой понятное имя для скринридера Кнопке только с иконкой нужно доступное имя. Его озвучит скринридер, т
Как дать кнопке с иконкой понятное имя для скринридера Кнопке только с иконкой нужно доступное имя. Его озвучит скринридер, то есть программа для чтения интерфейса вслух. Имя можно задать HTML-атрибутом aria-label. У Джейка Арчибальда «Bold» было и в имени, и в подсказке через aria-describedby, поэтому скринридер VoiceOver повторял слово. Удаление имени сделало хуже: JAWS на Windows подхватил ещё и текст соседней подсказки. Исправление: aria-labelledby берёт имя из подсказки, а aria-describedby оставляет дополнительное описание. Попробуйте оба атрибута на кнопке с иконкой и проверьте её в двух программах чтения с экрана. В разборе Джейка Арчибальда есть ошибочный и исправленный HTML.
526
11
freeCodeCamp.org выпустил часовой курс по командной строке На YouTube-канале проекта появился курс для новичков. В командной
freeCodeCamp.org выпустил часовой курс по командной строке На YouTube-канале проекта появился курс для новичков. В командной строке задачи задают текстовыми командами через терминал. К концу занятия автор обещает научить настраивать терминал и работать в нём на своём компьютере. За час вы потренируетесь перемещаться по дереву папок, создавать и менять файлы и каталоги, а также читать и записывать данные. После этого будет проще перейти к программам, которые запускаются только из командной строки. Повторяйте команды сразу за автором, а после видео соберите контрольный пример: создайте учебную папку, добавьте в неё файл, запишите текст и прочитайте его через терминал. Так результат курса можно проверить без дополнительной теории.
610
12
Как нарисовать CSS-треугольник коническим градиентом Конический градиент conic-gradient() раскрашивает фон секторами вокруг в
Как нарисовать CSS-треугольник коническим градиентом Конический градиент conic-gradient() раскрашивает фон секторами вокруг выбранной точки. Если поставить соседние цвета на одной угловой отметке, переход станет резким, а сектор внутри прямоугольного элемента превратится в треугольник. Для тренировки задайте центр градиента в левом верхнем углу, начало направьте вправо, а границу цветов поставьте на 45 градусов. Меняйте угол и наблюдайте за фигурой: так связь между градусами и формой видна сразу. В статье Master.dev Blog этим способом делают крупные треугольники навигации и меняют их углы при наведении. Затем сравните результат с линейным градиентом linear-gradient(): он тоже справится, но конический вариант позволяет описывать форму через угол сектора.
582
13
Как f-строки помогают отлаживать Python Обычный print(answer) может скрыть ошибку: строка '5' и число 5 выглядят одинаково. В
Как f-строки помогают отлаживать Python Обычный print(answer) может скрыть ошибку: строка '5' и число 5 выглядят одинаково. В примере программа сравнивает результат input() с произведением двух чисел и каждый раз считает ответ неверным. Добавьте = после выражения внутри f-строки, то есть строки, куда Python подставляет значения: print(f"{answer = }"). Python выведет имя переменной, а строковое значение оставит в кавычках: answer = '18'. У числа кавычек не будет: expected = 18. Так видно, почему сравнение не сработало. Повторите пример Python Morsels, затем преобразуйте ввод в число через int(input(...)). Приём работает с любым выражением внутри фигурных скобок и показывает его вместе с результатом.
589
14
Космический хакатон. Санкт-Петербург, Красноярск или онлайн из любой точки страны. Старт 18 сентября. Для разных городов разн
Космический хакатон. Санкт-Петербург, Красноярск или онлайн из любой точки страны. Старт 18 сентября. Для разных городов разные задачи, а за выходные участники должны представить рабочие решения. Санкт-Петербург. К 2035 году над Землёй должен работать топливный узел, у которого заправляются корабли, и откуда он будет получать топливо — с Земли, с Луны или из резерва — пока не решил никто. Команде предстоит собрать схему поставок, посчитать резервы и решить, во что вкладываться сразу. Призовой фонд 1,2 млн ₽. Красноярск. Спутник видит горящий лес раньше любого наземного поста, но вместе с пожаром ловит нагретые крыши, факелы на месторождениях и блики на воде. Команде предстоит научить сервис отличать настоящий очаг от шума, обвести гарь и выдать площадь в гектарах. Призовой фонд 600 тыс. ₽. Лучшие забирают приз на площадке и билет в финал в Москве, 25–27 сентября, где разыграют ещё 2,4 млн рублей. Команда 3–5 человек, недостающих можно найти на платформе. Регистрация по ссылке — космохакатон.рф
498
15
Как устроена игра с динозавром в Chrome и чему учит её код В разборе freeCodeCamp видно, зачем игровому движению нужен учёт в
Как устроена игра с динозавром в Chrome и чему учит её код В разборе freeCodeCamp видно, зачем игровому движению нужен учёт времени. Если сдвигать объект на одинаковое число пикселей при каждом кадре, на мониторе с 144 Гц он побежит быстрее, чем при 40 Гц. Игра умножает скорость на время с прошлого кадра, поэтому темп не зависит от частоты обновления. Сложность тоже заложена в правилах. Широкие группы кактусов появляются лишь тогда, когда динозавр уже может их перепрыгнуть. С ростом скорости увеличиваются и промежутки между препятствиями. Повторите первый механизм: нарисуйте квадрат в canvas, HTML-элементе для рисования, и вызывайте requestAnimationFrame, чтобы браузер готовил следующий кадр. Сдвиг вычисляйте по прошедшему времени. Затем снизьте частоту кадров и проверьте, сохранилась ли скорость. Это небольшая, но наглядная тренировка анимации на JavaScript.
513
16
Почему проверка ключа через [] незаметно меняет unordered_map В C++ контейнер unordered_map хранит значения по ключам. Но выр
Почему проверка ключа через [] незаметно меняет unordered_map В C++ контейнер unordered_map хранит значения по ключам. Но выражение mp[key] не просто ищет ключ: если его нет, контейнер создаёт новую запись со значением 0. Поэтому условие if (mp[complement]) в задаче Two Sum формально работало с индексами от единицы, однако каждый неудачный поиск раздувал таблицу лишними записями. Автор разбора на DEV Community заменил квадратные скобки на find(): в его замере время сократилось с 3 до 0 мс. Этот метод возвращает признак отсутствия ключа и не добавляет запись. В C++20 для простой проверки наличия есть contains(). Попробуйте повторить пример и вывести размер таблицы после нескольких промахов. Если вопрос к контейнеру меняет его размер, для проверки ключа нужны find() или contains().
546
17
Почему type="number" возвращает строку в JavaScript Введите 5 в числовое поле, прочитайте input.value и прибавьте 1. Получитс
Почему type="number" возвращает строку в JavaScript Введите 5 в числовое поле, прочитайте input.value и прибавьте 1. Получится 51: свойство вернуло строку «5», а JavaScript склеил текст. Тип поля включает проверку значения, клавиатуру смартфона и кнопки со стрелками, но value остаётся строкой. Для числа можно читать valueAsNumber. Пустое или некорректное значение даст NaN, то есть «не число», поэтому проверьте его через Number.isNaN. У Number(value) другая ловушка: пустая строка превращается в ноль. Для флажка используйте checked, если нужен ответ «отмечен или нет». Повторите эти случаи в консоли и сравните результаты. В статье на сайте John Kavanagh также разобраны выпадающие списки, переключатели и FormData, который собирает поля формы перед отправкой.
622
18
Как устроена база данных: собираем клон SQLite на C Это обстоятельная серия для тех, кому знаком SQL, но путь данных от запроса до файла скрыт за интерфейсом СУБД. Автор строит клон SQLite с нуля на C и документирует каждый слой. Всего 15 частей: маршрут идёт от цикла чтения команд и компилятора SQL к многоуровневому B-дереву. Сначала появляются цикл чтения команд, простейший компилятор SQL и виртуальная машина. Затем одна таблица в памяти получает тесты, сохранение на диск и курсор для обхода записей. Дальше автор разбирает формат узлов B-дерева, двоичный и рекурсивный поиск, разделение узлов и обновление их родителей. В серии How Does a Database Work? удобно идти по порядку и смотреть, как знакомые операции превращаются в структуры данных. Читать стоит разработчикам, которые работают с SQL и хотят разобраться в индексах, полном сканировании таблицы и границе между памятью и диском.
632
19
Как отправлять 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.
597
20
Поймайте паузу в движении мыши одним таймером Когда пользователь двигает мышь, прокручивает страницу или меняет размер окна,
Поймайте паузу в движении мыши одним таймером Когда пользователь двигает мышь, прокручивает страницу или меняет размер окна, браузер создаёт десятки событий в секунду. Если на каждое отправлять запрос или менять элементы страницы, приложение может работать менее плавно. Дебаунс — приём, который ждёт паузу: новый сигнал отменяет прежний таймер и запускает его заново. 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.
579