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

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

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

Другие каналы: @tproger_channels
Download Telegram
Детективная игра для изучения SQL

SQL Noir — браузерная игра, где нужно раскрывать преступления с помощью SQL-запросов. Каждый кейс — отдельная база данных с таблицами подозреваемых, показаниями свидетелей, записями камер и прочими уликами. Задача — написать правильные запросы, соединить данные через JOIN-ы и вычислить преступника.​

Сейчас доступно 6 кейсов разной сложности — от простых краж до убийств. Автор вдохновлялся SQL Murder Mystery, но хотел развить идею глубже. Проект полностью опенсорсный (MIT), стек: React, Vite, Tailwind, Supabase. Можно контрибьютить свои кейсы.​

На Reddit отзывы положительные — хвалят за то, что это не скучные туториалы, а реальная практика с постепенным усложнением. Из минусов: в issues висят баги с редактором и несоответствия в данных некоторых кейсов.

Играть можно в онлайне, регистрация не обязательна. Код открыт в репо.

@devs_books
13🔥1
Самый частый вопрос от тех, кто только заходит в разработку: «Что мне выучить, чтобы через год устроиться разработчиком? Какой стек, какой язык, какие фреймворки?»

На Reddit регулярно всплывают треды, где разработчики с 10–20 годами опыта отвечают на этот вопрос. И среди всего зоопарка советов очень чётко проступают три вещи, которые реально отделяют тех, кто через год пишет нормальный код, от тех, кто через год выгорает и всё бросает.

1️⃣Первая — умение работать с неопределённостью
Новичок ждёт идеального туториала: чтобы шаг за шагом, без дыр и «оставим читателю в качестве упражнения». В реальной разработке так не бывает. Документация кусками, в лекции устаревший пример, в статье автор пропустил важный шаг. Люди, которые вырастают быстрее всех, не злятся на это, а спокойно добивают недостающее экспериментами, вопросами и чтением исходников.

2️⃣Вторая — привычка возвращаться к своим ошибкам
Большинство учится так: сделал задачу, получил ошибку, пофиксил, побежали зелёные тесты — забыли. Сильные ребята после этого садятся и разбирают: почему именно так сломалось, что можно было заметить раньше, как переписать код, чтобы такой класс ошибок просто не мог появиться. Это неприятно и медленно, но через пару месяцев даёт скачок в качестве мышления.

3️⃣Третья — не влюбляться в инструменты
В начале очень легко зациклиться на выборе «правильного» языка, фреймворка или курса. Но если посмотреть на истории людей, которые честно делятся своим путём, там почти всегда один и тот же паттерн: они выбрали что угодно достаточно приличное — и просто несколько месяцев подряд долбили задачи, проекты и чтение кода, а не бесконечно меняли стек.

Если вы только начинаете, попробуйте в ближайший месяц фокусироваться не на том, что ещё выучить, а на том, насколько честно вы разбираете свои провалы и закрываете дыры в понимании. Инструменты при этом можно выбирать почти любые — строчки в резюме важны гораздо меньше, чем глубина мышления, которую они помогли вам вырастить.

Источник: обсуждения в r/learnprogramming и r/ExperiencedDevs о том, какие навыки важнее всего для новичков в 2025 году.

@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
15🤔2👍1
Продолжим тему выбора идеальных инструментов

Есть забавный феномен: чем меньше человек пишет кода, тем сильнее он уверен, что всё было бы хорошо, если бы он сразу выбрал правильный язык/фреймворк/курс. Кажется, что где‑то существует стек, на котором писать одно удовольствие, багов почти нет, документация идеальна, а вакансии падают пачками сами.

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

⚡️ Очень помогает такой мысленный эксперимент.

Представьте, что вам магическим образом дали идеальный стек: язык, который вам нравится, фреймворк, где всё по учебнику, команду, где кодревью делает внимательный синьор, а задачи понятные и интересные.

Вопрос: через три месяца вы будете сильно лучше программировать, чем сейчас?

Если ответ «не факт», то проблема почти точно не в стеке.
Скорее всего, она в том, что:
🔘вы мало пишете кода вне учебных примеров;
🔘вы не возвращаетесь к старым задачам, чтобы переписать их лучше;
🔘вы избегаете сложных участков, где страшно облажаться;
🔘вы почти не читаете чужой код и не разбираете его.

Инструменты, конечно, важны. На них удобно или неудобно писать, от них зависит, как быстро вы можете собрать прототип. Но на временной шкале в несколько лет разница между «идеальным» и просто «нормальным» стеком сильно меньше, чем разница между человеком, который каждый день тренирует мышление, и человеком, который раз в неделю открывает курс и смотрит очередное видео.

Поэтому, если ловите себя на том, что уже третью неделю сравниваете курсы и языки, попробуйте поставить эксперимент: на ближайший месяц заморозить выбор, взять то, что уже есть под рукой, и каждый день решать по одной‑две задачи или пилить маленький пет‑проект. Скорее всего, через месяц вы будете жалеть не о стеке, а о том, что не начали так делать раньше.

@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🤔1
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
1
Первый компьютерный червь, который сломал интернет

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
👍5
Разработчик 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
7👍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
👍2
Большой гайд для тех, кто хочет войти в аналитику с нуля или из смежной сферы.

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

@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👾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👍1
Видеотуториал: 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
🔥21