fa
Feedback
Павел Сорокин | Java

Павел Сорокин | Java

رفتن به کانال در Telegram

О том как стать и быть Java разработчиком Обучение по Java до оффера: https://sorokin.school По рекламе и сотрудничеству: @pave1ss или sorokincompany@rambler.ru

نمایش بیشتر
8 284
مشترکین
+124 ساعت
+537 روز
+35130 روز
آرشیو پست ها
Транзакции: почему твои деньги не исчезают в воздухе ❗Warning - пост для новичков, сеньорам просьба отойти от экранов Начнем
Транзакции: почему твои деньги не исчезают в воздухе ❗Warning - пост для новичков, сеньорам просьба отойти от экранов Начнем с основ, что такое транзакция
Это когда мы берем несколько запросов к БД и упаковываем их в одну атомарную пачку
То есть работает принцип: либо выполнилось всё, либо не выполнилось ничего Например, переводим деньги с одной карты на другую:
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
В теории просто: с одного счета списали, на другой зачислили НО если первый запрос прошел, а второй упал? Интернет отвалился и база сказала «not today» или кто-то криво передал id счета И теперь деньги списались, но никуда не пришли, пум-пум 🙃 Вот чтобы таких приколов не было, операции объединяют в транзакцию. Если всё прошло ок - делаем commit. Если что-то пошло не так - rollback, и база возвращается в состояние «как было до всей этой движухи» Транзакция защищает нас от промежуточного кривого состояния: никаких “почти перевели деньги”, “почти создали заказ” или “почти обновили пользователя” Либо операция завершилась нормально, либо откатилась полностью С базой мы работаем через connection - это условный канал, по которой летят запросы Приложение берет соединение из connection pool, выполняет внутри него запросы, закрывает транзакцию и возвращает соединение обратно в пул
BEGIN;

UPDATE users SET name = 'Ivan' WHERE id = 1;

COMMIT;
или если поняли, что натворили херню:
ROLLBACK;
❗️Важный момент: транзакцию надо закрывать всегда 🤢 А зачем тогда ROLLBACK, если без COMMIT ничего не сохранится? Потому что ROLLBACK - это не просто «не сохранять изменения», это команда базе:
«Заканчиваем, освобождаем ресурсы»
Пока транзакция открыта, база может держать блокировки, snapshot данных и само соединение в занятом состоянии. В PostgreSQL это состояние часто выглядит как: idle in transaction ❗️ Connection ≠ Transaction Connection - это соединение с базой. Условный канал, по которому приложение отправляет SQL-запросы Transaction - это логическая пачка операций внутри этого соединения. В одном connection можно выполнить много транзакций подряд:
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
ROLLBACK;

BEGIN;
UPDATE users SET name = 'Ivan' WHERE id = 1;
COMMIT;

BEGIN;
INSERT INTO orders(user_id, status) VALUES (1, 'CREATED');
COMMIT;
То есть connection - это не одноразовая штука под одну транзакцию. Приложение берёт connection из пула (например, HikariCP), выполняет транзакцию и возвращает обратно: • взяли connection • сделали запросы • COMMIT / ROLLBACK • вернули в пул Количество соединений у нас ограниченно (например, 10), поэтому они переиспользуются. Например, у HikariCP по умолчанию maximumPoolSize = 10. То есть приложение не будет бесконечно открывать соединения к базе. Если все 10 заняты, новый поток будет ждать свободное соединение У PostgreSQL тоже есть лимит на количество одновременных подключений. По умолчанию это обычно около 100, но в реальных проектах его часто настраивают: 100, 200, 300 - зависит от сервера. Но тут важный момент: больше соединений не всегда лучше. Если ты просто выкрутишь pool size в 200, база не станет магически быстрее. Иногда она станет медленнее, потому что каждое соединение ест память, ресурсы и создаёт конкуренцию за CPU. 📝 Резюмируя: Транзакции нужны, чтобы база не оставалась в состоянии «деньги списали, заказ не создали, статус пользователя завис в воздухе» COMMIT и ROLLBACK - это нормальное завершение операции. Transaction - это пачка SQL-операций. Connection - это канал к базе, через который эти операции выполняются. Один connection может пережить много транзакций, потому что он переиспользуется через connection pool

