Освой Backend разработку на моем авторском курсе: clck.ru/3DvuJB (первый модуль бесплатен) Тренажер собеседований Солвит - готовься к собесу, чтобы получать сочные офферы: clck.ru/3DvuRu
@avgany2257Ай бұрын
Почему у меня такое ощущение, что в настоящих реалиях собеседования на сеньера часто схоже по уровню на собеседования Джуна в галеру за зп в две банки пива 😂
@PavelSoftwareАй бұрын
Супер формат, Артём! Спасибо огромное за твою работу!
@_dzen_tv_Ай бұрын
Душнилово это вопрос чем неудобен генератор. А про сиквенсы это база, set, list, tuple, string. Они реализуют набор методов для работы с последовательностями. Другой вопрос что последовательности предоставляют реализацию итерабл интерфейса. s = "abc" s.__next__() # ошибка si = s.__iter__() # si.__next__() # Ok Если говорить про список то в каждый момент времени мы обращаемся только к одному элементу, а храним в памяти весь массив. Это оправдано только в случае когда мы интенсивно используем именно сиквенс методы, например, append, insert, extend, pop... GIL как обычно по диагонали. Сам собеседующий плохо понимает. Задачка на CPU, требующая ядра это вообще не пор потоки. Кто вам сказал что асинхронка лучше потоков? Это разные подходы решающие разные проблемы. Ну и Артём до сих пор не знает что потоки это потоки ОС. А вообще когда собеседующий чувак решил закопать потоки я бы закончил собес. Это всё равно что спросить чем компания Х хуже нашей? Всё я сгорел. Асинхронность наше всё, но если у нас чуть-чуть не IO кода то всё, сразу to_thread() То есть питонячий код может работать в потоке, а в ивент лупе никак)))
@iavianmАй бұрын
Хорош )), не гори так сильно ) нервы надо беречь
@АлексейКудрявцев-й6ш23 күн бұрын
Садись, два. 1. set - это не "сиквенс", именно потому, что не реализует наборо методов для работы с последовательностями. 2. append/pop/insert/extend и т.д. это не "сиквенс методы": сиквенс может быть immutalbe (пример: tuple/string), да и сам интерфейс Sequence не требует реализации перечисленных методов 3. Eсли я постоянно итерируюсь по объекту / проверяю вхождение элемента - оправдано ли хранение всех элементов в памяти одновременно? (list/set/tuple, любая коллекция) 4. Конкретно в Пайтоне потоки и async решают одни и те же "проблемы": I/O, и да - async лучше, потому что, как минимум, меньше оверхэда на создание/переключение контекста (но не только поэтому) 5. I/O бывает блокирующим, и его тоже нужно выносить в отдельный тред (как и CPU-bound), чтобы не блокировать ивент-луп
@vasiliy2396Ай бұрын
Проходил пару недель назад собеседование в Т-банке на позицию мидла (сразу узнал их по видео, у меня были такие же задачи и вопросы). Я решил все задачи (у меня их, кстати, было три), ответил на все вопросы. Пришёл ответ, что не готовы взять, даже нормально не смогли обосновать, почему. Написали, что плохо знаю про ГИЛ. Хотя, когда я стал рассказывать про тир 1 и тир 2 оптимизаторы, он просто решил пропустить этот вопрос, похоже, сам ничего не понимает. Просто нет слов...
@MrLotrusАй бұрын
такое часто случается на собесах. По тому что человек недавно учил может лезть вглубь пока не закопает. А другой вопрос поверхностно затронет, хотя он может быть актуальней для бэкенд разработки. Тут как повезет
@BibiBunta8 күн бұрын
Собеседовался в Т-банк два раза, первый раз прошёл все этапы, но не готовы были предложить верхнюю планку - усугубило что HR с кем начал общение, ушла в отпуск, а та что замещала - никакой заинтересованности не проявила(сложилось впечатление что у них бонусы за привод, и замещающей - не достанется. Второй раз( через 1.5-2 года), прошёл первый этап - но настолько не понравился интервьювер ( быдло джуниор с хамотой, который просто не понимал развёрнутые ответы, и ему нужны было ответить именно то, что написано у него на листке), что просто не продолжил общение. Видимо как повезёт. Но некоторые личности на собеседовании - заставляют усомниться в том, действительно ли хочется с ними потом работать.
@MrLotrus7 күн бұрын
@@BibiBunta Да, как повезет. Я там проходил секции как по питону, так и по го. А всего суммарно 5 секций. Действительно идут по опроснику с каверзными вопросами. Но в моем случае были дружелюбны. Я в конце даже пожаловался что в вопросах очень странные ситуации и так код не пишут. Но интервьювер не стал спорить, а просто спокойно и довольно ловко перевел тему
@nrglookАй бұрын
Ещё не досмотрел интревью на Диджитализируй) а уже новое видео -- кайф Спасибо, Артём!
@romanvolozhanin4192Ай бұрын
Привет! Реально классный собес получился! Спасибо большое. Могу добавить, что на интервью я задаю вопрос про асинк, многопоточноть и мультипроцессинг для того, чтобы опредлелить уровень понимания у кандидата того, как работает код. Чтобы инженер понимал ограничение в которое упирается при встрече с проблемой ресурсов. Еще раз спасибо, и отличные задачи попались, было интересно.
@artemshumeikoАй бұрын
Ага.. А вопросы про разрешение коллизий и то, как работает метод открытой адресации тоже проверяет «уровень понимания кандидата того, как работает код»? Меня 3 раза про это спросили из 20 собесов пару месяцев назад. По-моему и этот вопрос, и вопрос про потоки на практике неприменимы. Зачем их задавать? Искренне не понимаю и хочу понять. Если на практике это не пригодится
@alko4188Ай бұрын
@@artemshumeiko а давай инвертируем задачу? у тебя есть 60 минут и тебе надо понять, насколько "качественный" специалист перед тобой ? вот как бы ты построил собес? вот реально было бы интересно послушать твое мнение после такого кол-ва пройденных собеседований? в августе я таки угадал, что ты проходишь собесы для стартапа и контента, вот хотелось бы услышат обратную связь и аналитику не только для кандидатов до и для интервьюеров... Скажу за себя, для меня очень важно словить пинг понг от человека, понять насколько мне будет с ним дальше комфортно работать, разбираться в багах, ставить задачи и давать обратную связь. Не просто что он отвечает, но и как. а на типовых задачах, 80% отвечают однотипным определением с гугла (( ну ведь скучно же ? особенно когда у тебя это ххх собес.... вот приходится изгаляться придумывать что-то эдакое... по мне уж лучше странные вопросы про неприменимые вещи, чем литкодовские задачки в блокнотике. а может и наоброт?
@artemshumeikoАй бұрын
@@alko4188 на собесе нужно спрашивать: код-ревью, лайв-кодинг (но не написать декоратор, а что-то более распространенное) и систем дизайн (для middle+/senior)
@romanvolozhanin4192Ай бұрын
@@artemshumeiko хехехе! Не, такого уже не спрашиваю. И даже никакого реджекта не даю за отсутсвия ответа. Могу предположить, что хотели дойти до самой глубины твоих знаний, ибо ты на лайте все остальное отвечаешь и с тобой интересно пообщаьтся о таких хитростях. Было у меня один раз дурное собеседование на 2 часа с разбором и сетей и разбором алгоритма MRO С3 и в базы лезли максимально глубоко. Измучали меня сильно, никому такого не пожелаю. Опять же зависит от того, кого нанимаем. На простого питониста изи тех задачи решать - одно, а на сеньора, кто вопроса не задаст и сможет проблемы решать и со своим кодом и с соседними отделами затыки разрулит - совсем другое.
@AlsurnovАй бұрын
Спасибо за видео. Артем просьба: можешь записать3-4 видеоурока по GraphQL с использованием Fast API. Хотелось бы посмотреть регистрацию и авторизацию, а так же запросы данных.
@ufc_uz620 күн бұрын
Можете причитать документацию strawberry там все просто
@hg-dm2jjАй бұрын
угараю с того, как Артем на каждом собесе с каменным лицом сидит и не реагирует вообще на шутки. Одним словом BOSS😂😂
@artemshumeikoАй бұрын
тут 0 шуток было же, или я пропустил?)
@folry183421 күн бұрын
Как запомнить такое огромное количество различных функций и тд лишь для собеседования, а после еще и другими пользоваться на работе?
@Серега-к6нАй бұрын
Для дедлока достаточно 1 таблицы с 2 строками. Первая транзакция блокирует первую строку, вторая транзакция блокирует вторую стоку, первая пытается заблокировать вторую строку и встает в ожидание второй транзакции, вторая транзакция пытается заблокировать первую строку, встает в ожидание, движок бд распознает дедлок, откатывает изменения одной из транзакций с ошибкой "deadlock detected", другая транзакция завершается, т.к. больше некого ждать. Интересно, почему разрабам, даже синьерам всегда задают такие джуниорские вопросы по бд и ни спрашивающий ни отвечающий никогда не знают правильных ответов? :)
@artemshumeikoАй бұрын
Я правильно понимаю, вы примерно 500к в месяц зарабатываете?
@antongerasimov2298Ай бұрын
Да, по бд совсем изи вопросы. Даже про Windows функции не спросили...
@antongerasimov2298Ай бұрын
@@artemshumeikoесли по нынешнем курсу рубля, то даже чуть больше :)
@antongerasimov2298Ай бұрын
Но к чести автора, он неплохо отвечал на эти простые вопросы. По сути, только на последний вопрос и не ответил, но что такое дедлок ответ дал абсолютно верный
@Серега-к6нАй бұрын
@@antongerasimov2298 Я не согласен, что автор неплохо отвечал. Если уж придираться, то хорошо он не ответил ни на что: Правильный запрос написал только после подсказки, правильный запрос для странной архитектуры приложения, когда в orders на несколько порядков меньше записей, чем в promocodes, тоже не написал, только логику сформулировал, cte начал писать с ошибкой, хотя cte тут - просто лишний набор кода, т.к. данные из него будут использоваться только один раз. Вопрос про низкую селективность индекса сначала не понял вопроса даже. Ошибся в том, что план запроса выбирает исполнитель, хотя он получает его от оптимизатора, который и переставит местами "b=? and a=?" (Единственный вопрос, по ответу на который можно было отличить джуна в SQL от того, кто сталкивался с оптимизацией запросов) Не смог просто перевести с английского "consistency" на русский "согласованность"??? Придумал, что нельзя изменить режим изоляции и режимы нужны для определения аномалий. Хотя в конкурентных запросах нет никаких аномалий, и нам важно иметь возможность по-разному обрабатывать конкурентные запросы. А через пару секунд уже утверждает, что режим изоляции таки можно менять. Решил, что запись в журнал транзакций происходит после записи в таблицу. Не ответил про оптимистичные и пессимистичные блокировки. Дедлоки - что-то из разряда страшной магии. А самое главное, что как только орм начинает генерить чушь, а это случается в 100% проектов чуть больше тех, что может написать один человек, так все эти знания становятся резко нужны, в отличии от send в генератораторе или мультипоточности @artemshumeiko Нет, я зарабатываю значительно меньше. Мало того скажу, что по собесам я не хожу и, скорее всего, сам бы не понимал половину вопросов и мычал бы в ответ из-за волнения. Прости пожалуйста, но мой коммент выше не связан с твоими ответами, он скорее связан с тем, что у меня подгорает от большинства разрабов, потому что у них сначала "Да знаю я это ваш sql, нафик он не нужен, орм все напишет", а потом им приходится сначала изучать sql, потом изучать orm, а потом сравнивать и удивляться как эта штука могла сгенерить такую фигню. Ведь sql это практически английский и написать на нем запрос иногда даже быстрее, чем заставить сгенерить orm нечто нормально исполняемое движком бд.
@Programmer91Ай бұрын
Что значит надо погуглить, прикол конечно задавать вопрос и самому не знать на него ответа ...
@ДаниилМальцев-ц9ш15 күн бұрын
Это имеет смысл. Интервьюер знает это, раз спрашивает. Но тут идея в том, чтобы человек сам нашёл ответ, а не получил все готовое. Ну и время интервьюера часто стоит дороже
@Programmer9115 күн бұрын
@@ДаниилМальцев-ц9ш На мой взгляд если уж выделил время на интервью, то будь добр провести его качественно, ну не обязательно давать глубокий ответ, а можно в двух словах обьяснить! А тут прямо когда человек в секундах растерялся, потом хихикнул и сказал надо погуглить, это уже говорит о том что сам не знает! И по поводу того что интервьюер всегда знаете ответы на вопросы это не так, работал в разных компаниях, и ребята которые работали со мной, проводили интервью) И сами даже не знали что спрашивать, и составляли список вопросов в GPT)
@МаксимАндреев-я1гАй бұрын
Эм, какой вообще смысл запуск cpu bound задачу через мультипоток если они вообще не дадут буста от однопотока
@artemshumeikoАй бұрын
чтобы текущий поток не блокировать синхронной задачей
@МаксимАндреев-я1гАй бұрын
@@artemshumeiko так из-за Гила в одном процессе работает один поток, два потока работают лишь конкурентно то есть по очереди, любая цпу задача заблочит процесс
@artemshumeikoАй бұрын
@@МаксимАндреев-я1г я знаю. Речь про маленькие cpu задачки
@МаксимАндреев-я1гАй бұрын
@@artemshumeiko ну может, но сейчас все равно в 3.13 можно отключать гил и запускать потоки параллельно, смотрел видосы что цпу задача на просчет 1000 значений в цикле даже быстрее мультипроцесинга
@agicotech26 күн бұрын
@@МаксимАндреев-я1г еще не скоро все библиотеки будут поддерживать этот экспериментальный режим, зато уже в текущий момент понятно что без гил питон станет медленнее в однопотоке, так как его заменят десятки других точечных блокировок
@romanyshyn631125 күн бұрын
Привет, вопрос по задаче N2: если запустить функцию вот так foo(1, hello="world") foo(1, hello="world") foo(1, hello="world") foo(1) foo(1) foo(1) То на этапе когда мы не передаем kwargs кэш не сработает поскольку в кэше будет ключ "1_hello_world", но по идее 1 должна быть в кэше, или я ошибаюсь?
@НельсонГорбачев24 күн бұрын
Реализация в первой задаче, момент отправки накопленного списка (строки 9-11) на 14:42 По моему там ошибка, нельзя сначала обнулять список а потом отравлять, строки 10 и 11 надо поменять местами (чтобы конструкция yield была над обнулением списка) По-моему должно быть так Или я чего-то не понимаю?
@НельсонГорбачев24 күн бұрын
А сиквенс от итерэйбл отличается тем, что сиквенс хранится в памяти целиком
@ВакаИвановАй бұрын
Здравствуйте, очень понравилось видео, подскажите где можно скачать такой интерпритатор, который вы использовали при собеседовании?
@hsqlk28 күн бұрын
А почему это все далеко от практики? Где исключения, где их обработка, где их прокидывания, где вообще документация данной функции( аннотация типов не полностью)
@alexanderw6615Ай бұрын
Ну это джун плюс
@ЧеркашинДмитрий-н3к16 күн бұрын
А интервьюер вообще сам шарит? Сложилось такое впечатление что чел просто по бумажке проверяет, видит что решение/ответ похож и все. Про погуглить вообще убило.
@gonnabecarrot92122 күн бұрын
так и есть.
@SoushiMiketsukami_SS13 күн бұрын
Первая задача решена неправильно в корне Зачем мы читаем файл по словам? Чтобы что? Чтобы не грузить в память кучу данных. А что, если файл из одной строки огромной длины? В чём профит? Нужно считывать файл посимвольно и йилдить, когда натыкаемся на пробельный символ (пробел, , etc)
@bel1fegor6587 күн бұрын
А чем многопоточка поможет при CPU bound задачах? Для этого есть мультипроцессорность. Многопоточность нужна для I/O bound задач.
@Slay-.-28 күн бұрын
такое решение на 1 задание подойдет? def readfile(filename, num): count = 0 res = [] with open(filename, 'r') as file: for line in file: for i in line.split(): res.append(i) count += 1 if count == num: print(' '.join(res)) res.clear() count = 0 else: print(' '.join(res))
@Rulezzz3Ай бұрын
При таком файле 1sdf 2sdfjh 3lkdwe 4asda 5xcv 6asdfweqr 7sadfsf 8sadasd 9trgrstg 10weqqwe 11asdfads 12xcxcxc 13dsgggg 14ff 15xcv 16df 17xc 18dfdfg 19dfssdf и таких вызовах print(next(rfbw)) print(next(rfbw)) print(rfbw.send(4)) print(rfbw.send(3)) код неправильно работает во первых он пропустит 7е слово а вместо вывода трех значений в последнем запросе он выдаст только одно
@ufc_uz627 күн бұрын
Привет Артем, хотел спросить вас в РФ берут ли на работу удаленно из других стран? у вас есть либо были такие коллеги? на позицию джуниор, спасибо
@antongerasimov2298Ай бұрын
Классно отвечаешь, видны не только хардскиллы, но и умение чётко излагать свои мысли, что встречается крайне редко, особенно у синьеров.
@rinputАй бұрын
Артем, привет! Крутое интервью, очень много для себя узнал полезного, спасибо! А ты не думал податься на работу в Европу/США? Имею опыт прохождения сотни собесов туда, там намного лайтовее спрашивают по хардам, а зп с твоим уровнем будет точно от 7к УСД +
@ntm1267Ай бұрын
А где в Европе столько платят? В Испании, Италии, Франции, Португалии даже 3000 уже мало где предлагают😅
@rinputАй бұрын
@@ntm1267 Да везде, собешусь на сеньера, прокачал свой линкедин, HR-ы сами пишут, зп от 5к
@Rulezzz3Ай бұрын
@@ntm1267 а как же Германия? Мемная страна: выучим питона и в Германию переедем
@johnyelasto29 күн бұрын
Да он зачем снимает ютуб, чтобы со своих курсов лутать больше. Зачем эти США
@DaNeo1822 күн бұрын
Почему собесы на Джуна легче чем такие?!?! 😂😂😂
@MARV1NАй бұрын
44:06 Был такой вопрос на собеседовании, тоже не додумался, а ответ такой в итоге сказали: можно обычный .txt файл
@NoName-eb5djАй бұрын
В таком случае можно использовать multiprocessing.Pipe(), либо os.pipe(). Таким образом родительский и дочерние процессы могут обмениваться между собой сообщениями в текстовом виде
@BluZeMenn29 күн бұрын
А что можно, нужно поспрашивать если тебя собеседует будущий коллега, в отдел к которому предполагается найм?
@VelmelloDMАй бұрын
@artemshumeiko, добрый день. У меня вопрос по поводу первой задачи. Строки 10-11 разве не нужно поменять местами? Мы ведь по сути чистим список и потом иелдим уже пустой список, что не удовлетворяет условию.
@artemshumeikoАй бұрын
я же указал на это на 11:54 :(
@vitaliypavliy783Ай бұрын
Вопрос по первой задаче. На 10 строке (words_stack = []). Разве мы не удалим наш стек с подготовленными словами для выдачи и не вернем пустой массив используя yield ? Нет ли тут ошибки?
@artemshumeikoАй бұрын
я же указал на это на 11:54 :(
@vitaliypavliy783Ай бұрын
@@artemshumeiko Пересмотрел, увидел. Первый раз в ускоренном формате смотрел, видимо пропустил этот момент. Спасибо!
@imadna5810Ай бұрын
Ну вот кроме задач (были попроще) +- тоже самое спрашивали на позицию бэкэнд джуна !
@artemshumeikoАй бұрын
Вполне возможно
@shkolniktv301728 күн бұрын
Ребят, а подскажите, как называется сервис, на котором они одновременно видят код и могут его редактировать?
@freestylerveevo27 күн бұрын
yandex code
@sdbcvf-p2e7cАй бұрын
А нельзя подглядывать в яндекс или в свои исходники?
@artemshumeikoАй бұрын
я не умею, приходится все учить :/ Вообще, подглядывать лучше сюда: solvit.space
@kotifnatАй бұрын
Мультипоток для cpu, сильно😎😎😎😎😎
@artemshumeikoАй бұрын
эм, ну вообще да) Для супер небольших задачек может подойти Это не Jun/Mdl собес, здесь дяди с опытом
@kotifnatАй бұрын
@@artemshumeiko можно пример cpu задачи, где питоновские треды помогут?
@kotifnatАй бұрын
@@artemshumeiko я так понимаю примера не будет?) Да и ответ аля «ты куда зашел, мальчик, здесь взрослые дяди» не очень то уместен, ибо весь контент, который у Вас на канале нацелен на новичков в основном. Супер сложных вещей для синьоров я не особо наблюдаю
@elvis110122 күн бұрын
А почему автор утверждает, что Django устаревший?
@ГенеральныйСуперинтендант16 күн бұрын
хороший узкий специалист потому что широта приходит с опытом уже
@harutavetisyan5683Ай бұрын
Почему senior ам не спрашивают про маниторинг asyncio, threads. Как оптимизуруют, как понимают, что нужно оптимизировать, как принимают какую архитекутуру приложения использвать, как работают join ы, планировщик
@bubu745816 күн бұрын
не знаю, братан)) Но, как по мне , ты не на один вопрос не ответил - и это бросается в глаза. Пудрить мозги, применяя различные техники ухода от прямого вопроса на тех интервью - такое себе..Уверен, ты не прошел дальше. А будь вместо этого скромного паренька(год в компании)) матерый технарь - он бы собес закончил минут через 5-7)) Дичь, такое еще и на ютуб выкладывать и байтить. И, да, я не программист от слова совсем. Иная сфера. Но, некомпетентность твоя режет глаза..блогеры, шмогеры...))
@artemshumeiko16 күн бұрын
от души посмеялся)
@nyakakun3398Ай бұрын
Артём, а есть возможность дублировать видео на rutube?У меня провайдер домсру, так вот эти чмони совсем ютубы тормозят, невозможно смотреть.
@artemshumeikoАй бұрын
все продублировано) Подписывайтесь - rutube.ru/channel/42453487
@romanvolozhanin4192Ай бұрын
А случалось попадать на чистую алгоритм сессию на собесах? кажется, это еще более безосновательно сложная часть в собеседованиях. И если про асинк, мультитред, процессы для себя я нашел причину спрашивать(и считаю не самым критическим),, То зачем мурыжать алгоритмами с литкодовского харда, я вообще не понимаю.
@artemshumeikoАй бұрын
да, я проходил 3 круга ада в Яндекс (успешно кстати), встречался с алгосами в VK и Тиньке Всегда норм справлялся, так как в свое время нарешал литкода)
@johnyelasto29 күн бұрын
Отличный фильтр на те места, где не надо работать
@annaarbuzАй бұрын
If smth is not None же. Сеньор куев. Инервьюер такой же. Инфоцыганы мать вашу