Фундаментальные знания по основам программирования Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/zrgj
Пишем стек TCP/IP с нуля: Ethernet, ARP, IPv4 и ICMPv4
Написание собственного стека TCP/IP поначалу может показаться пугающей задачей. И в самом деле, за свой тридцатилетний срок жизни TCP впитал в себя множество спецификаций.
В этой серии статей мы научимся реализовывать минимальный стек TCP/IP пользовательского пространства для Linux. Так мы сможем глубже изучить сетевое и системное программирование.
#сети
Партиционирование данных: что это такое и зачем нужно
Простыми словами, партиционирование — это разбиение больших таблиц на более мелкие части. Такой подход полезен не только аналитикам, но и всем, кто работает с базами данных — он ускоряет работу отчетов и позволяет быстрее получать ответы на запросы.
У нас на сайте появилась статья, в которой вы сможете узнать больше подробностей о партиционировании, способах его реализации и отличиях от шардирования. Вы также увидите, как это работает в разных СУБД. Прочитайте, потому что это та база, которая пригодится каждому: https://tprg.ru/xHb6
#бд #datascience
Карты высот для пиксельной игры с видом сверху
Небольшой полезный материал для гейм-разработчиков. Автор поделился своим опытом создания карт высот с помощью каналов цвета.
Как это работает и почему круто — в статье.
#gamedev
10 лучших платформ для создания приложений без единой строчки кода
Если у вас есть крутая идея для проекта, но нет достаточных навыков, то можно воспользоваться и no-code платформой. Так вы сможете реализовать что-то интересное, не откладывая в долгий ящик.
В этой статье мы разобрали 10 таких платформ и рассмотрели их плюсы и минусы:
https://tprg.ru/Bkev
#nocode
Бэкенд — это тоже красиво: как метрики и мониторинг делают вашу работу заметной
Новички, начиная погружение в бэкенд, сталкиваются с тем, что результаты их работы, как будто, не очень и заметны. Фронтендеры могут показать красивую кнопку, анимацию или целый интерфейс. А вот бэкендерами особо и показать нечего, кроме консоли. Особенно знакомым, которые далеки от разработки и не поймут всю крутость ваших достижений.
Но давайте это исправим? Вадим Ваганов из Газпромбанка рассказал, как визуализировать работу бэкенд-разработчиков, чтобы и похвастаться можно было, и лучше понять как работает ваш код. В статье не только советы, но и разбор ключевых метрик и инструкции по их получению.
#бэкенд
А вот и вторая часть про конвейер DevOps
В первой части мы разбирались, как развернуть собственное облако с помощью KVM и libvirt.
Теперь Олег Филон расскажет, как выбрать ВМ и настроить облака с помощью Fedora Core и инструмента mise. В статье вы узнаете об особенностях FreeBSD, Fedora Core и о том, как же правильно настроить Fedora Core сервер для команды разработчиков.
https://tprg.ru/4HER
#devops #linux #fedora
Разработка DHCP-сервера на Python
Сегодня мы рассмотрим, как создать собственный DHCP‑сервер на Python. Суть сервера проста — он динамически раздаёт IP‑адреса устройствам в сети, избавляя нас от головной боли статической конфигурации. Он будет ловить DHCP‑запросы от клиентов, выбирать свободный IP из заранее подготовленного пула и подтверждать выдачу. Так мы убъем двух зайцев: и с питоном поупражняемся, и с работой сетей поближе познакомимся.
Начинаем тут.
Ставь ❤️, если любишь практиковаться с питоном.
#python
Интерактивное руководство по CSS Transitions
Подробный гайд по переходам в CSS от Josh W. Comeau. Тут он собрал всю информацию с интерактивными примерами, которые помогут вам разобраться во всех нюансах.
https://www.joshwcomeau.com/animation/css-transitions/
#css #веб #фронтенд
Что такое FastAPI
FastAPI — это современный фреймворк для создания веб-API на Python. Он предназначен для быстрого и эффективного создания сервисов, которые обрабатывают запросы пользователей и возвращают ответы. Например, с помощью FastAPI можно создать API для отображения прогноза погоды, управления списком задач или даже сложной системы обработки данных.
FastAPI заслужил свою популярность благодаря нескольким ключевым преимуществам:
— Он построен на современных технологиях, что делает его одним из самых быстрых фреймворков для Python. Это особенно важно для проектов, где скорость ответа критична.
— Для создания базового API достаточно написать всего несколько строк кода. Это снижает порог входа для новичков и ускоряет разработку.
— FastAPI автоматически генерирует интерактивную документацию (например, в формате Swagger), которая позволяет другим разработчикам легко понять, как работает ваш API, и протестировать его прямо в браузере.
FastAPI предлагает множество возможностей, которые делают его универсальным инструментом для самых разных задач: интеграцию БД, автоматическую проверку входных данных, масштабируемость.
Чтобы показать, насколько просто начать работать с FastAPI, вот пример минимального кода:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Привет, мир!"}
http://localhost:8000
, вы увидите JSON-ответ: {"message": "Привет, мир!"}
. А если перейти по адресу http://localhost:8000/docs
, вы получите доступ к автоматически сгенерированной документации.Получите диплом IT-факультета Вышки
Сложно ли учиться на факультете компьютерных наук НИУ ВШЭ? Как выбрать магистерскую программу? Какие карьерные возможности есть у студентов и выпускников? Можно ли учиться онлайн и не выпадать из привычного рабочего ритма?
На Дне Абитуриента ФКН обо всем расскажут академические руководители, студенты и партнеры факультета.
Вы сможете:
— Разобраться в особенностях поступления в 2025 году
— Узнать о карьере в компаниях партнерах ФКН
— Пообщаться со студентами ФКН
— Прочувствовать атмосферу факультета
— Узнать о преимуществах обучения оффлайн и онлайн
Успейте поступить в магистратуру в этом году! На факультете 16 магистратур, 5 из которых онлайн.
Если вы еще не определились, что именно хотите изучать в IT, приходите и разберетесь в множестве направлений.
Когда: 6 апреля с 10:00
Где: Покровский бульвар, 11 + онлайн
🔗 Зарегистрироваться
Реклама: НИУ ВШЭ ИНН 7714030726
Erid:2SDnjcxgJdJ
Хотите стать дата-сайентистом? Вот краткая дорожная карта с основными ресурсами.
#datascience #roadmap
Топ-60 лучших инструментов для разработки ПО в 2025
В подборке собрали редакторы кода, системы контроля версий, инструменты для CI/CD, средства тестирования и много другое.
Сохраняйте или отправляйте тем, кто ищет надежные тулзы
#инструменты
Бесплатное обучение фулстек-разработке веб-сервиса с нуля по видео-урокам с исходным кодом и поддержкой
Нет, это не реклама очередного курса с гарантией трудоустройства и постоплатой. Автор этой статьи создал свой полноценный курс из 141 урока. Подошёл он к делу ответственно и потратил около года на это, охватив кучу важных технологий, включая React, TS, Vite, Docker и прочее.
Цель была — продавать курс. Но с этим автору не повезло, зато повезло нам, потому что теперь этот курс доступен всем абсолютно бесплатно.
Подробности программы и ссылка на курс в статье.
#курс #фуллстэк
Чем отличаются реляционные БД от нереляционных
Реляционные и нереляционные базы данных — это два разных способа хранения и организации информации. Давайте разберём их отличия простыми словами.
Реляционные базы данных похожи на шкаф с ящиками, где всё упорядочено. Каждый ящик — это как таблица (представьте Excel), в которой:
— Есть чёткие столбцы, например, «Имя», «Фамилия», «Телефон».
— Каждая строка — это данные об одном объекте, например, о клиенте.
— Таблицы связаны между собой. Например, можно соединить таблицу «Клиенты» с таблицей «Заказы», чтобы узнать, кто что заказал.
В реляционных БД, например, MySQL или PostgreSQL, всё организовано и легко искать информацию даже с помощью сложных запросов вроде «покажи клиентов, купивших товар X». Но если данные часто меняются или их структура нечёткая, нужно «перестраивать шкаф», а при больших объёмах такие БД могут тормозить
Нереляционные базы, например, MongoDB или Redis — это как большая коробка, куда можно кидать вещи без строгого порядка. Здесь данные хранятся не в таблицах, а в разных форматах:
— Документы (как файлы с информацией).
— Ключ-значение (как словарь).
— Графы (для связей, например, в соцсетях).
— Колонки (для больших данных).
Такой подход даёт нам гибкость для хранения любых данных, даже если они часто меняются. А также позволяют быстро работать с большими объёмами и легко масштабируются. Взамен на эти преимущества они усложняют нам создание сложных запросов, а также поиск чего-то конкретного.
Другими словами, если у вас чёткие данные и нужно их связывать (например, для магазина), берите реляционную базу. Если данные хаотичные, их много и они часто меняются, подойдёт нереляционная.
#простымисловами #бд
Можно ли уместить игру Minecraft всего в один QR-код?
Короткий ответ: да, можно.
Доказательство: на картинке выше.
Подробности: в статье.
#java #gamedev #неормальноепрограммирование
Сегодня отмечаем День Рунета!
7 апреля 1994 года был зарегистрирован национальный домен .ru
, что ознаменовало рождение уникального пространства для всех пользователей русскоязычного интернета.
Сегодня домен .ru
занимает 7-е место в мире по количеству зарегистрированных сайтов. Самые популярные домены — универсальный .com
(156,3 млн сайтов), китайский .cn
(19,7 млн) и немецкий .de
(17,7 млн).
А с какого сайта началось ваше знакомство с Рунетом? Поделитесь в комментариях!
Правильно составляем ТЗ для разработчика и заказчика
Вместе с Юлией Ходаковой, начальником управления анализа и развития банковских технологий, разобрались, как создать правильное ТЗ. В статье вы узнаете, как подготовить ТЗ, которое не сведет с ума исполнителя и поможет выполнить задачу правильно:
https://tprg.ru/mMIF
#it #советы
Полезный алгоритм для выбора языка программирования. Если стоите в самом начале пути, то поможет вам определиться с выбором. Или не поможет.
Читать полностью…Создаем собственного оператора OpenAI с помощью open source-инструментов
Чтобы сделать своего ИИ-агента, который будет иметь доступ к браузеру, можно воспользоваться Browser Use. Этот фреймворк позволяет сделать это всего в несколько строк Python-кода. При этом он работает с Claude, gpt-4o и Llama 3, а также интегрируется с Gradio для веб-интерфейса.
При этом он исполняется с участием человека для безопасной работы. Вам достаточно сказать ему, что делать и Browser Use выполнит задачу.
#инструменты
Что такое прототипные методы в JavaScript
Давайте сегодня разберем одну из ключевых концепций в JavaScript — прототипные методы. Что это такое и какую роль они играют в нашем коде?
В JavaScript каждое значение имеет прототип — объект, от которого оно «унаследует» свойства и методы. Это позволяет создавать структуры, которые могут делиться функциональностью. Прототипы помогают избежать дублирования кода и облегчить его поддержку.
Как работают прототипные методы?
Когда мы создаем объект, он может использовать методы, определенные в его прототипе. Например, у всех объектов, созданных на основе Array
, есть общие методы, такие как .push()
и .pop()
. Эти методы определены в Array.prototype
. Если вы не знаете, что такое prototype
, подумайте о нем как о шаблоне для создания объектов.
Давайте рассмотрим простой пример. Мы создадим конструктор для объекта Person
и добавим метод greet
в его прототип:
function Person(name) {
this.name = name;
}
// Добавляем метод greet в прототип Person
Person.prototype.greet = function() {
console.log(`Привет, меня зовут ${this.name}!`);
};
// Создаем нового человека
const alice = new Person('Алиса');
const bob = new Person('Боб');
// Вызываем метод greet
alice.greet(); // Привет, меня зовут Алиса!
bob.greet(); // Привет, меня зовут Боб!
greet
не дублируется для каждого отдельного объекта, а хранится в прототипе. Это экономит память и делает код более организованным.Милее шпаргалок по Git трудно будет найти
В этих милейших гайдах вы сможете разобраться, как работают несколько популярных команд в Git: merge, rebase, pull, push, cherry-pick и log.
#git
В Европе запретят "Hello, World!"
в пользу приветствия ИИ
С 1 сентября 2025 года все IT-специальности в европейских вузах начнут обучение программированию с команды:
print("Привет, ИИ!")
«ИИ — это не просто инструмент, а цифровой партнёр. Мы должны воспитывать уважительное отношение к технологиям с первых строк кода.»
5 игр, чтобы подучить SQL (и не уснуть по дороге)
SQLPD — расследуете преступления как аналитик SQL-полиции. Каждое задание — отдельное дело.
SQL Island — выживаете после крушения на острове, выполняя SQL-задачи, чтобы выбраться.
SQL Murder Mystery — ищете убийцу в базе данных. Свобода действий и минимум подсказок.
Lost at SQL — спасаете подлодку и команду, проходя сюжетные SQL-челленджи.
SQL Squid Game — Решаете задачи по мотивам игры в кальмара, чтобы не повторить судьбу коллеги-аналитика.
#игры #sql
17 шагов по созданию своего первого Open Source проекта на Python
Наверняка в процессе обучения у вас накопились идеи, которые вам хотелось бы реализовать. Возможно, это даже что-то, что может улучшить разработку вам и окружающим.
Если так, то к этом стоит подойти ответственно и без спешки. Для этого рекомендую составить план, а ещё познакомиться с этой статьей. Она поможет вам правильно организовать процесс, чтобы преуспеть.
#python
Частное мнение о том, как «вкатиться» в IT
Это частное мнение молодого 62-летнего программиста с опытом работы чуть менее 40 лет. В отличие от уже стандартных советов из многих статей такого рода, здесь он делится своим опытом. Возможно, кому-то это покажется устаревшим, но обязательно найдутся те, кому это мнение окажется полезным. Поэтому не ленитесь и прочитайте статью!
REST API на Java без фреймворков
REST API — это архитектурный подход, который устанавливает определенные правила для API. Он позволяет стандартизировать работу программных интерфейсов, сделать их более удобными и производительными.
Конечно, для разработки такого API есть множество готовых фреймворков и библиотек под разные языки. Но попробуйте использовать REST API с чистым Java — это потребует больше кода, чем с фреймворком, но даст глубокое понимание механики и поможет закрепить навыки.
Если решились попробовать, то эта статья вам поможет.
#java #restapi #бэкенд
Визуализация алгоритмов сортировки
Визуализатор, создан с использованием React для того, чтобы помочь понять работу основных алгоритмов сортировки.
Что он может:
— сортировать массив из любых трехзначных натуральных чисел;
— менять скорость выполнения;
— запускать, приостанавливать и сбрасывать выполнение;
— генерировать массив из случайных чисел.
Подробнее на GitHub.
Пишем простое расширение для браузера
Ещё один туториал, который поможет вам изучить новые технологии и прокачать свои навыки. На этот раз мы с вами попробуем создать простое расширение для браузера, которое будет управлять куками на сайте. Для простоты в проекте используются только ванильные технологии без сложных библиотек и фреймворков.
#туториал
As Code: очередной тренд или будущее разработки ПО?
Обычная практика в IT-командах: все решения, договоренности живут ОТДЕЛЬНО от кода — в чатах, документах, головах. Со временем происходит масштабирование и всё это превращается в такой хаос, что проще снести и написать с нуля.
Тут на помощь приходит As Code.
Это не просто методология, а философия, где все — от инфраструктуры до документации и политик безопасности — становится кодом.