Метод утёнка
7.09K subscribers
536 photos
94 videos
2 files
437 links
Об IT так, что поймёт даже резиновый утёнок.

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Download Telegram
Forwarded from Типичный программист
Летим зимовать ✈️

Когда холодает, айтишники пакуют чемоданы, а мы разыгрываем ваучер на 50 000 рублей в Островке.

Поехать к морю или остаться среди снежных пейзажей — выбирайте сами!

Чтобы участвовать, нужно оставить любую реакцию под этим постом и подписаться на каналы ниже:

😎 Типичный программист
🐸 Библиотека программиста
🟢 Ostrovok! Tech

Теперь осталось нажать на кнопку участия под этим постом и вы в игре!

Итоги подведём 12 декабря. Победителя выберем с помощью бота. Подробнее с правилами можно ознакомиться здесь.

Всем удачи!

Участников: 19
Призовых мест: 1
Дата розыгрыша: 19:00, 12.12.2025 MSK (4 дня)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Elevator Saga — управляй лифтами с помощью кода

Есть такая браузерная игра, где нужно написать алгоритм управления лифтами. Звучит скучно, пока не попробуешь.

Суть простая: на экране здание с лифтами и людьми, которые хотят попасть на разные этажи. Ваша задача — написать на JavaScript логику, которая будет решать, куда ехать каждому лифту. Чем эффективнее алгоритм, тем больше людей успеете перевезти за отведённое время и тем сложнее уровни откроются.

Первые уровни проходятся на интуиции: «если лифт свободен — езжай на вызов». Но уже к пятому-шестому уровню начинаются проблемы: лифтов несколько, люди едут в разные стороны, время ограничено. Приходится думать про очереди, приоритеты, направление движения. По сути, это задача на алгоритмы планирования, только в игровой форме.

Код пишется прямо в браузере, есть документация с описанием всех методов: elevator.goToFloor(), elevator.currentFloor(), elevator.getPressedFloors() и так далее. Можно ускорять и замедлять симуляцию, чтобы понять, где алгоритм тупит.

На Reddit периодически всплывают треды, где люди делятся своими решениями и оптимизациями. Некоторые доходят до того, что пишут полноценные системы с предсказанием загрузки и распределением лифтов по зонам здания.​

Игра бесплатная, работает в любом браузере, регистрация не нужна.

Играть: https://play.elevatorsaga.com

@devs_books
👍2
VisuAlgo — смотришь, как работает алгоритм, шаг за шагом

Если вы когда-нибудь читали про сортировку пузырьком или обход графа в глубину и не могли понять, что там происходит — этот сайт для вас.

VisuAlgo — это визуализатор алгоритмов и структур данных, сделанный в Национальном университете Сингапура. Выбираете тему (сортировки, деревья, графы, хеш-таблицы и т.д.), вводите свои данные или берёте готовые примеры — и смотрите анимацию того, как алгоритм пошагово обрабатывает входные данные.​

Что есть:
🔘Все основные сортировки: bubble, merge, quick, heap, counting, radix
🔘Структуры данных: связные списки, стеки, очереди, BST, AVL-деревья, кучи
🔘Графовые алгоритмы: BFS, DFS, Dijkstra, Bellman-Ford, MST (Kruskal, Prim)
🔘Segment Tree, Fenwick Tree, Union-Find и даже суффиксные массивы

Можно регулировать скорость анимации, ставить на паузу, откатывать назад. Для каждого алгоритма есть текстовое объяснение и псевдокод сбоку.

Интерфейс на английском, но сама визуализация понятна без слов — просто смотрите, как двигаются элементы. Это особенно полезно перед собеседованиями: одно дело прочитать, что quicksort делит массив по pivot, другое — увидеть это своими глазами десять раз подряд.

Сайт бесплатный: https://visualgo.net

@devs_books
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Первый компьютерный червь, который сломал интернет

2 ноября 1988 года 23-летний аспирант Корнелльского университета Роберт Таппан Моррис запустил программу, которая должна была просто посчитать, сколько компьютеров подключено к ARPANET (предшественник интернета). Программа копировала себя с машины на машину — и всё бы ничего, но Моррис допустил ошибку в коде.

