Марат и его записки программиста
287 subscribers
82 photos
1 video
63 links
Коротко о сложном: Инжиниринг данных, бэкенд, ИИ и личный опыт.
Автор: Марат, 15 лет в разработке
Vk: https://vkvideo.ru/@club231048746
GitHub: https://github.com/MaratNotes/marat_notes
Download Telegram
Салаты доедены, торт исчез, и даже от мандаринов осталась только кожурка — на дворе 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
Монотонный стек

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

🔹 Как работает убывающий стек
🔹 Пошаговая визуализация на [2, 1, 4, 3]
🔹 Готовый код на Python
🔹 Как адаптировать
🔹 Когда стоит использовать этот подход

Потренируйся сам:
1. LeetCode 496: база с маппингом
2. LeetCode 503: циклический массив
3. LeetCode 739: расстояние вместо значения

▶️ Смотреть на YouTube: https://youtu.be/rs5EYz_3bAg
▶️ Или во ВКонтакте: https://vkvideo.ru/video-231048746_456239042
📂 Код и презентация на GitHub: https://github.com/MaratNotes/marat_notes/tree/master/grokking_algorithms/6_mon_stack

P.S. В следующем выпуске Топ K элементов, как эффективно выбрать K лучших элементов из массива, не сортируя всё

#ГрокаемАлгособесы
👍3🔥2
Apache Spark. SparkSession и работа с партициями

В этом видео:

Почему дефолтные 200 партиций могут убить производительность в продакшене? Разбираем на живом демо: 8 партиций vs 2000.

Покажу, как неправильная конфигурация shuffle.partitions замедляет джобы, и почему адаптивный режим (AQE) может быть полезен.

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

P.S. В следующем выпуске: Почему формат хранения может быть важнее вашего кода (CSV vs Parquet).

#КакРаботаютДанные #ApacheSpark
👍9👌1
Фрейминг: как слова меняют решения (даже в коде)

Когда я учился в универе, у нас был странный предмет, что-то вроде «Культурологии» (точно уже не помню 😅).
Из всего курса в памяти осталась одна фраза преподавателя, которую она повторяла чуть ли не на каждой паре:

Обратимся к этимологии слова


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

Ниже опишу пример из книги Даниэля Канемана «Думай медленно. Решай быстро».

Представьте эпидемию, угрожающая 600 людям. Есть два плана борьбы с ней:

План А: «Спасёт ровно 200 человек».
План Б: «Есть 1/3 вероятности, что спасутся все 600, и 2/3, что никто не выживет».

Большинство выбирают План А, потому что он сформулирован через выигрыш.
Но если переформулировать те же варианты через потери:

План А: «400 человек умрут».
План Б: «Есть 1/3 вероятности, что никто не умрёт, и 2/3, что умрут все 600».

…люди внезапно начинают выбирать План Б, хотя это те же самые исходы, просто описанные иначе.

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

А теперь, как это проявляется в повседневной IT-жизни.

1. Code review
Сценарий: коллега прислал PR с функцией, которая обрабатывает список пользователей, но не учитывает случаи, когда список пустой, null или содержит некорректные объекты.

«Тут не хватает проверок, так нельзя»
Звучит как обвинение, это может вызвать защитную реакцию.

«Крутая реализация! Давай добавим пару проверок на пустой input, null и некорректные элементы»
Сначала признаётся ценность работы, а потом предлагается улучшение как естественное развитие идеи.

Фрейминг здесь: не «ты ошибся», а «давай улучшим».

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

«Вы тратите кучу времени на рутину, это же можно автоматизировать за день»
Звучит как упрёк: «Вы неэффективны, а я умный». Может вызвать раздражение.

«Заметил, что вы регулярно делаете ручные отчёты, важная работа! А что если мы освободим это время, написав простой скрипт, который будет собирать данные и отправлять отчёт автоматически. Проверим, стоит ли вкладываться?»

Автоматизация позиционируется как улучшение.

Фрейминг здесь: не «вы тратите время впустую», а «у вас есть шанс потратить это время на то, что важнее».

🔹 Фрейминг — это не манипуляция. Это осознанность в коммуникации.
Хороший инженер не только пишет надёжный код, но и умеет доносить ценность своей работы коллегам, менеджерам, пользователям.
Потому что в IT, как и в жизни, не всегда важно, что ты сказал, важно, как сумел донести важные смыслы

P.S. Я сам порой ловлю себя на «автоматических» фразах вроде «так нельзя», особенно в переписке, но теперь стараюсь остановиться и переформулировать.

Пишите в комментариях, ловили ли Вы себя на таких переформулировках?

#ОшибкиМышления
👍10
Кто я?: Как спрашивал Джеки Чан в боевике из 90-х

Привет! Меня зовут Марат и нет, я не мастер боевых искусств (хотя иногда очень хочется таковым быть).

Мне 36 лет, из них более 15 лет в разработке (в 2010 устроился на первую работу программистом-математиком в конструкторское бюро, а до этого ещё пару лет кодил за лапшу и еду одногруппникам 😄). Здесь делюсь знаниями и мыслями о разработке и жизни.

