Артём Шумейко
Артём Шумейко
  • Видео 74
  • Просмотров 2 216 853
Реальное ЛАЙВКОДИНГ собеседование JUNIOR Python разработчик
Настоящее собеседование на Junior Python с зарплатой 100.000 рублей.
Первая часть собеседования: ruclips.net/video/6-xrwyDXGE4/видео.html
📚 Забирай гайд для подготовки к алгоритмическому собеседованию в моем боте: t.me/ArtemShumeikoBot
💡 Заходи в тренажёр для подготовки к техническому собеседованию Солвит: clck.ru/3BQNuoв
Пишу про IT и разработку в телеграм канале - подписывайся: t.me/artemshumeiko
Доступ к моим собеседованиям и закрытым материалам здесь: boosty.to/artemshumeiko
0:00 - Что вас ждет
0:45 - 1 задача (легкая)
6:43 - Определяем алгоритмическую сложность
8:58 - 2 задача (средняя)
12:44 - Момент ступора...
16:06 - 3 задача (самая сложная)
24:23 - Что нужно говорить вслух
31:48 - Что важно у...
Просмотров: 6 184

Видео

Пишем Python Чат Бота за 30 минут
Просмотров 5 тыс.21 день назад
Чат Бот с искуственным интелектом - всего за 30 минут на Python. 💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT 💡 Предзапись на курс по поиску работы разработчику и техническим навыкам для Middle: forms.gle/Zw7bPnQvTsfekVH47 Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot Ссылка на репозиторий: g...
S3 хранилище - Лучший способ хранить файлы на бэкенде | Как работать с S3 через Python
Просмотров 40 тыс.28 дней назад
💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT 💡 S3 - один из самых популярных способов хранить файлы на Backend'е. Расскажу, что это и как работать с S3 хранилищем. Хранилище S3 из видео: slc.tl/wo36m Подробнее об акции с кэшбэком на S3: slc.tl/zbcv0 Предзапись на курс по поиску работы разработчику и техническим навыкам для Middle: forms.gle/Zw7bPnQvTsfe...
9 причин учить FastAPI в 2024 - Лучший фреймворк на Python?
Просмотров 6 тыс.Месяц назад
💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT 💡 Предзапись на курс по поиску работы разработчику и техническим навыкам для Middle: forms.gle/Zw7bPnQvTsfekVH47 Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot Экосистема FastAPI в PDF формате и другие полезности в тг-боте: t.me/ArtemShumeikoBot Пиш...
Как реально ВЫРАСТИ до Middle/Senior? Отличия Junior, Middle и Senior Backend разработчиков
Просмотров 15 тыс.Месяц назад
💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT 💡 Предзапись на курс по поиску работы разработчику и техническим навыкам для Middle: forms.gle/Zw7bPnQvTsfekVH47 Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot Пишу про свой стартап для подготовки к собеседованиям, рынок труда и способы развития раз...
Реальное Собеседование на Junior Backend разработчика - Это нужно знать!
Просмотров 48 тыс.Месяц назад
💡Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT💡 Предзапись на курс по поиску работы разработчику и техническим навыкам для Middle: forms.gle/Zw7bPnQvTsfekVH47 Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot Пишу про свой стартап для подготовки к собеседованиям, рынок труда и способы развития разра...
Крутейшие ИИ Картинки через Python | Streamlit + Replicate
Просмотров 3,8 тыс.Месяц назад
💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT 💡 Предзапись на курс по поиску работы разработчику и техническим навыкам для Middle: forms.gle/Zw7bPnQvTsfekVH47 Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot Пишу про свой стартап для подготовки к собеседованиям, рынок труда и способы развития раз...
Дженерики в Python 3.12 - Обзор и лайфхаки
Просмотров 9 тыс.Месяц назад
💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT 💡 Предзапись на курс по поиску работы разработчику и техническим навыкам для Middle: forms.gle/Zw7bPnQvTsfekVH47 Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot Пишу про свой проект для подготовки к собеседованиям, рынок труда и способы развития разр...
Микросервисы - Простым Языком на Понятном Примере
Просмотров 53 тыс.2 месяца назад
💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT 💡 Микросервисы на простом примере. Для тех кто не понимает, что это такое. Разверните IT-инфраструктуру для веб-проектов любой сложности со скидкой 20%: slc.tl/vum0w Пишу про свой стартап для подготовки к собеседованиям, рынок труда и способы развития разработчиков в телеграм канале - подписывайся: t.me/artem...
Как Связать Бэкенд и Фронтенд? React + FastAPI Full Stack приложение | Python + JavaScript
Просмотров 30 тыс.2 месяца назад
💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT 💡 Предзапись на курс по поиску работы разработчику и техническим навыкам для Middle: forms.gle/Zw7bPnQvTsfekVH47 Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot Пишу про свой стартап, рынок труда и способы развития разработчиков в телеграм канале - п...
FastAPI ТОП Библиотек и Расширений [2024]
Просмотров 15 тыс.3 месяца назад
💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT 💡 Скачай PDF версию экосистемы FastAPI со всеми ссылками - в телеграм боте t.me/ArtemShumeikoBot Предзапись на курс по поиску работы разработчику и техническим навыкам для Middle: forms.gle/Zw7bPnQvTsfekVH47 Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumei...
Сайт на Python без знания HTML/CSS/JS - FastUI
Просмотров 24 тыс.4 месяца назад
💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT 💡 Предзапись на курс по поиску работы разработчику и техническим навыкам для Middle: forms.gle/Zw7bPnQvTsfekVH47 Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot Пишу про лайфхаки при поиске работы, рынок труда и способы развития разработчиков в телег...
Пет-проект на Python за 50 минут. Курс по FastAPI для начинающих [2024]
Просмотров 50 тыс.4 месяца назад
Разбор фреймворка FastAPI на языке Python с первых строчек до деплоя на реальный сервер. Текстовая версия: slc.tl/5nqib Облачный сервер для ваших проектов: slc.tl/3c00t 💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT 💡 Предзапись на курс по поиску работы разработчику и техническим навыкам для Middle: forms.gle/Zw7bPnQvTsfekVH47 Забирай роадмап изучения сам...
Alembic - Как делать Миграции Базы Данных на Python #13
Просмотров 8 тыс.5 месяцев назад
Alembic - Как делать Миграции Базы Данных на Python #13
Стал Senior Разработчиком за 2 года. Главные выводы
Просмотров 18 тыс.5 месяцев назад
Стал Senior Разработчиком за 2 года. Главные выводы
SQLAlchemy: Many-to-many relationship (m2m)
Просмотров 6 тыс.6 месяцев назад
SQLAlchemy: Many-to-many relationship (m2m)
SQLAlchemy results to Pydantic schema using FastAPI #11
Просмотров 9 тыс.6 месяцев назад
SQLAlchemy results to Pydantic schema using FastAPI #11
SQLAlchemy: Advanced RELATIONSHIPS | Indexes | Constraints #10
Просмотров 8 тыс.7 месяцев назад
SQLAlchemy: Advanced RELATIONSHIPS | Indexes | Constraints #10
80% разработчиков НЕ ГОДЯТСЯ для работы. Как УЛУЧШИТЬ резюме на hh
Просмотров 174 тыс.7 месяцев назад
80% разработчиков НЕ ГОДЯТСЯ для работы. Как УЛУЧШИТЬ резюме на hh
SQLAlchemy: Intro to relationships and ORM #9
Просмотров 11 тыс.7 месяцев назад
SQLAlchemy: Intro to relationships and ORM #9
SQLAlchemy: How to JOIN tables | CTE | Subqueries | Window functions #8
Просмотров 9 тыс.7 месяцев назад
SQLAlchemy: How to JOIN tables | CTE | Subqueries | Window functions #8
SQLAlchemy: Basic SELECT queries #7
Просмотров 9 тыс.7 месяцев назад
SQLAlchemy: Basic SELECT queries #7
SQLAlchemy: SELECT and UPDATE queries with ORM vs CORE #6
Просмотров 16 тыс.8 месяцев назад
SQLAlchemy: SELECT and UPDATE queries with ORM vs CORE #6
SQLAlchemy: How to create tables with classes - Mapped + mapped_column #5
Просмотров 17 тыс.8 месяцев назад
SQLAlchemy: How to create tables with classes - Mapped mapped_column #5
SQLAlchemy: How to use Session and ORM
Просмотров 17 тыс.8 месяцев назад
SQLAlchemy: How to use Session and ORM
SQLAlchemy: Создание таблиц и вставка данных через Core #3
Просмотров 19 тыс.8 месяцев назад
SQLAlchemy: Создание таблиц и вставка данных через Core #3
SQLAlchemy: Database connection, raw SQL queries with engine #2
Просмотров 29 тыс.9 месяцев назад
SQLAlchemy: Database connection, raw SQL queries with engine #2
SQLAlchemy: Зачем Учить SQLAlchemy ORM
Просмотров 39 тыс.9 месяцев назад
SQLAlchemy: Зачем Учить SQLAlchemy ORM
FastAPI Роадмап для начинающих разработчиков
Просмотров 44 тыс.10 месяцев назад
FastAPI Роадмап для начинающих разработчиков
Pytest #9: Поиск медленных тестов | Пропуск тестов | Кастомные CLI параметры (addoption)
Просмотров 3,7 тыс.10 месяцев назад
Pytest #9: Поиск медленных тестов | Пропуск тестов | Кастомные CLI параметры (addoption)

Комментарии

  • @sergem6860
    @sergem6860 3 часа назад

    По-моему некорректно говорить, что в худшем случае О(n), а в лучшем O(1), O вроде описывает имеено поведение в среднем (но надо посмотреть, сходу что-то не находится)

  • @user-tt9xr9tb1i
    @user-tt9xr9tb1i 6 часов назад

    есть БЕСПЛАТНЫЙ МАТЕРИАЛ В МОЁМ ПЛАТНОМ КУРСЕ))), забавно звучит)))

  • @user-kn9ox6cr3b
    @user-kn9ox6cr3b 10 часов назад

    Ты прямо Бог!

  • @XaKern
    @XaKern 13 часов назад

    Так а чем отличается S3 от облачного хранилища? Зачем было называть другим названием?

  • @aleksandr1277
    @aleksandr1277 14 часов назад

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

  • @user-bw5in2yo7s
    @user-bw5in2yo7s 17 часов назад

    хех, одно дело вещать по подготовленному сценарию, а другое дело в realtime. Хорошо порешал

  • @user-cg3pq7ht7c
    @user-cg3pq7ht7c 20 часов назад

    Спасибо ,Артем)

  • @user-ql7mk3mu2f
    @user-ql7mk3mu2f 20 часов назад

    не понял, почему нельзя просто def get_min(self): return min(self.stack) все остальные методы изменяют данные self.stack и метод всегда будет возвращать данные согласно актуальному стеку. Либо я не понял задачу

    • @user-cc2gu9bx3i
      @user-cc2gu9bx3i 18 часов назад

      Требуется решить за постоянное время, а у Вас O(n)

    • @artemshumeiko
      @artemshumeiko 3 часа назад

      Потому что эта функция занимает O(n) времени, а нужно O(1)

  • @user-lh9nk1vm8u
    @user-lh9nk1vm8u 21 час назад

    Пару комментов: задача 2. 1. Полагаю не стоит использовать isinstance, т.к. есть риск получить проблемы с наследованием при расширении списка передаваемых эксепшенов (например, передали еще LookupError, lambda: print(3)) и получили не ожидаемое поведение). type проверит на точное совпадение. 2. Вызов ex[1]() производится без параметров, что в случае IndexError("bar") выбросит missing required positional argument. Полагаю, это проблема постановки задачи и некоторой не внимательности при выполнении. 3. raise e стоит вынести из условия, иначе ломается логика, если выбрасывается эксепшн не переданный в списке. задача 3. 1. Использование list говорит, что у нас О(1) будет не совсем честная. Если докапываться, то какой-нибудь связный список - самое то. 2. Для второго списка за счет чуть большего количества памяти можно поддерживать более простую логику (храним список минимумов). def push(self, num: int) -> None: self.stack.append(num) self.min_nums.append(min(lst[-1] if lst else num, num)) def pop() -> int: self.min_nums.pop() return self.stack.pop()

  • @ilyaghost1648
    @ilyaghost1648 21 час назад

    вот так я решил 3 задачу, с помощью доп массива минимумов и доп масива который запоминает были ли смещения(свапы) в доп массиве минимумов и на основе всего этогт каждая команда чуть правит наши маисивики за O(1), код ниже class Stack: def __init__(self) -> None: self.stack = [] self.min_find_ls = [] self.support_min_find_ls = [] def push(self, num): self.stack.append(num) self.min_find_ls.append(num) if len(self.min_find_ls) >= 2: if num > self.min_find_ls[-2] and len(self.stack) != 0 : self.min_find_ls[-1],self.min_find_ls[-2] = self.min_find_ls[-2],self.min_find_ls[-1] self.support_min_find_ls.append(True) else: self.support_min_find_ls.append(False) def pop(self): self.stack.pop() if len(self.support_min_find_ls) >= 1: if self.support_min_find_ls[-1] is False: self.min_find_ls.pop() self.support_min_find_ls.pop() else: self.min_find_ls.pop(-2) self.support_min_find_ls.pop() def top(self): return self.stack[-1] def find_min(self): if len(self.min_find_ls) == 0 or len(self.stack) == 0: return None return self.min_find_ls[-1] на что гпт сказал что я сложный чичорт и выдал это ) class Stack: def __init__(self) -> None: self.stack = [] # Основной стек self.min_stack = [] # Стек для хранения минимальных элементов def push(self, num): self.stack.append(num) # Добавляем элемент в стек минимальных значений, если он меньше или равен текущему минимальному if not self.min_stack or num <= self.min_stack[-1]: self.min_stack.append(num) def pop(self): if self.stack: top = self.stack.pop() # Если удаляемый элемент равен текущему минимальному, удаляем его также из min_stack if top == self.min_stack[-1]: self.min_stack.pop() def top(self): if self.stack: return self.stack[-1] return None # Возвращаем None, если стек пуст def find_min(self): if self.min_stack: return self.min_stack[-1] return None # Возвращаем None, если вспомогательный стек пуст

  • @Yetishkin_Pistolet
    @Yetishkin_Pistolet День назад

    Видос супер. Спасибо ! Но микрофон чуть подальше, а то такое ощущение, что ты на ушко шепчешь

  • @arthurarthur4075
    @arthurarthur4075 День назад

    Возможно это старая запись вашего интерьерью? Вопросы не тянут даже на стажёра

  • @Volodya72
    @Volodya72 День назад

    Push все равно кривой получился. Если до конца списка делать pop, то с какого-то момента не будет значений из упорядоченного списка. Всё из за условия добавления

    • @user-cc2gu9bx3i
      @user-cc2gu9bx3i 17 часов назад

      Для этого есть условие в pop: if res == self.min_nums[-1]

  • @andreyzhukov9134
    @andreyzhukov9134 День назад

    Добрый день! Хорошее видео, но тег для img ( 17:30 ) пишется без знака `/`

  • @qulinxao
    @qulinxao День назад

    "One Stack (stack of pair value,minvalue):" def pop(O):return O.s.pop()[0] $$$ def top(O):return O.s[-1][0] $$$ def get_min(O):return O.s[-1][1] $$$ def __init__(O): O.s=[(float('inf'),float('inf'))] $$$ def push(O,v): O.s.append(v,min(v,O.get_min()) # храним в стеке сами значения и его текущий минимум

  • @merzbow7
    @merzbow7 День назад

    ну так декораторы с параметрами писали во втором пайтоне, изращение, уже как 10 лет можно проще

  • @anoshin45
    @anoshin45 День назад

    В целом неплохо выглядит. По коду третьей задачи, можно немножко сэкономить место. Не пушить мин дупликэйтс а держать какое нибудь (число, каунтер) и инкрементить его. В биг/мидл компаниях обязательно придерутся к тому что в функции push/pop не используете self.get_min(). Ну и небольшие замечания по имплементации вроде функция pop должна возвращать значение, не хватает проверки на пустой список во всех функциях.

  • @VaeV1ct1s
    @VaeV1ct1s День назад

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

    • @anoshin45
      @anoshin45 День назад

      Тогда вам нужен кастомный ЛЛ с двумя указателями. Можно упростить и держать минимальное значение в каждой ноде вместо указателя. Но это будет занимать больше места.

    • @VaeV1ct1s
      @VaeV1ct1s День назад

      @@anoshin45 написать класс с 3 полями сложно?

    • @anoshin45
      @anoshin45 День назад

      @@VaeV1ct1s Упростить в плане не заморачиватся с указателями на минимальное значение.

    • @VaeV1ct1s
      @VaeV1ct1s День назад

      @@anoshin45 зачем забивать память? Оно у тебя хранится в ноде, на которую ты указываешь. В чем простота?

    • @anoshin45
      @anoshin45 День назад

      @@VaeV1ct1s а если у тебя два дупликэйта. Ты сам на себя будешь ссылаться ?

  • @InojjHacker
    @InojjHacker День назад

    Прикол конечно. Такие задачи могут на мидла и синьера дать, с зп в 2-4 раза больше

  • @SaintVes
    @SaintVes День назад

    Не знаю ответ ни на одну задачу. Учусь питону уже второй день. Я тупой, надо бросать?

    • @alexeynesin483
      @alexeynesin483 День назад

      Ахах, за 22 дня ты не сможешь этот собес пройти. Это серьзная работа, нужно много времени потратить, чтобы научиться.

    • @digitaIdevil
      @digitaIdevil 22 часа назад

      Бросай

    • @SaintVes
      @SaintVes 21 час назад

      @@digitaIdevil хорошо, пошёл бросать

  • @ChrisColeDC
    @ChrisColeDC День назад

    это явно не уровень джуна и не 100 тысяч зп, первая задача только, остальные уровня мидл

    • @user-yq2ky3bv3l
      @user-yq2ky3bv3l День назад

      нет) порог входа с каждым разом всё выше, мб раньше джунам нужно было ложкой с первого раз в рот попадать, и их уже брали доучиваться, но сейчас ищут самостоятельных спецов, 2 и 3 задачи вполне адекватные, проверяют твои знания в ООП (не совсем), алгоритмах и структурах данных и основах языка, декораторы используются везде, с ними тоже нужно уметь работать уже на начальных стадиях

  • @kqvwvpk
    @kqvwvpk День назад

    Вы реально не знали ответ на эти задачи будучи синьором? Или спецом тупили чтобы не спалил интервьюер? Если первое, то получается такие сложные вопросы или вы не такой хороший синьор?! И как проходить такие собесы челам без опыта?!

    • @anoshin45
      @anoshin45 День назад

      В маленькой компании синьором можно стать имея год опыта.

  • @sergeymalkovski3877
    @sergeymalkovski3877 День назад

    Жестко. Я ни одной не знаю😢

    • @khafizovilnaz
      @khafizovilnaz День назад

      Ты не один друг, я тоже почувствовал себя тупым

  • @user-kv5zt2gf3q
    @user-kv5zt2gf3q День назад

    Последняя задача не до конца решена. 1. Есть бы сделаем push(3), push(6), push(7), pop(3) и запросим get_min, нам отдаст IndexError, хотябы по идеи должен отдать 6. Мы никак не сможем добиться O(1) в get_min, за исключением, если будем постоянно держать в get_min отсортированную коллекцию, но тогда у других операций увеличится Time Complexity.

    • @pavelosipov5951
      @pavelosipov5951 День назад

      сможем, например, вот так: class Stack: def __init__(self): self.stack = [] self.mins = [] def push(self, n: int): self.stack.append(n) self.mins.append(min(self.get_min(), n) if self.mins else n) def pop(self) -> int: self.mins.pop() return self.stack.pop() def top(self) -> int: return self.stack[-1] def get_min(self) -> int: return self.mins[-1] и да, решение на видео с ошибкой, в некоторых случаях неправильно сработает.

    • @Vasilii_Furi
      @Vasilii_Furi День назад

      @@pavelosipov5951 def pop() у тебя неверно работает

    • @sonzu1468
      @sonzu1468 День назад

      так это же стэк, мы можем удалить из него тока последнее число

    • @qulinxao
      @qulinxao День назад

      "One Stack (stack of pair value,minvalue):" def pop(O):return O.s.pop()[0] $$$ def top(O):return O.s[-1][0] $$$ def get_min(O):return O.s[-1][1] $$$ def __init__(O): O.s=[(float('inf'),float('inf'))] $$$ def push(O,v): O.s.append(v,min(v,O.get_min()) # храним в стеке сами значения и его текущий минимум

    • @user-kv5zt2gf3q
      @user-kv5zt2gf3q 12 часов назад

      @@pavelosipov5951 И правда, что-то я ошибся. Спасибо за разъяснение.

  • @user-fy9zc9bm9m
    @user-fy9zc9bm9m День назад

    33 минуты боли, но увы без этого никуда, сразу вспомнил все свои тупняки))

  • @minimalstory
    @minimalstory День назад

    Ага, облака)) облака надежды и вечные, поверьте свои данные третьим лицам)) если работаете над чем то серьезным то ничего не должно покидать ваш контур. Баловство все это, если не хуже.

  • @Rulezzz3
    @Rulezzz3 День назад

    видео придает уверенности, что сеньоры тоже тупят на собеседовании джуна

    • @set1qs
      @set1qs День назад

      Он тупил спецом ))

  • @IvaNFallout
    @IvaNFallout День назад

    Один из вариантов решения первой задачи: def get_first_matching_object(predicate, objects): return next((x for x in objects if predicate(x)), None)

    • @SabFo_
      @SabFo_ День назад

      Да проще filter использовать

    • @maximkoltsov9833
      @maximkoltsov9833 День назад

      @@SabFo_ лист компрехеншен выполняется быстрее

  • @qulinxao
    @qulinxao День назад

    def push(self,v): self.t+=1; self.s.append(q:=(v,self.t)); heapq.heappush(self.pq,q) def pop(self): v,t=self.s.pop(); set(heapq.heappop(pq) for _ in itertools.takewhile(lambda v:v[1]>=t,pq)); return v def top(self):return self.s[-1][0] $$$$это разрыв строки$$$ def get_min(self):return self.pq[0][0] def __init__(self): self.s,self.pq,self.t=[],[(float('inf'),0)],0

    • @qulinxao
      @qulinxao День назад

      def push(self,v): self.s.append(v); v<=self.m[-1] and self.m.append(v) def pop(self): v=self.s.pop(); v==self.m[-1] and self.m.pop(); return v def top(self): return self.s[-1] $$$$это разрыв строки$$$ def get_min(self): return self.m[-1] def __init__(self): self.s=[]; self.m=[float('inf')] # на дне стека минимумов лежит бесконечно большой камень :)

  • @qulinxao
    @qulinxao День назад

    эээ а не проще ли через словарь созданный из типов исключений и обработчиков - хватем исключение e и проверяем функцией из первого задания if match:=get_first_matching_object(pred=lambda x:x in ourdict,[type(e)]+list(type(e).__bases__)):match() raise e?

  • @suddenname
    @suddenname День назад

    Как программист-самоучка с опытом в 7 лет, мало работавший в компаниях, но ходивший по собеседованиям, могу сказать: это слишком простые задачки на джуна В небольших компаниях в лайв-кодинге скорее интересуют более реалистичные задачи, вроде реализации нескольких эндпоинтов в Django или разбора существующего кода на предмет допущенных огрехов, иногда могут спросить даже про несложный деплой приложения на сервер В крупных компаниях два варианта: либо алгоритмические задачи с leetcode/codewars/etc уровня easy/medium, либо разбор тестового задания, которое ты получил до/после собеседования Если кто поделится местами, где можно найти _такие_ вакансии -- я в лобик чмокну <3

    • @Ejangordf6sg
      @Ejangordf6sg День назад

      так 3 задача это и есть литкод медиум

    • @suddenname
      @suddenname День назад

      @@Ejangordf6sg И правда, но смотрится как задачка не больше, чем на условное "easy+"

  • @xtray272
    @xtray272 День назад

    Я почему то думал что Джунам сложнее вопросы задают, я знаю почти всё что было на собесе из видео, но я до сих пор не нашел работу, может я что-то делаю не так. Хотя у меня и собеса никогда не было :). Видео придало мне уверенности в своих знаниях, надеюсь скоро найду работу

    • @symbol9new
      @symbol9new День назад

      Сколько учишься уже?

    • @gggppp228
      @gggppp228 День назад

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

  • @qulinxao
    @qulinxao День назад

    get_first_matching_object=lambda pred,obj=[]:next((v for v in obj if pred(v)),None)

  • @user-tx8dt1kh2c
    @user-tx8dt1kh2c День назад

    Почему 3 задача проще 2?

  • @Mr_Fulani
    @Mr_Fulani День назад

    Плохо ты претворялся друг ), джун тупит страшнее

  • @AirenikMelkonyan
    @AirenikMelkonyan День назад

    Object в Питоне же зарезервированно, и можно было бы сказать, что не корректно использовать такое название. 😊

    • @ogone4ek880
      @ogone4ek880 День назад

      то что что то существует в пайтоне - не значит, что оно зарезервировано object - не зарезервировано, но объект с таким именем существует, но назвать переменную так можно in, for, class, def, async, await, return, and, or - зарезервированны, такими именами не получится назвать переменные

  • @Denzi33
    @Denzi33 День назад

    🐯

  • @rock4ts
    @rock4ts День назад

    это какой-то новый уровень троллинга)

  • @datski_live
    @datski_live День назад

    Щас бы говорить, что динамическая типизация, это недостаток...

  • @Denzi33
    @Denzi33 2 дня назад

    👍

  • @Great_Ave
    @Great_Ave 2 дня назад

    Привет Артем! Можно ли как-то alembic заставить работать с asyncpg? Или таки psycopg2 придется ставить?

  • @Denzi33
    @Denzi33 2 дня назад

    Легенда...

  • @artemxyi
    @artemxyi 2 дня назад

    Знания после этого курса приближены к знаниям джуна(только фастапи)

  • @romtom7779
    @romtom7779 2 дня назад

    просто ужас сделано настолько сложно насколько возможно!

  • @teawithoutdonuts31
    @teawithoutdonuts31 3 дня назад

    Какой-то Java EE. Нет никаких проблем писать sql в эндпоинтах. Он как раз гораздо понятнее и нагляднее там сидит. В крайнем случае для длинных запросов можно вынести выражение в отдельный модуль. Когда у вас с фронта просят ручки со вложенными сущностями вам нужно делать joinedload/selectinload. Где-то вам нужен User+Tasks, где-то только User. Вы на каждый такой вариант будете делать по функции в репозитории? Или передавать опции отдельным параметром, ещё больше всё усложняя? Модели и схемы можно очень быстро посмотреть одним кликом из эндпоинта, а вот прыгать по ORM надстройкам кастомным - это как раз разбираться нужно. Ну и по поводу притянутой за уши задачи уровня "смены sqlalchemy" - такое не происходит почти никогда. Да и на что? Вы скорее на другой язык переписывать будете.

  • @Denzi33
    @Denzi33 3 дня назад

    Артём, спасибо большое за все видео. В своё время разбирался с Alembic, тратил на изучение и ресёрч информации часы, а тут в одном видео готовый пример.

  • @AleksandrMaltsev-jm8ph
    @AleksandrMaltsev-jm8ph 4 дня назад

    Ваш курс еще продается ?