Он добавил проверку: если машина уже заражена — не копироваться повторно. Но потом подумал, что хитрые админы могут обмануть червя, заставив компьютеры всегда отвечать «уже заражён». Поэтому он сделал так, что в 14% случаев червь копировал себя независимо от ответа. Это и стало роковой ошибкой.​

Червь начал копироваться снова и снова на одни и те же машины. Компьютеры перегружались от количества запущенных копий и падали. За несколько часов вышло из строя около 6000 машин — примерно 10% всего тогдашнего интернета. Ущерб оценили в $10 миллионов.​

Интересно, что Моррис запустил червя не из Cornell, а с компьютера в MIT — специально, чтобы сложнее было отследить. Не помогло.​

Последствия:
1️⃣Моррис стал первым человеком, осуждённым по американскому закону о компьютерном мошенничестве (Computer Fraud and Abuse Act, 1986)​.
2️⃣Приговор: 3 года условно, 400 часов общественных работ, штраф $10 050 плюс расходы на надзор​.
3️⃣Инцидент привёл к созданию CERT (Computer Emergency Response Team) — первой команды реагирования на киберинциденты, которая существует до сих пор​.

А сам Моррис? Сейчас он профессор MIT и сооснователь Y Combinator — одного из самых известных стартап-акселераторов в мире, через который прошли Dropbox, Airbnb, Stripe и Reddit.

Источники: Morris worm, Robert Tappan Morris, The Morris Worm, United States v. Morris.

@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍3🤔3
Две игры, после которых вы наконец поймёте Flexbox и Grid

Если каждый раз гуглите «как центрировать div» — попробуйте эти две штуки. Серьёзно, 30 минут на каждую — и CSS-раскладки перестанут быть магией.

➡️ Flexbox Froggy

24 уровня, на каждом нужно написать CSS, чтобы лягушки попали на свои кувшинки. Начинается с простого justify-content: flex-end, заканчивается комбинациями из flex-direction, align-items, flex-wrap и order. К концу игры свойства flexbox уложатся в голове на уровне мышечной памяти.​

Играть: https://flexboxfroggy.com

➡️ Grid Garden

То же самое, но для CSS Grid. 28 уровней, нужно поливать морковки, задавая правильные grid-column, grid-row, grid-template и прочие свойства. После прохождения сетки перестают казаться чем-то страшным.​​

Играть: https://cssgridgarden.com

Обе игры бесплатные, на английском, но интуитивно понятные — там буквально два слова текста на уровень.

@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Разработчик Omri выложил в открытый доступ свой 5-часовой курс по backend-разработке.​

Что внутри: курс покрывает весь путь от нуля до деплоя. PostgreSQL с нуля (создание таблиц, джойны, CTE, транзакции), основы Python, затем Flask API с подключением к базе. Отдельные блоки про Docker, Kubernetes (с Minikube), Linux-команды и Git.​

Интересные практические темы:
🔘Аутентификация через JWT с ролями (admin/guest)
🔘Защита от SQL-инъекций
🔘Background-задачи через threading в API
🔘HTTPS, хеширование vs шифрование
🔘Защита от timing-атак при логине​

Реакция сообщества: в комментариях хвалят за Docker/Kubernetes секции — многие избегают эти темы до последнего, а потом приходится разбираться в авральном режиме. Один из комментаторов справедливо заметил, что не хватает акцента на документацию — навык, который backend-разработчики часто недооценивают.

Видео либо файлом в этом посте, либо на YT.

@devs_books
Media is too big
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3🔥1
15 команд терминала macOS, которые реально пригодятся — подборка от Tproger, без воды, с примерами.​