Что уже есть на канале:

🔹 #КакРаботаютДанные

Разбираю основы дата-инженерии без лишнего: как устроены Airflow и Spark, что такое ETL, батчи, стриминг и при чём тут Kafka.
В цикле уже больше 20 видео от практических кейсов до теории, без которой порой сложно разобраться в деталях.

🔹 #ГрокаемАлгособесы

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

Код и видео для этих рубрик:
YouTube: https://www.youtube.com/@marat_notes
VK Видео: https://vkvideo.ru/@club231048746
GitHub: github.com/MaratNotes/marat_notes

🔹 #ITИнсайты

Разбираю чужие доклады и статьи и вытаскиваю то, что меня зацепило:
Как превратить костыльный чат-бот с кучей Excel-файлов в модульную RAG-платформу
Как промт-инъекции превращают документы в троянских коней и проверка работы гипотезы
Почему в Яндексе кэшируют всё, что движется


🔹 #ОшибкиМышления

Под впечатлением от того, как наше мышление формирует реальность — разбираю когнитивные искажения, которые ловлю на себе в коде и жизни:
Эвристика доступности: после разбора префиксных сумм начал видеть их в каждой задаче LeetCode☺️
Эффект фрейминга: «Теряем 10% пользователей» звучит страшнее, чем «90% остаются» и это меняет приоритеты

Не для самобичевания, а чтобы замечать паттерны и принимать взвешенные решения.

🔹Моменты из жизни

Делюсь не только кодом, но и тем, что происходит между коммитами:
Как собрать 2000 деталей конструктора и отдохнуть в уютной зимней атмосфере
Как на вечерней пробежке оказался в эпизоде «Улиц разбитых фонарей» с оперативниками и ватными тампонами как вещественные доказательства
Почему усталость это не про компанию, а про то, как ты строишь свой день
Как при подготовке хакатона, понял что LLM меняет многое в его проведении

Здесь могу говорить о беге, конструкторах и рефлексии рабочих будней

🔹На горизонте
Завтра новое видео из серии #ГрокаемАлгособесы: «Топ K элементов», и в пятницу (6 февраля) вечером выложу планы по темам #КакРаботаютДанные и #ГрокаемАлгособесы

P.S. Больше 80 человек за сутки, спасибо, что пришли!❤️ Рад, что канал растёт.

Расскажите в комментах:
Что ждете от канала: как работают данные, алгособесы или прочитать истории из работы и жизни? Классно будет узнать, какие офигенные люди собрались у нас в чатике и Ваши устремления.
👍14🔥6👾1
Топ К элементов

В этом видео разбор распространённого алгоритмического паттерна Топ K элементов.

🔹 Как искать топ-10 самых частых запросов среди 10 млн записей за O(n log k), а не тратить время на полную сортировку O(n log n).
🔹 При чем тут «куча»?
🔹 О чем можно забыть при реализации на собесе.

Потренируйтесь сами:

1. LeetCode 215: базовая задача, найти один элемент k-й по величине без сортировки всего массива
2. LeetCode 973: найти K ближайших точек к началу координат
3. LeetCode 692: частые слова + лексикографический порядок при равных частотах

▶️ Смотреть на YouTube: https://youtu.be/jBzysToONTY
▶️ Или во ВКонтакте: https://vkvideo.ru/video-231048746_456239044
📂 Код и презентация на GitHub: Материалы по видео: https://github.com/MaratNotes/marat_notes/tree/master/grokking_algorithms/7_top_k

P.S. Так как публикация видео перенеслась на один день, то планы по графику видео выложу завтра

#ГрокаемАлгособесы
🔥71
📅 Планы по курсам

После вчерашнего видео про Топ K, хочу рассказать о планах по курсам

#КакРаботаютДанные

5. Parquet vs CSV: почему формат решает всё (12.02.2026)
6. Трансформации без шаффла (DataFrame Api)
7. Шаффл и косые данные (skew)
8. Оконные функции и тонкости их использования
9. Отладка через Spark UI,
10. Инкрементальная обработка с Delta Lake

По алгоритмическим паттернам ожидается большой и глубокий анализ следующих тем:

#ГрокаемАлгособесы

8. Слияние интервалов (17.02.2026)
9. Бинарный поиск с вариациями
10. Обход бинарного дерева
11. Поиск в глубину
12. Поиск в ширину
13. Обход матриц
14. Backtracking
15. Topological Sort
16. Динамическое программирование
17. НОД/НОК


Вопрос к вам:
Как Вам набор тем? Что-то еще есть что хотелось бы раскрыть?
Голосуйте в комментах 👇

P.S. Добавил картинку как вариацию Левиафана из «Моби Дика» в качестве аллегории, что знание как белый кит, которое может стать недостижимым идеалом.
Мы не достигаем полного понимания, собираем кусочки, делаем шаги, ошибаемся и находим красивые моменты по пути.
Поэтому не забывайте про хобби, отдых и всё то, что наполняет вас вне работы.
Это часть процесса и то что делает нас самими собой 💙
🔥147
Parquet vs CSV: почему формат решает всё

