Марат и его записки программиста
287 subscribers
82 photos
1 video
63 links
Коротко о сложном: Инжиниринг данных, бэкенд, ИИ и личный опыт.
Автор: Марат, 15 лет в разработке
Vk: https://vkvideo.ru/@club231048746
GitHub: https://github.com/MaratNotes/marat_notes
Download Telegram
Вдогонку, как я теперь получаю рекламу в чате😁

P.S. Это легко пофиксить,
Например, в Qwen: кликните по иконке в нижем левом углу с инициалами, далее: Персонализация -> Память (Управлять). Находите текст инъекции и удаляете.

А пока, пусть она чуть-чуть порекламирует хороший канал😁
😁3
🎄 Краткосрочный отпуск — стартовал! 🎄

На неделю уехал в Питер — вдохновляться предновогодней атмосферой, прогуливаться по Невскому и, конечно,  наслаждаться отдыхом 😊

Сразу после отпуска начнётся неделя корпоративов, поэтому декабрьские видео выйдут со второй половины месяца. Вот мой план:

📅 16 декабряГрокаем алгособесы: Медленный и быстрый указатели — разберём паттерн на пальцах и с примерами.
 
📅 20 декабряКак работают данные: Apache Spark: основы (базовое устройство, архитектура и когда действительно стоит его использовать)

📅 27 декабряКак работают данные: Apache Spark на Windows: пошаговая установка, настройка и первый запуск.

Вернусь с новыми силами и, возможно, парой питерских историй 🥂

P.S. А пока я в отпуске — самое время Вам порешать Leetcode или поэксперементировать с DAG'ом на Airflow 😉

#отпускпрограммиста
🔥52
This media is not supported in your browser
VIEW IN TELEGRAM
🎧 Случайная встреча с магией звука на Невском

Во время отпуска прогуливался по Невскому проспекту  и наткнулся на выставку Лаборатории Экспериментального Звука (ЛЭЗ).  И не смог не зайти и не погрузится в магию звука.
Выставка представлена в трех залах, где звук перестаёт быть просто фоном и становится живым, почти мистическим явлением.

🔹 Первый зал — инструменты, превращающие шумы, поля и вибрации в звук. Особенно запомнился аппарат с реверберацией и задержкой — по внешнему аидае напомнил те, на которых работали телефонистки в СССР. Моя мама работала телефонисткой в нефтяной кампании в 2000-х и там было похожее оборудование. Вспомнились новогодние ночёвки у неё на работе, когда под гул такого устройства смотрели на маленьком чёрно-белом телевизоре "Новогодний огонёк" и собирали только что подаренный Китайский "Лего". Тёплые, почти сказочные воспоминания 🥹

🔹 Второй зал — креатив по созданию новых акустических инструментов, где звук возникает не благодаря исполнителю, а в результате взаимодействия физических процессов и технологий. Например, конструкция из 12 латунных пластин, которые под действием электромагнитной индукции издают непрерывный, но постоянно меняющийся звук. Очень медитативно — рекомендую прислушаться.

🔹 Третий зал был посвящён полевым записям: звук Синхрофазотрона в Дубне, гул ГЭС и другие промышленных «голоса». Но тут я, увы, выдохся — голова уже перегружена звуком, и пришлось выйти на свежий воздух, чтобы всё это переварить 😅

Если вы в Питере — очень рекомендую заглянуть. Это не просто выставка, а классное времяпровождение  и медитация в формате звука, диалог с невидимым, почти инженерная поэзия. 

📍 Дом радио, Невский пр., 62 
📆 Уточняйте даты — такие проекты, к сожалению, редко живут долго.

— 
P.S. Делитесь какие кайфовые (случайные, но важные) места Вам доводилось внезапно посетить? Буду рад прочитать ваши истории в комментариях! 🌟

#отпускпрограммиста
👍3
Эвристика доступности: Почему последний баг кажется главной проблемой Вселенной.