🔘find ~/Documents -name "*.pdf" — найти все PDF в папке
🔘du -sh ~/* | sort -hr | head -10 — топ-10 самых жирных папок
🔘networkQuality — встроенный тест скорости (с Monterey)

Больше в статье:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Бесплатный курс Python от университета Хельсинки получил обновление

Python Programming MOOC 2025 — полностью бесплатный курс от University of Helsinki, один из лучших структурированных курсов для новичков.

Что внутри
🔘От переменных до ООП за 14 недель
🔘Автоматическая проверка заданий прямо в браузере
🔘Никаких видео на 10 часов — короткие блоки теории + сразу практика
🔘Сертификат по завершении

Почему именно этот
Хельсинкский курс годами считается эталоном для самообучения. Его рекомендуют чаще, чем платные альтернативы. Фокус на решении задач, а не на просмотре лекций.​

📎 https://programming-25.mooc.fi

@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Microsoft выложил бесплатный 12-недельный курс Web Dev for Beginners на GitHub: 24 урока, каждый с квизами, проектом и заданием. HTML/CSS/JS через создание террариума, браузерного расширения и космической игры

Что ещё интереснее — есть официальный перевод на русский!

📎 GitHub: https://github.com/microsoft/Web-Dev-For-Beginners

@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Большой гайд для тех, кто хочет войти в аналитику с нуля или из смежной сферы.

Внутри:
🔘Что реально делает аналитик (спойлер: не только SQL-запросы)
🔘Какие навыки нужны и в каком порядке учить
🔘Специализации: продуктовый, маркетинговый, BI, финансовый
🔘Зарплаты по грейдам: junior 60–100k, middle 100–180k, senior от 180k
🔘Пошаговый план обучения с ресурсами
🔘15 типовых вопросов на собеседовании

@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👾1
Learn Git Branching — наконец понять, что делают rebase, cherry-pick и merge. Если вы до сих пор работаете с гитом по принципу «commit, push, молиться», есть бесплатный тренажёр, после которого всё встаёт на свои места.

По сути браузерная игра, где вы вводите git-команды, а на экране в реальном времени рисуется дерево коммитов. Видно, как ветки расходятся, сливаются, перебазируются. Не нужно ничего устанавливать — всё работает прямо в браузере.

Что там есть:
🔘Уровни от базовых (commit, branch, checkout) до продвинутых (rebase -i, cherry-pick, reflog)
🔘Отдельный блок про работу с remote-репозиториями (fetch, pull, push)
🔘«Git-гольф»: задача — пройти уровень за минимум команд

Интерфейс на английском, но команды — это обычный git, так что разобраться несложно. Можно пройти за пару вечеров, и после этого конфликты при мерже перестанут вызывать панику.

Есть ещё Oh My Git — десктопная игра с похожей идеей, но там нужно скачивать приложение.

📎 Ссылка: https://learngitbranching.js.org

@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Не знаете, в чём встречать Новый год? Не беда

Мы как раз собрали стек новогодних нарядов, чтобы вы могли сиять ярче, чем любая гирлянда. Скорее заходите в нашу примерочную и выбирайте скин!

Реклама
😁1🗿1
Два бесплатных сайта, где можно писать SQL-запросы и учиться прямо в браузере и сразу видеть результат. Никакой регистрации, никаких IDE — открыл и пишешь.

➡️ SQLBolt — пошаговые уроки от SELECT до JOIN и подзапросов. Каждый урок — короткое объяснение + 3–5 задач, которые нужно решить в редакторе на странице. Подходит тем, кто знает SQL поверхностно и хочет закрыть пробелы.

📎 Ссылка: https://sqlbolt.com

➡️ SQL Practice — 60+ задач на трёх базах данных: HR (сотрудники, отделы, зарплаты), e-commerce (заказы, товары, клиенты) и школа (студенты, курсы). Задачи разбиты по сложности: Easy, Medium, Hard. Есть подсказки и готовые решения.

📎 Ссылка: https://www.sql-practice.com

Как использовать:
🔘Если давно не писали SQL — начните с SQLBolt, там всё разжёвано
🔘Если базу знаете, но хотите размяться — идите сразу на sql-practice и берите Medium/Hard
🔘15–20 минут в день в течение недели — и джойны с группировками перестанут быть проблемой

@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
Видеотуториал: Docker для тех, кто откладывал

Если вы до сих пор запускаете проекты командой «у меня работает, а у тебя не знаю», пора разобраться с Docker. Вот конкретное видео, после которого базовые вещи станут понятны. Автор объясняет на примерах: что такое контейнер, чем отличается от виртуалки, как запустить готовый образ, как написать свой Dockerfile. Всё с демонстрацией в терминале.

📎 Видео на YT или в этом посте снизу

Если хотите глубже — есть полный курс на 3+ часа, где добавляются Docker Compose, сети, multi-stage builds и деплой на Docker Hub.

📎 Три часа с индийским акцентом на YT

Совет: не пытайтесь запомнить все команды. Посмотрите видео, параллельно повторяя в терминале, а потом заведите себе шпаргалку с 10–15 командами, которые реально используете. Остальное спросите у GPT, когда понадобится.

@devs_books
Media is too big
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Расшифровка bash-команд по частям

Вы копируете команду из интернета: tar -xzvf archive.tar.gz или find . -name "*.py" | xargs grep "TODO" — и не понимаете, что там происходит.

Explainshell разбирает команду на части и показывает, за что отвечает каждый флаг. Просто вставляете команду — получаете объяснение.

Ссылка: https://explainshell.com

Работает с основными утилитами Linux/Unix вроде find, awk, sed и других.

@devs_books
🔥32
ThePrimeagen (настоящее имя Michael Paulson) — бывший senior-инженер Netflix, сейчас ведёт YouTube и Twitch. Известен тем, что говорит прямо, без корпоративной вежливости.

​Что полезного:
🔘Разбирает, как на самом деле устроена работа в больших компаниях
🔘Стримит изучение новых языков с нуля — видно реальный процесс, а не вылизанный туториал
🔘Часто реагирует на статьи и посты с Reddit — получается разбор с комментариями опытного разработчика

Видео для старта:
🔘«How to learn programming» (интервью с Lex Fridman) — про подход к изучению языков
🔘«Tutorials Are KILLING Your Growth» — почему бесконечные туториалы не работают
🔘«Advice for young programmers» — советы начинающим

Канал: https://www.youtube.com/@ThePrimeagen

Стиль резкий, но честный. Если устали от мотивационных речей — зайдёт.

@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Если взять конкретный язык, то всё может быть ещё хуже.

В Python, например, тип bool наследуется от int, поэтому True и False — это полноценные объекты — целые числа. Каждый объект в CPython несёт накладные расходы:
🔘PyObject header — счётчик ссылок + указатель на тип (~16 байт на 64-бит)
🔘PyLongObject — структура для хранения целых чисел произвольной длины (~12 байт дополнительно)

Можно проверить самостоятельно:
import sys
print(sys.getsizeof(True)) # 28
print(sys.getsizeof(False)) # 28


Почему так расточительно?
Python оптимизирован для удобства и гибкости, а не для экономии памяти. Зато True и False — синглтоны (существует только по одному экземпляру каждого), так что в реальных программах это не создаёт проблем.

Для компактного хранения множества булевых значений используют numpy.array с dtype=bool (1 байт на значение) или битовые массивы.

@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
😁54
Вайб-кодинг выходит на новый уровень! На днях появился плагин, который позволяет Claude Code звонить вам на телефон. Вот прям как на картинке — через общение голосом.

Запустил задачу, ушёл. Claude закончил, застрял или нужно принять решение — набирает вам и спрашивает что делать.

Под капотом Twilio для звонков, который формально пока что должен в России работать, будет звонок с иностранного номера. Вроде логично, Клод живёт за рубежом, оттуда и будет звонить. Для синтеза и распознавания голоса нужен ключ OpenAI API и аккаунт ngrok для проброса веб-хуков.

У проекта уже почти 1000 звёзд и 98 форков всего за несколько суток после релиза.

@devs_books
🔥8😁5
Часы, которые показывают текущее время как hex-цвет
https://sdushantha.github.io/hexclock/

@devs_books
👍7