Подготовка к собеседованию на Python Developer
Менторы
Специалисты своей области, которые смогут помочь вам
Middle .Net Developer
Senior Product Manager
Middle Python Developer
Ведущий программист
Backend Software Engineer (PHP)
Senior .NET/C# developer
Middle DevOps Engineer | Tbilisi, Georgia
Middle C# .NET
Senior PHP-разработчик
Middle python developer
Каналы
Полезные Telegram каналы и чаты
Транскрипция видео:
в 4K да естественно Отлично вот у меня запуск трансляции вы в эфире написано вот сейчас написано Вы в эфире но ждем что барабанная дробь эти все ютуберские дела тяжело конечно без помощника который будет отвечать за все это все приходится делать самому на то и есть ютуберы блогеры профессионалы вроде меня ничего Мне тоже будет скоро целая команда я разбогатею и найму вообще всех Так ну что там где наш Где наши трансляция мне топ 5 зрителей все уже разочаровались и разбежались все просто ждут когда я
00:00:00 - 00:01:42
да Ну вообще качество соединения отличное пишут и 49 секунд нас уже по идее должны показывать сейчас я ещё раз захожу ждем пользователя лучанос 2145 может я не ту трансляцию создал Хотя нет всё правильно Шер и Так сейчас я вам закину в чатик Попробуйте зайти по этой ссылке о пошла жара все все супер супер Мы в эфире ребят Let's go все отлично Отлично Теперь я вижу нас я специально поставил такую задержку чтобы качество было получше друзья мы долго с вами Это я к зрителям мы долго с вами ждали вот этой вот нашей
00:00:52 - 00:02:31
любимой рубрики с проведением мог собеседования Давненько это истории не было на моем канале но но у нас появился замечательный добровольно с Данила который в общем с подачей моего друга Кирилла который был кстати моим учеником которого я менталил Кирилл пришел ко мне чуть больше Да нет год назад год назад с тобой общались про менторство и ты ко мне пришел апрель Ну считай год почти и мы с тобой общались где-то летом ты ближе к лету там в мае месяце начал ментаться Кирилл уже попал на работу Кирилла уже есть деньги Он пишет руками
00:01:54 - 00:03:25
вот Ну вот этими вот самыми покажи покажи да вот этими вот самыми руками Кирилл пишет код Кирилл сколько ты денег зарабатываешь понятно понятно Ну нормально на хлеб хватает Все классно Круто да это хорошо потому что твой начальник тоже смотрит наш Стрим сегодня и он просто подговорил меня чтобы я задал обязательно этот вопрос В общем что мы хотим сегодня добиться Мы хотим провести мог собеседование ученикам его ученика и посмотреть насколько собственно Чего стоит Данила причем мы не будем сейчас
00:02:40 - 00:03:54
метиться в какие-то вакансии Да там джун МИД там сеньор что-то ещё понятно что я вам уже говорил что я не верю что человек может вырасти до уровня больше чем джун плюс без коммерческого без коммерческого опыта Но мне интересно всегда посмотреть э на то А насколько человек глубоко копал ту или иную тему вот так что Всем приятного просмотра пишите ваши впечатления ваши пожелания способен если они с донатами в чат или через данейший на lerts ну а мы будем потихоньку начинать как мы построим наше общение во-первых Я знаю
00:03:24 - 00:04:38
что собеседование это вообще лютый стресс у нас все лампово во-первых Данила Спасибо тебе большое что ты вообще ты такой инициативный ты сам пришел начал меня тормошить и говорить то что Коля давай короче это сделаем эту тему Кирилл мне тоже тормошил когда Стрим когда Стрим Всё мы это организовали тебе вне зависимости от результата вообще респект тебе просто дичайший и я думаю мы просто посидим лампово часик Может быть полтора я поспрашиваю тебя по теории попишем немного кода и собственно посмотрим
00:04:02 - 00:05:15
Чего ты стоишь А Кирилл будет смотреть будет помогать возможно какими-то вопросами может быть какими-то ответами если не будет Данила отвечать Я буду спрашивать Кирилла хорошо Ну начнем с такого простого поскольку мы с тобой вот я первый раз вижу тебя в онлайне Я видел что ты сидишь активно в чате нашего сообщества вообще мы пересекались там мы общались там но всё-таки расскажи пожалуйста про то как ты дошёл до жизни такой что ты решил кодить на пайтон Какое у тебя образование работаешь Ты уже войтишки не работаешь
00:04:38 - 00:06:02
чего вообще хочешь Я хочу узнать твою мотивацию тебе слово [музыка] Мне 21 закончил Я колледж на финансовый кредит А сейчас поступил на первый курс материаловедения инженерной деятельности вот когда я пришел программирование не буду сейчас говорить Потом оценишь меня в конце хорошо Был наверное лет 18 в поиске себя и разные области пробовал и это не Первая Попытка у меня программирование быстренько закончилось а вторая Благодаря тебе твоим видео увенчалась успехом Спасибо я Просто мне всегда был нравилось такая
00:05:22 - 00:07:14
тема с решением задач математика все вот это и как бы я подумал что программирование что-то похожее это первое потом мне интересно что-то создавать свое Ну и программирование как бы прекрасно в этом помогает потом ну мне нравится Люди которые очень хорошо разбираются в каких-то сферах и я считаю что эти сообществе Это хорошо развито что люди очень глубоко интересуются темы отлично А если брать по направлениям то есть куда ты метишь чего бы тебе хотелось Ну вначале Я думал между машинами обучением и
00:06:18 - 00:07:54
смотрел вакансии всякие видео на YouTube и пришел к тому что да и многие говорили поначалу машины сложно Я думаю интересен там разрабатывать какую-то логику сервисов я точно знал что вот так забавно еще наблюдать при этом за лицом Кирилла как как он реагирует на слово фронтента как это Кирилл стригирился на слово frontent можно просто вешать какую-нибудь штуку которая будет не знаю вылезать на экран в тот момент когда надо просто делать знаешь как это надпись Триггер от большая вот на все твое лицо типа frontent и Кирилл
00:07:09 - 00:08:41
такой Триггер три хорошо тут чате пишут что Тристан пишет Да не лучший вперёд тебе желают Удачи хорошо в принципе с мотивацией всё понятно я Предлагаю перейти к технической части Ну поскольку всё-таки я здесь не для того чтобы прощупывать с разных сторон кандидата которого мы принимаем свою семью в компанию как рекрутер а проверить твои технические навыки давай начнём с самых базовых вещей язык разработки пайтон что-то про него знаешь почему ты выбрал его в качестве основного инструмента какие у
00:08:00 - 00:09:14
него есть достоинства и недостатки Ну выбрал Поначалу я его случайно и сошлось так что мне прям очень понравился Я продолжаю заниматься Ну это динамический со строгой типизацией язык интерпретируемый с со стадиями компиляции Ну вот хорошо разные добавить еще можешь кое-что Ну я скажу есть разные парадигмы там функциональное программирование процедурное добавить можно можно хорошо Что хорошего питончике нашем прекрасном что Ну хорошо вот ты сказал что он там с динамической типизацией это наверное
00:08:37 - 00:10:12
хорошо в каких-то случаях потому что есть возможность потом Ну то что можно в ходе чтение кода интерпретатором переменным присваивать разные типа данных OK допустим [музыка] если мы про негативные вещи поговорим что плохого есть в питомнике то что он вроде как считается медленным А какой питончик Вот смотри хорошо вот говорят что он медленный Вот про какую реализацию питона Мы обычно говорим Когда в принципе упоминаем типа это так хорошо если говорить про медленность питона Вот что ты думаешь что ты можешь вот я пришел к
00:09:43 - 00:11:23
тебе я тебе говорю Слушай давай мы короче на хрен нам брать питон давай возьмем для решения нашей задачи какую-нибудь живу или голэнг зачем что нам питон он медленный что-то мне ответишь при этом я хочу строить допустим веб-сервис Ну у меня два варианта в голове взять другую реализацию питона Только не знаю как оно подойдет не подойдет и можно писать модули на других языках наши и использовать его входе их может быть ты знаешь На каких языках можно написать расширение для питона и носи можно написать
00:10:48 - 00:12:23
Да хорошо хорошо Кирилл тебе есть может быть Что добавить Ну про плюсы Наверное я бы добавил потому что ну да он медленный что можно быстро писать приложение все что надо очень быстро Окей это важный момент я буду тут это у меня будет маленькая тетрадочка я тетрадочку чик-чик и в Продакшен просто и он еще в отличие от того же голланга да буланг это чей у нас Google если кто-нибудь но они надумают прикрыть свою лавочку то всего питон Нет это Народная так сказать творчество и все и естественно к нему прислушивается те кто
00:11:36 - 00:13:18
там пишут делает Вот это тоже большой очень плюс развивается быстро тоже И он ну это отлично мое мнение что он берет из всего самое лучшее так сказать Не всегда конечно как правило самое лучшее Мне нравится как он развивается Мамку админа берет Да шутки шутками есть еще момент связанный с синтаксисом который вы ребята как-то упустили это очень важный момент что он френдли и он кроссплатформлена кросс да что же такое Ну вы поняли меня кроссплатформенный язык значит что тут пишет Владислав Гришин ой
00:12:52 - 00:14:21
самого медленного питона Ну я не знаю что там медленное надо просто под каждую задачу Выбирайте свой инструмент очень хорошо было сказано что когда мы хотим быстро что-то накатать питон здесь подходит как нельзя кстати это ими Да важный момент вот Данил ты сказал что написанных на других языках например на сии это называется Если я правильно помню скомпилированные носи уже какие-то ну библиотеки может быть фреймворки может быть ты знаешь какие-нибудь которые насяк написаны Да да отлично отлично действительно и
00:13:36 - 00:15:11
поэтому там нету тех особенностей Которые тормозят тормозят питон в решении определённого рода задач кстати вот смотрите я такое любители часто всяких соревнованиях по программированию вот я вам скажу что-то они не видел что кто-то хохотонах писал на Джаве на Голландии все пишут на бетончике пример такой замечательный ну и за исключением есть эксклюзивные Но их очень мало но в основном денег не платят много хватит Да я еще почему я еще не там это такое Это очень интерес должен быть у тебя большой потому что Ну полтора дня
00:14:24 - 00:16:04
не спать и можно не пройти и такое себе но зато прокачивает Всем рекомендую кстати подписчикам прокачивать или я не шучу Кирилл очень сильно вырос за последний год просто вообще невероятный Я горжусь этим парнем Давайте вернемся к нашему собеседованию хорошо с питоном мы допустим поняли Давайте пойдём Господа дальше в питоне есть такая штука Как типа данных Вот расскажи пожалуйста Данил что Какие типы данных ты в питоне знаешь и чем они друг от друга то есть как можно разделить на какие-то группы
00:15:19 - 00:16:35
Ну есть изменяемые неизменяемые типы данных вот отличается тем что неизменяемые для того чтобы изменить нужно перезаписать Ну либо они Судя по всему просто не меня вот какие-то и знаешь неизменяемые типы Так ну числа строки кортежи объекты функции объекты классов генераторы хорошо Если мы будем говорить про кортеж мы можем каким-то образом изменить элемент допустим давай вот такую задачу рассмотрим У нас есть список есть кортеж и ты делаешь кортеж со списками Вот ты можешь что произойдет если ты попытаешься
00:15:59 - 00:17:47
изменить элемент внутри списка внутри кортежа внутри списка он поменяется внутри как ты это понимаешь то есть Давай мы с тобой пойдем в Яндекс код Раз уж мы начинаем исследовать нашу это всю историю Ребят я вам кинул ссылки перейдите пожалуйста в Яндекс код и давайте мы с вами немножко подпишем значит я хочу написать мой шайни я пишу май шани table И кстати я еще хочу сделать одну вещь Это сделать прекрасное просто Эдема подобное разделение экрана чтобы было видно и вас и то что мы будем писать Вот супер Значит
00:17:04 - 00:19:05
у нас есть Кирилл А ты где ты чего не заходишь Я кажется понял о чем писал нам Владислав Гришин мне кстати я вижу что вы пишете себе ой прилетел донатик он имел ввиду что питон сильно для ебанут операции а тут спрашивают Как доказать что Данила реальный человек а не Судя по всему не какой-то проплаченный господин Мне интересно да мне интересно В чем как это в чем мой замысел тогда чтобы сидеть вечером в 22:13 и вести Стрим в тот момент когда я могу наслаждаться своей жизнью вот я сейчас я просто не дочитал сейчас
00:18:09 - 00:20:01
я дождусь когда Тут во время трансляции это все появится очень интересен этот вопрос и мы продолжим Ну мы как это мы начали На расслабоне я прям не хочу пропускать это это сообщение все-таки задержка в минуту она делает свое дело Так и чего и что тут на экране ничего не появится что ли Ладно я если что а вот пришло значит они не ронка значит все тебе не ронка и ты не ронка слушайте А реально я Даниилу не видел кстати я не видел Данил может быть это не ронка но это очень круто класс Спасибо за Донат ребят значит что
00:19:15 - 00:20:30
Маша не Тапа У меня есть кортеж который содержит в себе список то есть Давай вот так вот сделаем 1 2 3 допустим да и у нас будет внутри ещё список четыре пять шесть и что будет если я обращусь к моей шее не тапу к нулевому элементу и к нулевому элементу и напишу туда например тест такой вот получится ли у меня это сделать или нет что да да изменится он изменится Да это абсолютно абсолютно правильный ответ А если я допустим вынесу То есть у меня будет Вот такой Корж с май допустим шайни лист и здесь будет тоже 1 2 3
00:19:58 - 00:21:42
я вот сюда вот Занесу My Shine лист дальше я сделаю вот это вот изменение изменится ли у меня май шайни лист Ну да да он действительно Извини изменится и пишут так размер шрифта побольше Да ребят сейчас вот Надеюсь что видно Хорошо если говорить про коллекции какие-то еще знаешь множество словарей хорошо этого я думаю нам достаточно как бы ты объяснил мне что такое множество Но это уникальных значений хорошо набор только уникальных значений Может ли у меня быть Вот такое множество Давай 34 допустим 5 6 и моей шее не My
00:20:57 - 00:22:38
Set Я назову Может ли Почему Потому что то есть еще и нельзя хорошо Это важно момент супер по поводу словарей у нас кортеж может являться ключом словаря все объекты которые имеют кэш объект тогда я правильно понимаю что вот этот майшай не топал может являться у нас без проблем ключом словаря еще раз вот смотри у нас есть мой шайни Тапа во второй строчке вообще без проблем я могу взять и сделать его ключом словаря правильно я тебя понимаю да Кирилл студию если вам есть Что добавить переменную у тебя очень правильное
00:22:01 - 00:23:49
рассуждение идет то есть ты проходишь заговорил и вот тут надо быть [музыка] Кирилл Посмотри на сам лежит Как думаешь почему нельзя потому что тогда будет считаться из меня как-то внутри Ну в общем смысл такой Что тебе нужно чтобы все элементы твоего кортежа были хешируемыми то есть они должны быть неизменяемыми и даже если ты напихаешь у тебя будет кортеж кортежей кортежей кортежи и где-то там на каком-то уровне вложенности у тебя будет изменяемый тип у тебя уже нельзя будет делать такой кортеж ключом словаря То
00:23:02 - 00:24:37
есть это тоже нужно помнить Хорошо если говорить про словари то что под капотом у питона Какая структура данных лежит Да расскажи пожалуйста Как работает хэш таблица Ну это получается [музыка] я тупой я не понимаю Вот у меня есть словарь есть у тебя ключ и значение my dick тут я пишут [музыка] Наверное мы Передаем функцию ключ это набор символов которые соответствуют какому-то ключу набор символов хорошо Ну Хеш функция это тоже набор символов какой-то который только определенным значению Окей Смотри Я интерпретатор я интерпретатор
00:23:59 - 00:25:45
питона я взял единицу подал ее на вход в хеш-функцию получил хэш И что дальше Вот я хэш получил и я хочу вот у меня есть значение BC Вот чем мне что мне делать что для меня какой физический смысл имеет Хеш И что я буду делать с этим ABC дальше присваивается Как сказать Ну мы подаем какое-то значение Вот например для поиска смотри стоп подожди стоп плывешь Давай проще у кого чайник Там кипит Да это это уже все это это пердак горит Кирилла в общем давай наводящий момент где хранятся вообще все значения на нашем
00:25:19 - 00:27:01
компьютере Ну скажем так есть вот а теперь я вот намекая вот есть Хеш и память вот что такое хэш по отношению к памяти да то есть Хеш по сути это на основе Хан понимаем куда мы должны записывать значение Знакомы ли тебе такое слово такое понятие как коллизии наслаивается друг на друга значения по одним и тем же значение и потом это ты уже потом это вот ты смотри сразу прям тебе говорю значит разделяй понятие я смотрю форму вопросов была про коллизии А ты начал уже сразу рассказывать про способы их обхода то
00:26:18 - 00:27:45
есть давай проблему вот в чем проблема вот ты сказал плохая Хеш функция на одно и то же на один и тот же ключ Много значений на один и тот же ключ Много значений ну я я такой ответ да так написано что у меня проблемы с сетью Вроде нет вроде не проблема ответь проще без всяких там уже сразу решение обычный простой Что такое коллеги что что должно произойти что произошло коллеги Там просто не надо вот это уже пахнет правильным ответом Так у тебя один и тот же слова продолжение не использовать просто
00:27:29 - 00:28:54
вот Окей смотри у тебя просто получается два одинаковых хеша по у тебя один тот же Хеш получается по двум разным ключам все вот и весь ответ Окей А теперь вот ты начал рассказывать вот как эти коллизии можно обходить какие-то способы знаешь Ну самый лучший способ это писать хорошую Окей окей допустим но потом второй вариант это вот я говорил про связанные списки потому что потом и за один превратится скорость Кирилл Если есть что еще добавить Какие еще есть Ну хорошо что сказал про недостатки линки листа потому что накладывается и
00:28:33 - 00:30:18
потом еще в поиск самих листах будет увеличиваться это не обычно не все знают что такое linked лист поэтому отлично вообще мне кажется так добавить добавить что еще коллизия Так я просто чатик читаю немножко выпал а еще и способов но как как еще можно самый такой простой вариант самый самый простой на популярный вариант Я могу ошибиться Тут пишут наводящие вопросы наводящий показывает супер Хорошо Окей с этим поговорили Давай немножко про сложности поиска всяких этих вещей если я хочу ставить объект в
00:29:34 - 00:31:16
словарь какая у меня будет сложность вставки извлечение Хорошо Окей если мы говорим про список Может быть ты знаешь Кстати что лежит в как реализован в питоне список Кирилл тебе не рассказывал это массив И там еще двусвязный список Я слышал тоже участвует в этой истории значит Окей если мы говорим про обычный классический список Какова сложность вставки в список в конец 1 для начала окей Окей ну поиск спрашивать не буду это уже скучно Давай пойдем дальше пойдем дальше по питону поднимаем градус нашего
00:30:40 - 00:32:22
безумия скажем так знаком ли ты с такой штукой как менеджер контекста Да ну это инструмент который в себе несет два магических метода Enter Exit OK как Смотри я тоже вот в тетрадочку это запишу Я потом все это резюмирую значит надо Вот я прям пишу надо начинать объяснение подобных вещей начинать объяснение с проблемы которую мы решаем то есть вот контекстный менеджер Ты должен представлять что перед тобой сидит такой же [ __ ] [ __ ] как я который ничего про питон не знает и ему нужно простым языком объяснить А почему Ну что это за
00:31:41 - 00:33:15
штука И почему ее стоит использовать в каких-то ситуациях но используется Но для открытия каких-то файлов или подключения какого-то чтобы после того как выполнился тело нашего контекстного менеджера произошло там автоматическое закрытие или любая другая сможем определить себе хорошо Давай напишем мы тут недалеко от кода ушли Приведи мне какой-нибудь пример работы менеджера Давай сначала посмотрим какое-то простой пример где просто используется менеджер контекста не нужно его писать Пока кастомным
00:32:32 - 00:33:48
Просто напиши какой-то простенький код который это делает Вот пока набросаю сейчас я вернусь через 30 секунд буквально Данила Короче смотри тебе спрашивает и мне классно вот то что интервью сразу понятно что ты понимаешь о чем говорится но надо простым вариант сначала общим таким отвечать как будто ты бабульки какой-то объясняешь которые вообще что такое Ваш компьютер этот и такой вот такая штука которая делает Ну типа такого но Старайся с этого начинать а дальше вначале мне говорил Отвечая так сразу
00:33:12 - 00:34:30
такое такое кстати мощь питона это магические методы тоже еще Кстати плюсом бетона Я думал сейчас уйду сейчас Кирюха будет меня там поливать гадостью всякие всякое я все слышал радио наушники это круто Так ну что у нас тут написаны использование менеджера контекста у нас уже 48 человек Ребята поддержите это видео пожалуйста лайком вот прям поставьте палец вверх потому что мне будет очень приятно это самое малое что вы можете сделать для меня во время просмотра нашего эфира значит вызов Open текст trs файл текст равно файл
00:34:09 - 00:35:35
Так ты у меня вопрос номер один ты закончил писать Давай мы с тобой немножко ну давай я буду тебе задавать вопросы ты будешь это комментировать вот что будет являться результатом вызова вот этого Open Ну открытие файла text.txt открытие файла Ну это Если на уровне системы А вот как ты понимаешь как вообще питон с файлами взаимодействует Ну в памятимся загрузит файл в память я не очень понимаю что ты имеешь в виду то есть вот у тебя Смотри у тебя есть питон Да это интерпретатор а есть файл который у тебя на диске
00:35:23 - 00:37:06
вот как они друг с другом дружат может быть безусловно безусловно может быть слышал про какие-то объекты которые позволяют нам взаимодействовать с чем-то смотри еще один совет если тебе задают вопросы из области точных знаний А я так полагаю то что это больше вопрос из области точных знаний нету ничего плохого в том что ты честно скажешь я там затрудняюсь ответить Я не знаю а возможно ты слышал об этом возможно нет питон работает через специальные объекты обвязки да как я их называю То есть у тебя результатом
00:36:25 - 00:37:57
вызова функции Open Кирилл Ты знаешь ответ на это то что вернет Open файл Какой файл байты чувак чувак Ладно хорошо В общем своему следующему собеседованию есть такой объект называется текст а ее в рэпер то есть для каждого типа файла что питон делает Вот ты ему сказал что Открой файл текст в режиме R У тебя есть питон есть операционная система где он живет вот на границе вот этой всей истории есть такая штука Как системный вызов и питон говорит братан Я хочу он говорит операционной системе или братиха там братиха Я хочу
00:37:28 - 00:39:15
открыть вот такой-то файл и что-то с ним делать Вот когда ты вызываешь на стороне питона всю эту историю там под капотом происходит этот системный вызов и тебе возвращается Ну тебе на самом деле не важно что тебе говорит операционная система Она говорит да Окей я вижу что ты через питон ко мне подключился Да я буду тебе предоставлять байты из этого файла да Если ты их попросишь и вот это вот функция Open она вернет специальный экземпляр класса вот для текстового файла это будет текст iowaper для
00:38:23 - 00:39:28
картинок там будет бинарный тип там для PDF тоже по бинарные В общем там много много этих типов всяких разных и соответственно вот здесь вот вместо Open в какой-то момент окажется объект текста и уже с ним будет происходить взаимодействие То есть это важно понимать что это питоновский объект Это не файл который у вас на диске это питоновская обвязка вокруг этого файла хорошо вот допустим мы разобрались что вот вернулся вот этот вот файловый объект Я вот здесь вот это сотру я напишу допустим сам файл
00:38:55 - 00:40:20
хорошо вот вернулся этот файл somon что дальше происходит Ну присваивается переменный файл потом мы можем делать какие-то манипуляции с переменной файл хорошо Зачем нам вот это выезд Зачем оно какое оно смысловую нагрузку несет ну я как бы понимаю то что она все вместе работает После выполнения какого-то какого-то тела виз Хорошо смотри я написал Я написал У меня есть какая-то переменная пускай с таким очень плохим названием А я здесь вот у меня сам класс какой-то кастомный Мой класс абсолютно кастомный
00:39:42 - 00:41:04
я пишу дальше Вот так вот вы с А и даже вот это вот да да абсолютно Абсолютно верно вызывает магический метод Метод Enter Да давай с тобой поговорим о том когда у тебя вызывается магический метод Exit Ну после того как тело виз выполнится хорошо Ну и я слышал что ты ни разу не писал кастомные классы я спрошу тебя Хочешь попробовать написать остальные классы с контекстным менеджером Давай попробуем написать Кирюха если что как это кирюх там красиво по телеку нас показывает лучше чем у меня разделено 4К четко
00:40:27 - 00:42:22
прикольно нет никаких может меня интернет на телефон Зато у нас уже 50 человек нас 50 человек смотрит в это позднее время ребята еще раз прошу поддержать лайком нашу наш эфир поддержите Даниил у меня такой вопрос Вот ты сказал что там я сказал байты ты сказал Нет там же Ну вот этот объект лежит и по сути да это экземпляр который присваивается какой-то там класс разные всегда и у него какие-то методы Но можешь Да я понял Короче если бы в которой ты прям можешь передать этот опыт сразу как переменную короче это же по сути я
00:41:31 - 00:43:03
возможно очень плохое слово скажу но это API для работы с файлами Ну типа до такого я понял да просто Либо некоторые не сразу обрабатывают она может и байты принимать и короче тут написал абсон 63 я вот прям вот пару секунд назад тебе хотел сказать про Linux системы Да там профайловый дискрипторы все остальное тут он пишет что я думал сейчас будет профайл дескриптор со стороны и пишет hertech декоратор контекст-менеджер еще есть Да можно через контекст-менеджер сделать Ну хорошо ты написал сам контекстмен Мэн Окей есть Enter и
00:42:18 - 00:43:38
Ну это самое такое самое такое бомжатское наверное исполнение ну подожди ну как бы Close Я думаю Был лишним можно было пас оставить О'кей для человека который пишет такой первый раз Окей хорошо Ну вот у нас Я предпочитаю писать такие кастомные классы примерно следующим образом во-первых я добавляю сюда у нас в энторе в экзите ещё переменные Exception и там что-то такое там если я не ошибаюсь по-моему вот так вот это всё есть но это суть Да дело не меняет я вот здесь вот пишу обычно принт значит вызов там вызов Exit то есть явно
00:42:59 - 00:44:36
чтобы если что можно было Прямо сказать что вот в какой-то момент происходит тот в какой-то момент происходит это и как уже написали ребята написали про то что можно использовать контекст-менеджер и что тут пишет такие три красивых мужчины тяжело смотреть когда в трусах горит Боже Вот это просто как это уфта Даня порви всех как тоже на Собес попасть спрашивает странник Сергеевич но я думаю что попасть просто как по предварительные договоренности когда-нибудь проведем еще такое видео совет хорошо
00:43:50 - 00:45:18
Да точно у нас задание возможно нейросеть Хорошо давайте давайте пойдем дальше что про контекстный менеджер поговорили Меня интересует такая вещь как компрессеншины слышал ли ты про них чем они хороши или плохие Может быть ты сможешь привести пример Ну хорошо тем что они в разных версиях питона по-разному конечно Но обычно если говорить например [музыка] может быть иногда быстрее чем обычный Ну это как плюс считается А минус то что она наверное менее читаем читабельный особенно если вложенные Окей Ну да переборщить действительно с
00:44:34 - 00:46:07
ним не стоит а можешь написать какой-нибудь Простой Простой списковое включение хотел еще по контекстному менеджеру такую душную фигню накинуть накинь а вот что будет если ты засунешь свой класс и в нем не будет Ну вопрос на самом деле очень скажет Где где Ну да он даже если будет если его не будет то есть Окей хорошо Да это будет список который на генерирует нам числа кстати какие числа будут в этом списке от 0 до 9 Круто молодец да да не надо все ты ответил правильно Расслабься не надо исправлять Правильно Неправильно
00:45:30 - 00:47:02
если ты сказал что-то неправильное тебе об этом скажет значит Михаил Борисов пишет Ясного Сиба У меня три часа ночи Я спать Всем добра Михаил сладких снов Надеюсь записи сможешь досмотреть что Идем дальше одна из моих любимых тем Это такая вещь как генераторы что-то может быть про них можешь рассказать что это за штука проблема решает так Ну могу две вещи сказать но есть тоже генераторные включения и но они отличаются например тем что в памяти они не будет создаваться например вот это первое А если говорить про
00:46:30 - 00:48:03
функцию как генератор то возвращает контроль над потоком [музыка] интересно интересный заход Хорошо напиши пожалуйста простой какой-нибудь генераторную функцию зашел сразу самую сочную Окей хорошо вроде и гладко и резко пошел Ну да Окей окей Ну хорошо это этот это утверждение но сразу тянет меня за язык Где же это можно использовать Окей супер туда мы еще сегодня залезем я думаю Давай мы поговорим про более приземленные вещи более так сказать православные Ну хорошо вызову какие-то значения OK Хорошо
00:47:22 - 00:49:07
хорошо по вызову какие-то значения вот если я сейчас вызову функцию что мне вернется супер А как получить следующее значение можно магический метод магический метод Next Это ты куда его собрался здесь К объекту генератора Попробуй приладить магический метод Next К объекту генератора Ну если я переменная присвоил значение Вот смотри ты сказал сейчас вещь Я хочу Окей давай Ух ты хорошо хорошо но ты здесь не присваиваешь магический метод Next ты его вызываешь да Я поэтому тебя и спросил про этот Я кстати никогда так не делал я не
00:48:26 - 00:50:14
знаю вообще наверное кот вызовется Я черт ее знает есть стройная функция Next ты можешь объект генератора передать встроенную функцию next и она тогда тебе вернет очередное значение из своих Ну давай тогда перепиши на обычный чтобы у нас было канонично супер супер А можно как-то в генераторную функцию значения передавать Ну да там есть метод по-моему он называется немножко по-другому с помощью сенда с Роу это откуда-то перекочевала как будто из Java сбежала Я кстати по-моему в питоне тоже что-то
00:49:34 - 00:51:00
есть срок но Кирилл есть где-то сроки Я даже не знаю Мне кажется это что-то откуда-то из может быть Ну и от Send кстати процент на заметку подписчика на собесе часто такой душный вопрос задают у вас тут выполняется генератор и как значение прям Ну три три из семи Вот 33 собеса из 7 Вас могут спросить блин А куда мне фото кинуть Ну вот я посмотрел у генератора есть Окей Ну ладно мы оставим Я верю тебе хорошо Это это включим моих смотрите я такой собеседующий который я не стыжусь признавать свои Дыры в образовании
00:50:32 - 00:52:22
Поэтому чтобы нет Надо будет потом освежить этот момент значит Яндекс код не работает трансляции Да не видим пишут так мы ничего не пишем пока ребят Все работает Вот я выделяю мы ничего не пишем пока общаемся Давайте пойдем дальше закрывает код и на телеке Да покинь её знаешь куда вот на Яндекс код выше подними плашку доната сейчас у меня короче у меня начал лагать ноут У меня не работает тачпад и я не понимаю что происходит всё кажется он отлагал Господи как я переделал так Да вижу вижу что трансляция повисла Это
00:51:29 - 00:52:50
потому что у меня повестку все ребят это да это у меня фантазирует мой ноутбук давайте мы с вами поговорим теперь про генератор поговорили есть такая штука Как итераторы Возможно ты про них тоже слышал и возможно ты слышал какую проблему они решают И что это за зверь [музыка] Окей окей так сейчас тут пишут что не видно в Яндекс коде новых строк они все нормально Все нормально У меня просто этот трансляция на телефоне чуть-чуть остается Все короче супер смотрите Значит ты сказал что итераторы это
00:52:10 - 00:53:38
паттерн проектирования это действительно так который позволяет оперировать объекты хорошо Ну Давай напишем вот я на самом деле я не очень понимаю вот где мне может итератор пригодится Ну хорошо Он оперирует объекты и дальше Вот где он не может заслужить какую-то службу можно свой написать например и так передавать Например можно аналог Ну можно написать аналог мапа я пытаюсь тебя вывести на то чтобы ты раскрыл проблему вот есть итератор и какая-то ситуация которая заставит тебя пользоваться именно там каким-то
00:53:10 - 00:54:47
кастомным итератором какая-то ситуация Ну я Какая именно ситуация я не знаю не было таких ситуаций хорошо хорошо Давай напишем с тобой какой-то класс назови его тумбочка Как будет на английском а ты напиши просто транслитом кстати интересный вопрос по поводу использования кастомных операторов вот сейчас мы как раз попробуем смоделировать вот у меня есть класс тумбочка и эта тумбочка она будет себя принимать Давай мы сделаем так что у нее будет Вот напиши тумбочку в которой вот Заодно и залупе сразу будем плавно переходить к
00:54:06 - 00:55:44
разговору вот тумбочка и спроектирую мне ее так чтобы у нее было допустим три ящика и она могла хранить в себе какие-то вещи вот так то есть каждый из этих ящиков хранит какое-то количество вещей неважно это будут бездонные и бесконечные ящики Понятно ли тебе формулировка задания Ну понятно я сейчас рисовать [музыка] мы количество и этих ящиков и количество вещей будем передавать в сами правильно ты Я предлагаю тебе Я предлагаю тебе в методе init просто инициализировать сущность для хранения своих объектов то
00:55:03 - 00:56:51
есть инициализировать там три своих ящика да там нормально все четко или вы молчите что-то мне затихли все хорошо Я получаю эстетическое наслаждение от того как кот пишется сама я сижу ничего не делаю Хорошо ты нарисовал Вот у тебя есть три вот этих вот бокса Окей если бы ты тебя спросил Я тебя спрашиваю какого типа будут эти ящики Вот теперь давай создадим экземпляр тумбочки вот я хочу чтобы у нас появилась трубочка уже прям живая прям объект так сказать инстанс тумбочки тогда еще перемены цвет надо Да ладно
00:55:58 - 00:57:18
это сейчас не важно нам главное принцип Да и что-то ты здесь должен передавать в таком случае исходя из того что ты объявил ну в списке Пускай я не против хорошо годится А теперь я хочу чтобы объект твоей тумбочки розовый Ну и вообще любые объекты тумбочек можно было итерировать то есть перебирать цикле for вот что будет сейчас если ты экземпляр тумбочки отдашь в цикл for ошибка может быть Помнишь какая наверное что английский Да он скажет что но ты [музыка] смотри [музыка] Вот здесь почему я тебя попросил этот
00:57:21 - 00:59:08
пример набросать потому что ну и для всех зрителей я обращаю внимание что вот сейчас вот я задаю такие вопросы чтобы Понять насколько человек понимает именно тему что чувствуется что человек у него есть знания и они концептуально правильные но достаточно обрывочные и чтобы понять Понимает ли это человек я задал вот этот вопрос с написанием кода У нас есть тумбочка и есть у него метод и метод Next тумбочка будет являться чем то есть это будет итератор либо италируемый объект или другое нам прилетел Донат Спасибо ребята
00:58:57 - 01:00:29
огромное за вашу поддержку там без пожелания и Без вопроса и тренируемый объект хорошо идрируемый объект вот сейчас у тебя будет получаться Так что вот я буду твоим интерпретатором если ты передашь объект тумбочки в цикл фору у тебя будет опять падать ошибка итерации он не сможет его проекторировать Он увидит что Да есть метод но он по какой-то причине проигнорировать не сможет Тогда смотрите Стой давай вот смотри я не хочу чтобы ты играл в угадайку это будет не гуманно Давай поговорим про то что цикл for Вот у тебя есть цикл for
00:59:48 - 01:01:05
Давай зайдем с этой стороны как работает цикл for под капотом Ну вызывает методы вот смотри вот красавчик Вот давай так вот ты говоришь про метод скажи пожалуйста вот Чем отличается Ну точнее Чем отличается А вот как бы ты мне объяснил что такое вот это вот и что такое просто вот это вот это вот такая штука ну выше наверное магические объекта ниже функция Вот что да Супер что вернет вообще Для чего функция это вот на 45 строчки для чего она нужна для возвращения так так Я бы хотел сказать что это неправильный
01:00:29 - 01:02:11
ответ просто я знаю что император это тоже черт подериет иторируемый объект но Смотри кирюх ты хочешь что-то сказать я могу сказать да да скажи скажи к вопросу который часто тебе задавал когда смотрел твои видосики почему тут блин Return Self это тебе подсказка там уже люди люди видимо смотрели мои ролики по итераторам либо ходили на лекции уже люди [музыка] Кирилл точно сможет Почему Ну я знаю что это должен сам себя возвращать экземпляр свой экземпляр это Это просто вот это вот как раз про знаешь
01:01:34 - 01:03:19
вырванные из контекста вот эти обрывочные знания итор итер метод кирюх но ты можешь это сказать если хочешь или я тогда продолжу короче вот у нас есть тумбочка для чего давай вот так я буду задавать наводящий вопрос Скажи пожалуйста вот Для чего метод нужен [музыка] я знаю что он вернет объект этого объекта будет абсолютно точно Абсолютно верно но тут смотри В чём история когда ты говоришь про то что паттер проектирование у тебя итератор Это стандартный паттерн проектирования которая ты сам этого не
01:02:46 - 01:04:09
сказал ты сказал что это паттерн проектирования благодаря которому можно итарировать объекты это звучит ровно так что этот паттерн проектирования помогает итерировать какие-то другие объекты мы не говорим сейчас про то что он может там себя как-то италировать мы говорим про то что он помогает италировать другие объекты и может быть может быть ты знаешь вот если я напишу Вот такой список и сделаю вот так Принт и Тор от L что вернется мне на печать но объект итератора О смотри То есть ты вернул объект итератора То есть у тебя У
01:03:36 - 01:05:15
тебя вот теперь давай разбираться У тебя есть список что такое список это итерируемый объект а итератор у него это вообще отдельная история то есть они как будто бы связаны каким-то очень хитрым способом И когда я тебя попросил написать тумбочку я сказал что я хочу теперь ее перебирать первый вопрос который было бы прикольно задать это Каким образом я хочу чтобы мы эту тумбочку перебирали и здесь метод Интер должен возвращать итератор для перебора тумбочки Я тебе больше скажу если ты вот здесь напишешь
01:04:27 - 01:06:02
Я подумаю сейчас вот так вот смотри вот я тебе скажу Так что если ты напишешь здесь вот такую штуку у тебя тумбочка уже будет итерируемым объектом и метод Питер будет возвращать Generator object который является Вот давай давай такой вопрос сейчас смотри сейчас пока не думаю про тумбочку вот генераторы есть есть итераторы вот в чем и между ними разница как ты это понимаешь что-то про это может быть слышал генератор что Да можно Ну генератор он скорее отличается тем что его можно в одну сторону высасывать
01:05:14 - 01:06:55
и он как только дошел до конца своей работы он такой говорит кря и вот здесь вот вот этот он исключительно для того чтобы нам было много кода не писать и если я сейчас засуну розовую тумбочку твою цикл for Как ты думаешь что будет напечатанный экран если мы простой цикл Force принтом напишем что будет напечатанный экран на тумбочке Давай еще раз я напишу прям конкретно for ел in розовая тумбочка розовая Принт ел Вот так вот Коль подними немножко Да вот видно будет хорошо Ну я два варианта Ну наверное каждый по
01:06:06 - 01:07:50
отдельности будет напечатал хорошо Ну вот смотри что будет напечатано Ну по отдельности где у нас методитер хоть какой-то упоминание из списка что у тебя вот если еще раз Смотри ты отключаешь мозги от тумбочки Ты смотришь только на метод он тебе вернул генератор вот у тебя все у тебя теперь вот здесь вот после того как ты вызвал итер А ну так генератор будет Ну смотри вот здесь у тебя вернется генератор в конечном итоге у тебя цикл for на каждой итерации будет вызывать получение следующего значения Какое
01:07:05 - 01:08:24
следующее значение вернётся из вот этой вот из этого Абсолютно верно Да ну ты понимаешь почему NAN или нет Наверное потому что юг ничего не возвращает Ну да я думаю что тогда нам тему с операторами лучше дальше не копать кирюх Это тебе на домашнее задание с Данилой позаниматься итераторами вот мы кстати вопрос так на самый главный первый не ответили вот самая Зачем мне вот мне сейчас самому интересно я вот могу сказать что ребята подписчикам что вы будете очень много писать кастомных контекстных менеджер Но если вы будете
01:07:50 - 01:09:24
писать хороший красивый нормальный код то это очень много я скажу что я кстати Нет я писал пару раз писал писал все-таки да это вообще прям топчик особенно всякие подключения между микросервис Ну короче будете часто писать контекст менеджер Да Ну вот вот итератор я вот прям думаю прям чтоб круто и удобно было И вот ну такие только академические примеры мне в голову приходят и вот как-то не вижу прям крутого применения чтобы мне прям нравилось я тебе скажу я тебе скажу это может быть ленивая подгрузка
01:08:46 - 01:10:07
каких-нибудь данных то есть там придется в некоторых ситуациях писать кастомные тараторы [музыка] запрос наверное часто Может поэтому Ну да Так значит итератор дает уже существующий В каком-то контейнере значение генератор вычисляет новые значения на лету Да это это да это Это справедливо Это справедливо так и есть хорошо Значит это отлетает на домашнюю работу вам ребят Данилой я пишу значит пройдем дальше по всяким атором декораторы Теперь давайте поговорим про декораторы Вы знаете мне хлебом не
01:09:26 - 01:10:56
кормить Дай поспрашивать про декораторы что-нибудь Данил ты знаешь про декораторы зачем они нужны и что это такое Ну в питоне там есть сахар А есть как паттерн плюс сам декоратор это функция высшего порядка нужно принимать себе другую функцию OK суть в чем хорошо это сахар это функция высшего порядка Давай начнем с проблемы То есть что мы зачем нам это может быть Но для того чтобы как-то модифицировать Почему я могу переписать Почему я не могу дополнить руками взять например чтобы группа каких-то функций им нужен
01:10:14 - 01:12:01
общий функционал дополнительно общую функционал Окей Я принимаю этот ответ и Давай с тобой может быть попишем простенькие какие-то декораторы Давай попробуем набросать с тобой декоратор который будет считать время выполнения функции поднять надо опять немножечко Яндекс код так я поднял уже Сейчас она у тебя трансляция просто запоздалая поэтому я знаю Ну просто сейчас вы будете писать там будет уходить я наперед Я же в будущем получается трансляция немножко в прошлом и вот всё как это всё под контролем
01:11:10 - 01:12:35
Что там у нас так быстро пешка действительно [музыка] Окей окей Все Мне нравится все кроме одного момента 57 строчке почему ты решил импортировать внутри функции а чтоб вверх не идти в начало файла наверно поэтому сейчас там Данилы Семейные дела Я кстати также делаю импортирую просто написал Если переносить не просто если в этом есть там Тайный смысл какой-то Я бы хотел его услышать если тайного смысла нет тогда Давай исправим это Давай вынесем это А почему Как ты думаешь почему меня это смутило
01:12:15 - 01:13:51
а я все понял потому что он будет в каждой функции Абсолютно верно Да хорошо супер Ну давай предположим что Там где-то сверху это есть Давай напишем с тобой еще один декоратор Ну классический абсолютно классический параметризованный ретрой декоратор который будет Значит мы можем задавать количество ретраев для функции и в случае если функция упадет больше ну скажем так разные этим ретрам количество раз чтобы у нас падало исключение если в процессе ретраев всё-таки результат у нас получилось получить чтобы мы его возвращали
01:13:49 - 01:15:17
результат конечный Ну смотри не последний у нас с тобой есть много функций декоратор для самых ленивых по-моему либо даже есть да там есть Ну можно было Ну хорошо Если хочешь перепиши этот зашкварно Мне кажется такие либо ставить мне кажется проще Так что там с кодом [музыка] [музыка] да их [музыка] Так давай посмотрим функция здесь арки кварки хорошо старт про Старт окей она будет у тебя и считать и смотри Return res у тебя декоратор одновременно будет здесь и время считать и результат получать я не очень понял зачем тебе тут
01:14:36 - 01:16:47
списковое включение но я просто сказал что мы должны будем вернуть результат вот результат Хорошо работаете у тебя функция одна ты декорируешь одну функцию тебя будет Вот я скажу сейчас что смотри давай так Попробуй рассказать что у тебя в шестидесятой строке произойдет вот Ты запускаешь за декорированную Я просто [музыка] предположился Может там у нас какая-то функция не знаю нам главное она либо выполнилась либо упала с ошибкой Но я могу переписать Просто у тебя получится что он будет 10 раз вызывать
01:16:25 - 01:17:55
эту функцию Да а нам нужно чтобы если вот успешно выполнилось чтобы он вернул результат если упала ошибка чтобы мы ушли на ретрай попробовали еще раз но если у нас количество ретраев равно n чтобы мы возбуждали Ну прокидывали исключения рез равно фанк теперь он у тебя будет если у тебя функция 10 раз Ну скажем так если она у тебя успешно выполнится ты уйдешь на следующую итерацию То есть у тебя функция написала 5 раз она пять раз пройдет и 5 раз у тебя есть будет перезаписано если мы полагаем что один и тот же
01:17:23 - 01:18:53
результат не потому что мне нужно сделать смотри я тебе расскажу на примере какого-то боевого применения предположим ты написал клиента который у тебя пытается законнектиться к серверу и Бывает же всякое Ну там тайм-аутер может упасть что-то еще он будет пытаться переконнектиться вот у тебя же твой клиент который запрашивает данные из сети в случае если он эти данные успешно получил Он второй раз уже за ними не пойдет согласен ну то есть он уже их получил уже А я понял вот тоже самое здесь а у тебя получается что
01:18:20 - 01:19:41
10 раз будешь ходить я просто не так задание в чате еще про генераторы договориться не могут холивары ребят почитайте на хобре мою статью называется генераторы для самых маленьких еще одна статья которая написана в соавторстве с моим бывшим коллегой итераторы для самых маленьких там мы все четко расписали у тебя короче Какая задача перед тобой стоит функция выполняется если нужно выполнить еще раз и количество выполнений Ты передаешь попыток Да ну сделал такую задачку ты писал retroen кстати так и назывался ретро декоратор
01:19:00 - 01:20:42
который запросы на пиху там отправлял вот такое тебе надо сделать Смотри да подожди ну релакс Ну Расслабься Ну все же нормально все хорошо Я тебя у тебя написано нормально но с ошибкой тебе просто нужно одну строчку кое куда переместить я задам тебе наводящий вопрос Если ты захотел я понял Ну у тебя во вот теперь да вот теперь хорошо супер и я бы тут еще на самом деле убрал тогда второй рейс Return вот эту историю нужно И вот здесь я бы Exception убрал для того чтобы он Смотри у тебя еще одна вещь тут не
01:20:02 - 01:21:53
соблюдается у тебя сейчас в случае если Ну да ты перехватил ты возбудил исключение А тебе нужно уйти в ретрай тебе нужно доработать этот момент я понял а сейчас все я понял надо разобраться еще сейчас надо Окей я не буду прикапываться к пеп-8 но я бы не делал тут такого большого количества строчек Вот но это совсем уже надо быть душнилой чтобы прикапываться вот проекта который требует и выполнение джоинов и с теми же самыми данными Ну какое-то не структурировал Как так я не давал [музыка] опять блин кто-то торренты у меня тут
01:21:05 - 01:22:59
дома качает ой [музыка] тут уже спорят за N -1 Зачем Минус один Количество попыток Логично кстати еще вопрос можно будет докинуть но я докинул бы какие-то типы нереационных Ты знаешь Сейчас отвиснет я не знаю чтобы все отвис Кстати по моему идет трансляция Вот это так от меня докинуть вопрос можно супер так возвращаемся к вопросу если у нас есть потребность выполнять и те задачи которые для реляционных баз характерны и те задачи которые для нереляционных Вот что ты будешь делать в рамках одного проекта какую базу ты
01:22:33 - 01:24:24
выберешь Ну если Наверное реляционно это гнилой вопрос на самом деле но будь готов что тебе могут его спросить тут момент такой что тебя никто не ограничивает ты можешь обе базы использовать сразу это я думал про это не стесняйся но не стесняйся сбила то что прозвучало про то что если ответить Окей хорошо базы данных у нас там есть Такая сущность как индексы можешь рассказать что это такое зачем нам это нужно Ну это структура данных которая позволяет получить быстро доступ каким-то [музыка] и допустим структура данных хорошо
01:23:35 - 01:25:27
допустим у тебя есть таблица она называется users и там у тебя User ID тебя username created Date и updated Date смотри у тебя в эту таблицу тут я напишу поля Fields значит Search searching значит я буду делать очень часто мы мало пишем много оттуда читаем из нашей таблицы то есть смотри пишем мало очень мало читаем очень много и ищем мы по таким полям как допустим User ID Ну нет это я уже буду спойлерить всю историю я понял Короче я хочу чтобы ты проиндексировал Я хочу чтобы ты проиндексировал мою таблицу и вот у меня
01:24:50 - 01:27:06
там будут такие запросы которые там чисто по User ID и по User ID Create вот какие-то индексы предложил бы навесить Ну на User ID если мы его сделаем пока он сам автоматом станет Да это действительно так молодец если у нас username будет не уникальный вручную сделаем индекс если захотим Окей но нас интересует меня допустим поисковый запрос User ID там используется Create [музыка] так еще иди хорошо наверное [музыка] [музыка] B3 [музыка] Ну по отдельности он тебе не выстрелит он выстрелит если у тебя допустим много
01:26:07 - 01:28:02
комбинат много запросов [музыка] Как расшифровывается кстати вебинар бинарное дерево а Ты что Что же вы все это такие Кирюха Как расшифровывается Почему нет потому что сбалансированная balanced [музыка] это кстати на этом на этом на этом сыпется даже сеньоры очень часто типа баланс 3 все люди такие Пуф делают Пуф окей Окей хорошо Ну вот мы можем в нашей ситуации взять и проиндексировать все колонки здесь надо то можем Ну Хорошо сказано если ты говоришь про то что чем расплачиваемся у нас мало записи Да
01:27:30 - 01:29:19
можно Потому что отлично отлично Я поэтому и сделал акцент чтобы мало пишем здесь вообще на пользу мы только памяти больше выжирим А вот если начнем еще и писать много тут надо уже будет с этим работать может быть ты расскажешь про транзакции что-то если ты слышал про них Извини пожалуйста это тоже сейчас такая жизнь Ну это группа группа запросов которая выполняется единая томарная пачка после Здорово слово атомарность прозвучало но мне очень нравится и что оно означает для нас Ну это просто соблюдение одного из
01:28:39 - 01:30:08
принципов весит То есть то что группа запросов будет если будет выполнена вся без ошибки то записи пройдут Если возникнет ошибка то все записи откатится Окей хорошо слышал ли ты что-нибудь про уровни изоляции транзакции может быть это что-то третий принцип Да ну это получается работа транзакций так чтобы не влияли друг на друга есть там разные уровни изоляции это получается ретанкомитет камитет репетита говорит и стерилизуем да по порядку все Все окей Все супер вообще молодец просто вот тут красавчик я прям похлопаю даже
01:29:35 - 01:31:16
так по базам что еще может быть ты слышал ну нормализации мне интересно Я хочу про оконные функции слышал ли ты Я слышал но я не пользовался Я знаю что там они создают дополнительную колонку с какими-то значениями и там можно в оконных функциях использовать например агрегаторные функции и там еще какие-то два типа я тоже не использовал оконные функции это больше для аналитика функции смещения и сейчас еще какие-то там короче ранжирование что-то такое типа вот не было интересно послушайте Да насколько
01:30:29 - 01:32:04
Данила Данила глубоко копал в SQL OK Я предлагаю вернуться немножко к питону Я думаю последнее что я хотел бы спросить прежде чем дать фидбэк это Гил наш Святой питоновский что ты про него слышал какую проблему Он решает и может быть какие проблемы Он создает Ну блокировщик интерпретатора чтобы он в одном потоке работал ну вот проблема в том что единый момент времени у нас работает только один поток решает проблемы То что он только небезопасный сборщика мусора переменные могут быть тогда давай поговорим про сборщик мусора
01:31:16 - 01:33:04
Может быть ты знаешь как он работает вот Да он получается проверяет счетчик ссылок объекта если он равен нулю то он удаляет этот объект еще там есть сейчас я вспомню поколение Что есть Чем дольше объект живет тем меньше проверяется супер Вот это ключевой момент слышал ли ты про циклические ссылки всячески Ну я слышал но я плохо вообще ничего не знаю но я догадываюсь наверное никогда мешают Да тебе Кирилл подскажет сейчас уже не мешает Ну когда объект ссылается на себя он временно удаляет всех из памяти
01:32:12 - 01:33:46
проверяет и потом ну короче решает проблему сборщик мусора удалением всех этих короче он смотрит разницу типа Осталось что-то Не осталось вот да Так он борется с циклическими ссылками Окей сказал Да ну так и есть Окей ну и так очень быстро по поводу вот гиллу у нас там один поток вот если мы говорим про синхронность Что за зверь такой зачем она нам нужна и что так все так и требуют везде почему она так важна Ну не везде хорошо в вебе Ну это конкурентное выполнение задач используется для операции
01:33:02 - 01:34:43
позволяет ускорить процессы работы нашей программы за счет чего они конкурентно выполняются задачи которые помещается Ну я написал туда Какие бы ты говоришь Какие еще бывают а чем они отличаются Вот именно физический смысл это вход-выход то есть запрос например какой-то прилетел Вот это вход и потом мы отдаем какой-то ответ вычисления какие-то делать хорошо А почему вот мы задачу не можем кинуть на лук Ну хорошо я там накидался по лбом задач на лупы что дальше почему они вдруг не будут там выполнены они же будут там выполнены
01:33:56 - 01:35:36
наверняка но они не будут конкурентно выполнять Почему за счет чего он затачи будут конкурентом выполнен потому что вычислений требуется но я предполагаю что вычисление на процессе Ну у тебя когда у тебя основные расходы на что уходит на то чтобы принять запросы и дать ответ все Ну и сказать выполнять просто и все а я понял Типа на ожидание У нас у нас много времени уходит на ожидание Окей я думаю я не буду глубже здесь копать Я думаю я разблокирую я думаю я накидаю тебе ссылок на наши закрытые лекции по асинхронке которые мы
01:34:58 - 01:36:48
с подписчиками уровня ментор раз в неделю примерно мы короче разбираемся какая библиотека используется что какие-то кучности основные инструменты это асинг и ну самое основное даже не сущность не-не-не Ну типа он еще одну сущность важно не нашел Окей я на букву нет А по моему назвал или он сказал тоски и я там следующий душный вопрос Когда назовет мне еще одну сущность основную которая Что такое вообще сингх Ну короче не вопрос отличие sing Def это функция которая возвращает корутину Вот не надо
01:36:06 - 01:37:54
Ну да от отличия картины от тоски принципиальное Какое на то что она таска находится в ивентлупе а картину можем в ней по сути это корутина которая уже находится [музыка] Нет ну корутина это вообще у тебя таска это футура проапгрейдженное То есть у тебя греет Task Ну это короче обертка вокруг футуры ака рутина она они общие общего родственника имеют сверху но они по разным ветвям развития пошли это как раз вот в той умные книжки про которую ты сейчас думаешь Вот и у тоски есть еще удобные для того чтобы ей управлять можно взять
01:37:30 - 01:39:14
ее заканчивать например это удобно Данила занимается Но я могу там от себя тоже так Данил Давай говори если хочешь что-то еще набрать Я бы чуть за веб хотел поговорить У меня есть один вопрос за который мы спорили с Кириллом спрашивает Расскажи мне может ты слышал про Айс джай wsj как это вопросы хотел задать зрители мы сговорились я специально забыл этот вопрос на самом деле нет вообще Суть в том что Ну то что я читал интерфейс между приложением сервером И вот я хотел спросить такое кардинальное отличие между
01:38:23 - 01:40:00
приложением вот мы за это спорили с Кириллом веб-приложение Там просто обрабатывает какие-то данные а веб-сервер именно подключается соки там и типа их слушает и потом отдают какие-то данные приложения спорили мы из-за того что Ну я говорил что висит же это всего лишь протокол вот я за что-то встал это не не Сервер это просто тогда для общения питона система просто вот я хочу услышать разницу в сервер от приложения Вот именно уходит Я вообще об этом ребят никогда не думал это примерно для меня такой же вопрос
01:39:40 - 01:41:05
как Чем процедура отличается от функции типа что одна что другая что-то делает если мы говорим про веб-сервер для меня веб-сервер это сервер где я разворачиваю свое приложение и что я там буду делать это уже я могу туда написать Хоть кучу всего Вот именно Ну просто я вот читал и выписали корни корни э-э Ладно Может я неправильно понимал Тогда о чем Кирилл говорит не Кирюха сказал хорошую вещь по поводу того что sji W это протоколы и у нас Ну вот и они связывают между собой веб-серверы приложения У нас есть реверс
01:40:33 - 01:41:59
прокси-сервер например значит Ой блин извините я все я допер Короче у нас есть допустим X который является реверс прокси сервером который принимает запрос Извне и дальше он форварде он не может их напрямую в питон за форвардить потому что питон Ну он не сможет нету них общего общего связующего звена и придуман вот этот вот это прослойка Аист джая для синхронных э-э если мы хотим асинхронке и wsj сервер который между ними для э ну синхронной работы соответственно всё это просто если мы говорим асджа WJ то это
01:41:19 - 01:42:42
протокол Но если добавляем слово сервер то это по сути прослойка которая реализует этот протокол все вот я вот это и говорил Тогда можно просто неправильно в тот момент поняли друг друга протокол через который питон не про выезжаю говорю Сейчас ладно это другое барабанная дробь скажу сколько ты занимаешься Я хочу просто чтобы меня Оценил хорошо по поводу фидбэка я все записал первое что очень просто у тебя очень хорошие софт скиллы ты молодец ты не не проходишь собеседование молча ты не закрываешься с тобой приятно
01:42:00 - 01:43:21
взаимодействовать как мне как собеседующему и я бы докрутил градус твоей смелости чтобы ты всё-таки ну не боялся делать какие-то предположения даже если вот ну тебе там тебе что-то кажется ты можешь сказать Я думаю что и вот начинаешь развивать мысль Не нужно бояться и что бросается в глаза в негативном ключе начиная объяснение с проблем там где это возможно я тебя спрашиваю по декораторам Ты должен говорить что может возникнуть такая вот ситуация когда нам нужно для многих функций там расширить их
01:42:43 - 01:44:01
поведение не меняя их суть то же самое с итераторами ты можешь сказать Вот я написал кастомный Класс Я хочу чтобы его перебирали чтобы объект этого класса можно было перебирать Я хочу написать определенные правила для этого Как я могу сделать итератор мне приходит на помощь при этом подкреплять это не только академическими примерами но и допустим какими-то продакшн рейде скажем так ситуациями то есть как я сказал Вот когда мне про итераторы спрашивают кастомных где это используется я могу сказать Ну вот могу
01:43:22 - 01:44:21
ленивую подгрузку организовать По специальному какому-то правилу Значит тоже касается в принципе любых вопросов которые Ну тебе собеседующие задают если можно плясать от проблемы которую ты нарисуешь Ну это лучше для тебя опять же потому что ты не будешь терять нить поведение не повествование ты будешь прям четко раскладывать где-то чувствуется что ты заучил прям явно заучил например вот этими же с этими же итераторами да то есть глубокого понимания нету Есть что-то обрывочное и это нужно приводить
01:43:51 - 01:45:11
в порядок значит соответственно у меня здесь итераторы вынесено как в bulletpoint то что его надо прокачивать логика работы декоратора то есть смотри что такое декоратор ты понимаешь то есть у тебя нет проблем с тем чтобы накидать каркас Даже если он параметризованный ты не путаешься с тем куда параметры функции прокидывать куда саму функцию куда параметр для декоратора но допустим у тебя параметризованные ретрай вызвал затруднение то есть по самой бизнес-логике который по самой логике которой мы там пытались запрятать Вот то
01:44:33 - 01:45:45
есть нужно на мой взгляд решать больше ну это кстати тоже про конечно очень сложно сказать что это прямо алгоритмическая задача но что-то в этом есть опыт наверное дальше надо больше примеров я сказал и где-то ты ты такие сложные начинал ответы на вопрос давать когда я услышал что ты начал ты про генераторы зашел Ну ты просто с такой пушкой по ворам по воробьям типа зачем генераторы короче позволяют возвращаться там в главный поток что-то там и такое асинхронность хорошо Хорошо это Окей Мы это зачтем мы примем это во
01:45:09 - 01:46:45
внимание Но это очень странно с этого начинать то есть надо начинать с каких-то более простых вещей Вот про менеджеры контекста Я бы ещё посмотрел именно про всякие файловые вот эти вот там штуки там посмотреть что допустим Когда вы вызываете Коннект какой-то базе вам объект Connection возвращается вы его отдаёте в контекстный менеджер у вас тоже там какая-то логика происходит то есть контекстный менеджер тоже надо уметь писать то есть прямо вот взять и писать какой-нибудь вот просто там заглушки ПАЗ А чтобы там Ну
01:45:57 - 01:47:11
какая-то вот может быть даже условно там с принтами какая-то условно полезная логика Мы не успели сегодня там по базам поговорить какие-то сквер задачки порешать может быть мы сделаем еще один тур где мы все вот это вот раскроем всю эту историю в целом если рассматривать допустим по я возьму по десятибалльной шкале я скажу что ну где-то на 6 я тебя оцениваю на 6 по совокупности ты что-то хотел сказать относительно чего Ну относительно вот есть 0 Полный ноль чувак который вообще ни на что не отвечает и 10 это Боженька которая
01:46:34 - 01:48:05
просто По всем вопросам вот так вот проскочил То есть у тебя такая середина середина ближе к плюсу потому что за счет опять же софтов за счет того что опять же у тебя есть такая хорошая особенность даже если у тебя есть обрывочные знания ты во время собеседования ты из этих обрывочных знаний пытаешься собрать целостную картину Ты рассуждаешь когда тебе даёшь наводящий вопрос ты на них реагируешь Было пару моментов где ты ну там делал просто вот так то есть всё я там сдаюсь я уже поплыл но скорее было больше
01:47:24 - 01:48:39
позитивных позитивных моментов поэтому там скажем так экстра балл тебе за это если у тебя будет желание потом поучаствовать в чем-то подобном но уже там поговорить Завет tcp/ip всякие там всякие что-то ну прям про бэкенд про бэкэнд мы можем это устроить но вопрос насколько это тебе нужно релевантный все остальное теперь Кирилл я прошу если что мне нужно Окей А теперь Кирилл скажет сколько занимается Данил короче ну я сейчас скажу тоже небольшой фидбэк Да у Данила есть такое Что начинает сразу берет не
01:48:01 - 01:49:39
отвечает задают простой вопрос Отвечая Какие типы данных питоне изменяем и не изменяем все дальше Давайте дополнительные вопросы то что можно Ну там что-то там ляпнуть и короче начну дополнительные вопросы и Ну не бояться поразмышлять ответить прям знаешь вот ты прям видно боялся что-то ответить Это нормально если ты чего-то не знаешь вот на своем опыте скажу я не видел ни одного разработчика который вообще все знает Нет даже он может вообще знать такие вещи что я так на него смотрю на элементарных других не знаю это вообще
01:48:50 - 01:50:01
нормально Всем как бы на заметку тоже это это Окей сколько мы занимаемся Я нет нет но вместе мы занимаемся менторство месяц 6,5 месяцев Да но он сам еще учил как бы синтаксис и там был Ну только питон по сути и вот за месяц мы вот так вот Back and штурмуем вот таком вот уже уровне так сказать Ну я тогда предлагаю в любом случае где-нибудь там через полгодика если Даниил еще там момент работы не найдет встречу Ну вот кстати да мы сообщим ребятам что как чего Будем держать в курсе и очень хочется посмотреть на динамику
01:49:29 - 01:51:01
очень хочется посмотреть на динамику я скажу кирюх я знаю твой уровень Я знаю как ты вообще стрельнул просто вот годы еще не прошло года еще не прошло и я помню как ты на таких тестовых собесах тоже там сыпался и мы с тобой перед твоим собеседованием на работу когда я тебя просто там драл в течение 4 наверное или пяти часов и ты уже сидел в три захода по-моему Да 5 часов у нас сейчас я все вообще все протыкал все что можно было протыкать Вот Но что ты красавчик Я тобой горжусь Я горжусь что у тебя есть ученик которого ты менторишь
01:50:46 - 01:52:02
вот готов ты еще учеников брать сейчас ребята посмотрят вообще ну я одного всегда беру вот сейчас Данила получит офер И тогда можно подумать Просто я же не какая-нибудь онлайн Школа где по 20 человек берет и там вот так вот и мальчики просматривает я прям так так сказать много внимания Короче я считаю что лучше качество одного нормально научить с ним работать короче это будет полная дичь не онлайн Школа поэтому я тоже хочу сказать Мне прям нравится Да еще бы ну что ребят Я предлагаю тогда потихоньку закругляться время уже
01:51:24 - 01:53:05
позднее без десяти десять без десяти двенадцать Прошу прощения Я еще даже не ужинал вот что хочется сказать Я очень благодарен за то что вы меня вытащили на этот прекрасный созвон я прям зарядился энергией Данил Спасибо тебе огромное за твою смелость за то что ты выстоял ты прям столько ты молодец кирюх тебе огромное спасибо за ученика э-э за опять же за то что настоял чтобы мы всё-таки это провели и что э пожалуйста если вы хотите что-то сказать нашим зрителям какие-то любые слова напутствие пожелания всё что угодно
01:52:29 - 01:53:49
Но я могу сказать что Ну если что-то интересно и когда возникают какие-то трудности проблемы то нужно как-то перебороть это и все равно продолжать идти к цели Вот и тогда сто процентов когда туда придешь какому-то результату хорошему огонь огонь Спасибо я буду краток подписывайтесь на годноту контент стоящий и я посоветую вот прям по себе не наступает на мои грабли Отдыхать Нужно вам отдыхать это это прям ну это очень важно все как-то воспринимают Это [музыка] что-то мне надо отдыхать прям вот это
01:53:09 - 01:54:39
потом короче поймете если не послушайте потому что выгорание очень опасная штука я тебя Данила тоже отдыхает потому что понимаю живет тормозить не надо этого чувака то что он сможет до ночи сидеть вот и не знаю не бояться каких-то сложностей когда что-то изучаете тоже есть такая ошибка типа ой то там докер Да нафиг он мне нужен Пусть тогда занимается нет В чем проблема Я не понимаю Возьмите почитайте что в этом такого Ну хоть что-то Изучить и также конкретно Веба вот да Зачем мне надо знать как там
01:53:58 - 01:55:22
работать что-то под капотом Ну блин просто почитай и не бояться этого всего это вот прям много это блин я просто работа как бы много меня разработчиков вот многие там да не хочу это зачем Ну надо как бы побольше знать очень просто чтобы жить в этом нелегкому я еще могу Да еще хочу добавить поводу Коли потому что он до этого момента даже наверное не знал как он так сильно повлиял на мое обучение потому что ну у меня все началось такое погружение с его видео потом в один момент мне не хватало комьюнити Я нашел у него чат потом
01:54:44 - 01:56:22
получается так что Коля ментарил моего же ментора спасибо спасибо за такие теплые слова это действительно мотивирует меня делать больше контента не запускать канал не запускать ту деятельность которой я веду мы будем дальше строить наши крутой комьюнити Планов у нас много и новостей у меня тоже будет много я надеюсь ближайшие месяцы Ох что настолько не ждет что я да Еще Еще у меня перед тобой долг я себе пообещал Вот ты недавно писал это в чате Что за подписку никто Все обещают и никто ну в общем жди
01:55:32 - 01:56:58
ничего страшного на бутылке пива я думаю можем сойтись хорошо Все друзья Спасибо большое Я предлагаю проследовать советую Кирилла пойти отдыхать и Учите питон вы молодцы Всем пока Ну а я завершаю трансляцию Нам сейчас нужно будет я думаю минутку повесить чтобы трансляция завершилась посидеть Да она пока еще идет и я потом сейчас кликну на это в чатике [музыка]
01:56:21 - 01:57:27