Привет! Продолжаем разбирать книгу «Ошибки мышления». Сегодня поговорим об эвристике, которая управляет нашими страхами, решениями о выборе технологий и оценкой рисков чаще, чем нам кажется.

Что это за зверь?
Эвристика доступности — это когнитивный ярлык нашего мозга. Грубо говоря, мы оцениваем вероятность события, важность проблемы или частоту явления по тому, насколько легко примеры этого приходят нам в голову. Если что-то можно быстро вспомнить (оно «доступно» в памяти), мозг делает вывод: «Значит, это случается часто и это важно». И часто ошибается.

Почему? Потому что на «доступность» влияет не статистика, а наши личные впечатления, свежесть информации и эмоциональная заряженность.

1️⃣ Пример из моей жизни:
Когда я купил часы Garmin Forerunner 55 желтого цвета для беговых тренировок, со мной произошла магия. Я вдруг начал замечать их везде: на беговых тренировках, в отчетах друзей, на фотографиях в тематических пабликах. У меня сложилось стойкое ощущение: «Прикольно, оказывается ими пользуются все».

А потом я поймал себя на мысли: буквально месяц назад я их вообще не замечал. Как только часы стали моими, мозг начал выделять их из общего фона, и они мгновенно стали «доступными» для моего внимания.

2️⃣ Пример из IT-практики :
Представьте: Вы недавно были на крутом митапе, где множество докладчиков с восторгом рассказывали, как Apache Kafka «спасла» масштабируемость, позволила обрабатывать терабайты данных в реальном времени.

На следующий день на архитектурном обсуждении внутреннего сервиса для уведомлений кто-то говорит:

Тут же очевидно — ставим Kafka!


И это кажется логичным... пока не проанализируешь:
Сервис генерирует 200 событий в час,
Не требует строгого порядка,
Живёт на одном сервере.

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

3️⃣ Пример из алгоритмической практики:
Недавно я готовил подробный разбор префиксных сумм, погрузился в тему, проработал тонкости и был под большим впечатлением от элегантности этого метода.

И что же? Следующие две-три недели, решая задачи на LeetCode, я практически в каждой задаче ловил себя на мысли: «А ведь это же на префиксные суммы!». Даже в тех случаях, где решение было в разы проще — циклом или хэш-таблицей. Мой мозг начал натягивать этот, ставший сверхдоступным, шаблон на всё подряд. Этот инструмент в моём арсенале стал таким же «часами Garmin».

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

🛠 Как ловить себя на этом и что делать?

Задайте вопрос: «Эта идея пришла в голову из-за реальных требований (проекта/задачи) или из-за яркого, свежего примера, который сейчас вертится в памяти?». Спросите: «А что именно мы решаем?», прежде чем «Какую крутую технологию/метод применить?».

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

💡 Итог
Эвристика доступности — способ нашего мышления быстро сориентироваться, заметив «свои часы», «модный инструмент» или знакомый алгоритм» в толпе. Но в инженерии и решении задач, где цена ошибки — время и сложность, эта экономия убийственна. Учитесь отличать «вспомнилось» от «технически обосновано».

P.S. А вы замечали у себя подобные ситуации? Например, что оказывается такая же машина как у Вас встречается часто в потоке. Поделитесь в комментариях🤗

#ОшибкиМышления
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Быстрый и медленный указатели

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

В этом выпуске:

🔹 Что такое паттерн «быстрый и медленный указатели» и в каких задачах хороший вариант его использовать
🔹 Как за O(n) времени и O(1) памяти определить, есть ли цикл в связном списке
🔹 Пример: обнаружение цикла (LeetCode 141)

Потренируйся сам
Расположил задачи по возрастанию сложности:

LeetCode 876
LeetCode 287
LeetCode 142


🎥 Смотреть на YouTube: https://youtu.be/ELff7sNdyPw
📺 Смотреть во ВКонтакте: https://vkvideo.ru/video-231048746_456239036
📂 Код и презентация на GitHub: https://github.com/MaratNotes/marat_notes/tree/master/grokking_algorithms/3_fast_and_slow

