uk
Feedback
Merion Academy

Merion Academy

Відкрити в Telegram

Самое важное про IT на доступном языке. Сотрудничество: @olegpohl Служба поддержки: https://t.me/merion_academy_bot

Показати більше
8 714
Підписники
+1024 години
+397 днів
+18530 день
Залучення підписників
червень '26
червень '26
+41
в 0 каналах
травень '26
+265
в 0 каналах
Get PRO
квітень '26
+274
в 0 каналах
Get PRO
березень '26
+184
в 0 каналах
Get PRO
лютий '26
+255
в 0 каналах
Get PRO
січень '26
+206
в 0 каналах
Get PRO
грудень '25
+238
в 0 каналах
Get PRO
листопад '25
+482
в 5 каналах
Get PRO
жовтень '25
+252
в 0 каналах
Get PRO
вересень '25
+173
в 0 каналах
Get PRO
серпень '25
+217
в 0 каналах
Get PRO
липень '25
+242
в 0 каналах
Get PRO
червень '25
+246
в 0 каналах
Get PRO
травень '25
+222
в 0 каналах
Get PRO
квітень '25
+248
в 1 каналах
Get PRO
березень '25
+250
в 1 каналах
Get PRO
лютий '25
+237
в 0 каналах
Get PRO
січень '25
+271
в 0 каналах
Get PRO
грудень '24
+159
в 0 каналах
Get PRO
листопад '24
+310
в 0 каналах
Get PRO
жовтень '24
+270
в 0 каналах
Get PRO
вересень '24
+407
в 0 каналах
Get PRO
серпень '24
+335
в 0 каналах
Get PRO
липень '24
+346
в 0 каналах
Get PRO
червень '24
+270
в 0 каналах
Get PRO
травень '24
+255
в 0 каналах
Get PRO
квітень '24
+337
в 0 каналах
Get PRO
березень '24
+240
в 0 каналах
Get PRO
лютий '24
+346
в 3 каналах
Get PRO
січень '24
+819
в 22 каналах
Get PRO
грудень '23
+180
в 0 каналах
Get PRO
листопад '23
+313
в 0 каналах
Get PRO
жовтень '23
+238
в 0 каналах
Get PRO
вересень '23
+391
в 0 каналах
Get PRO
серпень '23
+499
в 0 каналах
Get PRO
липень '23
+196
в 0 каналах
Get PRO
червень '23
+133
в 0 каналах
Get PRO
травень '23
+65
в 0 каналах
Get PRO
квітень '23
+40
в 0 каналах
Get PRO
березень '23
+51
в 0 каналах
Get PRO
лютий '23
+118
в 0 каналах
Get PRO
січень '23
+37
в 0 каналах
Get PRO
грудень '22
+37
в 0 каналах
Get PRO
листопад '22
+45
в 0 каналах
Get PRO
жовтень '22
+55
в 0 каналах
Get PRO
вересень '22
+56
в 0 каналах
Get PRO
серпень '22
+51
в 0 каналах
Get PRO
липень '22
+70
в 0 каналах
Get PRO
червень '22
+67
в 0 каналах
Get PRO
травень '22
+46
в 0 каналах
Get PRO
квітень '22
+46
в 0 каналах
Get PRO
березень '22
+61
в 0 каналах
Get PRO
лютий '22
+28
в 0 каналах
Get PRO
січень '22
+32
в 0 каналах
Get PRO
грудень '21
+34
в 0 каналах
Get PRO
листопад '21
+43
в 0 каналах
Get PRO
жовтень '21
+38
в 0 каналах
Get PRO
вересень '21
+40
в 0 каналах
Get PRO
серпень '21
+45
в 0 каналах
Get PRO
липень '21
+39
в 0 каналах
Get PRO
червень '21
+25
в 0 каналах
Get PRO
травень '21
+1 079
в 0 каналах
Дата
Залучення підписників
Згадування
Канали
04 червня+12
03 червня+10
02 червня+12
01 червня+7
Дописи каналу
🐌 Объясняем за 30 секунд: Контейнер = коробка с приложением и всем, что ему нужно (либы, версии, конфиги). Запускается одина
🐌 Объясняем за 30 секунд: Контейнер = коробка с приложением и всем, что ему нужно (либы, версии, конфиги). Запускается одинаково везде - у тебя на ноуте, у коллеги на маке, в проде на Linux. Зачем оно тебе: • Конец историям «у меня же работает» • Развернуть сервис - это docker run, а не пляски с зависимостями • CI/CD, K8s, микросервисы - все на этом стоит Если ты в этом не шаришь, приходи учиться 📎

