Подготовка к собеседованию на 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 каналы и чаты
Транскрипция видео:
Всем привет Добро пожаловать нас сегодня опять трое Я Катя Бутырская Она же Катя Огонек и какой-то человек по имени Вячеслав Это значит что пришло время для тестового собеса вот ну я думаю что вы правила знаете мы берем джина и немножечко с ним общаемся на технический не только темы думаю не будем откладывать тебе слово давай Да всем привет Слава привет познакомиться хочется узнать немножко побольше Расскажи нам пожалуйста про себя и вообще почему ты здесь Да всем привет о себе мой путь программиста получается
00:00:00 - 00:01:39
начался года там полтора условно назад почему программирование потому что мне хотелось какой-то момент там курсе 2 на третьем Я понял что обучаюсь в университете по крайней мере это в моем Я как не достигну того чего хотел бы и мне нужно было Как правильно сказать хотелось бы что-то сильно углубиться Да И вот мне очень привлекала программирование потому что во-первых у меня окружение такое во-вторых в принципе на начальных курсах затрагивали какие-то аспекты Да но это только поверхностно и вот как раз
00:00:48 - 00:02:06
хотелось изучить поглубже и поэтому я столкнулся с курсами от Яндекса Вот который родились 9 месяцев и я вот получается изучил Python backed разработку вот дальше обучение закончилось в апреле и дальше я закончил диплом университете и сентября начал искать работу и параллельно проходить курс по синхронной разработке потому что чтобы на месте стоять дальше развиваться Вот пока в процессе поиска работы в принципе развиваться Я поняла спасибо большое Скажи пожалуйста почему Ну потому что мне интересно
00:01:30 - 00:03:19
изначально потому что не было интересно посмотреть как вообще работает все изнутри то есть всякие там сервисы сайта как это прописано Вот такая логика внутри и Ну вот в общем интересно посмотреть и реализовывать разные вещи ты посмотрел что дальше Ну вот зацепила Поэтому я здесь поэтому я хочу это дальше развиваться Как ты можешь подтвердить что тебе это зацепило У тебя есть какие-то результаты но у меня есть свои проекты там будь то учебные вот на как раз таки Яндекс практиками и проект я делал какие-то
00:02:29 - 00:03:56
тоже после выпуска вот Ной полноценно закончится нет но у меня лежитхабе несколько проектов своих Да а как ты связываешь свою будущую Какие цели Ну на ближайшее время как раз таки после там условно через год после трудоустройств мне хочется уже Стать таким уверенным разработчиком который вот понимает трезво перед собой цели Да и задачи понимает как их выполнять то есть чтобы все укрепилось я не плавал Да в этом и дальше выстроить свое мышление относительно То есть это уже по ходе работы смотреть будущее
00:03:13 - 00:04:43
что тебе нравится технология осваивать непрофильные языки программирования о чем это Ну получается как раз таки я вот сейчас расширяю свой стек тем что покажу синхронное программирование да то есть что мне сейчас я на стадии изучения осинки а его и перспективе fastapi Вот то есть то что требуется принципе Почему я выбрала синхронное программирование потому что Ну достаточно широкий спектр вакансий требовали Да этот инструмент и Ну я тоже посчитал про синхронное программирование Меня заинтересовало и
00:04:03 - 00:05:35
вот решил изучать Ну это доказывает то что общается так и соответственно тоже соответствует it-сфере Расскажи пожалуйста это вообще насколько осознанно был путь выбора и самого образования и курсов практикума Ну уже про направление Back and мы поговорили образование имеется ввиду университете да Ну я бы не сказал что выбрал прямо осознанный потому что ну это после 11 класса естественно все выбиралось и как бы там сложно смотреть куда-то далеко будущее Вот и я бы не сказал что это было методом тыка
00:04:55 - 00:06:10
но я знал отчетливо что я такой человек технического складу ума и мне вот там нравилось школьную математику информатика и поэтому я выбрал что-то связано с этим вот направление было не конкретно про программирование Но вот опять же какие-то части затрагивали там в начале то есть у меня больше было про то как Как оптимизировать там бизнес-процессы грубо говоря то есть больше про такое про информационные технологии грубо говоря они про программирование верно Да хорошо еще меня интересная строка в твоем резюме Что ты имеешь
00:05:35 - 00:06:46
аналитический склад ума Как ты можешь это мне доказать на простом примере А например когда я был студентом И ездил это очно Универ и постоянно анализировал вообще время это не только с универсия знает в принципе да я всегда вот куда-то мне нужно доехать дойти там своим ходом если анализирую Где я могу что как сократить время где как будет правильно там срезать и так далее То есть например я там в теории если я [музыка] приду на минуту позже на остановку Да и не успели на автобус условно мне придется 15 минут дальше из-за этого
00:06:24 - 00:07:48
сложится что я там опоздаю вышли на минуту позже Да опоздал на 15 минут и там такая цепочка может длинная Ну вот в общем ни один такой анализ это просто самый простой пример приходился когда-нибудь применять этот навык в работе например над учебными проектами да опять же разработки потому что седан анализируешь Как ты можешь оптимизировать свой код то есть где-то сделать более читабельно где-то более как бы логично и так далее но это наверное больше о том что нужно соблюдать там принцип драй и кис
00:07:11 - 00:08:34
и Ну не знаю вот как-то так Правильно я понимаю из твоих слов что для тебя аналитика это больше Вере оптимизации да ну да хорошо спасибо я вижу что ты во время учебы дополнительно работал скорее всего предыдущий опыт продавца кассира это подработка университета сейчас ты был во время учебы ВУЗе и одновременно на курсы практика Расскажи как ты планируешь свое время как ты управляешь вообще своим временем Я просто так я совмещал курс с универом Ну курс универсал довольно просто То есть я приоритете был курс да как бы но при
00:07:58 - 00:09:33
этом я старался искать опыта свободного времени чтобы приступать и там и там и что еще наверное вот так как-то получалось совмещать само собой вот просто приоритеты расставил Хорошо я знаю что в рамках учебный проект у вас бывало командный Проект Один Какую роль Ты занимал а если не ошибаюсь разрабатывал модели сервизаторы Я просто честно помню Да да Я работаю вот командном система работы Но получается проект разделяется на какие-то части которые каждый из частей достается какому-то конкретному разработчику этот
00:08:55 - 00:10:21
образование обговаривается вот решает все получается главный главный человек в команде Лидер Лид Ну естественно согласовываю с остальным участниками и все это отдельно все эти части каждый человек разрабатывает да потом просто сливаются вот если там вдруг какие-то проблемы возникает то что какую-то поддержку можно искать извне то есть других участников вот спросить помощь доводилось да самым сложным но я не сказал бы что с каким-то сложностями во время командного проекта сталкивались Да единственное вот мы не
00:09:51 - 00:11:34
успели не успели уложиться дедлайн вот из-за каких-то моментов какие-то обстоятельств не зависящихся от обучения и Ну все как-то так наверное Вот это Но это было это по моей проблеме было Точнее по из-за меня Мне просто семейное обстоятельства грубо говоря пришлось время не заниматься командным проектом Вот и потом говорили и закончили там опоздали на неделю условно так хорошо Был ли какой-то тебе вопрос например от человека занимающего роль Лида какие-то предложения встречные Еще что-то потому что по всему
00:10:58 - 00:12:27
вот эти обстоятельства они повлияли на результат работы всей команды правильно да да предлагали помощь предлагали степени что просто за меня да сделать это часть Я сказал что Ну так это все-таки обучение Я сказал что ну как бы просто чуть опоздаем Да но я сам закончил В итоге потому что мне было интересно работать вот ну как бы ребята вроде согласились дали Ну я доработал Мы ждали тебе понравилось работать вообще так как я пришел в этот курс практически с нулем для меня это был очень глубокий достаточно опыт Я
00:11:51 - 00:13:17
считаю что он точно прошел не зря потому что очень много чего во-первых узнал давно какие-то технологии инструменты и еще вот я обратил внимание что сразу сначала обучение обучали в тологе именно стилю написание кода и то есть сразу правильно обучали грубо говоря писать код то есть постоянно ревьюеры Да указывал какие-то моменты которые как бы в целом здание может выполнено правильно Да но он указан какие-то моменты которые могут там лучше Ну да да То есть я к тому что если включать изучать самостоятельно
00:12:41 - 00:14:11
программирование там с нуля да то эти моменты можно легко упустить его здесь как-то сразу это все подчеркнуто подчеркнули да это может быть хорошо ослаб и еще хочу спросить немножко в плане того что тебе интересно будущей практике если говорить про будущую работу что ты от нее ожидаешь Ну в первую очередь опять же постоянного развития то есть чтобы не было какой-то монотонности что постоянно можно было бы что-то изучать да как бы помимо того что я в принципе какие-то задачи чтобы был доступ к по развитию вот
00:13:39 - 00:15:14
и Ну все наверное так хорошо Я думаю что на этом можно завершить Я ухожу в тень и вернусь к вам когда мне Андрей даст слово дальше Спасибо Поехали Так Раз уж мы поговорили про правильный код и все остальное Что в твоем понимании правильный код как бы ты его вот такие черты хорошего правильного Куда ты выделил Ну опять же получается соблюдение принципов да вот если говорить конкретно то драйкис вот я знаю есть принцип Салютная вот сейчас не назову его также если брать там разработку Джанго Да вот принципы пример архитектурный
00:14:37 - 00:16:25
можешь рассказать я могу Да там в основе этого принципа стоять 6 правил это многоуровневость кэшируемость клиент сервер код по запросу отсутствие состояния и какой-то шестой или что нет клиент севера то состояние [музыка] ну забыл 6 ничего страшного можешь рассказать просто про Раз уж мы тут начали говорить про rest Какие типы чтобы запросов Ты знаешь И чем у них отличия Ну я знаю ня есть типа запросов там нет есть а да да есть получается ГЭС допрос получение данных есть запросы изменения данных пут
00:15:44 - 00:17:24
пост ой путь патч есть просто создание данных пост и на удаление делит Ну вот и почему между ними разница а палец запрос он изменяет какой-то указанные поля путь запрос он создает получается новую часть дано он создает получается новый объект и с теми параметрами которые указаны инди-потентность Вот ты знаешь что-нибудь про Вот это ну честно говоря не сталкивался ладно хорошо Так давай что-нибудь сделаем в практической с точки зрения практической пользы Ну ты наверное занимался там Джанго и всем остальным представим что у нас есть
00:16:56 - 00:18:47
реальная Рабочая задание У нас есть какой-то каталог пусть будет это магазин можно если хочешь взять какой-нибудь из твоих проектов Там наверняка какие-нибудь каталоги статьи еще что-нибудь неважно сущность не так важна Вот но задача вот какая нам нужно вывести три случайных статей или товара на одну из страниц пользователь пришел а там у него там три случайных статьи кроме всего прочего болтается или там 300 случайных товаров как бы ты это сделал Ну я бы написал функцию которая в которой есть переменная получает Но
00:18:11 - 00:19:39
это переменная получает Все объекты нужной модели и выбирает через Рандом 3 случайных отправляет в контекст Да попробуем написать как это выглядит можно сейчас видно да экран пока тёмненький возможно сейчас что-то прояснится сейчас все получилось Да так если можно шрифт побольше это контролы колес что-то такое вот работает плюс Да есть больше не надо где вообще у тебя бизнес это же бизнес логика Вот то что мы сейчас делаем собираемся Ну честно как бизнес логика Но если имеется ввиду вся структура проекта онлайн то это вот как
00:19:00 - 00:20:50
раз таки вот здесь на один поменьше сделать да Да не проблема Я думаю что нет не так страшно хорошо так получается нужно создать сейчас приложение Да в которой будет который будем сейчас написать Вот эту функцию так стартап Какое название дать Что за проект будет без разницы давай давай каталог хорошо так что ты скажешь насчет виртуального окружения я вижу что у тебя есть папка да виртуальное окружение на Она позволяет хранить все настройки проекта грубо говоря в коробке то есть из глобального окружения все настройки
00:20:13 - 00:21:52
не будет видны это делать для того чтобы удобнее было приносить проект там на другое устройство грубо говоря да то есть чтобы это можно было активировать и все то есть чтобы не расстраивать каждый раз заново Вот и нужно еще указать recrument так вопрос Ну вот сейчас оно используется у тебя окружение Нет почему Потому что его не запустил нет сейчас Вот она вот запустил То есть у тебя в это окружение наверное какие-то зависимости установлены там джангом да Хорошо я уже окружением и докером есть же вот я слышал докер есть
00:21:42 - 00:23:14
такой Ну докер Он позволяет в принципе запустить проект в контейнере то есть чтобы контейнер вообще независимо от среды работал сам по себе какая-то себе представляю вот а окружение Но это просто набор инструкции но не инструкция как это я уже говорил это слово зависимости Да ну хорошо то есть по сути докер это такое виртуальное окружение только еще со своей системы я правильно понимаю да то есть он работает по инструкциям которые ты задаешь докеру Вот и Да он работает независимо от система Хорошо давай хотели создать
00:22:39 - 00:24:06
приложение подключить Да приложение нужно его указать [музыка] восстановленных Зачем чтобы Джанго видел которым нужно работать чтобы можно было с ним взаимодействовать [музыка] чтобы можно было связывать вот эту основную структуру проекта с установлен приложением ты думаешь что Меган это самое не получится у нас импорта При таком раскладе что не получится но импорт и что значит связывать Не совсем понимаю но не сложно ответить вот просто если не зарегистрировать то может на каком-то этапе быть ошибки что
00:23:32 - 00:25:24
нет приложения то есть его не видит меня такой же просто было когда-то на самом деле когда мы уже будем делать базу данных какой-то в общем то мы не сможем табличку создать потому что он как раз берет название вот этих вот табличек из названия приложений в котором есть добавляет название моделек и таким образом все это делается если у нас это не будет зарегистрировано то соответственно табличку не создаст и мы не сможем что-то Вот это сделать хорошо ладно предположим Давай чтобы сократить немножко время на
00:24:41 - 00:26:06
вот эту разработку давай сразу не будем создавать ни модели ничего но представим что у нас есть какая-нибудь модель без разницы как ее назовем Ну пусть будет айтом представим что она здесь у нас импортирована здесь все у нас хорошо у нас здесь какая-то есть вьюха Ну чтобы не описать еще и шаблон не подключать вот эти все истории Давай мы прям вот сделаем какой-то вот запрос Как бы выглядел Запрос который бы вот эти мы три случайных отдавал на ту страницу которая обрабатывается вот этой правильно понимаю что мне сейчас нужно
00:25:23 - 00:26:47
написать View которая передает шаблон да да шаблон шаблон абсолютно может даже не писать как понял это не критичность данном случае потому что у нас все равно шаблонов нет явно этот код Не запустится потому что время слишком много будем терять А зачем то есть получается пишем функцию вот значит создаем переменную которая в которой Передаем все модели Да вот как раз в эту переменную и интересно потому что ну что создать контекст и вернуть такое Так переменную как ее назвать Ну пускай вопрос Назови ее запрос Если
00:26:11 - 00:27:45
ты не знаешь или случайные айтом айтом что-то вот такое вот не критичное так получается модель Поэтому да да так это таким образом мы получим все вообще существующие таблицы есть такая история нужно их теперь выбрать из них три Рандомные так здесь получается curreset в котором можно через функцию Рандом я конечно Просто никогда еще не делал но я предполагаю Да что через функцию Рандом можно вот выбрать из кириссета три рандомных давай как предположим Да ну если если называется не помнишь наизусть это
00:27:03 - 00:28:58
методы из рандома Ну да давай Можно погуглить например Почему нет наизусть всю стандартную библиотеку наверное помните это ну такое себе Вот [музыка] Почему нет так сейчас Google видно или нет Google не видно сейчас а вот теперь видно отлично так вот чувств но нам нужно Можно конечно три раза запустить но я думаю это не нам нужно решение Нам нужно три разных да так число список случайно выборкой это видимо есть что здесь можно задавать интересно Да вот она так так получается режу да а нет Рандом
00:28:32 - 00:30:39
к тебе такой параметр пускай будет K равно 3D так я бы на этом этапе сейчас проверил что в итоге на выходе из золота Просто даже не существует модели Ну давай Да почему нет просто у тебя ранда айтом скорее всего упадет можно просто взять и проверить что у нас врезался ранта этом но здесь конечно сложнее получается да потому что у нас нет экземпляров модели по сути нам придется их придумать Ну [музыка] Честно говоря мне кажется это не проверишь придется придется писать так как ты считаешь правильным Как тебе
00:30:34 - 00:31:58
подсказывает умение гуглить так еще раз увидите что эта конструкция Неверная Да я не говорю неверно Ну давай посмотрим то есть смотри чтобы у нас выбрать три вот этих вот к Что у нас там за к до Я тоже не помню наизусть это штуки но очевидно что она выбирает не из querys это ей нужен какой-то список то есть Скорее всего он завалится потому что он ожидает список Я не знаю не понял то есть нужно скачать это сделать список Да ну наверное Ну как минимум Да мне кажется что хорошая идея сделать из этого Из этой
00:31:25 - 00:33:03
истории какой-то список Причем как-то ты уже со списком например попробовать поработать Но самое простое решение это получается создать новый список Да и методом перебора список чего Ну вот Ну и объектов и там получается вот у нас есть да поэтому кириссета пойти с циклом так вот и создать или так не работает циклом пройти циклом но технически можно но сложности вода Давай представим что у нас есть в этом кваре сети там нужно такая база у нас не сильно большая но большая скажем 250 тысяч элементов Мы про неё бежим бежим эту по
00:32:18 - 00:34:03
этой всей истории цикла это же сколько у нас цикл времени займет и это просто на один на один выглядит не очень хорошая идея на самом деле Вполне возможно что в джанка есть какой-то Джанго в этом интерфейсе есть какой-то специальный метод который бы нам вернул список список значений каких-то по которым мы технически можем что-то тоже можно посмотреть например вот джекс что вообще в обжигстах бывает Возможно есть какой-то метод который тебе здесь подойдет и сама идея получить список Ну не знаю чего чего кстати можно получить здесь
00:33:15 - 00:34:48
список чтобы потом выбрать случайным образом Ну Список объектов или что это Ну не знаю у объекта есть например первичный ключ Что такое первичный ключ но первичный ключ это уникальный идентификатор Да по которому можно на которую можно ссылаться на объект если мы возьмем список и получим первичных ключей получается да из этих первичных ключей выберем 3 а потом по этим первичным ключам сделаем запрос базу данных ну выглядит как бы рабочим вариант правда по сути по сути Вот так Вот потому что у нас может быть ну вполне себе вариант
00:34:15 - 00:35:50
список первичных ключей Да давай вот такую задачу себе поставим что нам прям вот вы не до положь Нам нужен список первичных ключей кушать без него не можем жить без него не можем вот в нашей логике [музыка] Я думаю Кстати а что может выступать первичным ключом иди или что тип данных вообще да то есть как бы какой тип данных Какие первичные ключи бывают есть например составные первичные ключи слышал что-нибудь про это про составление слышал но композитные Как можно назвать как правило я сталкивался только вот с
00:35:10 - 00:36:46
типом int первичных ключей которые Джанго автоматом Ну смотри Давай посмотрим в objects у тебя в общем-то наверное позволяет это делать Вот и посмотреть Каким методом можно получить список вот этих Ну например первичных ключей нет Ладно хорошо Так давай могу сделать ее подсказку это называется values лист куда мы делаем например то что мы хотим получить Но в нашем случае пока или ID Ну и флэт передающим параметрам должно быть труп Погугли вылез лист Вполне возможно что это вот это вот все и сработает
00:36:13 - 00:37:59
[музыка] нам нужно получить Пока да получается В чем разница между ПК и есть же поле ID А есть поле пока у Джанги ну Иди по ID это как раз таки уникальное значение самого объекта пока это вот поля по которой тоже Уникальны которые можно обратиться Почему их два нужно не может быть одновременно как правило это они приравниваются это одно и то же а как лучше через один через ПК вот здесь вот указать лучше ID или пока нет здесь Потому что автоматически Джанг создает пуля ID то есть Поэтому можно явно
00:37:29 - 00:39:05
только указывать сейчас работает конечно Смотри какая история если мы здесь указываем явно поле ID а потом возьмем и подумаем что блин возьмем мы хотим и передумаем и у нас первичный ключ будет выступать другое поле там ну не знаю Он будет у нас выступать в качестве п и нам везде в каждом элементе кода придется поменять ID на slack где-то мы Это скорее всего сделать забудем у нас все Упадет и будет плохо А если мы здесь укажем ПК Джанго подумает Ну что там есть пока но теперь это не ID поля слак поле Ну без разницы
00:38:21 - 00:39:46
буду его использовать Так что на самом деле лучше конечно использовать ПК но Иди тоже с работы хорошо предположим дальше Да сделали Мы вот такой выбор куда ризал то резал как-то передали что и создавая внимательно Посмотрим есть у меня стойка ощущение что еще с не совсем то что нам нужно потому что по-моему если я правильно помню они могут дублировать значение нам нужно точно уникальна [музыка] сейчас вот чуть-чуть ниже вроде бы есть да вот смотри генерация Это случайно это генерация случайного это честь
00:39:04 - 00:40:32
[музыка] дом генератор Но нам нужно выборка может быть как-то здесь внутри страницы можно поиском что-нибудь найти хорошо может быть уникальным может быть да уникальных как-нибудь так это генерация вот он же был уникальных элементов Видишь солнце список давних Олег элементов сэмпл отлично наверное стоит использовать какой-нибудь например sample Ладно хорошо вот эту историю мы там что-то Конечно мы Передаем это понятно эту историю мы как-то отдали туда вроде как хорошо какие есть проблемы в этой
00:40:04 - 00:41:41
штуке какие-то проблемы можно здесь видеть скорее всего с работы а проблема что мы получаем просто ID то есть до значением их выбираем и нужно будет снова делать Не ну под Нет потом Конечно мы сделаем выборку но она достаточно дешевая получится кстати Каким образом можно Каким способом можно получить до фильтр и Ну просто через год если одно значение хорошо Ну ладно допустим там нижнее подчеркивание и нужно будет модификатор фильтр Да но не критично ладно это не страшно Давай представим на секундочку что у нас
00:41:04 - 00:42:46
здесь в базе данных Ну вот этот код Может на каких-то условиях упасть на каких и свою пасть Если Давай представим на секунду что у нас базе данных там всего одна запись да Вот потому что здесь может быть да А мы хотим 3 скорее всего упадет что делать нужно это предусмотреть отловить ошибку Каким образом троих есть конструкция можно ее использовать И что ты будешь 2 и в except И что И что будешь делать Ты хочешь завалить прямо проект получается с это самое Эра или с чем нет но Нет вообще можно перехватить ошибку Да
00:42:04 - 00:43:54
можно просто как-то подумать логика выбора количество элементов да то есть если там за какие-то условия что если там список допустим этот пуст там или меньше вот ставить сюда нужное значение вот а второй вариант как раз таки этот саму ошибку перехватить и уже как ты дальнейшем обрабатывать чтобы как в нашем случае лучше сделать Я думаю что все таки первый вариант то есть ставить сюда это то число которое гарантирует не исключение ошибки OK то есть ну Давай напишем такое условие которое гарантирует
00:43:22 - 00:44:48
то число которое гарантирует Ну да а на самом деле Нам должно быть все равно сколько там у нас записи даже по идее должно работать Даже с нулем правда должно Ну можно посчитать количество записей да И относительно этого вставить число то есть допустим если нам нужно три записи если при условии что всего записи больше чем 3 ну 3 или больше вот А в других случаях мы просто можем вставить Land списка длину списка написать надо сейчас ну Давай напишем Почему нет это же интересно познавательно так и
00:44:10 - 00:45:48
переменную создать если больше и равно 3 вот это вот делаем остальных случаях то же самое но может быть просто резал будет рандальтом с например Зачем нам вычислять то что то что у нас вот так как бы она просто отдается все или нет Не понял Еще раз посмотри то есть следуя твоя логике Мы берем если этого больше равно 3 кстати наверное больше 3 то она уже и так нормально Вот то мы делаем вот это вот нашу магию если она меньше трех соответственно мы просто можем весь Рандом рандой там Создать и в общем-то
00:45:06 - 00:46:49
не париться нам не важно сколько там вот это штуки будет Да я понял все просто так вот то есть Ну да все получается лист остается Я думаю что с этой переменной кажется можно брать наверное так возможно в таком случае хорошо Следующий вопрос Вот мы здесь вычисляем длину Это же не бесплатно История вот как еще можно узнать сколько у нас количество записи варанта этом попадет есть какие-то методы у object которые получаю могут вернуть длину вот этой вот нагуглите Ладно хорошо так Допустим как бы задача вроде как решена
00:46:16 - 00:48:13
Давай представим на секундочку что у нас базе данных очень много записи например вот в эту выборку у нас попадает 300 тысяч записи Вполне себе может случиться но не скажу что прям вот это Рядовой наверное проект получится Но тем не менее как бы ты оценил сколько такой список из 30 из 300 тысяч записей занимал бы памяти вообще Ну звук памяти Да вот как понять Сколько памяти занимает тот или иной объект сложно сказать можешь их какая-то функция которая проверяет Ну да Окей в стандартами библиотеки сосис есть
00:47:39 - 00:49:22
такая размер Ладно Хорошо Так ну [музыка] Y с нет размер функция сайт насколько я помню насколько я помню как-то это вот такое Давай попробуем сгенерировать тогда какой-то список из 300 тысяч экземпляров неважно какой и проверить его размер можно прям в отдельном файле чтобы не тревожить можно прям вот Обычный файл можно где-то создать для этих забав и там мы сгенерируем какой-то вот списочек из 300 тысяч и посмотрим его размер достаточно простая задача да сейчас нужно сгенерировать список из 300000 до
00:49:00 - 00:50:47
или около того Ну просто любые до элементов Да любых без разницы Ну пусть будет цифра с цифрами наверное проще всего Тем более что у нас очень очень похоже на ту историю которая которая у нас вот из базы данных вывалится у нас куча цифр но Слушай наверное надо бы как-то уникальных все-таки потому что здесь есть ощущение что питон может схитрить и немножечко с оптимизировать память Давай уникальных элементов от одного там до 6 до скажем до 600 тысяч через два Вот почему почему вот так вот не сделать только четных
00:49:59 - 00:51:26
то есть это до 60 тысяч ну нет Нам нужно нам нужно где-то 300 тысяч элементов ну которые который четные То есть получается что у нас Range должен быть скажем от до 600 тысяч и взять только четное проверим проверим Почему нет Да все ну можно было просто дать число слишком большое поэтому завалился Хорошо давай предположим что вот у нас осознался как мы его размер посмотрим размер Она умеете ввиду через ту функцию да иначе у нас sies of там вот это вот вся история вот надо Посмотри сколько он вообще
00:50:54 - 00:52:35
весит такой вот список Дополните функцию пожалуйста сайт Get Says не помню точно нет просто тут нет не получается давай погуглим я честно не помню просто как она пишется у меня это самое если что подсказывает внутренний голос так получить размер сойзов Я помню как-то так она называется довольно большой получается правда это Но это это правда в битах то есть в байтах на поменьше будет да но все равно довольно довольно большой поэтому решение не выглядит прям шикарным потому что нам Мы так память убьем такое еще
00:52:27 - 00:54:14
есть вариант решения вот этой ситуации есть идеи мысли но если мы вернемся вот к старой задачке которая вот у нас Мы рандомно выбираем несколько чисел То есть если бы там у нас грубо говоря в базе данных там 100 200 300 выбор попадает как бы Ладно наверное Окей Вот Но если у нас попадает 300 тысяч нам придется при каждом запросе формировать вот такой вот историю достаточно весомую список не знаю идея со списком хорошая но выглядит Не вполне жизнеспособной без каких-то доработок Или вообще может
00:53:49 - 00:55:23
быть отказаться от этой идеи какую-то другую новую придумать ну сейчас а каким образом вообще можно взять и перемешать объекты в базе данных Можно же как-то перемешать запись да то есть в базе данных Они же у нас каком-то порядке хранятся Ну да есть какой-то есть какой-то Запрос который позволяет изменить порядок получения объектов из базы данных вот SQL запросы Ты же знаешь Можешь рассказать Примерно вот стандартный Get запрос Ну вот стандартный запрос на получение информации из базы данных он
00:54:52 - 00:56:24
же как Селект в А дальше например что там может быть условия какие-нибудь да Вот какие если мы хотим порядок поменять порядок у меня получение Ну ордер бой ладно окей а вот ну как бы Вполне возможно что есть если мы придумаем какой-нибудь порядок которые бы взял и сортировку да сортировку да Вот например случайную сортировку если мы сделаем то Вполне возможно что мы как-то можем можем получить она даже в Джанги есть врн то есть там знак вопроса Это случайно сортировка Вот но какую слабость ты и в этом решении
00:55:58 - 00:57:33
видишь когда мы делаем прям вот случайную сортировку [музыка] относительно памяти Ну вообще да то есть как бы она затратная получается вообще это операция не дешевая с базой данных то есть не факт что она конечно она наверное будет более выгодная и более эффектная чем вот ворочать вот такие вот списки но совсем не факт То есть как бы здесь надо бы прогонять кстати Друзья кто будет смотреть это видео Может быть вы сделаете два варианта решения и посмотрите какой из них более эффективное будет интересно вот поэтому
00:56:54 - 00:58:22
она тоже не Вполне себе годится хотя часто используется есть какие-то идеи Ну хотя бы просто пока на уровне идей Как можно попробовать Даже не надо писать код Как можно попробовать вот эту проблему решить что много записей сортировка рандомная она дорогая получается много записей и получение списка айдишников она получается тоже Очень дорогое Как можно вообще взять и что-то придумать [музыка] и Чтобы избежать сортировки Да нужно Ну в общем что-то да смотрит исходная проблема да то есть у нас большая база
00:57:41 - 00:59:23
данных достаточно получается выборка большая сортировать технически мы ее можем Но дорого брать айдишники и сортировать и там срезом каким-нибудь получить три первых это как бы Ок и там даже вот эти условия не надо там срез он возьмет все что нужно Если получится мало Ну и ладно сколько зацепит потому что там лимит это ок лимит он быстрый это нормально вот получить все вот эти вот штуки Все айдишники и их уже из них что-то там повыдергивать с помощью там фильтра или еще чего-нибудь вот такого тоже в
00:58:54 - 01:00:24
принципе нормально Дорого потому что у нас большой файл получается Ну вот список огромный Каким образом можно вот эти вот штуки решить если допустим срезом но установить как раз таки значение этого среза какой-то своей логике то есть по сути затратная будет достаточно дешевая операция Хорошая идея Да так и вот ну и допустим вот как мы здесь делали так не помню что уже в общем она вот да мы определяли это число в зависимости от количества элементов да И точно так же мы можем сделать Ну не точно также но какой-то подобной
00:59:39 - 01:01:19
логике Да мы можем сделать как раз таки вот срез списка то есть поставить число сюда какое-то например да ты хочешь Хочешь с конца или сначала наверное дом получается сейчас просто как я размышляю нельзя же если на нужно действительно случайные числа нельзя вот все время идти либо сначала либо с конца то есть Нам нужно вот как-то я просто сейчас не знаю пока как нужно как-то определить логику нашего среза так чтобы это оставалось рандовом а не было Просто чтобы у центрального значения не было преимущество вот Ну да
01:00:29 - 01:01:53
смотри одна проблема вот с этим срезом да то есть как бы здесь пока мы просто выбираем вот этот Одиночный срез это получается у нас лимит А если мы берем вот так вот с двумя значениями у нас получается лимитов с лимитов этот не самый хороший вариант по операции по Ну по затратность потому что для того чтобы сделать отцеп отступ ему нужно отщелкать количество которое он хочет отступить а потом уже выбрать и получается что у нас пока в начале база данных как бы вроде нормально когда мы подходим самый конец упираемся у нас
01:01:14 - 01:02:40
получается очень плохо поэтому сам по себе лимит Сначала это ок то есть вариант но вот это вот штука она работать будет очень сложно Ладненько в принципе мне все понятно я могу тебя раскрыть страшную страшную тайну я еще не видел хороших прям вот решение этой задачи Вот и проблемы вернее видел на постгры с но там прям как-то вот они очень сильно морочиться так что друзьям А если кто это видео видит и у вас есть хорошее решение для позже например частный случай я буду благодарен если вы мне расскажете все
01:01:58 - 01:03:21
что я могу здесь Ну что называется придумать но это вот два варианта вот или вот этот или вот но не тот не тот меня не нравится срез из рандомного рандомно перемешанного это из рандомно перемешанного списка айдишника он как-то мне выглядит более предпочтительнее потому что Ну как-то мне кажется что он по затратности он получше получается Ладно можно стопать шерить Катя давай тебе слово тебя не слышно вас микрофон Вообще интересно что мы продолжим тогда основную часть наверное остались какие-то организационные вопросы я буду
01:02:39 - 01:04:07
уже оперативно Какие ожидания по зарплате вот касательно этого вопроса если такой возможно Хотелось бы услышать вашу сторону по результатам собеседования Вот а если речь идет какой-то конкретной цифры то но я себя оцениваю броне 60 тысяч на первых этапах начале трудоустройства Вот и с дальнейшем пересмотрение как бы оплаты труда в течение года хорошо услышала спасибо большое еще мне интересно Знаешь ли ты что-то про компанию про нашу [музыка] читал вакансии ваше описание Вот хотелось бы тоже побольше узнать
01:03:31 - 01:05:15
послушать с вашей стороны но описание компании хотелось бы немножко затронуть про техническую часть тоже то есть какие будут в принципе Какие ожидаются проекция Какие на первых этапах будут задачи Вот и будет ли поддержка страны команды ну смотрим приехал к вопросам в сторону компании Да ну давай Андрей этот Пару слов про технических Смотри какая штука У нас есть несколько внутренних поскольку мы занимаемся гэмблингом и он не вполне пропитан вот у нас есть некоторые внутренние проекты и опишечка
01:04:23 - 01:05:53
которая отрисовывает всякие вещи Ну по типу сайтов вот входных вот этот обвязочку сейчас она в принципе у нас на Джанги и нам по большей части устраивает может быть мы ее будем переделывать на остапе чтобы это все дело поддерживалось Ну а вся логика У нас написано уже не на питоне вот у нас Мы смотрим в сторону там вроде как поинтереснее побыстрее получается вот поэтому если говорить чисто про питон то у нас история такая что это будет надо развивать А пешечку может что-то там с личным кабинетом и с
01:05:08 - 01:06:31
какой-то вот этой вот штукой Но если будет интерес посмотреть вот в сторону других языков то это мы очень даже Уважаемые Это очень даже за Так что вот по наставничеству каждому человеку который у нас работает мы прикрепляем наставника Это обычно человек грейда синер или что-то в этом районе иногда бывает приличные метлы которые хотят стать тренерами Но им нужен как раз опыт наставничестве чтобы закрепиться в этой позиции поэтому на первых порах ты делаешь задачи под его четким руководством но это не значит
01:05:50 - 01:07:13
что он будет тебе прям рассказывать как делать или там писать за тебя код он Максимум что будет делать это будет тебя тыкать в конкретный кусочек доки писать тебе код ревью по поводу того как ты что ты сделал что что хорошо что плохо если что-то плохо не просто писать что вот это плохо надо переделать а переделать в каком ключе вот в таком ключе чтобы ты непосредственно сам развивался через некоторое время Ну Обычно люди или они у нас остаются то есть мы видим что человек растет над собой что как бы у него например в начале не
01:06:32 - 01:07:57
получалось что-то но через некоторое время там через две недели через месяц он похожие задачки решает уже хорошо мы понимаем что человек нам подходит но есть люди которые не могут научиться такими людьми К сожалению расстаемся вот поэтому вот постепенно роль вот этого наставника сходит на нет и ты уже развиваешься как самостоятельное единица у тебя Вектор развития в том что у нас есть кросс-ривью кода и каждый человек читает код другого и друг у дружки учитесь ты уже достаточно будешь специалистом там
01:07:15 - 01:08:33
Ну у всех по-разному этот этап проходит Ну где-то там месяца 3-4 тебя уже достаточно должно быть уровне чтобы смотреть Чужой код и искать там ошибки и учиться уже на чужом коде на том как у нас это принято вот во время вот это вот перекрестная уже учишься и смотришь обменивайтесь информацией Так у нас наставничество устроено [музыка] так спасибо если ты смотрел условия нашей вакансии да то ты знаешь что команда распределенная Мы работаем в удаленном формате Скажи пожалуйста как ты видишь организовывать свою работу
01:07:53 - 01:09:14
будучи полностью удаленным сотрудником Ну с точки зрения организации вот у меня получается Если необходимые устройства Да Я так понимаю Ну я буду готов подключиться к нужному там дискорду Skype или где вы работаете просто не знаю где вы коммуникации между собой вот все необходимые инструменты там у меня присутствует и мой рабочее место непоколебимо никто сюда не заходит и здесь тихо спокойно ничего не отвлекает от рабочего процесса для себя ты организовываешь для тебя это было в учебных проектах
01:08:35 - 01:09:57
у меня это было так что я самого утра Стою вот там Максимум что ему будет там почистить зубы и вот у меня просто почему-то с утра очень много энергии и как раз таки это наверное лучшее время Там первые несколько часов в моей работе то есть я стою и начинаю вот заниматься задачами и потом там спустя 3-4 часа я отвлекаюсь прихожу в себя я понимаю что настолько сильно погрузился что там время пролетело и даже есть поесть не успел толком вот иду как раз таки уже обедать получается и там отдыхают 30
01:09:35 - 01:10:55
минут час и дальше Иду вот это по крайней мере так у меня было в обучении так хорошо ты начинал задавать свои вопросы вот мы ответили про наставничество Если еще у тебя какие-то вопросы ну хотелось бы Ну узнать про условия То есть как у вас получается оформление идет официально или или неофициально какие-то может быть дополнительный пакет какие-то льготы вот под льготами ты имел ввиду бонусы оформлением по результатам собеседований мы обсуждаем уже непосредственно с каждым сотрудником учитывая местонахождение запросы условия там
01:10:15 - 01:11:48
вплоть до страны и так далее поэтому данном случае будем готовы услышать свои пожелания в том числе и мы со своей стороны достаточно гибкие официально тут средства вас есть возможность любом случае фидбэк технически все возможно фидбэком части Да два Кто первый начнет Давай я наверное первое если мы будем говорить другим Итак наверное чуть больше глубоко копнула Потому что мне очень было интересно насколько Вот ты сможешь работать в компании без опыта Изначально и могу сказать что ответы меня не
01:11:20 - 01:12:50
удовлетворили Давай пройдемся по пунктам 1 я не увидела достаточно четкой мотивации и понимание Почему ты прошел вообще курс один перешел на другой курс выбрал бы кент и идешь сейчас компанию которую особо изучил плане стека задачи вообще остального здесь не буду жесткой но в целом Хотелось бы конечно видеть более целенаправленное развитие ответы звучали такие фразы как какие-то проекты хочу видеть цель хочу не плавать знаниях для меня немножко общие слова более конкретно либо конкретно по технологии либо изучив проект компании в
01:12:18 - 01:13:36
которую не хотелось бы знать что вот заинтересованы в том числе больше конкретики мне ее на данный момент не хватило поэтому мотивация мной воспринимается как будто это просто желание попасть в любую эти компанию в принципе образование сказала в том числе между слов я не услышала ответа Почему был выбран курс а вот курса синхронки у тебя вот эти прозвучало что подбирала под вакансии То есть опять-таки это была цель попасть в компании неосознанные выбор своего стекла с которым хотелось бы реально
01:12:58 - 01:14:06
гореть во время ответов многие из англицизма по иностранных слов звучали не совсем с правильным произношением это конечно вообще как бы не критерий отбора собеседованиях абсолютно но однако оно формирует некоторые представления профессионализме специалиста которые используют ту или иную технологию как минимум нужно знать как она хорошо называется и звучит дальше командный проект Очень интересный кстати опыт мне понравилось то что ты в нем признавал как бы свою часть ответственности и говорил что да если
01:13:31 - 01:14:33
были вот переноса срока то это моя ответственность мои обстоятельства и так далее это понравилось однозначно говорит о том что есть возможность брать на себя ответственность нет внутренних преград Однако все-таки с моей стороны бизнеса все-таки есть опасения того что Личные обстоятельства ложатся на результаты будет оправдывает то что команда это поддержала и согласилась в реальных условиях скорее всего такого бы не было реальных условиях команда скорее всего забрала на себя задачу потому что есть
01:14:05 - 01:15:02
дедлайн и в данном случае игрок команды он выпадает это опять-таки не критические критерии подбора на вакансию Однако вкладывает некое впечатление в ценностях Я спрашиваю что тебе интересно будущих будущей работе и компании и услышал ответ только что-то учить изучать новое для меня тоже процессное понятие я так не видела что конкретно интересно тебе чтобы ты хотел работать на что есть упор из общего оценки такое из представления вообще как кандидате у меня на 80 85 процентов Нет эти 15 процентов могут
01:14:33 - 01:15:52
дополнить технические ответы если Техническая сильные то над данными софтовыми качествами Можно работать И можно их развивать и тогда кандидат может попасть в компанию соответственно взяли поэтому ответ будет том числе За Андреем Если же технически знание навыки умений которые сканировались тех вопросами тоже будут слабыми то здесь придется поработать над двумя сторонами еще момент про само представление и сама презентацию и речь мне где-то не хватило больше уверенности стрессовая часть эмоциональная подъем такой всегда
01:15:12 - 01:16:37
нервничает увеличивая речка Чайник то есть Это стандартный в принципе поведение но здесь время на внутреннюю уверенность может помочь с этим справиться Да и также опыт прохождения собеседований Вот и хотелось бы тоже из пожеланий на будущее То есть если есть речь про тайм менеджмент про например удаленные вакансии так далее то мне хочется видеть прям четкие какие-то структурные моменты особенно которые ложатся исходя из резюме я вижу тут заканчивал учебу ты уже не работал есть какой-то период времени мне хотелось бы чтобы кандидат
01:15:54 - 01:16:57
за это время говорил что я систему я четко знаю где когда сколько я буду учиться У меня нет накладок в конце ты хорошо ответил да что у тебя там дневное время перерыв еще рабочее время Это здорово то есть структура менеджмента должна быть такая которая позволит жену себя первый года год не сжечь на сложную задачу мой ответ на 85 процентов Нет Андрей дополнит 15 процентов чтобы вытянуть кандидата слушаю но честно говоря чуть не произошло вот я бы тоже сказал нет Объясню почему Я записывал в процессе нашей беседы Так
01:16:26 - 01:17:48
получилось не хватило некоторые уверенности в своих силах То есть даже если знал ответ на вопрос создавалось ощущение что ты не уверен в ответе на самом деле можно по опыту сказать некоторую чушь нам сказать Уверенно и так чтобы человек который который с тобой общается начал сам сомневаться и как минимум но можно в общем-то хотя бы обсудить и получить информацию Давай прямо вот по пунктам потом видео пересмотришь поймешь о чем я говорю когда я спрашивал про чистый код Ну про вот эти принципы солят Kiss это
01:17:08 - 01:18:37
да ОК но хотелось бы услышать что ты прочитал какую-нибудь книжку по принципу чистого кода или там вот про этого Мартин вот или какую-то дарует Мартин а или какой-нибудь адаптацию для питона или какой-то дайджест Ну как бы то ни было хотелось бы какие-то принципы то есть там сайды эффекты чистые функции вот это вот вся история было бы вообще топовой классно если бы когда тебя такую штуку спрашивает ты говоришь смотри Давай прямо на примере покажу и на примере показывает что плохая функция хорошая это прям вот
01:17:51 - 01:19:11
можно прям здорово было усилить соль лучше знать Вот сейчас спрашивают вот прямо вот выучить Даже не выучить зазубрить Но со своим каким-то внутренним пониманием вот типа запросов запросов пут патч То есть как бы что по запроса в общем-то Ты знаешь да но ощущение был что не знаешь вот и путь и патч они в общем-то они немножко отличаются имеет смысл повторить чтобы запросы тогда будет нормально и хорошо подойкеру мы с тобой про виртуальное окружение тоже говорили Ну в целом Ок если у тебя в проектах встречается меня
01:18:32 - 01:20:03
бы этот вопрос ответ устроил то что ты забыл активировать виртуальное окружение Что называется по умолчанию Но это наверное до волнения Можно списать дальше про то что зачем нужна регистрация приложения скорее всего не спросят Вот Но тем не менее если ты немножко глубже Копаешь джангу то в принципе можно это знать опять же приложение можно регистрировать по-разному так как ты через название и через appconfig вообще говоря Но этим разработчики джанга рекомендую через appconfig Вот но сами зараза
01:19:17 - 01:20:33
зарегистрируют через название поэтому и так и так можно поэтому здесь Окей дальше погуглингу мы с тобой гуглили гуглить Лучше тогда в официальных документах а не в этих самых в этих вещах у тебя первым это на насколько я помню на первом месте у тебя попалась официальная Дока Вот и пошел не в неё Ну как бы с одной стороны я понимаю что все это делают это нормально читать и гуглить нормально но лучше конечно смотреть приникать к настоящему К чистому источнику знаний вполне возможно где-то у меня на подкорочке отложилось
01:19:57 - 01:21:15
что есть некоторые слабость английским Именно поэтому ты пошел предпочел русскоязычный текст Ну вот то есть вот для меня вот это вот история вот так вот выстрелила если бы пошел в стандартную Ну вот официальный документ Там в общем-то те же самые вещи ты его нашел и было бы лучше дальше про первичные ключи возникла ощущение что не понимаешь Какие они бывают зачем они нужны и прочее прочее Мы недавно Обновили курс там немножко побольше про это написано лучше конечно про покашечки почитать что это
01:20:36 - 01:21:58
зачем это ну и про SQL поисковил запросами тоже создалось ощущение что они вполне уверен не в синтаксисе не в том как это все делается рекомендую что-нибудь или какой-нибудь курс быстренько пройти SQL не самый сложный язык вот чтобы быть более уверенным прямо написание запросов эти запросы тоже достаточно часто хотят на собеседованиях особенно кандера и плюс еще это универсальная история То есть если ты вдруг захочешь свичнуться из бэкендеров какой-нибудь дата аналитика то или как там ну в общем в общем вот в
01:21:16 - 01:22:33
ту сторону да то есть запросы А это такая вот вещь которая и там и там нужно то есть универсальная история которая полезна вот дальше когда мы с тобой прихватить ошибку в принципе окна опять не хватило уверенности то есть говоришь траекто а что трайта а человек то есть какую ошибку мы перехватываем и что хотим добиться то есть потом подумали что Ив но как бы Ладно и в сработал но почему и в чем его преимущество в нашем случае перестраикс там тоже осталось непонятно вот как бы сделал но сказал ощущение что
01:21:56 - 01:23:17
уверенности нет а дальше Когда делали генерировали список в принципе Окей то есть получилось вот но у бетона есть такая история как раз для генерации списков это по сути сахар но этот сахар очень любит в задачках просто посмотри как свертывается вот то что ты написал в одну строчку на литкоде очень много таких задачек кстати посмотреть или просто погуглить и риском принцесс и несколько вот этих вот вариантов накидать Потому что есть некоторые шанс что если ты решишь задачку через просто цикл вот такой вот
01:22:36 - 01:24:09
тебе скажут что это не вполне питание решение можешь переписать его более тоник ставил Если не сможешь тебе скажут Ну блин значит Маловато опыта Извините пока не подходишь вот поэтому больше уверенности с помощью вот эти вот подучить будет хорошо обратил внимание что быстро печатаешь это круто вот поэтому есть вот именно поэтому с этого ощущение что есть определенная база Но именно из-за того что ты быстро Кликаешь по клавиатуре получается Значит у тебя есть навык работы за клавиатурой что вот он наработанный
01:23:23 - 01:24:48
значит есть опыт в написании кода он достаточно приличный но нет какой-то видимо уверенности Вот поэтому я бы сказал что нет но может быть Кате предложил бы что этого кандидата Отложить на там не знаю Если он еще раз придет чтобы еще с ним посмотреть пообщаться через два месяца там через месяц через три месяца когда вот он эти темы закроет потенциал есть но сейчас я бы не взял это Вот такая вот история Спасибо вот Катя Тебя не слышно любишь как раз именно уверенность и дает весь оттенок и на технический на софтовое
01:24:04 - 01:25:40
качество поэтому действительно Я бы вот рекомендовала поработать над уверенным презентованием и себя и своих знаний Да не надо бояться Что что-то может не так звучать но лучше сказать чем не сказать вообще говорить из таких вот коротких рекомендаций это уверенность себя свои проекты звучало какие-то проекты А вот прям я их ценю Я знаю разбираться с произношением терминов тогда ты тоже будешь чувствовать опору под ногами более проработать мотивацию немножко да найти то что именно нравится что было бы классно здорово и вот этим
01:24:53 - 01:26:01
показать чем горит собственно Ну и обязательно изучается вакансию и компанию который идешь у тебя получилось ехать немного но реально не получится добавить эти пункты и будет здорово но это оптимистичной ноте Спасибо что смотрели Надеюсь было полезно и познавательно я бы сказал что мне понравилось вот пока пока ты не вы
01:25:28 - 01:26:32