#ГрокаемАлгособесы
👍3
Чашка чая, горячая картошка и живой диалог — признаки отличной IT-конференции

Оказывается в декабре Онтико опубликало новость, в которой объявили о перезапуске формата своих конференций в 2026 году. Как я понял, они планируют внедрить больше игровых и дискуссионных форматов, а также привлекать участников из самых разных сфер и компаний — не только из бигтеха. Классно, что есть посыл к изменениям, интересно как они воплотятся в жизнь.

Если говорить про меня, в этом году побывал на нескольких IT-конференции (1, 2, 3) и в принципе давно перестал ждать от докладов «прорыва в мышлении». За 20–25 минут редко удаётся передать то, что действительно важно: контекст, ограничения, компромиссы.

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

Так в этом году на одной конференции с интересом обсуждали энергоэффективность Go против Python, причем дискуссии началась неожиданно, когда пил чай, было интересно. Или узнал, как внедряют RAG в других компаниях, с какими подводными камнями сталкиваются. Для меня в таких разговорах рождаются идеи, которые потом могут быть внедрены в личную практику и, конечно, так я знакомлюсь с интересными и увлеченными работой и жизнью людьми.

Лично мне на ум приходят две вещи, которые бы я хотел видеть на следующей конференции, которую бы посетил:

🔹 Секцию «Что пошло не так», где докладчики делились информацией, что попробовали, что сломалось, как пытались починить, и на каком этапе решения проблемы они сейчас.
🔹 Групповые дискуссии по темам, чтобы была дискуссия на несколько столов и периодически участники столов менялись, мне кажется такие брейнштормы могли бы родить интересную внутреннюю рефлексию.

А как у Вас с конференциями?
Посещаете ли вы офлайн- или онлайн-форматы? Что для вас в них ценно — а что уже поднадоело?
2
Запускаю курс по Apache Spark!

В первом видео разбираю, почему Spark может быть выбором для работы с большими данными. Рассказываю на простых словах и доступных аналогиях.

Вы узнаете:

🔹 Что такое большие данные (3V)

🔹 Когда Spark нужен, а когда нет

🔹 4 особенности, которые делают его универсальным

🔹 Кто использует Spark в своей практике

Курс будет практическим: 8-10 видео от основ до real‑case проектов.

Смотрите первое видео, ставьте лайк, если тема зашла! В следующем выпуске — установка и первый запуск.


🎥 Видео:
https://vkvideo.ru/video-231048746_456239037

https://youtu.be/j3WCm_GlPoM?si=8E-31-Sw5mBf2t7S

📚 Материалы: https://github.com/MaratNotes/marat_notes/tree/master/how_data_works-practice_cases/16_apache_spark_introduction

#КакРаботаютДанные #ApacheSpark
🔥10👍31❤‍🔥1🫡1
Салаты доедены, торт исчез, и даже от мандаринов осталась только кожурка — на дворе 5 января!

Самое время сбросить праздничную инерцию. А что может быть лучше, чем начать с чего-то полезного и конкретного?

🔹Сегодня вечером выходит новое видео в серии «Грокаем алгособесы» — разберём паттерн «Скользящее окно»: как за O(n) искать подмассивы и подстроки без перебора.

🔹А уже 8 января — практическая установка Apache Spark в серии «Как работают данные»: подготовим окружение и запустим первый код на Spark.

Готовь чай, ноутбук и пару вкладок терпения — будет полезно!
👍8
Скользящее окно

Скользящее окно — паттерн для решения задач на непрерывные подмассивы и подстроки за линейное время. Особенно эффективен, когда есть ограничения: сумма ≥ X, все символы уникальны, не более K типов и т.п.

В этом выпуске:

— Что такое паттерн «Скользящее окно» и когда его использовать
— Разница между фиксированным и переменным окном
— Как решить задачу за O(n) вместо O(n²) без вложенных циклов
— Пример: Minimum Size Subarray Sum (LeetCode209)

Потренируйся сам
Расположил задачи по возрастанию сложности:

1. LeetCode3 — классика на уникальность символов.
2. LeetCode438 — фиксированное окно + сравнение частот.
3. LeetCode904 — переменное окно с ограничением на 2 типа элементов.

📺 Смотреть во ВКонтакте: https://vkvideo.ru/video-231048746_456239038
🎥 Смотреть на YouTube: https://youtu.be/EIgq0N60JkE
📂 Код и презентация на GitHub: https://github.com/MaratNotes/marat_notes/tree/master/grokking_algorithms/4_sliding_window

#ГрокаемАлгособесы
👍2
Apache Spark: запуск в Docker

В этом видео — первый шаг к реальной работе с данными: как за пару минут получить полностью рабочий PySpark на Windows без JDK, без winutils.exe и без единой ошибки.

Всё благодаря Docker — Вы запустите готовое Linux-окружение с Spark, JupyterLab и поддержкой кириллицы☺️

Вы узнаете:
🔹 Почему Spark «не любит» Windows и как Docker это решает
🔹 Какую команду запустить (и почему только из PowerShell!)
🔹 Как проверить, что файлы синхронизируются между Windows и контейнером
🔹 Как прочитать CSV и сразу увидеть DataFrame
🔹 Как остановить контейнер

Курс — практический: от установки до real-case сценариев. Это видео — ваш надёжный старт.

▶️ Смотреть на YouTube: https: https://youtu.be/-MXRD6Pe90c
▶️ Или в VK: https://vkvideo.ru/video-231048746_456239039
📁 Подробное описание и код на GitHub: https://github.com/MaratNotes/marat_notes/tree/master/how_data_works-practice_cases/17_spark_run_docker

В следующем выпуске — разберём архитектуру Spark!

#КакРаботаютДанные #ApacheSpark
🔥9👍3🎉2
🧱 Собираю то, что точно не упадёт в 3 ночи

Коробка раскрыта. Пакетики разложены. Фундамент заложен.
2000 деталей, 2 большие коробки внутри, десятки пакетиков — всё чётко пронумеровано по шагам сборки.
Инструкция — как техническое задание на 200 страниц ☺️

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


📌 Если вы тоже любите собирать — вот мои фавориты среди китайских брендов (не копии Lego, а оригинальные конструкторы):

🔹 Pantasy — это про атмосферу.
Их наборы — будто из Lego Ideas:
Forest Cabin — идеальный уютный домик для зимнего вечера
Clock Tower Park — стилизация БигБена под стимпанк, очень фотогенично
The Little Prince Collection — мини-сцены из «Маленького принца» в защитных куполах, словно арт-объекты

🔹 CADA — серьёзный конкурент Lego Technic.
Здесь всё про инженерию и движение:
● Мощные гоночные машины (Порше, Феррари, Митсубиши)
● Сложные механизмы, шестерёнки, подвижные элементы
● Много отсылок к реальным авто, манге и спецтехнике — с узнаваемыми деталями и стилистикой

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

🗓А какие у вас планы на январские выходные вечера?
Что собираете — в прямом смысле (конструктор, бутерброд, плед) или в переносном (проект, мысли, мечты)? 😊

#ХоббиПрограммиста
👍61🔥1
Мир меняется быстрее, чем мы успеваем это осознать, а мама меня приятно удивила

Ещё пару лет назад LLM казались чем-то из будущего: «О, смотри, ИИ написал стих!» — и все в восторге.
А сегодня они уже тихо и незаметно встроились в повседневность, как Wi-Fi, смартфоны или доставка еды. Просто есть и мало у кого вызывают удивление, хотя это офигеть как удивительно.