2
Хей, ребят! 👋 Новая неделя - новое видео Сурена Хореняна: зависимости через pip или через uv? Управляйте зависимостями проек
Хей, ребят! 👋 Новая неделя - новое видео Сурена Хореняна: зависимости через pip или через uv? Управляйте зависимостями проекта через uv, откажитесь от простого pip, так как он требует больше действий и менее гибок. Изучайте, сохраняйте и не забудьте ознакомиться с новыми вводными уроками курса Python с нуля 😉
1 065
3
Коммит потерял? Локальные правки горят? Прод сломался от твоей ветки? 😢 Изучи внимательно и сохранить не забудь: git reflog
Коммит потерял? Локальные правки горят? Прод сломался от твоей ветки? 😢 Изучи внимательно и сохранить не забудь: git reflog - покажет все коммиты, даже «удаленные». Восстановить можно почти все. git stash - спрятать незакоммиченные правки, чтобы переключить ветку. git restore -s - откатить отдельный файл к нужному коммиту. git cherry-pick - забрать один коммит из чужой ветки, не мержа все подряд. git bisect - бинпоиск по коммитам, чтобы найти, где именно ты все сломал. Не знаешь чем заняться на выходных - загляни на бесплатные вводные уроки 🎵
1 635
4
Все знают про Docker, Kubernetes и Terraform. А эти 5 неочевидных инструментов упускают, и зря, потому что они сильно упрощаю
Все знают про Docker, Kubernetes и Terraform. А эти 5 неочевидных инструментов упускают, и зря, потому что они сильно упрощают жизнь 🙈 1) k9s / https://github.com/derailed/k9s Вот представь, сидишь и вбиваешь kubectl get pods, потом kubectl describe pod, потом kubectl logs -f, потом снова kubectl get pods, чтобы посмотреть, как там твой деплой. И так целый день. Или не надо представлять и уже знакомо? Встречай k9s - это терминальный UI для кубера, где все поды, сервисы, деплойменты, логи и шеллы доступны в две клавиши. После недели использования возвращаться к голому kubectl это как пересесть с автомата на коробку (в которой только первая передача). 2) dive / https://github.com/wagoodman/dive Собрал образ, а он внезапно весит 1.2 ГБ. Открываешь Dockerfile, смотришь, вроде ничего лишнего. Почему гигабайт-то? А никто не знает, потому что Docker не показывает, что реально лежит внутри его слоев. dive показывает каждый слой, что в нем поменялось и сколько места занимает каждый файл. За полчаса с ним можно срезать образ в 2–3 раза, просто увидев, что apt не почистил кеш или что node_modules протекли в финальный слой. 3) direnv / https://github.com/direnv/direnv Бывает заходишь в проект, делаешь source .env, потом идешь в соседний и забываешь, что в шелле все еще переменные от предыдущего. А через два часа ловишь, почему миграция накатилась на прод вместо стейджа. direnv сам подгружает переменные при заходе в директорию и убирает их при выходе. Один раз настроил .envrc и больше об этом не задумываешься. Кстати, и новичка в команду заводить проще: cd в папку, и окружение уже готово. 4) act / https://github.com/nektos/act Или такая ситуация: написал workflow для GitHub Actions, пушнул, все упало. Поправил, пушнул, опять упало. Через 20 коммитов с названием "fix ci" наконец заработало, но история выглядит так, будто ты учился программировать прямо в main. act запускает GitHub Actions локально в Docker. Поправил yaml - прогнал у себя - увидел ошибку - поправил снова. Без лишнего фарша в истории и без необходимости объяснять тимлиду, почему ты заспамил репу. 5) sops / https://github.com/getsops/sops Секреты в git коммитить нельзя - это все знают. Но как тогда хранить пароли от баз и API-ключи рядом с кодом, чтобы не таскасть их через тысячу чатиков и не разворачивать ради двух токенов полноценный Vault? sops шифрует только значения в YAML/JSON/env, оставляя структуру читаемой. Diff в пулл-реквесте остается осмысленным, ключи лежат в KMS/age/PGP, а .enc.yaml спокойно живет в репозитории. Особенно заходит в небольших командах, где Vault - это как из пушки по воробьям. Не забудь сохранить, чтобы упростить себе жизнь 😏 И заглядывай на бесплатные вводные уроки с Филиппом на курсе DevOps-инженер с нуля.
1 818
5
Чек-лист: проверь, готов ли ты к собесу на junior DevOps? Сохрани и пройдись по списку перед подачей резюме. Если хотя бы 2 п
Чек-лист: проверь, готов ли ты к собесу на junior DevOps? Сохрани и пройдись по списку перед подачей резюме. Если хотя бы 2 пункта вызывают «эээ…» - собес ты завалишь 🪖 Минимум, который спрашивают почти везде: • Linux (без него никуда) • Сети - что происходит, когда ты вбиваешь URL в браузер • Git - не только pull/push, а еще rebase и решение конфликтов • Docker - образ, контейнер, том, сеть • CI/CD - собрал ли ты свой пайплайн хоть раз • YAML - да, без шуток, у всех болит Если в этом что-то плаваешь, приходи закрыть пробелы 😏 ➡️ Все курсы Merion Academy
1 906
6
Ловите легкую понедельничную задачу, знатоки 🤵 Перенесемся в середину 90-х. На один крупный завод, где производство не останавливается ни на минуту. По цеху разбросаны терминалы, подключенные к мейнфрейму - рабочие вбивают данные о деталях, движении запчастей, графиках. В один прекрасный день сисадмин получает звонок с цеха. Голос в трубке спокойный, но уверенный: Я не могу войти в систему, когда стою. Сисадмин проверяет питание, экран, пароль. Все ок. Рабочий повторяет: Нет, вы не понимаете. Когда я сижу, я захожу. Все работает. А когда встаю - не могу. Сисадмин пытается объяснить, что между стулом и клавиатурой нет никакой связи. Но рабочий стоит на своем. Тогда админ сдается и идет в цех. Он садится, вводит пароль рабочего - все работает. Админ: Видите? Рабочий: А теперь выйдите, встаньте и попробуйте еще раз. Админ выходит из системы, встает, вводит тот же пароль. Выдает ошибку. Вводит еще раз - снова ошибка. Он в недоумении. Как и пол цеха рабочих, стопившихся за его спиной 😄 Вопрос: что оказалось причиной? 😄 — на терминале стоял датчик движения, который блокировал ввод, если пользователь не сидит 🔥 — кто-то переставил местами две клавиши на клавиатуре, и сидя люди печатали вслепую, а стоя смотрели на руки 👀— в полу была спрятана магнитная лента, которая стирала пароль при попытке встать Ответ будет в комментах вечером 😉
1 974
7
Хэй, ребят! Такие нарезки из наших видосов выходят еще в TikTok! 🙈 Если вам удобно смотреть их там, то подписывайтесь! ➡️ Мы
Хэй, ребят! Такие нарезки из наших видосов выходят еще в TikTok! 🙈 Если вам удобно смотреть их там, то подписывайтесь! ➡️ Мы в TikTok
2 005
8
Новый видос от Сурена на тему: SQL запрос к sqlite: пример с инъекцией и параметрами ☕️ Важно правильно формировать запросы к
Новый видос от Сурена на тему: SQL запрос к sqlite: пример с инъекцией и параметрами ☕️ Важно правильно формировать запросы к базе данных: прямое форматирование SQL допускает инъекцию и может привести к потере данных или утечке. Поэтому необходимо передавать аргументы в запрос отдельно от SQL строки. Сурен Хоренян - автор курса Python-программист с нуля, на котором, кстати, мы тоже обновили бесплатные уроки! Добавили интерпретатор кода, ничего устанавливать не нужно, можно сразу писать код! ➡️ Залетай потестить
2 117
9
Как гений и параноик, которого боятся приглашать на конференции, создал движение свободного ПО, написал Emacs, придумал лицензию GPL и поссорился с половиной IT-мира? 🤔 Да да, мы на намекали в прошлом посте. Это Ричард Столлман - человек, без которого не было бы ни Linux, ни Android, ни GitHub в том виде, в котором мы его знаем. В новом видео прошлись по всей истории: • Почему его считают безумцем, но его идеи о приватности уже не кажутся такими странными • Как история с закрытым драйвером принтера привела к созданию GNU и «копилефту» • Почему он носит с собой плюшевого гну и отказывается от смартфонов • За что его ненавидят корпорации и почему без него не было бы опенсорса Как всегда - без занудства, с мемами и историческими перлами 😄 Где смотреть: 😁 YouTube 😁 VK
2 114
10
Знакомьтесь: основатель движения за свободное ПО, человек, подаривший нам GNU, GPL и концепцию «copyleft». Но что еще скрывае
Знакомьтесь: основатель движения за свободное ПО, человек, подаривший нам GNU, GPL и концепцию «copyleft». Но что еще скрывает этот бородатый гений?😢 10 фактов о Ричарде Столлмане, которые тебя шокируют: 1. Полиглот со своей методикой RMS знает английский, французский, испанский и даже индонезийский. Его метод изучения: — учебники + произношение; — детские книжки → подростковые; — письма на новом языке; — и главное: не говорить, пока не освоишь все нужные конструкции. Никакого «моя твоя понимать»! 2. Emacs - дом, работа и храм. Любимое приложение - GNU Emacs. Там он читает почту, редактирует сайт и проводит максимум времени. Консоль - в приоритете, но GUI не демонизирует. 3. Lisp навсегда. А вот Clojure и Python, которые ему называли «похожими на Lisp», не зашли. Фундаментальной схожести нет, считает RMS. 4. C++ - мимо. «Уродливый язык» - и тут Столлмана поддерживает сам Линус Торвальдс (редкий момент единства). 5. Java зашла, C - база. Писал на Java, и даже понравилось. C знает отлично. А вот новые языки после нулевых прошли мимо - перестал активно программировать, ушел в общественную миссию. 6. Идеальный дистрибутив = без проприетарных компонентов. Технические характеристики - не главное. Главное - чистота лицензий. 7. Написал песню. Музыка народная, слова свои. О будущем, где свободное ПО победило «грязные» лицензии. 8. Анекдот из 90-х. Исполнил песню при тусовке. Кто-то крикнул: «Классно, спой это Ричарду Столлману!» — Так я и есть Ричард Столлман 😄 9. Написал рассказ «Право прочесть» по-русски. Рассказ-антиутопия о мире, где чтение книг - преступление. Написан как учебник истории будущего. Обязательно найдите и прочитайте. 10. Не программирует, но меняет мир. С 2000-х почти не пишет код. Но его идеи, лицензии и принципы работают до сих пор. Наверное, именно так выглядит человек со строчкой «многозадачный» в резюме 😄
1 855
11
Как думаете, что будет дальше? 🤭 🤝 - Серегу примут на работу сразу сеньором 🔥 - Серега останется без ответа и будет искать
Как думаете, что будет дальше? 🤭 🤝 - Серегу примут на работу сразу сеньором 🔥 - Серега останется без ответа и будет искать другие пути устроиться 😄 - выяснится, что Олег левая рука СЕО и не может помочь
2 058
12
Да, зеленые, выходные можно провести по-разному: кто-то путешествует, кто-то учится 🤵 На всякий случай, напоминаем, что доба
Да, зеленые, выходные можно провести по-разному: кто-то путешествует, кто-то учится 🤵 На всякий случай, напоминаем, что добавили в бесплатный модуль курса Linux новые интерактивные уроки: эмулятор терминала и процесса установки Linux на виртуальную машину. Найти можно внутри нашей платформы, если уже зарегистрирован. Если еще нет ➡️ держи ссылочку!
2 312
13
Все знают про axios, lodash и dayjs. Они практически во всех проектах есть и ты их так или иначе видел. А вот эти пять штук о
Все знают про axios, lodash и dayjs. Они практически во всех проектах есть и ты их так или иначе видел. А вот эти пять штук обычно проходят мимо, хотя могут пригодиться ❤️ 1. ts-pattern / https://github.com/gvergnaud/ts-pattern Вот представь, пишешь свитчи на кучу кейсов, через месяц добавляешь новый кейс, а где-то в другом файле про него забываешь. А потом баг ловят пользователи. Или не надо представлять и уже знакомо? ts-pattern дает записать всю эту логику одним красивым выражением, а TypeScript сам напомнить про твою криворукость, если ты не обработал какой-то вариант. Особенно кайфово с дискриминированными юнионами по типу статусов заказа или типов событий. 2. defu / https://github.com/unjs/defu Знаешь, как Object.assign и спред работают с вложенными объектами? Никак. Если у тебя есть { ui: { theme: 'dark', size: 14 } }, а кто-то из коллег накосячил и прилетает { ui: { theme: 'light' } }, то после слияния твой size просто испарится, потому что весь ui заменится целиком. defu сливает рекурсивно по всем уровням, как ты бы и сам хотел. Незаменимая штука, если пишешь библиотеку, SDK или любой инструмент с настройками. 3. execa / https://github.com/sindresorhus/execa Запускал с помощью ноды git, ffmpeg или любой shell-скрипт? Тогда знаешь, что нативный дочерний процесс – это боль, страдания и колбэки из 2010 года. execa оборачивает все в нормальный async/await, по-человечески ловит ошибки и даёт удобные пайпы между процессами. Используется внутри кучи популярных CLI-тулзов. Следоватлельно, это говорит о многом. 4. type-fest / https://github.com/sindresorhus/type-fest Готовая коллекция TypeScript-типов на любой случай жизни. Нужен Partial по всем вложенным уровням? Есть. Сделать массив непустым? Есть. Преобразовать snake_case в camelCase прямо на уровне типов? Тоже. Короче, прежде чем в десятый раз писать свой DeepPartial, загляни сюда. Скорее всего его уже написал автор либы за тебя. 5. emittery / https://github.com/sindresorhus/emittery Нужна шина событий внутри приложения, где один модуль кинул, другой подписался? Тащить ради этого Redux или нативный EventEmitter из ноды – это как везти хлеб на дачу грузовиком. emittery решает задачу с минимумом кода и при этом умеет полезные штуки. Например, типизирует события через TypeScript и нормально работает с async-обработчиками, чего стандартный EventEmitter не умеет в принципе. От того же автора, что и type-fest, кстати. Никита, кстати еще и сценарист наших роликов, которые вы так любите 🙈
2 348
14
Что скрывает история главной ОС планеты? 🎰 Android начинался не как система для телефонов, а как операционка для фотокамер. И только случайность и 50 миллионов долларов от Google превратили его в то, что у тебя в кармане. В новом видео прошлись по всей истории Android: от провального прототипа до миллиардов устройств. Смотри, чтобы узнать: • Почему выход iPhone заставил Android переписывать все с нуля за несколько месяцев • Как Java чуть не уничтожила платформу и кто пришел на смену • Из каких слоев состоит любая Android-система от ядра до интерфейса • Почему разработчики переходят на Kotlin и при чем тут Jetpack Compose Как всегда - без занудства, с мемами и историческими перлами 😄 Где смотреть: 😁 YouTube 😁 VK
2 605
15
Знатоки, с пятничкой! Время разобрать еще один абсурдный случай 😢 Как-то разработчику понадобилось добавить новую фичу. Он полез в модуль кода одного старого приложения, который отвечал за даты, и увидел там вот такой шедевр: int day = Convert.ToInt16(DateTime.Now.ToString("dd")); switch(day) { case 1: num = "st"; break; case 21: num = "st"; break; case 31: num = "st"; break; case 2: num = "nd"; break; case 22: num = "nd"; break; case 3: num = "rd"; break; case 33: num = "rd"; break; default: num = "th"; break; } Вопрос: что здесь не так? 👀 — окончания перепутаны местами: "st" для 2, "nd" для 1 😄 — прошлый программист считал что в месяце 33 дня 🤝 — забыли про 0 и отрицательные числа
2 822
16
Выкатили новый курс, пока все кайфовали на шашлыках 😱 Даааааа, это GitLab CI/CD - без него DevOps-инженеру сейчас никуда. На
Выкатили новый курс, пока все кайфовали на шашлыках 😱 Даааааа, это GitLab CI/CD - без него DevOps-инженеру сейчас никуда. На курсе освоишь полный цикл непрерывной интеграции и доставки с GitLab. Научишься строить пайплайны, настраивать SAST, управлять реестрами пакетов и контейнеров, автоматизировать тестирование и деплой. ➡️ Начни с бесплатного вводного модуля, там тебя ждет: 1️⃣Знакомство с автором и обзор темы: зачем и кому нужен CI/CD 2️⃣Практическая задача: развернешь GitLab через Docker Compose и сразу увидишь, как работает пайплайн 3️⃣Тест: проверишь себя и закрепишь знания 4️⃣Несколько уроков курса английского для IT 5️⃣Вводная лекция из интенсива по карьере Шашлычный промик уже сгорел, но при регистрации на вводный модуль получишь скидку 45% на полный курс 💗 📎 Регистрируйся и погнали учиться!
2 759
17
Как думаешь, что может обрушить интернет по всему миру быстрее, чем ты успеешь перезагрузить роутер? ❓ Оказывается, не хакерская армия и не правительство. А программа размером меньше этого абзаца. Студенческие эксперименты, забытые обновления и вирусы, которые работали годами незаметно. Смотри наш новый видос, чтобы узнать: • Как одна строчка кода случайно положила десятую часть интернета • Почему авторы первого массового вируса оставили в нем свой телефон • Как вирусы перешли от приколов к реальным деньгам и кибероружию • Кто на самом деле отключал центрифуги на ядерных объектах (спойлер: не хакеры в подвале) Как всегда - без занудства, с мемами и историческими перлами 🙈 Где смотреть: 😁 YouTube 😁 VK
2 937
18
Черновик протокола IPv8 - мем или будущее интернета? 😱 Сейчас интернет работает на IPv4. Адреса закончились еще в 2011 году. Провайдеры используют NAT и CGNAT - все летает, но с некоторыми ограничениями. 25 лет назад придумали IPv6. Миллиарды адресов, все красиво. И что? До сих пор нормально не взлетел. Никто не хочет переходить. И тут появляется IPv8 🥔 В чем абсурдность: IPv8 - это не просто новый протокол. Это ответ на проблему, которую уже решили 25 лет назад (IPv6), но никто не захотел переходить. А теперь предлагают сделать еще один новый протокол, который снова никто не захочет внедрять. Это как переустанавливать Windows, потому что завис браузер 😄 Пока это просто черновик в IETF. Шансов, что его примут, как у снеговика в пустыне. Но само появление - уже мем. Как думаешь, это гениально или просто очень смешно? Ссылка на источник
2 722
19
Даже Никитична уже стартанула 😄 Последнее напоминание: Промик MAYMERION на скидки до 70% сгорит сегодня в 23:59! ➡️ Заходи н
Даже Никитична уже стартанула 😄 Последнее напоминание: Промик MAYMERION на скидки до 70% сгорит сегодня в 23:59! ➡️ Заходи на сайт, выбирай курс, вводи промо и погнали учиться!
2 998
20
Если ты до сих пор откликаешься на вакансии «вслепую», то рискуешь застрять в бесконечном поиске работы 🪖 Процесс найма усло
Если ты до сих пор откликаешься на вакансии «вслепую», то рискуешь застрять в бесконечном поиске работы 🪖 Процесс найма усложняется с каждым годом, но есть решение, которое поможет дойти до оффера, а не закопаться по пути в отказах. Сегодня поделимся этим полезным инструментом (пример см. на скриншоте). Для чего он нужен: 🔴 Хранение данных о движении откликов. Сохраняем то, что часто теряется (контакт рекрутера, ссылка на вакансию, что за компания, когда обещали вернуться с фидбеком и прочее). 🔴Оценка эффективности поиска. Если ты, например, сделал больше 50 откликов, но дальше дело не пошло - от части причина в молчании рынка, но также проблема может быть в твоем резюме. А если тебя активно зовут на HR интервью, но после него отказывают, стоит поработать над самопрезентацией и ответами на софтовые вопросы. И так далее. Если ты в поиске хорошего оффера, то начинать нужно не с работных сайтов, а с: 1. Обновления резюме и составления стратегии поиска. 2. Общения с уже существующими контактами - спросить о внутренних вакансиях и реферальных программах. 3. Пересмотра старых диалогов с рекрутерами. 4. Поиска прямых контактов HR в Сетке. Понимаем, что поиск работы сейчас такой же неприятный, как снег в апреле, когда ты уже мысленно на шашлах в майке 😢 Поэтому включили в тарифы с наставником карьерные консультации. Там и резюме поможем «причесать», и грамотную стратегию поиска составить с поддержкой на каждом этапе. До завтра, кстати, на этот тариф действует скидка 50%. ➡️ Заходи на сайт, выбирай свой курс, вводи промокод MAYMERION и погнали учиться!
2 915