Отлично знаешь теорию? А с ЭТИМ справишься? Вот как ты обычно решаешь алго-задачи? Смотришь на чужой код, киваешь головой под
Отлично знаешь теорию? А с ЭТИМ справишься? Вот как ты обычно решаешь алго-задачи? Смотришь на чужой код, киваешь головой под разборы и тебе этот мир становится абсолютно понятным, потому что всё просто и логично Но стоит кому-то попросить объяснить просмотренное решение - ты понимаешь, что ничего внятного сказать не можешь, итак же всё понятно Через какое-то время ты сам пытаешься написать код и внезапно ловишь себя на мысли, что вообще не уверен даже в базовых вещах А ведь это всё дома, в спокойной обстановке, с кофеечком. Но что тогда будет на собесе, когда помимо давления, ты еще и смотришь постоянно на время? Сегодня вместе с Java-разработчицей - Яной разберем несколько задач с реальных лайвкодинг собесов, где я дам подробные комментарии по ходу решения, а бонусом для всех посмотревших будет полный разбор всех задач из видео 🔥 Поэтому залетай по ссылке, смотри и попробуй решить быстрее, чем Яна даст правильный ответ 🤨 Смотреть видео на YouTube: youtube.com/watch?v=FSB7dIv6AfI

Мой осознанный демпинг зашёл слишком далеко 🙄 В общем, как я думал всё будет происходить: • курс по лайвкодингу купит челове
Мой осознанный демпинг зашёл слишком далеко 🙄 В общем, как я думал всё будет происходить: • курс по лайвкодингу купит человек 30 от силы • они кайфанут от материала, накидают обратки что им ещё хотелось бы узнать • я добавлю 1-2 модуля сверху, соберу отзывы и повышу прайс до рыночного уровня В итоге уже больше 60 человек присоединились за первые 3 дня после анонса... пу-пу-пу... Это, разумеется, очень приятно видеть доверие стольких человек и спрос на знания, только у этого есть и обратная сторона медали - смотрите:
Я мыслю так, что +- первые 100 покупателей - это те, кому реально нужна и/или интересна тема алгосов, и они реально будут проходить этот продукт
Но дальше это превратится в "дешёвое не ценят" - люди будут покупать и забивать на прохождение. А я в первую очередь хочу реально ценный материал давать и помогать людям - то есть я хочу, чтоб вы проходили продукты мои, а не просто покупали ⚠️Поэтому я решил ограничить сейчас продажи ровно до 100 мест и временно убрать кнопку оплаты с сайта, потом буду улучшать продукт и собирать отзывы Последний раз даю ссылку на сайт - sorokin.school/livecoding, в ближайшее время не буду его пушить в контенте P.S. Мб я конечно шизу поймал с качеством обучения, но думаю на этом всё-таки важно делать фокус на пути к позиционировании уровня "Если Java - то это к Паше Сорокину" 🧱🧱🧱

Однажды черепаха подошла к древне-китайскому мудрецу и спросила: Мудрейший, как эффективно кэшировать данные? Мудрец посмотре
Однажды черепаха подошла к древне-китайскому мудрецу и спросила:
Мудрейший, как эффективно кэшировать данные?
Мудрец посмотрел на неё, немного помолчал и ответил:
常用 时限 失效
Черепаха вбила иероглифы в гугл переводчик и увидела 3 главных принципа кэширования: 1. Кэшируй то, что часто используют 2. Ставь время хранения 3. Инвалидируй при изменениях Так на черепаху снизошло backend-просветление А потом черепаха превратилась в Павла Сорокина и записала полный курс по REDIS - тыкай если еще не видел

Кидай в коменты любимый мем, поднимем настроение друг другу под конец недели 🔫
+5
Кидай в коменты любимый мем, поднимем настроение друг другу под конец недели 🔫

Это ж надо было так облажать... В общем, у меня уже глаз замылился с текущим количеством работы по курсам и видео на ютуб, и я не увидел, что дизайнер на сайте написал LIFECODING 🤩 Хотя даже так его купили уже 35 человек вообще без прогрева и прочего (и только двое написали в личку, что там ошибка на сайте!!!!) Чтож, теперь это всё-таки курс по liVecoding'у, и если вас останавливало неправильное название - теперь всё норм, можно покупать 🤝🤝 А если серьёзно, то давай подробнее расскажу что ты получишь на нём: • Перестанешь зависать на пустом экране - поймёшь как думать, с чего начинать решение • Научишься распознавать паттерн по триггерам в условии за 30 секунд • Перестанешь забывать решения через неделю, и в голове останется навык решения по паттерну, а не зубрёжка отдельно взятых задач • Узнаешь, что говорить и как себя вести на собеседовании - что проговаривать вслух, какие вопросы задать, что делать если завис И всё это за 2.990 рублей на минимальном тарифе - ну не сказка ли? Заходи на сайт, читай подробнее содержание и присоединяйся - sorokin.school/livecoding P.S. Разумеется, я понимаю, что это низкий прайс, и ценник будет повышаться минимум в 2 раза, а уроки добавляться. Повышать буду летом, поэтому как есть говорю - кому актуальна тема лучше возьмите сейчас, обновления для вас бесплатными будут

АЛ-ГО-СЫ ⌨️ Такое просто, короткое слово. И настолько важное для прохождения собеседований... Я снимал много разборов вопросо
АЛ-ГО-СЫ ⌨️ Такое просто, короткое слово. И настолько важное для прохождения собеседований... Я снимал много разборов вопросов и различных задач, но со временем понял, что на деле это слабо применимо в РЕАЛЬНОЙ подготовке к собесам Задачи разрозненные, единичные, и понимание как решается какая-то определенная задача не несёт в себе какой-то большой ценности Поэтому я и решил объединить всё цельный курс по алгосам! 😎 Его главная задача - сделать так, чтобы ты: • понял базовые паттерны и умел видеть их в задачах • научился решать задачи каждого типа, а не зубрил решения • не впадал в ступор на собесе и мог объяснять своё решение интервьюеру Всё максимально понятно, простыми словами и с доступными примерами Сейчас он стоит буквально копейки, пока я обкатываю программу и собираю обратку В планах его улучшать, ну и ценник, соответственно, будет расти ↗️ Так что держи сайт и не проепропусти момент: sorokin.school/livecoding P.S. А вы знали, что спор “нужны или не нужны алгосы” обычно заканчивается ровно в тот момент, когда тебе дают задачу на собесе 🤔

SQL, Spring, Kafka, Hibernate: что точно надо знать на джуна? На собесах больше всего боятся забыть не базу, а что-то посложн
SQL, Spring, Kafka, Hibernate: что точно надо знать на джуна? На собесах больше всего боятся забыть не базу, а что-то посложнее. Например, паттерны микросервисов или отличия volatile от synchronized. И логично, что при подготовке совсем забивают на фундамент и делают упор на то, что тяжелее Сегодня в заключительной серии мок-собеседований с подписчицами вместе с Java-разработчицей Яной разбираем базу всех собесов: • SQL, join’ы, подзапросы • транзакции и уровни изоляции • Spring и аннотации • ну и Java Core: hashCode, HashMap и т.д. Это хорошая возможность проверить себя и свои скилы, если всё еще боишься ходить на реальные собесы 🙂 Смотреть видео на YouTube: youtu.be/Cx_sEm0ygIA

Выхожу на финишную прямую, совсем скоро дропну обучение по алгосам ну по ооочень низкой цене для рынка😎
+1
Выхожу на финишную прямую, совсем скоро дропну обучение по алгосам ну по ооочень низкой цене для рынка😎

Пока пилил продукт по лайвкодингу наткнулся на классную платформу для решения кодерских задач Называется CodeRun. По сути, эт
Пока пилил продукт по лайвкодингу наткнулся на классную платформу для решения кодерских задач Называется CodeRun. По сути, это онлайн-тренажер, который Яндекс создал для своих разрабов, но потом открыл для всех: решаешь задачи, качаешь скиллы и готовишься к техсобесам. Недавно там появился AI-помощник на SourceCraft: он не напишет код за тебя, но проведёт от намека к инсайту, при этом оставляя тебе право на ошибку. То есть вместо готового решения ты получаешь: • подсказки на каждом этапе; • тест-кейсы для проверки решения, включая краевые случаи; • разбор примеров из условия. Зацените сами: заходите на CodeRun и открывайте вкладку «Кодерун AI» P.S. Ребята передали, что пока что фича в бета-режиме, нужна авторизация, а лимит 20 запросов в сутки. Самое время потестить.

Шардирование: когда одна база уже не вывозит Однажды база данных становится слишком большой. Запросы тормозят, индексы пухнут
Шардирование: когда одна база уже не вывозит Однажды база данных становится слишком большой. Запросы тормозят, индексы пухнут, реплики для чтения уже не спасают. Да, можно вертикально отмасштабировать - накинуть сервак помощнее, памяти побольше, но в какой-то момент уже не получится растить мощности бесконечно И тут появляется шардирование - разделение данных на несколько независимых частей, которые называются шардами То есть мы не просто оптимизируем одну большую таблицу, а распределяем данные между несколькими базами или узлами Например, пользователи с одними user_id живут в одном шарде, с другими user_id - в другом

shardKey = user_id % 4

0 → shard_0
1 → shard_1
2 → shard_2
3 → shard_3
То есть по user_id мы сразу понимаем, в какой шард идти. В теории круто: было много данных в одной базе, стало меньше данных в каждой отдельной базе НО не все так просто, потому что мы получили несколько доп. сложностей. Очевидно стала более сложная инфра: была одна БДшка - стало 4. Нужны новые серваки, мониторинг за каждой, поддержка и тд Но с точки зрения работы с данными - главная боль шардирования в том, что теперь данные распределены Раньше можно было сделать обычный запрос:

SELECT * FROM orders WHERE user_id = 123;
И база сама разбиралась, где что лежит. После шардирования приложение или специальный routing layer должны сначала понять, в каком шарде лежит user_id = 123 Но и тут проблемы начинаются, когда мы заходим сделать запрос не по shard key

SELECT * FROM orders WHERE status = 'FAILED';
Если status не является ключом шардирования, то мы не знаем, в каком шарде лежат такие заказы Значит, надо идти во все шарды, выполнить запрос в каждом, собрать результаты, склеить их и отдать клиенту. А если у нас 10 шардов, то это +10 сетевых вызовов и большой риск, что какой-то из этих запросов отвалится Иногда это ОК, но если таких запросов много, то лучше пересмотреть архитектуру хранения данных Еще больно становится с JOIN’ами Классическая ситуация - надо достать user и все его связанные orders. В рамках одной БД это просто. Но если user и его orders лежат на разных шардах, то простым JOIN уже не получится. То есть ключом шардированя у order был бы не order_id, а user_id ❗️Поэтому один из самых важных вопросов при шардировании - по какому ключу шардировать Плохой shard key может убить всю производительность Во-первых плохой выбор может привести к распределенному запросу по шардам, что мы уже разобрали, и это not good Но еще при плохом выборе может быть неравномерное заполнение шардов. Один или несколько шардов будут гореть, на них будет приходить многоп данных и запросов, а остальные будут проставивать. Это называется hot shard - когда нагрузка распределяется неравномерно, и один узел становится бутылочным горлышком В реальности, конечно, это всегда компромисс, потому что всегда будет какой-то перекос. Главное предотвратить заранее проблему на этапе проектирования, а то потом будет дорого перераспределять кучу данных Окей, а где это шардирование включить? Такой вопрос может возникнуть, особенно у начинающих В PostgreSQL шардирование не появляется магически из коробки. SQL БДшки вообще по дефолту не продоставляют такую функциональность. Если мы хотим шардировать SQL БД, то у нас есть два варианта: 🟣Писать свой routing layer в приложении То есть мы обращаемся из кода также в обычный репозиторий userRepo.save(user), но под капотом он считает ключ шардирования и идет сам в нужный шард. Но эту логику надо писать самим. На моих проектах часто это была своя платформенная библиотека

int shardId = userId % shardCount;
DataSource dataSource = shardRouter.getDataSource(shardId);
🟣Есть расширения вроде Citus, которые можно накатывать на Postgres За счет него БДшка «сама» будет роутить данные, мы просто обращаемся к узлу-координатору, а он дальше распределяет данные. Но это не бесплатно и в этом надо разобраться, а не просто включить галочкой. В общем, свои трудности Ставь 🔥 , если заходят такие посты P.S зацени, схему к посту)

Что спрашивают по многопоточности на Java-собесах 🤔 Есть старая байка из мира бэкенда: однажды разработчик решил «чуууууть-ч
Что спрашивают по многопоточности на Java-собесах 🤔 Есть старая байка из мира бэкенда: однажды разработчик решил «чуууууть-чууть оптимизировать» код и добавил многопоточку в сервис, который спокойно работал годами… Ну, что было дальше, наверное, и так можно догадаться 😐 Чтобы ты не был таким челом, сегодня собрал ТОП вопросов по многопоточке, которые валят даже опытных кандидатов на собесах. Раскрывать все карты не буду, скажу одно: помимо теории разберем вопросы еще и на практике Тебя ждут 3 лайвкодинг-задачи с реальных собеседований и задача из Яндекса в конце 😎 Смотреть на YouTube: youtube.com/watch?v=6K9kaxp3JN4

پیام ویدیو00:22

Твои амбиции иногда могут сделать только хуже... Уверен, что у тебя тоже было такое, когда начинаешь изучать что-то новое, в голове сразу план:
«Ща, выучу всё за короткий срок, просто буду учиться постоянно, в любое свободное время»
Твои амбиции расправиться со всем быстро, конечно, супер, но качество обучения будет сильно страдать. И всё потому, что у тебя были нереалистичные желания сделать задуманное в короткий срок Важно понимать, что сложные вещи требуют больше времени, терпения и концентрации
Быстрый прогресс - это миф, который нам втирают каждый день в соцсетях
Если ежедневно ты будешь улучшать свои навыки хотя бы на 1%, то через месяц станешь лучше на 35%, а через год вообще в 37 РАЗ Но тут суть идеи не в цифрах, а в регулярности. Если каждый день выкладывать по 🧱, через какое-то время сможешь построить для себя лестницу в светлое будущее...получилось очень пафосно, ахвах, но так и есть Пора бы уже понять, что ошибки - это нормально и даже отлично, потому что совершаешь ошибку → ищешь решение → исправляешь и получаешь новый опыт 🤷‍♂️🤷‍♂️🤷‍♂️
Если ты делаешь ошибки, значит, ты растешь и это заебись
Долгосрочные результаты ВСЕГДА, ну вот абсолютно всегда требуют времени Даже если кажется по началу, что ты топчешься на месте. Главное - не бросать и продолжать двигаться в том же направлении, пусть и как черепаха Даже если никто не замечает твоего прогресса и, возможно, говорят, что пора бросать эту затею, закладывая фундамент будущего успеха и накопив достаточно опыта, в один момент ты сделаешь огромный скачок, который будет сложно не заметить И я тут говорю не только про программирование, а вообще любую область, где ты хочешь добиться успеха Ставь 🧱, если согласен, а в комментах предлагаю интерактив: напиши, чего ты хочешь добиться за следующий месяц и что ты будешь для этого делать. А через 30 дней я вернусь к этому посту, и посмотрим, кто насколько продвинулся

«Отлично, эту часть собеседования мы закончили, а теперь переходим к лайвкодингу» - фраза, которая одновременно вызывает обле
«Отлично, эту часть собеседования мы закончили, а теперь переходим к лайвкодингу»
- фраза, которая одновременно вызывает облегчение и тревогу у каждого джуна Потому что смотреть разборы и проговаривать в слух это одно, а писать под давлением в стрессе - воообще другое Этот этап дает понять работодателю твой реальный уровень подготовки. Лайвкодинг тот навык, который надо качать через боль, опыт и слезы регулярную практику, ошибки и работу над ними Сегодня решаем 2 задачи: • алгоритмическую на массивы • небольшое code review куска кода Как обычно по ходу разбираю: • моменты, где можно ошибиться • как вообще думать над такими задачами • на что смотрит интервьюер И почему даже простые задачи иногда валят людей сильнее, чем хардовая теория 😉 Чтобы получить максимальную пользу от видоса, можешь решать с нами в параллель Смотреть на YouTube: youtu.be/0i_0D23aNGU

Хочу сделать курс по алгосам. Ёмкий, по делу, без воды Но прежде чем я сяду его пилить, мне надо понять, что у тебя реально б
Хочу сделать курс по алгосам. Ёмкий, по делу, без воды Но прежде чем я сяду его пилить, мне надо понять, что у тебя реально болит в этой теме А то я, как всегда, рискую забуриться туда, куда надо только мне и таким же, как я, психам 🍷 Поэтому я сделал анкету. Заполняешь 5 минут и напрямую влияешь на то, какие задачи попадут в курс, какие темы разберём подробно, а какие нахер не нужны Вот что в анкете: • что бесит в подготовке к алгоритмическим собесам • где ты конкретно застреваешь • какие задачи доводят до того, что хочется дропнуть алгосы как тему в целом В этот раз без подарков за заполнение, там ценник за продукт уже подарок))) 🔗 Анкета: [forms.gle/b8tDmkmgsGwTzkuy6] Чем больше людей ответит - тем точнее курс попадёт в твои реальные запросы P.S. Если лень заполнять - штош, курс будет под тех, кому не лень 🙃

Есть два состояния разработчика на собесе: 😎 «Я это знаю» 😒 «Да бл*****ть…» Причем его ты можешь словить не на разных вопро
Есть два состояния разработчика на собесе:
😎 «Я это знаю» 😒 «Да бл*****ть…»
Причем его ты можешь словить не на разных вопросах, а на одном. Когда отвечаешь уверенно и круто на основной и не знаешь, что сказать на дополнительный, потому что в книжке об этом не говорили Я продолжаю серию мок-собесов с Java-разработчицами, где по ходу видео разбираю ответы: в каких моментах ответы слабые и как лучше отвечать, чтобы не закопаться Мне нравится записывать такие форматы, потому что это отличная возможность для вас проверить свои знания и словить себя на мысли
«Насколько хорошо я вообще знаю эту тему?»
В ролике много базы, без которой сейчас очень тяжело проходить интервью: Java Core, коллекции, многопоточность, Spring, SQL, ACID, JPA и всякие другие смежные темы В общем, хватит читать, гоу смотреть и проверять себя Смотреть на YouTube: youtu.be/3FCFizWeKUo

Что общего между залом и попытками нормально выучить Java? Мы бросаем и то, и другое Это не те сферы, где результат виден чер
Что общего между залом и попытками нормально выучить Java? Мы бросаем и то, и другое Это не те сферы, где результат виден через 2 часа. Даже через месяц в зале - живот почти не исчезнет, а за неделю изучения джавы - на собес не позовут И наш мозг в этот момент такой: «Чел, нахер тебе это надо? Пошли лучше ютуб посмотрим» Это сейчас я люблю тренить и почти не пропускаю. Но раньше я бросал ни раз и ни два. И страшно бесился, думал, что надо без пропусков, чтобы было идеально Но это не очередной рилс с вылизанной картинкой, это ЖИЗНЬ Ты всё равно будешь выпадать и пропускать, потому что ты не робот, ты можешь заболеть, устать, могут появиться срочные дела на работе или учебе и так далее Уточню: я говорю про РЕАЛЬНЫЕ проблемы, а не "ну чёт нет настроения, устал" И вот когда я бросил зал в очередной раз, то кое-что заметил: сначала я кайфовал, ведь появилось кучу времени поспать, позалипать в видосы, погулять и просто наслаждаться жизнью. А потом постепенно энергия падала, тело становилось ватным, голова туманной, даже настроение и мотивация что-то делать пропадали. И самое сложное в этот период было вернуться назад С обучением то же самое: ты начинаешь, изучаешь новые темы, у тебя все получается, чувствуешь, что жизнь ща поменяется. А потом какие-нибудь спринги, микросервсисы или многопоточка, становится сложно, ничего не работает и не фиксится Бросаешь, через месяца два возвращаешься, начинаешь по новой с мыслями, что сейчас точно все будет ок... ....но по факту ты будешь начинать снова и снова с одной и той же точки, потому что обрываешь процесс на самом неприятном - когда стало сложно и результата ещё не видно. Результаты не появляются просто так, чтобы стать сильнее именно такие моменты и надо уметь преодолевать Ставь 🧱 , если согласен и напиши в комментах, что ты бросал и начинал снова и снова P.S. Особые условия на курс «Java Backend, как в BigTech» сгорят через 6 дней, пиши менеджеру школы Артёму, чтобы узнать подробности

پیام ویدیو00:54

Этот пост только для тех, кто правда хочет стать миддлом уже в этом году Последний раз я открывал продажи на флагманский курс «Java Backend, как в BigTech» аж 4 месяца назад. И пока не планирую делать этого до августа 👍 НО! На бесплатном предобучении я увидел НАСТОЛЬКО много ребят, которые проходят домашки, смотрят уроки, благодарят за материалы, сами пишут "Паш, а че там по условиям курса?" Я им всем говорю, что за рвение и упорство готов от себя дать скидку в 15.000 рублей на любой из тарифов. Потому что это мой курс, че хочу то и делаю папахпахпаапхпах 🔴 С другой стороны поймал себя на мысли, что как-то нечестно по отношению к тем, кто про скидон не знал, поэтому давайте сделаем так:
Только на 7 дней я открываю продажи на обучение со скидкой в 15.000 рублей от любого тарифа!
Здесь и на ютубе я стараюсь дать максимально много полезного. Да, процентов 50 информации и правда можно легко найти в интернете, но какой от этого толк, если: ❌ ты учишься без четкой системы и прыгаешь с темы на тему, только наращивая кашу непонимания в голове ❌ зубришь бесполезные темы без понимания, что сейчас нужно рынку и до какой глубины их тогда учить. Спойлер: джуны не нужны, такова правда ❌ у тебя нет нормальной практики и релевантного продакшн опыта ❌ ты не можешь нормально получить обратную связь или адекватный совет от профессионального человека Всё это наслаивается постепенно друг на друга, и в конечном итоге - ты просто теряешь свою мотивацию, забрасываешь, и так тянется уже не первый год Прогрева в канале не будет, это просто разовая акция для тех, кому НАДО. В кружке ниже подробно рассказал, почему мои студенты даже в такие сложные времена получают крутейшие офферы А если хочешь узнать подробнее об условиях и обучении, напиши менеджеру школы - Артему вот сюда