Где я это вижу в быту?
🔷 Пишут тексты и письма вместе с нами: переводят, переформулируют, сокращают.
🔷 Подсказывают, что купить, как приготовить, куда сходить.
🔷 Анализируют скриншоты: чеки, составы товаров, инструкции: особенно когда лень вчитываться в мелкий шрифт 😅
🔷 Составляют списки дел, идеи для подарков, планы путешествий…

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

Почему? Потому что объём информации взорвался, а людям нужно не просто «найти», а понять, сравнить, переформулировать, структурировать. И здесь LLM оказывается незаменимым и сверхпродуктивным.

Но настоящее удивление для моего восприятия случилось на днях.
Разговариваю с мамой, ей 70, она пенсионер, до недавнего времени считала, как мне кажется, что «нейросеть это про хакеров».
А тут она сфоткала капли для глаз, загрузила в какое-то приложение с ИИ и показывает мне рекомендацию:
«Вот, нейросеть говорит, у этих подходящий состав и воздействие».

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

А у вас были такие моменты?  Какие неожиданные случаи использования LLM Вы замечали у себя, у родных, коллег или даже в быту? 
Может, бабушка генерит стихи для дачного конкурса, а дядя Ваня уточняет оптимальный состав смеси для укладки кирпича через чат? 😊 

📝 Делитесь в комментариях будет очень интересно собрать такую «галерею повседневного ИИ»!

PS Желаю всем классной пятницы 🌿
А график новых видео обещаю в субботу!
🔥6
Планы на оставшиеся дни января!

До конца месяца — плотно и по делу:

18 янв (вс) Как перевернуть связный список, не сломав себе голову
22 янв (чт) Архитектура Spark: почему это работает
25 янв (вс) Монотонный стек: элегантное решение для поиска “следующего большего элемента”
29 янв (чт) SparkSession vs SparkContext: что использовать и почему

Как и всегда с примерами на гитхаб, до встречи завтра!
👍10🔥1
Разворот списка

В этом выпуске:
🔹 Почему разворот — must-know даже в 2026 году
🔹 Как сделать это за O(n) времени и O(1) памяти (и почему это важно)
🔹 Пошаговая визуализация с тремя указателями: prev, curr, next_temp
🔹 Две типичные ошибки и как их не допустить

Потренируйся сам:
1. LeetCode 206 - базовая задача на разворот списка
2. LeetCode 25 - разворот узлов группами
3. LeetCode 234 - проверка, что список является полиндромом

📺 Смотреть во ВКонтакте: https://vkvideo.ru/video-231048746_456239040
🎥 Смотреть на YouTube: https://youtu.be/48_Dj1V8fiM
📂 Код и презентация на GitHub: https://github.com/MaratNotes/marat_notes/tree/master/grokking_algorithms/5_in_place_reversal

P.S. Следующий выпуск — про монотонный стек и задачи вроде «найти ближайший больший элемент справа».

#ГрокаемАлгособесы
👍9🔥1
Apache Spark. Архитектура

Узнаем как изнутри устроена система 😏

В этом видео:

Три роли: Driver, Executor, Cluster Manager
Партиции → параллелизм → производительность
DAG, Stage, Task — язык, на котором говорит Spark
Почему shuffle = дорого

Смотреть на YouTube: https://youtu.be/FP-61W1N6YY
Смотреть на VK: https://vkvideo.ru/video-231048746_456239041
Материалы: https://github.com/MaratNotes/marat_notes/tree/master/how_data_works-practice_cases

P.S. В следующей лекции про SparkContext и SparkSession, расчехляйте клавиатуру!

#КакРаботаютДанные #ApacheSpark
👍6🔥3
Программист образовательный

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

Решил глянуть, как его визуализируют другие. Набираю в поиске: «Что такое стек?»

Первые 10 картинок:

2 — про структуру данных
8 — про другой вид стека, популярный в совсем других контекстах😃

Выпал в осадок. Поржал. Не знал что такое стек:D
😁5🔥1