Сегодня рассказываю и показываю, как колоночное хранение (Parquet) ускоряет аналитику до 100+ раз по сравнению с классическим CSV.

В чём разница?
CSV хранит данные по строкам: чтобы взять одну колонку, парсим всю строку целиком
Parquet хранит по колонкам: читаем только нужный блок, остальное физически пропускаем. И конечно, не забываем про структуру и оптимальное хранение.

Когда что выбрать:
• Разовая выгрузка, отладка, небольшие данные: CSV
• Дашборды, регулярная аналитика, фильтрация: Parquet

Помни, формат задаёт потолок эффективности. Самый умный алгоритм не спасёт, если данные лежат в неподходящем формате.

📹 Смотреть:
• YouTube: https://youtu.be/zaKU0Shx9dU
• VK: https://vkvideo.ru/video-231048746_456239045

Код + презентация:
https://github.com/MaratNotes/marat_notes/tree/master/how_data_works-practice_cases/20_parquet

В следующей лекции: Работа с данными через DataFrame API

P.S. Пишите свои истории об использовании CSV в расчетах и аналитике в различных отраслях и сферах, о своем опыте рассказал в начале видео☺️

#КакРаботаютДанные #ApacheSpark
👍103🔥2
Зачем сравнивать единицу с единицей?

На днях коллега прислал запрос в переписке для забора данных при проверке тестового расчета. Код примерно такой (был прислан в одну строку):

SELECT * FROM example_table WHERE 1=1  AND column1 = 'something'  AND column2 = 'somethingelse'


Вначале удивился и не понял: зачем конструкция WHERE 1=1? Немного подумав, понял что это лайфхак для отладки запросов.

В чем проблема без этого приема

Обычно запрос имеет такой вид:

SELECT 
*
FROM example_table
WHERE column1 = 'something'
AND column2 = 'somethingelse'


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

SELECT 
*
FROM example_table
WHERE --column1 = 'something'
AND column2 = 'somethingelse'


Ошибка: Остался лишний AND, запрос некорректный. Придется вручную менять AND на WHERE и комментировать всю первую строку с первым условием , потом опять возвращать, если добавим новые условия.

Как решает проблему WHERE 1=1?

C использованием всегда истинного WHERE 1=1 такая проблема снимается. Можно комментировать условия не задумываясь о корректности работы скрипта:

SELECT 
*
FROM example_table
WHERE 1=1
--column1 = 'something'
AND column2 = 'somethingelse'


Работает! Благодаря тому, что WHERE 1=1 всегда истинно, мы можем не думать про оформление комментариев и сдвиги.

P.S. Пока набирал этот пример, заметил что в русской раскладке первые три буквы в WHERE - ЦРУ (Ц Р У). Буду считать, что это не просто совпадение😁

#dev_лайфхаки
🔥13👍6
Бег, зима за окном и мимолетный испуг

Давно не писал ни о чем, кроме как о программировании и смежных темах! Вы наверное знаете, что я большой любитель бега и регулярно занимаюсь. У меня даже накопилось много памятных историй на эту тему (в посте есть перечисление).

Так как сейчас зима, а вчера было -20°C, на улицу тренироваться я не рискнул. В этот период часто занимаюсь на домашнем тренажере: полчаса с утра, чтобы проснуться, покушать и пойти работать.

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

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

После посмотрел инструкцию: error 4. Проблема в электронике. Скорее всего, был скачок напряжения, и плату выбило ⚡️.

И теперь, видимо, предстоит квест под названием "почини беговую дорожку", потому что она больше не включается :D Если у кого есть опыт ремонта или советы по диагностике, буду благодарен за подсказки в комментариях! Хотя понимаю, что это маловероятно))

Как говорилось в одной передаче 90-х: Берегите себя.

Всем удачи и безопасных тренировок! 🏃‍♂️❄️

#ХоббиПрограммиста
😱8
Всем привет! У меня две новости

1️⃣ Приветствую всех на Пикабу!
Опубликовал первый пост про рубрику #ГрокаемАлгособесы
Планирую там транслировать посты из Телеграма, так что если Вы там есть буду рад поддержке!

https://pikabu.ru/story/kak_nachat_reshat_a_ne_zubrit_leetcode_13716205

2️⃣ Обновление по лекции про Алгособесы
Обещал выпустить материал 17 февраля, но понял, что не готов вести две сложные темы параллельно.
Сейчас в процессе завершения цикла про Apache Spark. Хочу закрыть его качественно. Распыляться на два серьезных направления сразу, значит рисковать качеством обоих.

Поэтому план такой:
• Завершаю цикл про Spark (в планах 5 видео).
• После этого с новыми силами продолжаю серию "Грокаем Алгособесы"

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

Upd На Пикабу публикацию забанили, буду туда выкладывать посты без ссылок🤗
🔥145