Метод утёнка – Telegram
Метод утёнка
7.18K subscribers
525 photos
91 videos
2 files
417 links
Об IT так, что поймёт даже резиновый утёнок.

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

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

Другие каналы: @tproger_channels
Download Telegram
Edabit — это «Duolingo для программирования»: короткие интерактивные задачи прямо в браузере, за которые ты получаешь XP, уровни и ачивки. Есть отдельные подборки под Python, JavaScript, Java, C#, C++, PHP, Ruby и Swift, плюс интерфейс на нескольких языках.​ В том числе русский, но сам текст задач не переводится.

Формат простой: выбираешь язык, решаешь маленькие задачи от «совсем легко» до посложнее, запускаешь код в онлайн‑редакторе и сразу видишь, прошли ли тесты. Это удобно, если ты только начинаешь и хочешь набить руку на синтаксисе и базовой логике, не ставя IDE и не собирая окружение.​

Общий список задач:
https://edabit.com/challenges

Интерактивные учебники для начинающих по JS и Python:
https://edabit.com/tutorials

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

@devs_books
Media is too big
VIEW IN TELEGRAM
❤‍🔥3
Девушек, конечно, привлекают инфраструктурные проблемы, но лучше для начала надеть штаны
😁11🤔2
Кажется, у нас уже есть идеальная ACID‑совместимая база данных — это обычный /dev/null. Если переформулировать свойства ACID человеческим языком, оказывается, что этот «чёрный ящик» из Unix идеально им соответствует и отлично помогает на пальцах понять, что за каждым пунктом стоит.​

1️⃣Атомарность: всё, что ты пишешь в /dev/null, либо целиком «улетает в никуда», либо не пишется вовсе — никакой половинчатой записи.
2️⃣Консистентность: инвариант «файл всегда пустой» выполняется при любых операциях, состояние до и после записи одно и то же.
3️⃣Изоляция: сколько процессов параллельно ни лили бы данные в /dev/null, их вывод никогда не конфликтует, потому что ничего не сохраняется.
4️⃣Долговечность: после ребута содержимое остаётся строго тем же, что и раньше — абсолютное ничего.​

Есть только один «недочёт» такой базы — у неё ровно 0 байт доступного места, так что масштабирование хранилища придётся решать очень… творчески. Зато как учебный пример /dev/null отлично показывает, что формальные определения ACID можно довести до забавных крайностей и заодно лучше понять, чего именно хочется от реальной базы в проде.

@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
😁51🤔1💯1
Статья для тех, кто хочет понять, как современный ML двигает онлайн‑рекламу в больших продуктах вроде VK, без формул и академичности: https://tprg.ru/Nf8A

Разбирают, как пользователей и контент превращают в векторы, как поверх потоковых данных строят профили и как единая платформа Discovery кормит моделями рекомендации, рекламу и антифрод. Полезно почитать, чтобы увидеть, как «ML в проде» выглядит не на учебном датасете, а в реальной системе с миллионами событий в секунду.

@devs_books
👍52
Дверь, которая сломала Half‑Life 2

Бывший разработчик Valve Том Форсайт рассказал, как в 2013 году они делали VR‑порт Half‑Life 2 и внезапно наткнулись на баг прямо в самом начале игры. В сцене, где охранник должен провести Гордона через дверь, створка просто не открывалась, и игрок намертво застревал — ни вперёд, ни назад. Самое странное началось, когда они запустили обычную (не‑VR) версию на том же железе и увидели, что теперь та же сцена сломана и в «обычном» HL2, хотя в 2004 году все проходили её без проблем, а код вроде бы никто не трогал.​

Разобравшись, они выяснили, что баг родился на стыке двух классических источников боли в геймдеве: дверей и чисел с плавающей точкой. Оригинальный HL2 собирали под старый x87 FPU, где часть вычислений шла в 80‑битной точности, а более новые билды компилировались с использованием SSE, где всё жёстко обрезалось до 32 бит. В результате крошечное отличие в вычислениях физики привело к тому, что NPC сдвигался буквально на доли миллиметра, дверь чуть по‑другому поворачивалась — и персонаж больше не попадал в нужный триггер, который должен был открыть проход.​

Такой вот «баг из будущего». Двери и вычисления с плавающей точкой, коллеги. Гремучее сочетание, аккуратнее с этим.

@make_game
🔥5
А вот бесплатно задачки порешать. Нашёл сайт с заманчивым названием exercism ✝️

https://exercism.org/

78 треков по разным ЯП, среди которых кроме популярных есть Haskell, ARM64 Assembly, COBOL и несколько диалектов Lisp. Не часто встретишь такой набор.

Что интересного:
🔘CLI-first платформа. Скачиваешь задачи и решаешь их локально, потом отправляешь обратно через терминал. Это само по себе полезно, чтобы привыкнуть к консоли, но если не хочется — для всех языков есть веб-интерфейс.
🔘Анализ решений. После отправки приходит автоматический фидбек и подсказки по улучшению. Видимо, от ИИ. При этом дополнительно можно запросить помощь живого ментора. Не знаю, как долго будет работать такая схема, но пока что есть шанс получить разбор от опытного программиста.
🔘Для некоторых языков задачки собраны в роадмап с последовательным прохождением тем.

Для общения есть дискорд-сервер и форум.

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

@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42
Канал с задачками по Python от того же автора, что ведёт «Утёнка»: @quiz_python

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

Если ответить неправильно, то получите короткое объяснение, почему это неправильно. А через час я добавляю пост с подробным объяснением по шагам. Скрываю его в спойлер, чтобы случайно не подсмотреть ответ. Получается довольно неплохой способ по чуть-чуть узнавать что-то про Python.

Подключайтесь! Сегодня вот разбираем декоратор @property. А вчера была задача про async / await, которую на удивление мало кто решил.

@devs_books
1
Главный признак синьора — не годы стажа и не список технологий в резюме, а умение брать размытые задачи и делать их конкретными. Мидл спокойно решает чёткий тикет, а синьор, услышав «надо улучшить производительность», «пользователи жалуются на онбординг» или «надо подумать про масштабирование», сначала раскручивает, в чём реальная проблема, для каких конкретно пользователей, какие у нас скрытые допущения и что будет, если мы ошибёмся, но всё равно это выкатим.​

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

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

На основе поста в блоге Matheus Lima.

@devs_books
💯73
Учитесь новому так, как удобно вам, вместе с Академией Топ

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

По итогам обучения выпускники Академии получают государственный диплом, признанный в 7 странах мира.

Выбирайте курс по душе:

«Разработка на Python»
«Разработчик программного обеспечения»
«Кибербезопасность и сетевые технологии»
• и многое другое

Академия регулярно проводит бесплатные дни открытых дверей «Старт в IT» для тех, кто мечтает о карьере в IT, но не знает, с чего начать.

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

А для тех, кто уже выбрал своим направлением Python-разработку, в Академии Топ проводят пробные занятия «Python с нуля: создаём чат-бота», где вы на практике изучите основы универсального языка программирования и создадите свой первый проект.

Выбирайте свой курс с подходящим вам форматом обучения!

Реклама. Филиал «АКАДЕМИЯ ТОП КУТУЗОВСКИЙ», ИНН 7730257499, erid: 2W5zFK5c4jS
👍54🔥1🤩1
Детективная игра для изучения 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
14