О курсе — зачем Junior DE учить сети
Если вы Junior Data Engineer, рано или поздно случится один из таких дней. ETL-скрипт молча падает с Connection reset by peer, и никто не знает почему. API партнёра отвечает за 200 мс на одном инстансе и за 12 секунд на другом, идентичном по конфигу. DNS-кэш в Kubernetes-поде запоминает старый IP базы данных и подвисает на полчаса после миграции. Сертификат у внутреннего сервиса протух в выходные, и все ночные джобы упали.
Все эти ситуации не решаются глубоким знанием Python или SQL. Они решаются пониманием того, как байты ходят между машинами: что такое TCP, как работает DNS, зачем нужен TLS, что делает proxy. Это курс именно про это — про сети с точки зрения инженера, который пишет код, а не настраивает Cisco-маршрутизаторы.
В этом уроке разберём: что такое networking-fundamentals, для кого он, что отличает его от классических университетских курсов и как он связан с остальной траекторией.
Что мы изучаем — и чего не изучаем
Курс покрывает networking с практической точки зрения инженера, работающего с данными и сервисами. Это значит:
Курс охватывает 17 модулей, от «зачем нужны сети» до построения мини-инфраструктуры с TLS, DNS и load balancer’ом. Это широкое путешествие, но без углубления в kernel-internals. Если вам нужно поглубже — читайте Computer Networking: A Top-Down Approach (Kurose, Ross) или TCP/IP Illustrated (Stevens) после курса. Здесь же — то, что покрывает 95% задач Junior DE в боевой работе.
Принципиально важно: мы не учим вас настраивать роутеры. Cisco IOS, JunOS, конфигурация VLAN на switch — это work для network engineer’а, у которого сертификация CCNA или CCNP. У вас другая роль: вы пишете код, который ходит в сеть. Вам нужно понимать, как сеть работает, чтобы писать этот код правильно. И чтобы, когда что-то ломается, вы могли быстро сказать инфраструктурной команде: «у меня запросы пять секунд висят на TCP handshake к 10.0.5.42, посмотрите, что там с firewall’ом».
Для кого курс
Идеальный слушатель — Junior Data Engineer, бэкенд-разработчик или DevOps-инженер на начальной стадии. Конкретнее:
- Вы уже умеете базовый Python и shell. Прошли
linux-fundamentals, знаете, что такое процесс, файл, переменная окружения. Запускалиpip install,python script.py, читали логи вjournalctl.
-
У вас есть представление о клиент-сервер архитектуре. Понимаете, что бывают frontend и backend, что API возвращает данные. Может быть, делали
requests.get('https://api.github.com')и видели JSON в ответ. -
Вам нужно работать с сетью на уровне инструментов, а не теории. Запускать ETL, дебажить ингест из API, поднимать сервисы в Kubernetes, понимать, почему запрос идёт долго.
Если у вас нет даже этого — лучше начать с linux-fundamentals. Если вы senior network engineer с десятью годами CCIE — курс будет слишком базовым, но может дать свежий взгляд на то, как networking воспринимается со стороны разработчика.
Прохождение в режиме «слушал лекцию, посмотрел диаграммы» не работает. Сети — это про эксперимент. Откройте терминал прямо сейчас и держите его открытым весь курс. На каждом уроке будут команды для запуска. Не пропускайте их.
Чем этот курс отличается от классических
Обычный учебник по networking (Kurose, Tanenbaum, классический Stallings) построен снизу вверх: сначала физический уровень (электрические сигналы, кодирование), потом канальный (Ethernet-кадры), потом сетевой (IP), и так далее до приложений. Это академически правильный подход, но он не работает для инженера в 2026 году по двум причинам.
Во-первых, вы никогда не работаете с физическим уровнем. Никто из вас не будет паять кабели или анализировать модуляцию сигнала. Эта часть курсов читается как археология. Во-вторых, такой подход не даёт мотивации: студент учит Ethernet-кадры, не понимая, зачем они нужны для того, чтобы curl github.com работал.
Мы будем идти преимущественно top-down, как Kurose-Ross, но с упором на инструменты. После теории каждого уровня — сразу команда. Изучили TCP-handshake — открываем Wireshark и видим его глазами. Изучили DNS — запускаем dig +trace google.com и смотрим, как resolver обходит дерево. Изучили TLS — ловим handshake через openssl s_client -debug.
Кроме того, курс делает акцент на современных реалиях: HTTP/3 через QUIC, DNS over HTTPS, TLS 1.3, IPv6, container networking. Многие классические книги были написаны до этих технологий и упоминают их только в последних главах. У нас они появляются органично.
Положение курса в трэке
Networking-fundamentals — часть трэка data для Data Engineering, но полезен любому бэкенд-разработчику. Внутри трэка курс лежит между несколькими другими:
Главное соседство — rest-api-fundamentals. Этот курс даёт фундамент про HTTP, TCP, TLS, sockets. Дальше rest-api-fundamentals углубляется в HTTP-семантику (методы, статус-коды, REST-принципы, OpenAPI). Можно смотреть как два этажа: networking — этаж транспорта, rest-api — этаж приложения.
Сильно полезен курс будет также для понимания Kubernetes. K8s networking — одна из самых сложных тем платформы. Когда вы понимаете базу (IP-маршрутизация, NAT, DNS, load balancing), концепции K8s (Service, Ingress, NetworkPolicy, ClusterIP) становятся очевидными — это просто комбинации базовых примитивов.
Что вы будете уметь после курса
Конкретные навыки, которые формируются в течение курса:
-
Читать
curl -vот начала до конца. Понимать каждую строку: DNS lookup, TCP-handshake, TLS-handshake, HTTP-обмен. Видеть, где запрос завис, и понимать, почему. -
Дебажить DNS-проблемы.
dig +trace,dig @8.8.8.8, разные TTL, негативное кэширование, DoH. Когда сервис «недоступен», ноpingпо IP работает — понимать, что это DNS, и идти проверять resolver. -
Анализировать pcap-файлы. Открыть в Wireshark захват трафика, понять, где tcp retransmission, где TLS handshake падает, что отдаёт сервер, что не отдаёт.
-
Понимать сетевые ошибки.
Connection refused(нет процесса на порту),Connection reset(RST-пакет),Connection timeout(нет ответа),No route to host(firewall или маршрутизация),Address already in use(порт занят, TIME_WAIT). Каждая ошибка указывает на конкретный слой и конкретную причину. -
Конфигурировать TLS правильно. Self-signed сертификаты для разработки, Let’s Encrypt в production, dual-stack IPv4/IPv6, корректные TLS-настройки в HTTP-клиенте.
-
Понимать load balancing. Когда L4 vs L7, что такое sticky session, что такое consistent hashing для шардирования, как работает health check.
-
Писать сетевые приложения. Базовый TCP/UDP-сервер на Python, async-вариант с asyncio. Понимать, что делает фреймворк под капотом, когда вы пишете FastAPI или aiohttp.
-
Безопасно работать с сетью. Базовые принципы security: что такое MITM, как DNS spoofing работает, зачем VPN и в каких сценариях. Не security-эксперт, но осознанный пользователь.
Чего не будет
Чтобы избежать разочарований, явно перечислю, что в курс не входит:
-
Глубокая теория RFC. Мы упоминаем номера RFC, но не читаем их строчка за строчкой. Если нужно —
RFC 9110(HTTP/1.1),RFC 9000(QUIC),RFC 5246(TLS 1.2) — читайте сами. -
Cisco/Juniper настройка железа. IOS, JunOS, конфигурация VLAN/EIGRP/OSPF на коробках — это CCNA-курс. У нас только обзор, что они делают.
-
Wi-Fi internals. Beam-forming, MIMO, OFDM — не наша тема. Только то, что Wi-Fi — это link layer, и снаружи он выглядит как Ethernet.
-
Сложная криптография. Мы понимаем, что TLS использует AES и RSA/ECDSA, но не разбираем математику. Для этого есть
cryptographyкурсы. -
5G/телеком инфраструктура. Сети операторов — свой мир. У нас базовое понимание, что есть mobile networks с их особенностями (jitter, packet loss), и почему QUIC лучше работает в этой среде.
-
Глубокий BGP / маршрутизация в интернете. Обзор — да. Настройка BGP — нет.
Время и объём
Каждый урок — около 15-20 минут чтения, плюс 10-30 минут на эксперименты с командами. Всего 17 модулей, 60+ уроков. В сумме при ежедневной работе по часу — около двух месяцев. При выходных интенсивных сессиях — две-три недели.
Не торопитесь. Сети — это область, в которой быстрое прохождение не работает. Каждая концепция должна быть подкреплена реальной командой и наблюдением. Лучше один урок в день, но глубоко, чем три урока подряд поверхностно.
После каждого урока — 4-6 вопросов в quiz, в конце модуля — exam из 6 интегрирующих вопросов. Проходите их добросовестно: ошибка в quiz — это сигнал, что нужно перечитать.
Попробуй сам
Прежде чем идти дальше, проверьте, что у вас установлены базовые инструменты. Все они нужны на протяжении курса.
# 1. curl -- основной инструмент для HTTP
curl --version
# Должна быть версия >= 7.84 (для современных фич)
# 2. dig -- DNS-диагностика
dig -v
# или
nslookup -version
# 3. ping и traceroute
ping -V 2>&1 | head -1
traceroute --version 2>&1 | head -1
# 4. tcpdump -- захват трафика
sudo tcpdump --version 2>&1 | head -1
# 5. openssl -- TLS-диагностика
openssl version
# 6. Python 3.13+
python3 --version
Если чего-то нет, ставьте через системный пакетный менеджер. На macOS все эти инструменты идут из Homebrew. На Ubuntu/Debian — apt install curl dnsutils iputils-ping traceroute tcpdump openssl.
Для Wireshark (мы будем им активно пользоваться в модулях про TCP и TLS) скачайте отдельно с wireshark.org. Это GUI, не command-line.
Как создавался курс
Курс создан при участии Claude (Anthropic) как соавтора: ИИ помогал писать материалы, структурировать темы, генерировать примеры кода и диаграммы. Каждая глава проходила ручную сверку с первоисточниками — спецификациями, документацией, исходным кодом рассматриваемых систем — но гарантировать 100% точность невозможно.
Если вы заметили неточность, опечатку или хотите предложить улучшение — напишите в Telegram-группу курса. Это самый ценный вклад в курс, который вы можете сделать.
Углублённое изучение с Claude
Курс рассчитан на самостоятельное изучение, но любая теория быстрее ложится, если задавать вопросы. Рекомендую держать рядом браузерное расширение Claude (claude.com/download) — оно работает с контентом открытой страницы: выделяете кусок урока и спрашиваете напрямую.
Сценарии, которые особенно хорошо работают для углублённого погружения:
- «Объясни проще» / «дай ещё один пример» — когда формулировка из урока не дошла с первого раза.
- «Покажи, как это устроено на уровне кода / железа» — когда хочется спуститься на слой ниже того, что даёт урок.
- «Как это связано с [другая тема курса]» — когда нужно увязать концепцию с тем, что было раньше.
- «У меня в проекте стек X — как применить?» — когда хочется примерить материал на свой реальный кейс.
Это не замена курсу, а способ ускорить интеграцию материала в вашу картину мира. Если что-то из ответов Claude расходится с уроком — присылайте в Telegram-группу, курс будет уточнён.
Нашли ошибку?
Если заметили неточность, опечатку или хотите предложить улучшение:
Telegram-канал
Подписывайтесь, чтобы узнавать об обновлениях и новых курсах: