Реальное ЛАЙВКОДИНГ собеседование JUNIOR Python разработчик

  Рет қаралды 79,311

Артём Шумейко

Артём Шумейко

Күн бұрын

Пікірлер: 201
@dimierlife
@dimierlife 2 ай бұрын
Если это JUNIOR то у меня знания zero.
@1200eojf
@1200eojf 2 ай бұрын
Ну я бы за 20 минут решил бы задачу, в принципе надо понять задачу
@funtickgd9502
@funtickgd9502 2 ай бұрын
За 2 месяца этого лета у меня прогресс, я решил 1 задачу...
@JesusAVGNarezki
@JesusAVGNarezki Ай бұрын
Нормально если ты не изучал каждый день по 8 часов​@@funtickgd9502
@uvwzyx
@uvwzyx Ай бұрын
и таких, как ты, 99% в откликах
@dimierlife
@dimierlife Ай бұрын
@@uvwzyx Каких в откликах?
@Rulezzz3
@Rulezzz3 3 ай бұрын
видео придает уверенности, что сеньоры тоже тупят на собеседовании джуна
@set1qs
@set1qs 3 ай бұрын
Он тупил спецом ))
@ЮрийСтифеев
@ЮрийСтифеев 2 ай бұрын
Это не сеньер явно. 3я задача просто уровень джун джун. Хранить 2 массива, целевой и с отсортированными уникальными значениями, любой реально работающий джун это сделает . 2я хосапде, проверка наследования эксепшена. До перемотки видел что там было if т.е, что произойдет если туда в параметр, а как я понял это массив, передадут 3е или n значение?). Первую ничерта не понял, но видимо потому что питон вижу 1й раз. Мне жаль рынок ИТ если такие менторят людей в интернете и их слушают. Теперь понятно почему хр не могут найти людей
@alexla_grange8957
@alexla_grange8957 2 ай бұрын
Это ж из разных сказок джин и сеньор Помидор
@alexander_gk
@alexander_gk Ай бұрын
@@Rulezzz3 это канал просто принадлежит недосеньору. Нормальный сеньор на собесе не тупит.
@gradkb
@gradkb 2 ай бұрын
омг) главный скилл на собесах это внимательно слушать вопросы и стараться отвечать именно на них
@gradkb
@gradkb 2 ай бұрын
задача с минимальным элементом в стэке - огонь)
@AirenikMelkonyan
@AirenikMelkonyan 3 ай бұрын
Object в Питоне же зарезервированно, и можно было бы сказать, что не корректно использовать такое название. 😊
@ogone4ek880
@ogone4ek880 3 ай бұрын
то что что то существует в пайтоне - не значит, что оно зарезервировано object - не зарезервировано, но объект с таким именем существует, но назвать переменную так можно in, for, class, def, async, await, return, and, or - зарезервированны, такими именами не получится назвать переменные
@intruder70
@intruder70 2 ай бұрын
зарезервирован object, но не Object
@cherimolah9493
@cherimolah9493 2 ай бұрын
@@ogone4ek880 да, но это считается плохой практикой
@unnme2721
@unnme2721 2 ай бұрын
@@ogone4ek880 Если вы используете object как имя переменной, вы затрудняете доступ к встроенному классу object в текущем контексте. Это может привести к путанице и ошибкам, особенно если ваш код зависит от базового функционала этого класса. Это фундаментальная штука и в коде она была неспроста. Основа основ ООП.
@ogone4ek880
@ogone4ek880 2 ай бұрын
@@unnme2721 и че, я сказал что это незарезервированное имя, а не то что можно свободно так переменные называть
@zarddark2440
@zarddark2440 2 ай бұрын
Первая легко, третья легчайше для олимпиадника, просто дефолтный стек с префиксным минимумом. А для второй нужно синтаксис подучить
@krosh8982
@krosh8982 Ай бұрын
Да тут ЕГЭ уровень
@dima_upgrade1720
@dima_upgrade1720 2 ай бұрын
Спасибо за ваш контент! Очень познавательно и полезно! Продолжайте в том же духе!
@alexsur7315
@alexsur7315 3 ай бұрын
Отлично. Спасибо за собеседование. Покажешь на Ютубе ещё одно с лайв кодингом?
@rock4ts
@rock4ts 3 ай бұрын
это какой-то новый уровень троллинга)
@TheWorld-hs1hf
@TheWorld-hs1hf Ай бұрын
Почему? Слишком просто для джуниора? Если да, то зачем джуниору знать больше?
@knowledgedose1956
@knowledgedose1956 16 күн бұрын
​@@TheWorld-hs1hf 😂😂😂😂😂
@паукшнюк-г8ъ
@паукшнюк-г8ъ 2 ай бұрын
это куда такие собесы? очень хотелось бы
@rotsaatkrahe7178
@rotsaatkrahe7178 Ай бұрын
Я немного не понял, но получается что в min_nums будут добавляться не все числа? разве за этим не последует ситуация когда get_min даст неверное значение, вроде 4 5 1 1, список минимумов заполнится единицами, а когда их обе вытолкнут, то get_min ничего не вернет?
@user-lh9nk1vm8u
@user-lh9nk1vm8u 3 ай бұрын
Пару комментов: задача 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()
@UserSo4reUsu75ry
@UserSo4reUsu75ry 8 күн бұрын
У меня только на одну задачу ушло бы 30-40 минут. Сколько бы я не нарешивал эти задачи, я не могу решать их быстро
@Volodya72
@Volodya72 3 ай бұрын
Push все равно кривой получился. Если до конца списка делать pop, то с какого-то момента не будет значений из упорядоченного списка. Всё из за условия добавления
@ГеоргийЛухтура-в8м
@ГеоргийЛухтура-в8м 3 ай бұрын
Для этого есть условие в pop: if res == self.min_nums[-1]
@PeterSidoroff
@PeterSidoroff 2 ай бұрын
Нет, там правильно. В push-е стоит условие на пустой массив мин.чисел и на возможное совпадение с текущим мин.числом (
@QKekos
@QKekos 2 ай бұрын
@@PeterSidoroff там фича в том, что добавление в упорядоченный массив у тебя происходит только при пуше меньшего элемента, т.е. push(1), push(2), push(3), pop() -> 1, pop() -> None т.к. 2 и 3 тупо не добавлялись, оба гения сидят(как сделать пуш за О(1) если там придется по нормальному по всему массиву проходиться чтобы его в нужное место воткнуть не представляю)
@Trezvy_Papa
@Trezvy_Papa Ай бұрын
@@QKekos в вашем случае при вызове pop() удалится 3, потом 2. А 1 так и будет минимальным числом в стеке.
@sergey6661313
@sergey6661313 Ай бұрын
на 12:09 копирует и спрашивает у нейросети :)
@danivais7082
@danivais7082 Ай бұрын
Решил 1 и 3 (сириус курсы спасибо), декоратор плохо сел в память
@xtray272
@xtray272 3 ай бұрын
Я почему то думал что Джунам сложнее вопросы задают, я знаю почти всё что было на собесе из видео, но я до сих пор не нашел работу, может я что-то делаю не так. Хотя у меня и собеса никогда не было :). Видео придало мне уверенности в своих знаниях, надеюсь скоро найду работу
@symbol9new
@symbol9new 3 ай бұрын
Сколько учишься уже?
@gggppp228
@gggppp228 3 ай бұрын
А на какое количество вакансий ты отправлял резюме? Сейчас на джунов высокая конкуренция, поэтому надо просто часами сидеть на сервисах поиска работы и закидывать своё резюме везде где можешь
@СтепанВоробьев-л2р
@СтепанВоробьев-л2р Ай бұрын
так это база, тут ничего трудного нет
@UserSo4reUsu75ry
@UserSo4reUsu75ry 8 күн бұрын
​​​​@@gggppp228какие шансы джуну устроится на удаленку ?
@Sila_v_pravde123
@Sila_v_pravde123 Ай бұрын
Так , все, иду работать в пятерочку . Чему я научился за месяц хз.
@oBiba_and_aBoba
@oBiba_and_aBoba 2 ай бұрын
Привет, мне очень нравятся твои видео, можешь ли ты пожалуйста в одном из следующих видео рассказать как сделать онлайн оплату чего либо
@КотовДанил-с8б
@КотовДанил-с8б 3 ай бұрын
Почему 3 задача проще 2?
@kqvwvpk
@kqvwvpk 3 ай бұрын
Вы реально не знали ответ на эти задачи будучи синьором? Или спецом тупили чтобы не спалил интервьюер? Если первое, то получается такие сложные вопросы или вы не такой хороший синьор?! И как проходить такие собесы челам без опыта?!
@anoshin45
@anoshin45 3 ай бұрын
В маленькой компании синьором можно стать имея год опыта.
@PeterSidoroff
@PeterSidoroff 2 ай бұрын
По поводу "И как проходить такие собесы челам без опыта?!" - А как проходят собеседования для FANGа ? Есть разные видоскики на Ютубе, где люди рассказывают как они по много месяцев прорешивали задачи на LeetCode + там же можно изучать чужие решения. Через год такой практики вы тоже сможете быстро находить решения под такие задачки на собесах - в подсознании уже накопятся типовые алгоритмические решения.
@vor6758
@vor6758 2 ай бұрын
​@@PeterSidoroff, целый год тратить на алгосы) звучит жестко
@gradkb
@gradkb 2 ай бұрын
@@vor6758 в гугл по алгосам чтоб попасть надо их лет пять на олимпиадах применять, в среднем :-)
@АндрейПопов-н2г2м
@АндрейПопов-н2г2м 3 ай бұрын
33 минуты боли, но увы без этого никуда, сразу вспомнил все свои тупняки))
@qulinxao
@qulinxao 3 ай бұрын
эээ а не проще ли через словарь созданный из типов исключений и обработчиков - хватем исключение e и проверяем функцией из первого задания if match:=get_first_matching_object(pred=lambda x:x in ourdict,[type(e)]+list(type(e).__bases__)):match() raise e?
@saitaro
@saitaro 2 ай бұрын
Читаемость огонь.
@asadbekimaraliev7561
@asadbekimaraliev7561 3 ай бұрын
Молодец, ты конечно достоин
@nurbolatnurzhanov1958
@nurbolatnurzhanov1958 2 ай бұрын
Кому интересно, вот такой код у меня получился на последний вопрос. class Stack: def __init__(self): self.stack = [] self.pref_min = [] self.current_min = None def pop(self): self.stack.pop() self.pref_min.pop() self.current_min = self.pref_min[-1] def push(self, num): self.stack.append(num) self.current_min = min( self.pref_min[-1], num) if self.pref_min else num self.pref_min.append(self.current_min) def top(self): return self.stack[-1] def get_min(self): return self.current_min a = Stack() for i in [10, 2, 5, 4, 6, -1]: a.push(i) a.pop() print(a.top())
@SaintVes
@SaintVes 3 ай бұрын
Не знаю ответ ни на одну задачу. Учусь питону уже второй день. Я тупой, надо бросать?
@alexeynesin483
@alexeynesin483 3 ай бұрын
Ахах, за 22 дня ты не сможешь этот собес пройти. Это серьзная работа, нужно много времени потратить, чтобы научиться.
@digitaIdevil
@digitaIdevil 3 ай бұрын
Бросай
@SaintVes
@SaintVes 3 ай бұрын
@@digitaIdevil хорошо, пошёл бросать
@h3ckphy246
@h3ckphy246 2 ай бұрын
@@SaintVes 🤣🤣
@kornalexandr
@kornalexandr 22 күн бұрын
​@@SaintVesскажи, куда бросил? Просто так спрашиваю
@porohmega
@porohmega 2 ай бұрын
А дядя смог вам объяснить как это пригодится при написании реальных задач с REST и бизнес логикой?
@alexander_gk
@alexander_gk 2 ай бұрын
Очевидно, что никак
@InojjHacker
@InojjHacker 3 ай бұрын
Прикол конечно. Такие задачи могут на мидла и синьера дать, с зп в 2-4 раза больше
@irwynptytzelow
@irwynptytzelow 2 ай бұрын
Угораешь? Я даже не джун это решаю
@InojjHacker
@InojjHacker 2 ай бұрын
@@irwynptytzelow молодец, что сказать то тут) но я тут оффер на 300к получил без решения подобных задач, так что точно знаю о чем говорю)
@5классвиленкин-ъ4п
@5классвиленкин-ъ4п 2 ай бұрын
вообще не понял третью задачу. Первое что мне пришло в голову - создать связный список. Добавление - переназначение указателя на вершину на новый, удаление - переназначение указателя на следующий, топ - указатель уже указывает на нужное, get_min можно искать при каждом добавлении элемента в стек или при его удалении(если уадлили минимальный, то нужно найти следующий минимальный), либо если по памяти нам все равно, то создать multi_set и там уже изи все хранить. первое что пришло в голову
@arthurarthur4075
@arthurarthur4075 3 ай бұрын
Возможно это старая запись вашего интерьерью? Вопросы не тянут даже на стажёра
@Артем-п6ф9э
@Артем-п6ф9э 2 ай бұрын
Что же тогда должны были спросить? Как написать свой фейсбук или нетфликс?
@TheWorld-hs1hf
@TheWorld-hs1hf Ай бұрын
​@@Артем-п6ф9эчувствую, в 2025 от джунов (по крайней мере в вебе) будут требовать написать полноценное приложение-чат (при этом не просто чат, а асинхронный real-time чат), который полностью заменит чат в каком-нибудь вк, так еще и с разделением на личные сообщения и беседу, и это в качестве тестового задания, но платит таким спецам будут те же 50-80к; а уже в 2027 такое задание на джуна тянуть не будет. Люди всё больше идут в программирование, python один самых популярных языков (если не самый), конкуренция на позицию джуниор огромная, так как все торопятся выйти на работу. Зарплаты растут медленно, уровень понимания и количество знаний должны быть всё глубже и больше, ну и помимо этого увеличивается требуемое количество сайд скиллов (по типу git, но конкретно к нему нет претензий, просто для ясности пример)
@kornalexandr
@kornalexandr 22 күн бұрын
​@@Артем-п6ф9эзачем "как"? Просто написать. Причем чтобы к концу лайв кодинга количество пользователей было больше, чем в ТГ. Это на Джуна. На стажёра - больше, чем в Фейсбук
@Elita-o2n
@Elita-o2n 2 ай бұрын
Да... с каждым годом требы к Джунам увеличиваются в геометрической прогрессии😅😅 .... Страшно представить чем занимаются Мидлы и Сеньоры😅😅... Прямо в офисе чилят и эксплуатируют бедных Джунов😭😭😭
@oguretsagressive
@oguretsagressive 2 ай бұрын
Посмотри документацию pydantic, раздел "Handling custom generic classes", где рядом есть плашка warning с текстом "This is an advanced technique that you might not need in the beginning". Мидлы это те, кто такие штуки применяет, а сеньоры - кто придумывает.
@alexander_gk
@alexander_gk 2 ай бұрын
Многовато 100 рублей за такие задачи имхо, как SDET Ruby говорю. А кому кажется это сложным, идите в мак на кассу, it это не ваше.
@artemshumeiko
@artemshumeiko 2 ай бұрын
а как вы проводите собеседования? какие задачи даете?
@alexander_gk
@alexander_gk 2 ай бұрын
​@@artemshumeiko У меня не веб разработка (хоть я и знаю RoR), но если тезисно, то интервью состоит из двух частей. 1) Теория: rest, soap, sql, ci/cd, git и тд. Практика: лайвкодинг по задачам. Задачи от элементарных, типа "найти ошибку в простейшем методе" или "что вернет этот метод", до сложных на ООП с подковырками, где в классе используются миксины и модификаторы доступа. Крутого кандидата могу и по метапрограммированию спросить, и попросить поднять простейший кастомный фреймворк для АТ, но джунов я не собесил, не было нужды, всегда мидлы и выше. З.ы. НИКОГДА не спрашиваю теорию тестирования типа "чем смок отличается от санити", "артефакты тестирования" и прочую чепуху. Это вопросы для ручников-стажеров, а для AQA и SDET такие вопросы == по глупости, как и "кем себя видишь..." )))
@alexander_gk
@alexander_gk 2 ай бұрын
@@artemshumeiko У меня не веб разработка (хоть я и знаю RoR), но если тезисно, то интервью состоит из двух частей. 1) Теория: rest, soap, sql, ci/cd, git и тд. Практика: лайвкодинг по задачам. Задачи от элементарных, типа "найти ошибку в простейшем методе" или "что вернет этот метод", до сложных на ООП с подковырками, где в классе используются миксины и модификаторы доступа. Крутого кандидата могу и по метапрограммированию спросить, и попросить поднять простейший кастомный фреймворк для АТ, но джунов я не собесил, не было нужды, всегда мидлы и выше.
@TheWorld-hs1hf
@TheWorld-hs1hf Ай бұрын
​@@alexander_gkс каких пор миксины, модификаторы доступа и вопросы по метапрограммированию это уровень выше слабого стажера (Что-то типа стажер- -)? Если добавить туда хорошее (± глубокое) понимание асинхронного программирования и отличия асинхронности от многопоточности, многопроцессорности, а для практики добавить задание с написанием функции с использованием asyncio, то, базару ноль, кандидат тянет на стажера, можно даже деньги ему платить, 25-30к
@alexander_gk
@alexander_gk Ай бұрын
@@TheWorld-hs1hf с каких пор описанное тобой - это стажёр? Стажёр - это когда ты пишешь в сознании сразу двоичный код и передаешь его из нейронов в процессор.
@АртемРазумов-щ9г
@АртемРазумов-щ9г 2 ай бұрын
Так много комментариев, что задачи легчащие и не тянут даже на стажера и так мало комментариев, что третья задача решена не верно, точнее не для всех случаев) Видимо эти комментаторы только во сне разработчики)
@rawil6751
@rawil6751 Ай бұрын
Я вот заметил, но правильное решение за константное время так и не придумал. Интересно, а на собесе это заметили или нет?
@nadyamoscow2461
@nadyamoscow2461 3 күн бұрын
Очевидно, про принцип kiss в этой конторе не слышали.
@bulbul01124
@bulbul01124 Ай бұрын
Ты же не синьор явно
@enzopaupau2302
@enzopaupau2302 7 күн бұрын
Не могу не спросить)) а что за тема редактора которым они шеряться? Monokai чуть другой, этот приятнее
@daniyarkhabibulin1696
@daniyarkhabibulin1696 Ай бұрын
Честный отзыв! Если честно не тянешь на senior разработка очень слабо, на middle специалиста еще можно !
@ruslankrivoshein2893
@ruslankrivoshein2893 Ай бұрын
Сеньор - это не про классное решение алгоритмических задач с собеседования
@imdmotcm8953
@imdmotcm8953 Ай бұрын
Если это Senior то в отличие от Джуна воспользуется chat gpt
@Septman
@Septman Ай бұрын
По голосу интервьювера, ему лет 17-19, если это так, мне значит немного стыдно 😢
@artemshumeiko
@artemshumeiko Ай бұрын
Не, точно больше
@dmoroz0v
@dmoroz0v 2 ай бұрын
можно бригаду. это спецом сеньор так тупит? или реально? или постановка?
@lesbian_economy
@lesbian_economy Ай бұрын
Смотря для кого. Олимпиадник с такими задачами на изи справится, сеньер, у которого последние 5 лет было решение реальных задач, а не этого бреда, будет закономерно тупить.
@YGNETATEL_3000
@YGNETATEL_3000 3 ай бұрын
А нельзя было написать Filter(predicate, object) ?
@saitaro
@saitaro 2 ай бұрын
И что делать потом с этим фильтром?
@vladgusakov3328
@vladgusakov3328 2 ай бұрын
@@saitaro что-то аля try next(objects) except StopIteration
@sergeymalkovski3877
@sergeymalkovski3877 3 ай бұрын
Жестко. Я ни одной не знаю😢
@khafizovilnaz
@khafizovilnaz 3 ай бұрын
Ты не один друг, я тоже почувствовал себя тупым
@vladislavfalyush1656
@vladislavfalyush1656 Ай бұрын
1 k евро ? Пзд 😂
@tegeranchikrus4389
@tegeranchikrus4389 5 күн бұрын
Ну я честно не понимаю две вещи: 1. Каким образом человек которого заявляют как сеньора так долго (и так плохо) решал эти задачи 2. Почему после такого собеса человека (судя по заявлениям в видео) взяли, это же даже не уровень стажера
@artemshumeiko
@artemshumeiko 4 күн бұрын
Вам виднее, наверняка 500к зарабатываете?
@tegeranchikrus4389
@tegeranchikrus4389 3 күн бұрын
@@artemshumeiko меньше, врать не буду. Но с таким уровнем прохождения алго-задач даже на стажировки в биг тех не берут, там банально развернут на первом этапе. Я понимаю что алгосы это не то что показывает уровень разработчика, но если бы собеседующие так считали - зачем они бы дали вообще эту задачу, да еще и в конце (в конце дают задачи посложнее обычно)
@tegeranchikrus4389
@tegeranchikrus4389 3 күн бұрын
Кстати в защиту собеседуемого стоит заметить что с декоратором вроде быстро все получилось, мое почтение
@funtickgd9502
@funtickgd9502 2 ай бұрын
2 месяца лета не зря... 1 задачу я решил, на второй запутался, но по ходу событий понял, что надо было сделать, а в 3 я сразу понял, что надо было сделать, да и сделал
@TheWorld-hs1hf
@TheWorld-hs1hf Ай бұрын
С нуля за два месяца?
@dllb
@dllb 19 күн бұрын
Где учился????
@funtickgd9502
@funtickgd9502 19 күн бұрын
@@dllb сам по книгам, примерами алгоритмов, литкоду. Мне на курсах только базу синтаксиса дали
@dllb
@dllb 18 күн бұрын
@@funtickgd9502 а какие курсы и книги использовал?
@ВадимЕлисеев-ц8э
@ВадимЕлисеев-ц8э 17 күн бұрын
​@@funtickgd9502 Помоги, пожалуйста. Вот тоже из скачанных курсов получил базу, но а щас я хз, че мне делать.. Хочу на веб-разраба пойти и по идее до изучения самого django нужно просто решать задачи и так далее, но я вообще не понимаю, где можно было бы подчеркнуть действительно важные и полезные знания ,а где практикой их закрепить.
@MintLoverG
@MintLoverG 12 күн бұрын
Третья задача, которая "Самая сложная", на Сишарпе можно написать оч лего и быстро, минут за 10. Этому меня учили на 1 курсе, а если уже быть Мидл или Джуном, который закончил обучение это максимально изи. Если я будучи на Втором курсе, посмотрел на условие и понял, что в Шарпе "Самую сложную задачу" смогу написать за минут 15-20, т.к. Я еще не Джун и не Мидл
@irondanil3461
@irondanil3461 11 күн бұрын
Спасибо тебе большое, бро. Ты делаешь глупых людей как я чуточку умнее.
@ГазинурРысмухаметов
@ГазинурРысмухаметов 2 ай бұрын
3 задача решена неверно)
@abaahi
@abaahi Ай бұрын
Для меня сложно было второе. В третьем сразу понял что нужно параллельно сортированный список создавать при инициализации и добавлять в нужное место новый при пуше
@illia4503
@illia4503 Ай бұрын
3:09 Всегда хочеться треснуть чем-то тяжелым тех кто в одну строку пишет много операторов, как это в строке 2 и 9. Код в первую очередь должен быть визуально легко читаем, потому что читаем код мы чаще чем пишем, экономия количества строк не дает преймуществ, кроме демонтрации умственных отклонений автора подобного кода.
@incios
@incios 2 ай бұрын
Знания АСД помогли решить третью задачу в первые 4 секунды после ее прочтения
@knowledgedose1956
@knowledgedose1956 16 күн бұрын
что это?
@incios
@incios 16 күн бұрын
@@knowledgedose1956 алгоритмы и структуры данных
@hitomi-b1h
@hitomi-b1h 6 күн бұрын
​@@knowledgedose1956 Абстрактно синтаксическое дерево, полагаю
@qulinxao
@qulinxao 3 ай бұрын
get_first_matching_object=lambda pred,obj=[]:next((v for v in obj if pred(v)),None)
@Maria_apelsinka
@Maria_apelsinka Ай бұрын
почемуто 3 задача показалась самой прстой)
@aeternaar
@aeternaar 3 ай бұрын
Никто не написал про ваш сайт - отличный инструмент для подготовки к собеседованию! Подольше бы он оставался бесплатным!
@gradkb
@gradkb 2 ай бұрын
в первой задаче не нужно разделять худший/лучший случай, строго говоря - твой ответ некорректный, правильный - просто О(N), но для джуна норм
@yauhent671
@yauhent671 2 ай бұрын
каждый раз искать минимум массива?
@CSGO-cr2ct
@CSGO-cr2ct Ай бұрын
20:55 def get_min(self): return min(self.stack) if self.stack else None, надеюсь так будет,ибо я тупой совсем
@CSGO-cr2ct
@CSGO-cr2ct Ай бұрын
А так разве нельзя было сделать? или я чего то не понимаю?
@artemshumeiko
@artemshumeiko Ай бұрын
по времени это занимает O(n), т.к. нужно пройтись по всему массиву и найти минимальное. Спрашивалось более оптимальное решение
@Mr_Fulani
@Mr_Fulani 3 ай бұрын
Плохо ты претворялся друг ), джун тупит страшнее
@ИннаЛиксакова-о4н
@ИннаЛиксакова-о4н 3 ай бұрын
в защиту автора видео хочу сказать, что на собеседовании очень сильный стресс и даже такие легкие задачи как первая могут вогнать в ступор, так как очень много нервов мешает думать. Это надо прокачивать скилл прохождения собеседований, чтобы на них не переживать
@djonidep8941
@djonidep8941 2 ай бұрын
Бл как надоели люди которые пишут что это просто нереально легко было все. Вы сидите смотрите видео, говорят ответ, вы в голове прокрутили и ответили про себя лучше и это изи. А вы отвечайте сами сперва, а потом слушайте ответ. 90 процентов кто писал «изи на все ответил» сразу откиснут
@АртемРазумов-щ9г
@АртемРазумов-щ9г 2 ай бұрын
Веселее всего, когда понимаешь что третья задача в видео решена неверно или точнее не для всех случаев, а те кому просто этого и не поняли)
@Nickek-g5k
@Nickek-g5k 2 ай бұрын
Блин даже первая задача вызвала звон в голове... Прорвемся, готовимся дальше)))
@СергейЮров-б6е
@СергейЮров-б6е 3 ай бұрын
хех, одно дело вещать по подготовленному сценарию, а другое дело в realtime. Хорошо порешал
@astimch
@astimch 3 ай бұрын
Первые две задачи без комментариев - там ничего сложного. 3-я задача встречалась в нескольких курсах по алгоритмам и структурам данных, поэтому если знаешь, то реализовать ее тоже не составляет большого труда.
@ChrisColeDC
@ChrisColeDC 3 ай бұрын
это явно не уровень джуна и не 100 тысяч зп, первая задача только, остальные уровня мидл
@РоманДемидов-ц2и
@РоманДемидов-ц2и 3 ай бұрын
нет) порог входа с каждым разом всё выше, мб раньше джунам нужно было ложкой с первого раз в рот попадать, и их уже брали доучиваться, но сейчас ищут самостоятельных спецов, 2 и 3 задачи вполне адекватные, проверяют твои знания в ООП (не совсем), алгоритмах и структурах данных и основах языка, декораторы используются везде, с ними тоже нужно уметь работать уже на начальных стадиях
@myacc2517
@myacc2517 2 ай бұрын
Что задачи, что вопросы это уровень стажера
@ChrisColeDC
@ChrisColeDC 2 ай бұрын
@@myacc2517 может сразу уровень школьника начальных классов?
@myacc2517
@myacc2517 2 ай бұрын
@@ChrisColeDC Первая задача сравнима с заданием на егэ, вторая и третья это основа основ Если для вас эти задачи на мидлов, то у меня плохие новости
@ChrisColeDC
@ChrisColeDC 2 ай бұрын
@@myacc2517 чел ты сейчас автора видео дураком выставил)))
@IvaNFallout
@IvaNFallout 3 ай бұрын
Один из вариантов решения первой задачи: def get_first_matching_object(predicate, objects): return next((x for x in objects if predicate(x)), None)
@SabFo_
@SabFo_ 3 ай бұрын
Да проще filter использовать
@maximkoltsov9833
@maximkoltsov9833 3 ай бұрын
@@SabFo_ лист компрехеншен выполняется быстрее
@saitaro
@saitaro 2 ай бұрын
@@maximkoltsov9833 Лист компрехеншен создаст список, пройдясь по всем объектам. Это избыточно, как по памяти, так и по времени.
@maximkoltsov9833
@maximkoltsov9833 2 ай бұрын
@@saitaro ладно, согласен, ошибся
@QKekos
@QKekos 2 ай бұрын
@@saitaro круглые скобки это не лист компрехеншен а генератор эскпрешн, ленивые вычисления, некст один раз выполнится да и все, дальше эвальюейтится ничего не будет(но понятное дело, что само условие будет проверяться для каждого элемента до первого трушного)
@user-tt9hx4kh1e
@user-tt9hx4kh1e 2 ай бұрын
полтора гола ежедневной учебы и 100к ваши. На самом деле пох сколько предлагают 50, 70, 100. Если компания норм, то сам факт влиться в структуру и уже расти по грейду это и есть основная цель.
@jdwwsz
@jdwwsz 2 ай бұрын
выходит у меня в 16 лет уровень джуниор? и зачем мне в универ поступать тогда...
@Antinormanisto
@Antinormanisto 2 ай бұрын
Мне кажется, что это совсем не для джуна, а на стажёра какого - нибудь. Уж слишком просто
@goldgold594
@goldgold594 2 ай бұрын
Это рофел?
@Antinormanisto
@Antinormanisto 2 ай бұрын
​@@goldgold594, нет
@merzbow7
@merzbow7 3 ай бұрын
ну так декораторы с параметрами писали во втором пайтоне, изращение, уже как 10 лет можно проще
@mrveles
@mrveles 3 ай бұрын
Очень хорошее видео, прям как гора с плеч.
@Denzi33
@Denzi33 3 ай бұрын
🐯
@borisdubrovin1105
@borisdubrovin1105 2 ай бұрын
Третье задание примерно на уровне ЕГЭ по информатике. Весьма доступно. Если учащийся сам смог найти решение егэшных задач, а не тупо зубрил шаблонные готовые решения, то третья задача ему вполне должна быть по силам.
@SegeyKravtsov
@SegeyKravtsov 10 күн бұрын
🎯 Key points for quick navigation: [00:52] 🛠️ Нехватка типизации и неясность роли предиката, который выглядит как функция из-за своего вызова позднее. [01:19] ⚠️ Некорректное использование изменяемого объекта в качестве значения по умолчанию для аргумента функции. [01:45] 💡 Удаление избыточных строк и оптимизация конструкции для создания объектов. [02:31] 🤔 Функция фильтрует массив объектов, возвращая первый подходящий элемент. [04:04] ⚡️ Оптимизация функции для завершения работы при нахождении первого подходящего элемента. [05:03] 💡 При вызове функции со списком объектов, функция будет возвращать объект, соответствующий первому элементу списка, или None, если подходящего элемента нет. [06:35] 📝 Худшая временная сложность функции O(N), где N - количество элементов в массиве, а лучшая - O(1), если подходящий элемент находится в начале массива. [07:02] 🤖 Длина выполнения алгоритма равна длине N списка. [07:17] 🌟 Задача на собеседовании была легкой, но потребовались подсказки интервьюера. [07:31] 🎁 Получите шпаргалку по алгоритмической сложности в Telegram-канале. [08:11] 🌐 Платформа Solvit поможет вам подготовиться к техническим собеседованиям. [08:55] 🚀 Обязательно пройдите по ссылке в описании и воспользуйтесь платформой Solvit. [09:08] 👨‍💻 Задача на собеседовании: написать декоратор с параметрами. [10:38] 📝 Функция, принимающая аргументы функции, может использовать ключевое слово args. [12:58] 🤔 Если вы не знаете, как ответить на вопрос, попробуйте начать писать код и решение придет к вам по ходу дела. [13:43] 🤖 Exception в Python может быть от базового класса Object [14:17] 💡 Чтобы обработать исключения, можно использовать конструкцию try...except [14:48] 👀 Для отладки удобно использовать декоратор из функции logging.debug() [16:05] 📝 Сложная задача на проектирование класса, требующего оптимизации алгоритмов [16:45] 📘 Написание класса с методами push, pop, top и getMin за O(1) [17:20] 🤔 Для поиска минимального элемента нужно хранить отдельную переменную и обновлять ее при каждом push [18:18] 💡 Для поиска минимального элемента можно использовать дополнительную переменную, хранящую второе минимальное значение [19:56] 💡 При удалении элемента нужно пересчитать минимальное значение [22:15] 🤔 Для хранения минимального значения одной переменной недостаточно [22:45] 📝 Для обновления минимального значения нужно найти максимальное из двух значений [25:10] 🗣️ Не бойтесь делиться своими мыслями, даже если они ошибочные. Открытость и готовность работать в команде очень важны. [26:01] ⚡️ Стек может быть использован для реализации работы с неограниченным количеством переменных. [27:43] 📈 Возрастающая последовательность чисел может быть использована для создания структуры данных, где новое число добавляется только если оно меньше предыдущего. [28:36] 💪 При удалении элемента из возрастающей последовательности можно не учитывать элементы, которые больше или равны удаляемому. [29:12] 🔄 Элементы в последовательности могут повторяться, что следует учитывать при реализации структуры данных. [30:08] 📝 Для реализации стека можно использовать массив с последним элементом, который будет соответствовать минимальному значению. [32:10] 🗣️ Задавать грамотные вопросы интервьюеру также важно, как и решать задачи. Это показывает вашу заинтересованность и адекватность. Made with HARPA AI
@helish_88
@helish_88 2 ай бұрын
это троллинг? слишком сложно для JUNIOR
@TheWorld-hs1hf
@TheWorld-hs1hf Ай бұрын
Когда-то это было так, сейчас некоторые пишут, что это даже не уровень стажера, ибо конкуренция растёт
@helish_88
@helish_88 Ай бұрын
@@TheWorld-hs1hf да не, бред же, сейчас очень сильно не хватает спецов в РФ
@TheWorld-hs1hf
@TheWorld-hs1hf Ай бұрын
@@helish_88 да, но это не мешает им так делать. Сам глянь другие свежие собеседования
@viper_0097
@viper_0097 2 ай бұрын
На питоне не пишу, знаю только школьную программу, поехали. 1. Получить первый объект, соответствующий условию предиката. Она создает список, прогоняя объекты через предикат, и возращает первый элемент, если список не пустой 2. Без понятия :D 3. честно говоря, мне такая задача попадалась в одном курсе. Я просто использовал словарь(ключ: число, значение: количество чисел) и стек одновременно: ко всем новым в стеке числам в словаре прибавляется единица. И когда нужно получить минимальный элемент, просто выбираем первый элемент словаря Получается, 1 - правильно, 2 - неправильно, 3 - правильно.
@Forarit
@Forarit 2 ай бұрын
знаю только школьную программу... мне такая задача попадалась в одном курсе.
@viper_0097
@viper_0097 2 ай бұрын
@@Forarit Я знаю только школьную программу питона, курс был про другое
@shehamane3518
@shehamane3518 27 күн бұрын
Тут третья задача не про подсчет элементов, да и нет такого понятия как «первый элемент словаря»
@viper_0097
@viper_0097 27 күн бұрын
@@shehamane3518 В словаре элементы отсортированы, я подразумеваю первым элементом минимальный. Про подсчёт, не про подсчёт, но задача решена
@ДавидКутдусов
@ДавидКутдусов 3 ай бұрын
не понял, почему нельзя просто def get_min(self): return min(self.stack) все остальные методы изменяют данные self.stack и метод всегда будет возвращать данные согласно актуальному стеку. Либо я не понял задачу
@ГеоргийЛухтура-в8м
@ГеоргийЛухтура-в8м 3 ай бұрын
Требуется решить за постоянное время, а у Вас O(n)
@artemshumeiko
@artemshumeiko 3 ай бұрын
Потому что эта функция занимает O(n) времени, а нужно O(1)
@НикитаЗавертайло
@НикитаЗавертайло 3 ай бұрын
Последняя задача не до конца решена. 1. Есть бы сделаем push(3), push(6), push(7), pop(3) и запросим get_min, нам отдаст IndexError, хотябы по идеи должен отдать 6. Мы никак не сможем добиться O(1) в get_min, за исключением, если будем постоянно держать в get_min отсортированную коллекцию, но тогда у других операций увеличится Time Complexity.
@pavelosipov5951
@pavelosipov5951 3 ай бұрын
сможем, например, вот так: 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 3 ай бұрын
@@pavelosipov5951 def pop() у тебя неверно работает
@sonzu1468
@sonzu1468 3 ай бұрын
так это же стэк, мы можем удалить из него тока последнее число
@qulinxao
@qulinxao 3 ай бұрын
"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()) # храним в стеке сами значения и его текущий минимум
@НикитаЗавертайло
@НикитаЗавертайло 3 ай бұрын
@@pavelosipov5951 И правда, что-то я ошибся. Спасибо за разъяснение.
@sergem6860
@sergem6860 3 ай бұрын
По-моему некорректно говорить, что в худшем случае О(n), а в лучшем O(1), O вроде описывает имеено поведение в среднем (но надо посмотреть, сходу что-то не находится)
@EgorKissa
@EgorKissa 3 ай бұрын
O-нотация характеризует верхнюю границу. Например алгоритм быстрой сортировки в худшем случае (при неудачном выборе опорных элементов) может выполниться за O(n*n), но верхняя граница в среднем находится на O(nlogn).
@sergem6860
@sergem6860 3 ай бұрын
@@EgorKissa а что в лучшем случае она ограничена константой всё же корректно говорить или нет?
@EgorKissa
@EgorKissa 3 ай бұрын
@@sergem6860 нет
@qulinxao
@qulinxao 3 ай бұрын
"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()) # храним в стеке сами значения и его текущий минимум
@qulinxao
@qulinxao 3 ай бұрын
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 3 ай бұрын
def push(self,v): self.s.append(v); v
@novolume130
@novolume130 Ай бұрын
Где таким задачам обучиться?
@artemshumeiko
@artemshumeiko Ай бұрын
leetcode
@VaeV1ct1s
@VaeV1ct1s 3 ай бұрын
Кажется последняя задача решается линкедлистом с указателем на последнюю ноду, а в ноде с указателями на предыдущую и минимальную. И не надо создавать второй лист
@anoshin45
@anoshin45 3 ай бұрын
Тогда вам нужен кастомный ЛЛ с двумя указателями. Можно упростить и держать минимальное значение в каждой ноде вместо указателя. Но это будет занимать больше места.
@VaeV1ct1s
@VaeV1ct1s 3 ай бұрын
@@anoshin45 написать класс с 3 полями сложно?
@anoshin45
@anoshin45 3 ай бұрын
@@VaeV1ct1s Упростить в плане не заморачиватся с указателями на минимальное значение.
@VaeV1ct1s
@VaeV1ct1s 3 ай бұрын
@@anoshin45 зачем забивать память? Оно у тебя хранится в ноде, на которую ты указываешь. В чем простота?
@anoshin45
@anoshin45 3 ай бұрын
@@VaeV1ct1s а если у тебя два дупликэйта. Ты сам на себя будешь ссылаться ?
CI/CD - Простым языком на понятном примере
15:29
Артём Шумейко
Рет қаралды 37 М.
Inside Out 2: BABY JOY VS SHIN SONIC 3
00:19
AnythingAlexia
Рет қаралды 9 МЛН
Spongebob ate Michael Jackson 😱 #meme #spongebob #gmod
00:14
Mr. LoLo
Рет қаралды 9 МЛН
Python VS С# | Согласен / Не согласен
14:27
Технологии в Контуре
Рет қаралды 26 М.
Хочу стать Junior Python
16:29
Y_LAB University
Рет қаралды 7 М.
Минимум математики для Айтишников
16:12
SENIOR on JUNIOR Javascript Developer interview
26:35
BELOV
Рет қаралды 285 М.
ВЫБИРАЕМ ЯЗЫК ПРОГРАММИРОВАНИЯ ))))
25:08
Inside Out 2: BABY JOY VS SHIN SONIC 3
00:19
AnythingAlexia
Рет қаралды 9 МЛН