Собеседование подписчика Junior Python Developer

Подготовка к собеседованию на Python Developer

Транскрипция видео:

  • Привет привет слышно нормально Чуть опоздал у нас пока формат только оттачивается нас затянулся на полтора часика но я думаю сейчас я все сжал и мы втянимся за час Окей давай давай начнем сразу Представься Чем занимаешься и Какой опыт имеешь И сколько пайтон времени изучаешь Меня зовут Артур я вот недавно закончил Универ сейчас еще работа на пайтон жена три медленно что-то в этом роде принципе изучал поэтому еще в универе был на курсах сам так делал но также были и перерывы типа делал лапки для Универа

    00:00:01 - 00:01:42

  • учился другое Поэтому там были Достаточно долго и перерывы было 3-4 месяца ничего не делал не практиковал и вот сейчас пытаюсь вспомнить делаешь хорошо Но тогда я думаю это собеседование будет хорошим таким началом камбэка Я думаю даже может рекрутеры заметят и напишут тебе и может это даже будет референсом на твои текущие скиллы Вот давай начнем самое простое мой любимый вопрос типа данных поэтому какие есть на что делится делятся на где-то было где-то изменяемые неизменяемые изменяемые это листы

    00:00:52 - 00:02:21

  • изменяем это строки еще можно назвать еще забыл один такой тип интересный которого нет NAN Type хорошо генераторы итераторы чем их отличие а ну итератор это в принципе как интерфейс для обхода элементов какой-то коллекции Если брать пайтон то это объект который имеет Андромеды и Next генератор это как бы ленивый итератор который обычно инициализируется как функция с ключевым словом которое вместо похоже на Return но когда происходит функция как бы становится на паузу и все параметры сохраняются значения и потом

    00:01:44 - 00:03:38

  • продолжается с этого же момента дойдет хорошо и генераторы да когда ты пробовал Окей давай тогда разница между New это метод называется при именно при создании класса То есть когда алотируется память под этот объект вот этот класс а под объекта под объекта а нет это конструктор называется сразу после того как вызвал New и инициализировать и стандартные перемены Хорошо давайте Вернемся назад Вот у нас есть цикл for мне какой-то лист там например последовательность какие-то объекта например что под капотом происходит

    00:03:09 - 00:04:54

  • [музыка] насколько я понимаю мы объект вот этот лист который нам Дан и он нам выдает находимся по этому списку и дальше делаем Окей Так теперь возвращаемся еще вперед обратно к иниты New знаешь есть такой паттерн программирования синглтон Да знаю как бы ты его реализовал Ну да андромета деньги сначала проверил бы типа если этот поезд если силос то есть этот класс уже имеет такой атрибут то просто возвращаем этот атрибут А если его нет то вызываем супер и создаем super.new создаем объект этого класса его же возвращаем

    00:04:13 - 00:06:05

  • его же отдали Какой еще знаешь способ Если что еще четыре осталось этот в основном еще можно через это классы умудриться еще через декораторы там можно поэкспериментировать декораторы Что такое на уровне паттерна программирования и на уровне пайтона а на уровне паттерна программирования это это функции или объекты которые функции которые расширяют возможности другие функции без посредственного изменения их внутреннего кода это как обертки которые дополняют каким-то сигналом уже существующие функции

    00:05:26 - 00:07:05

  • в рамках поэтому это принципе тоже там есть синтаксический сахар операторы не оператор через значок чтобы не прописывать типа декоратор в скобках функции декоратор для чего-либо когда-либо да В основном это было для измерения времени работы какой-то хорошо знаешь есть такая штука как писал знаешь как они устроены [музыка] особенности можно не так углубляться как они вообще выглядят Ну в принципе это функция анонимная так называется то есть не имеет название обычно используется для каких-то простых

    00:06:26 - 00:08:01

  • calculational простых каких-то операций в основном используется в таких функциях как Map фильтр в основном такие закидываю то есть на принципе анонимная ее просто вот так и закидывает знаешь есть такие два интересных декоратора еще возвращаясь теми декораторов Статик и класс метод чем между ними разница Статик метод не принимает аргументов принимает аргумент класса объект класса То есть это просто можно вызывать не на объекте класса на самом классе класс метод это метод который привязывается именно к классу они К

    00:07:24 - 00:09:01

  • объекту и параметрам принимает класс текущий класс хорошо Это тоже свойство типа как часть используется для для того чтобы скрыть какие-то атрибуты и возвращать и работать приватными у меня такой логичных тебе вопрос смотри есть Статик метод вот по факту он не берет атрибут целых вообще То есть он по факту просто как обычная функция зачем зачем вообще задать декоратор нужен если я могу просто написать функцию вне класса в принципе да можно написать функцию не класс будет работать также но я не знаю думаю

    00:08:12 - 00:09:50

  • придумали чтобы можно было соединить какой-то метод конкретный какой-то реализации класса чтобы не выносить типа начало чтобы логика была типа единым Едином стиле Едином месте просто группируем и все получается очень красиво важно чтобы методы и логика они все держались так сказать вместе вот Давай давай перейдем дальше КП можешь рассказать 4 кита Опа Ну кто выделяет 4 я много слышал разных Первое это абстракция и по каждому пройтись или как Да просто может примеры привести например там Spy там на Давай я тебе дам Не знаю давай

    00:09:05 - 00:10:30

  • Person Да И вот ты придумай просто ну методы любые взаимодействия любую инфу и просто приводи пример если так удобно тебя Окей например первая абстракция Это насколько знаю это возможность описания класса теми атрибутами и методами то есть минимальным количеством набором атрибуты и методом чтобы этот класс достаточно точно показывал себя в нашей какой-то нужной системе если это будет классно например основные атрибуты это имя возраст пол и методы там основные методы Не знаю Есть Спать Работать допустим то есть этого

    00:10:02 - 00:11:41

  • достаточно чтобы базового человека представить в любой нынешней системе а потом наследование например может быть у этого персона ребенок то есть чаял определяем класс чайлд он будет наследовать этот Персен и у него уже будут те же методы что уперсяна то есть он может тоже уже изначально при создании без инициализации каких-то лишних методов он уже может спать есть Ну там работать надо будет перепределить либо какую-то заглушку поставить в том что он уже Может на старте делать почти все то же самое что перс

    00:10:52 - 00:12:07

  • дальше дальше то есть мы какие-то капсуляция подразумевается бой то что и какой класс не может иметь не должен иметь доступ к атрибутам другого класса это реализованы на уровне соглашения в принципе можно через нижние подчеркивание создать такие атрибуты через проповедь не знаю например там какие-то атрибуты типа sellary которые не хочешь разглашать либо там работа идея И так далее тоже можно это как атрибутом с атрибутом сделать И последнее это полиморфизм в основном это если опять же не в рамках

    00:11:29 - 00:13:11

  • пайтана возможность объекта вести себя по-разному реализуется через переопределение методов это может быть например методы или функция с не обязательными параметрами если он есть то объект метода работает по одному сценарии если это параметр например какой-то метод в классе Персен типа ложиться спать и там по дефолту будет аргумент Если в рамках пайтона фото сделать аргумент в 9:00 если ничего не передавать то мы там ну будем возвращать это 900 если передать какой-то аргумент Будем ставить конкретно его вот и

    00:12:26 - 00:14:11

  • полиморфизм то есть с одним аргументом А вызов этого метода будет возвращать ложиться спать какое-то Время без аргумента будет возвращать ложиться по дефолту в 9 часов хорошо прям хорошо прям вижу ты определил внимание топикуп Вот Хорошо смотри инкапсуляция Да в поэта не ты говорил про подчеркивание Да вот в чем разница между одинарными двойным подчеркиванием вот для самой этой Именно поэтому одинарная это и двойной это правило то есть в рамках Я уже давно это делал Насколько помню если одно подчеркивание то ты еще

    00:13:25 - 00:15:01

  • можешь доступиться к этому атрибуту если 2 то Если два то Ты тоже можешь но там через Дерби через название класса еще какой-то можно все равно доступиться Но по дефолт Если будешь делать писать что-то типа объект точка Вот этот атрибут интерпретатор тебе не даст этого сделать скажешь по факту нет других языках все скажем так по нашим дружеским соглашениям среди разработчиков смотри есть такой интересный атрибут знаешь на что влияет напомнить что такое что-то типа задать изначальное количество Аргумент

    00:14:16 - 00:15:45

  • на изначальное количество атрибутов класса чтобы типа чтобы не расходовать нам много памяти если кому-то захочется еще добавить Да Абсолютно верно Окей давай дальше чуть-чуть [музыка] Давай каждую букву прям пройдемся приведем примерно поэтому и прям вот сделаем прям примерный показатель Всем нашим новичкам в pything Community Как нужно отвечать на соли Давай давай попробуем то есть принцип который означает что класс должен делать что-то одно и не более отвечать за какую-то одну функцию например это будет

    00:15:08 - 00:16:47

  • такое сразу придумать Коннект то есть мы у нас будет класс который определяет только этот соединение разрыва соединения И что-то там делать с базой если мы не можем тут например определить метод вывода данных потому что данные может быть В каком-то случайном либо каком-то нужном формате для конкретного пользователя и типа какой-то метод определить в этом классе будет ошибочно поэтому принципу потому что кому-то надо данные в таком виде кому-то таком мы только предоставляем доступ к базе данных и когда надо закрываем

    00:16:11 - 00:17:38

  • соединение нормально нормально Давай дальше второй [музыка] это когда у нас классы должны быть открыты для допиливание открыты для как это сказать открытое расширение открыто для расширения но закрытие для модификации уже существующего кода То есть например если у нас есть какой-то там класс знаю тот же тот же Person и у него метод спать в этом методе если мы руками будем проверять через IF и типа сколько сейчас времени то делать то-то например ложиться спать Если больше 9 часов вечера либо не ложится Если меньше

    00:17:01 - 00:18:45

  • то в будущем Мы не сможем По этому принципу Дописать какой-то код чтобы юзер смог ложиться спать если там не девять и 10 часов надо будет прийти в этот класс этот метод именно изменить этот метод что уже предполагает нарушение этого принципа можно только Дописать она тут уже изменяем внутренний код дальше третье это то есть классы должны быть замена и своим суперклассом насколько я помню если мы определяем какой-то метод например там Shape форма и у него будет какой-то дочерний метод типа треугольник и этот метод Shape

    00:17:58 - 00:19:34

  • определяет этот класс шейп определяет метод рисовать то и треугольник дочерний тоже должен определить этот метод реализовать и где-то когда надо будет мы сможем поставить этот треугольник вместо 6 у него есть метод все вызывается возможно работает не так как следовалась Но работает запускается без ошибок так следующий принцип соли интерфейс egregation разделение интерфейса то есть классы не должны зависеть от интерфейсов которые они не используют тут лучше было бы все это на какой-то Джаве рассказывать рассказывай

    00:18:51 - 00:20:16

  • на Джаве интерфейсы это просто абстрактные классы которые просто определяют абстракция Но если тебе удобнее принципе там более так все классические не совсем классический но нормально начали как тебе удобнее [музыка] как я сказал классы не должны зависеть от интерфейсов которые они не используют тот же пример с классом который например изначально мы определяем класс и у него будет еще три дочерних глаз квадрат прямоугольник треугольник прямоугольник и Круг эти методы будут реализовать один единый метод который

    00:19:42 - 00:21:34

  • есть класс у интерфейса родителя дров мы не можем в классе Shape прописать сразу три метода типа дроутера потому что каждый из этих дочерних классов которые реализует интерфейс должны будут реализовать все эти три а зачем нам классу прямоугольник реализовать метод типа нарисовать круг то есть не должен зависеть от этого интерфейса либо же это надо поменять И последнее это [музыка] зависимости версии насколько я помню это модели верхних уровней не должны зависеть от модулей нижних уровней и они все должны зависеть

    00:20:44 - 00:22:15

  • от какой-то единой абстракции А тут например возьмем опять же базу данных Например у нас есть какой-то класс например там Логин или еще что-то типа того который которого есть метод логин у которого на вход например передается какая-то база Connection какой-то если мы тут напрямую укажем Какая база это будет Неправильно потому что модуль верхнего уровня логин будет зависеть от модуля нижнего уровня например там база Майская дверь если мы передадим сюда типа это будет Неправильно Потому что если в

    00:21:32 - 00:22:55

  • будущем Мы поменяем базу на то это уже не будет отрабатывать отрабатывать потому что надо сделать какую-то абстракцию типа просто db Connection потом будет типа всё должно работать супер прям не нравится как историк даже пример привел все принципе точно описал у меня в целом там даже замечаний это Давай еще последний пройдем Давай по приколу Что такое кис кипит Simple насколько я помню как ты понимаешь это написать какие-то сложные заумные конструкции которые например поэтому могут одну строку инвестиции Но которые

    00:22:21 - 00:23:51

  • нужно будет принимать полчаса Что такое драй Том 3 500 и я принципе тоже нужно делать лишнего функционала который не будет использоваться Давай еще по аббревиатурам пойдем есть такая большая есть пунктов 6 Если не ошибаюсь [ __ ] в принципе это как архитектурный стиль построения приложений те сервер общается с клиентом посредством запроса ответ и там я помню чтобы система была restfall надо вот эти как раз 6 пунктов я точно сейчас все не вспомню Но эти могу напоминать Я тоже все не помню это нормально

    00:23:14 - 00:24:45

  • например есть там определенный пункт связанный с линейки интерфейс вроде бы называется по поводу использования определенного формата данных должен быть изначально определён стандартный который но в целом там больше даже на это отвечает Не нужно там просто требования к раз таки универсализации [музыка] взаимодействия единый Тип который принимает сервере клиентов клан сервер ты сам только что назвал это первый пункт То есть это залог архитектуры вот второй пункт насколько я помню это стоит то есть отсутствие состояния Вот я думаю

    00:24:28 - 00:26:02

  • ты понимаешь в виду у нас состояние на клиенте она не существует вообще то есть по факту стоит у нас на бэкенте даже не на бэкенте В современных Ну как на самом деле говорить на бэкенте потому что как-никак не только базой данные управляется стоит у нас клиент вообще никак не управляет как либо стоит на своей стороне он не управляет они хранит управляет Хорошо давай тогда не будем задерживаться на месте http какие методы знаешь стандартные 4 метода Это get-пост от патч это опять вышло Ну да уже пять стандартных еще есть

    00:25:25 - 00:27:17

  • там есть еще Но в основном юзал Connect options Head Google вспомнить еще [музыка] не помню Ну там Option еще есть разные Вот давай так по степи тоже пройдемся быстренько потому что не хочу много времени занимать какие из этих методов и что такое [музыка] можно какой-то подсказочку Ну ты например [музыка] Что будет если ты сделаешь год Что случится с сервером если это нормальный год смысле Get подразумевается больше что никакие данные не будет изменены сервер только отдаст тебе данные и не будет ничего

    00:26:26 - 00:28:19

  • изменять себя внутреннем состоянии либо в базе либо да то есть в этом суть импотентно То есть если ты будешь делать там Get постоянно то у тебя как бы response поменяться но в теории должен но ты понял то есть ничего такого происходить не должно То есть это метод который который настроение севера он сделает Вот все это Окей давай вернемся немножко по этому и перейдем на Чуть более сложные темы потом поговорим здесь ты морально к этому готов смотри у нас есть множественное наследование поэтому я

    00:27:44 - 00:29:17

  • думаю это заметил одна из хороших поэтому но есть какая-то проблемка с этим Да можешь про не рассказать Я думаю мы идем камеру пришли да когда интерпретатор думает какой метод Из какого класса ему выбрать если несколько одинаковых метода resolution Order подразумевает собой алгоритм выбора последовательности входа графа классов которые наследует данный [музыка] чуточку Давай подробнее структура которую можно там иметь Есть еще такая штука когда [музыка] ты понял почему появился Ну потому что была проблема В этом не-не

    00:28:38 - 00:30:48

  • то что было проблема в этом Она появилась новая проблема мро меняли вопрос исправим сформулирует Почему все-таки появилась новая проблема и моро пришлось менять И вот свету Дай направлен решать изменения очень важное произошло с классами между Python 2 и Python 3 вот прям Ну Множественные тоже было тоже было все классно начали наследоваться это те самые Класс вот и принципе это увлекло изменения вообще концепции Окей давай теперь последние две сложные темы асинхронично Трейдинг мультипроцессинг и

    00:30:09 - 00:31:46

  • просто не все подряд можно все подряд но давай структурировано как она пайтоне что такое счастья как она по это не проявляет себя и модульки что под капотом как он работает Ну начнем Я не все знаю точно понимаю но в принципе как могу расскажу асинхронность это как я понимаю возможность выполнения кода без ожидания его завершения то есть в этот момент можно сделать какие-то полезные вычисления комы ждем какие-то моё операции пока мы ждем эти операции мы исполняем себе то есть операции которые зависят от

    00:31:07 - 00:32:48

  • ресурсов процессора пока мы ждем реализованы через модуль уже пришли к синковой синтаксису раньше был я точно не помню я уже не застал этот момент в принципе у нас есть один Event loop то есть точка где интерпретатор решает Какие программы ему когда регистрировать выполнять совершать так далее как я сказал есть программы Они же рутины То есть это функция синхронные функции которые выполняют какие-то действия крутятся все цифры событий и от них ожидают что они будут передавать обратно управление

    00:31:58 - 00:33:40

  • что еще что дальше Он этого достаточно понимание У тебя есть Давай дальше на переключимся на мультипроцессинг и Мульти трейдинга Нет Трейдинг и мульти процесс два таких интересных модуля чем между ними разница И какой бы ты где использовал Ну начнем с понятий процессы поток процесс это Такая сущность которая имеет каждый процесс имеет отдельные ресурсы процессора и отдельную память потоки все имеют общую память и общие ресурсы процессора в рамках всё в этом отличие а мульти Трейдинг но пайтоне он не знаю насколько актуально

    00:32:54 - 00:34:40

  • юзать Потому что есть джил или гилл Глобал Интер Петербург который позволяет в единицу времени исполняться только одному потоку на интерпретаторе Python это сделано для того чтобы избежать дедлока когда там раньше было не помню типа два потока используют одну и ту же переменную и интерпретатор Python подсчитывает эти количество ссылок на переменные когда один поток удаляет последнюю ссылку коробочка чистит от перемены уже удаляется а второй поток этот момент хочет ссылаться взять эту значение этой переменной ее уже нет тут

    00:33:49 - 00:35:15

  • была ошибка и насколько я знаю из-за этого сделали поэтому крутился только в одном потоке там есть свои реализации через Когда можно все это обойти и сделать ручной мультипоток Ну в принципе стандартная и от мультипроцессинг Ну это выделение под конкретный процесс своих ресурсов и памяти я не помню там либо запускается отдельная интерпретатор для каждого процесса уже точно Ну там принципе Суть в том что ты взаимодействуешь уже на уровне процессов поэтому То есть если ты откроешь диспетчер задач ты увидишь уже несколько

    00:34:32 - 00:36:09

  • пальцев самое главное его суть давай так где чтобы ты использовал [музыка] Если так то если надо вычисление какие-то сложные то есть умножением адрес Например либо векторная преобразование которое легко проверить тут параллели на потоке а если надо какие-то отдельные сущности отдельные процессы исполнять [музыка] которые не зависят друг от друга которым не надо взаимодействовать между собой то там мультипроцессе Ну на самом деле нет Потому что если будешь пытаться использовать труды но Начну с того что они как бы

    00:35:28 - 00:37:15

  • это не однопоточные да то есть ты вообще вообще ничего не выиграешь Вот это не Да в общем да но как раз таки мне кажется на перемножение матриц ты мог бы просто заспавнить кучу процессов которые тяжелые вычисления В общем если каком-то трушном параллелизме то потоки все же будет лучше потому что им надо взаимодействовать между собой итоги какой-то единый результат надо представить в рамках потоков это сделать легче да то есть у процессов там есть какие-то фичи с реализацией но понятно что процессы на уровне системы Они

    00:36:26 - 00:37:47

  • полностью поделены и друг другу вообще не знаю поэтому я соглашусь вообще так если взять какие-то операции и так далее Где тебе нужно что-либо ждать то я бы просто синхронично использовал не хочу лезть в эти поточные Дебри вот согласен там есть только пару мест где можно потоках выиграть сравнение Окей смотри джил принципе примерно понимаем Но вообще как ты говоришь жил нужен да Для того чтобы обеспечить Но почему-то люди имеют идеи его убрать и почему-то все пайтоне его не хотят убирать есть такая штука Джесси Да знаешь Они

    00:37:07 - 00:38:40

  • [музыка] а если расширить коллектор так как я уже говорил это собирает после удаления последней ссылки на какой-то переменную переменная удаляется Это первый механизм а второй механизм Для чего нужен Как он реализован Вот это точно не скажу как реализовано Ну хотя бы для чего нужен Ну чтобы очищать память чтобы мы не платили лишнее инстанции которые не используем Так мы можем линкаунтер для этого использовать тогда не знаю Ну вот если ты список список засунешь что список который ссылается на список в

    00:38:02 - 00:39:30

  • списке списков у нас по факту В списке у нас по факту ссылка Да идет на объекты и как раз таки второй механизм он для борьбы с циклическими ссылками и он предотвращает как раз таки утечку памяти Суть в том что благодаря джилу у тебя останавливается произведение кода утечка памяти она по факту нет потому что у тебя не работает ни один трек и у тебя подрубается джессита Red который такой смотрит на весь этот стоит и такое все и просто предотвращает это Да я понял что такое цикличность спасибо Вот

    00:38:57 - 00:40:33

  • Окей ну принципе поэтому я думаю все давай перейдем к SQL Вот давай сразу начнем [музыка] Что такое она это принцип построения эффективных баз данных 4 4 принципа атомарность это миссисити консистенции следовательность либо как-то изолированность и устойчивость исправлю это не то Как эффективно строить база данных это описание Какой должна быть транзакция в целом если так [музыка] означает что у нас транзакция будет либо выполнена полностью Либо они выполнена вообще консистенции это самое сложное для меня как объяснить

    00:39:44 - 00:41:37

  • это типа данные должны быть как согласованные между собой я это понимаю так что типа если например транзакция там работа С банковскими счетами если с одного счета деньги ушли то должна быть согласованность что эти деньги на какой-то другой счет типа упали они не просто висят в воздухе Ну если вот так вот грубо грубо на уровне транзакции можно так объяснить Вот мы сейчас знаешь еще бывает на уровне разных репликаций база данных Вот это можно теорем пойдем Давай давай у нас идет [музыка] во время выполнения данной транзакции

    00:41:01 - 00:42:33

  • никакая другая Параллельная не должна влиять на ее результат Каким образом это реализовано тут не скажу есть уровни изоляции нет наверное ритками то три тонкомитет нас Слышал такое но рассказать не смогу Окей окей так и последнее там устойчивость возможно сохранять свое состояние даже если там система выйдет из строя то есть последнее состояние которое средняя транзакция которая была зафиксирована она должна отображаться после того как база опять поднимется да Давай теперь поговорим про индекс что

    00:41:51 - 00:43:16

  • это такое дополнительные колонки для того чтобы облегчить чтобы облегчить поиск выдачу знаешь какие индексы под капотом устроены [музыка] Окей Хорошо давай в индекса не будем углубляться перейдем сразу практики и я если честно тему с базами данных и не особо люблю потому что я считаю что это скажем так должна быть штука опциональная по проекту Да с учетом популярности из Келли Но из кельба сданных давай пока Я сейчас ищу тебя подходящую аквариум немножко если ты работал сна из Келли Мы из Киеве базы данных можешь все-таки

    00:42:45 - 00:44:22

  • закомпарить их и сказать в чем они отличаются чем преимущество той или иной Ну снова скрилем он работал в основном не напрямую подключался как для как брокеры для серий также немного работал с властью совсем чуть-чуть в принципе понимаешь это хранилище нет никаких зависимости как реляционной базы просто есть значение есть ключ есть его значение а в каких-то тоже новость реально объект на или документ на ориентированной базах там насколько знаю просто хранится вот я пробовал индексами Там просто индекс это

    00:43:41 - 00:45:23

  • нужно инфой есть свой язык который взаимодействует чтобы взять либо что-то сделать с данными которые хранятся в этих рисунках тебе нормально в чате проходит Не очень если растянуть [музыка] [музыка] я могу сказать тебе честно я уже три года не писал ничего на из Киеве и даже проекты где мы использовали майские или возраст у нас принципе все обходилось на уровне алхимии или там каких-то таких взаимодействий То есть я вообще считаю какой-то роквери в коде это никто [музыка] вот я вижу скинул файла можешь скинуть

    00:44:38 - 00:46:08

  • их там скалочкой картинки Я видел я точно не смогу потому что я делаю Ну ладно лежать ну здесь вроде бы есть кнопка сжать вот то есть Давай удалю Вот так вот [музыка] [музыка] и должно получиться Вот так вот и напиши просто в чате говорю Если что напиши его в чате потому что не хочу свои переписки полить сейчас что-то вылетит натыкай её вот сорри я тебе ранее там вот просто визуально ее проверю да Это давно было когда трубы название таблицы будем условно первая и вторая Да лучше по правилам напиши и вот

    00:45:57 - 00:47:52

  • orders и Каста Мерс тут есть ордер есть и пока ты пишешь я еще займу один поток в твоей голове вот какой когда ты прищешь просто Join Да какой день будет использоваться правый левый и на Ну вот как раз инар я думаю тебе и нужно использовать подсказка не было ничего Ну да киньки не в Google chat так [музыка] Ну смотри ты вот делаешь Селект я на самом деле не уверен но мне кажется эскиль не поймет какой то таблицы сделаешь ордера идеи к стране То есть можно напрямую Да переписать я просто сам не помню вот потянет ли он

    00:48:13 - 00:49:57

  • отдельно это с конкретных таблиц Да но вроде бы там на ордер надо ордерс точка Вот [музыка] да Давай закончим Я не люблю эту тему Я не хочу никого и грузить кот задачки начнем с уровня харда никогда не решал больше Изи но Изи там только пару штук делал когда-то Мне кажется они скоро добавят уровень хардкор для разработчиков но у меня правило простое я сам тоже не люблю задачки кодинки сам Сити собеседование проходил когда-то поэтому простая задача первый номер 44 человека просто лайкнули ее полутора тысяч людей

    00:50:55 - 00:52:31

  • она просто не понравилось но обещать как-то не очень сложно написать [музыка] так есть рейнанс есть Таргет нам бросающий за это tarket например самая классная 27115 торги 9 выдаем выдаем индекс Давай попробуем по можно циклов в цикле пойти первый там каждый второй Потом каждый так искать это самое первое решение что приходит [музыка] и тут будем проверять Если вернем 0 до этого например сюда ай прицепил можно и то конца ну Ты неправильно написал а нет сильно быстро решил Я верю в твои силы давай вот что-то что

    00:52:13 - 00:54:31

  • я выбираю что-то такое что имеет большой асептон срей потому что это означает что людям она или понравилось либо она либо она заходит легкой Либо так вот Давай оно Хорошо давай чуть-чуть усложним уровней уровень Изи но она совершенно не Изя вот я знаю что на нее решал Ну как Она для меня стала ездить после того как я решил до этого еще пять задач подобного типа вот если ты никогда не решал задачи связанные с нодами и плохо понимаешь плохо понимать реку вообще не знаю что такое рекурсия то Это скорее

    00:55:22 - 00:56:55

  • Задачка такое ну да [музыка] Таргет [музыка] так но есть такая есть Клон 3 бинарное дерево 743 потом на 6:19 вот 3 зонта 2 сразу например это не будет работать [музыка] какой она идет по счету здесь сначала надо какое-то там условия потом Чтобы она хотя бы вышла оттуда а потом уже с море курсе мы будем проходить по этому списку и искать наш Таргет точность рекурсий точно Ну можешь если может без рекурсии ноту пройти Ты же понимаешь это не список ты получаешь На фото ты получаешь ноду то есть это класс который имеет себе там

    00:56:09 - 00:58:04

  • направо-влево право лево другую ноду ты ну циклом не пройдешь я понял здесь у нас надо Чем дальше надо сложно Так сходу ну ты первый быстро решил я подумал что [музыка] нужно как бы [музыка] сделать подсказки хотя бы по структурным моментом чтобы немножко тебя направить Смотри у меня есть решение как я это решал я тебя буду просто частично его пересказывать А дальше ты будешь делать какое-то свое Давай определим метод Да и сделаем там Ну даже нянцы Давай self.answord Ой а зачем кто так пишет точка result сделаем

    00:59:29 - 01:01:17

  • Self result и сделаем его на D Да просто определил этому класс равенствует на Перекинь мне и нет правильное место для красоты видите чуть а вот потом Определи метод Fight он себя будет брать Вот как раз таки ноду селф но Да и сам и 3 нот если что это Ну сделай пока опаз и не финтофайнд Окей теперь давай вернемся [музыка] вот на самом деле ты там правильно начал перемена писать но не с помощью лэн А ты можешь сделать сравнение в начале если оригинал есть Таргет то ты просто возвращаешь Клон Вот это просто мы такой кейс прописываем

    01:00:50 - 01:02:45

  • Ну дальше Вызов Да ты Закидываешь в него нужные и делаешь в этой функции Return selfersalto в ниже [музыка] Теперь будем подсказки дало какие-то тут что-то тебе по факту для тебя просто файнд это такой Black Box который суть файнда в чем что ты ходишь там по правой левой ноте вызываешь так же самого find но вначале метода find если value этой моды которую ты там фанде закидыш равно value Target ноды то ты просто делаешь Return то есть ну ты во-первых записываешь ставишь как раз таки эту ноду или

    01:02:29 - 01:04:18

  • лучше надо чем-то просто закидывать под этим мифом и делаешь Return все а Лол я вот этого вообще не увидел Ну да висит Я сначала смотрю такой а если надо равно Таргет то у тебя кстати сравнение там если ты вылью то валью таргета проверяй [музыка] на все есть рай будем проверять Если это сначала проверили если это уже конец то возвращаем Клон тоже наверное клонт потом поиск [музыка] ничего [музыка] а ниже там Не выходишь просто продолжаешь рекурсию ты пишешь find и ходишь на правую и левую ногу то есть друг за другом

    01:03:48 - 01:05:47

  • шел налево взял Таргет при надо идти направо подожди я чуть-чуть запутался если на двери тоже записываем да ты идешь левую правую вместе повторяешь методы друг за другом можно этого вполне приемлемо вот и ты Учите факт того что в какой-то момент может не быть чего-то влево или правой ноте А если ее нет то ничего делаем направо если права нет идем налево Нет ты идешь по двум нодам сразу вот то есть ты идешь прям по всему дереву ты перейдешь по всему дереву сразу но если ты не находишь правый назначение там Лев или райт в

    01:05:51 - 01:07:32

  • твоей ноте то ты ничего не делаешь не делаешь то есть обычным и фам это вполне можно сделать смысл делать лишнюю ссылку повторяет Ну ты делаешь сильно вверх Не тернешь не обязательно ли тернить все ничего Не сработает Ты должен продолжать идти если территоришь selfind то да подожди я хотел Ты должен закинуть Да ты сбился не надо ничего если ты просто хотел записать забился скорее всего ты хотел написать что ты идешь направо [музыка] Ну в принципе если так то все достаточно [музыка] [музыка] потому что мы не дошли туда куда надо

    01:06:51 - 01:08:37

  • на столкнулись На вот этом retur не записали резал вот 17 17 20 строки У тебя есть ошибка я тебе дал сделать если слева нет то Идем направо если справа нет идем налево а я Ну тут не проверяет уже получается я бы тебе упростил Смотри Тебе не обязательно определяться идешь ты направо или налево ты можешь просто сделать условие если нету левой ноты если нету правой то ты направо не идешь а ты уже делаешь [музыка] а если она есть то можешь написать попроще Давай простим и в not Left ты идешь налево Если есть я вообще

    01:08:46 - 01:10:26

  • сильно сейчас туплю либо волнуюсь либо что ты что-то волнуешься тоже не настоящий Собес Да после него offer не помню после этого не предлагает хороший Ну разве что можно сделать компанию ООО Медвежья лапка и получить оттуда оффер Я бы не хотел такое принимать смотри Напиши просто If no deleft и selfind на Drive Target То есть если есть левая нода ты идешь на неё и потом отдельно напиши их они Элиф если есть Спасибо конечно но склон 3 Ты вроде бы что-то ты не то возвращаешь сам хризант резал равно нода она дает у нас

    01:10:04 - 01:11:52

  • клонирован да ты оригинальное место клонирования закинул сейчас должна в теории сработать Да и давай Сабит Поздравляю с решением 86 процентов 91 процент по Memory вот серьезно очень серьезно В общем давай перейдем последней Смотри мне понравилось ты полностью тянешь на уровень инженера вот Спасибо Ты хорошо знаешь теорию как знаешь то есть ты хорошо линейно знаешь Ты знаешь начало такие базисы но в конце когда уже начинается трейдингтор там После него Вот тебе нужно еще мне кажется сильнее протянуть Да хотя бы за уровень

    01:11:25 - 01:13:07

  • понимания полностью как работаешь коллектор и так далее И это ну будет принципе хороший но хорошая Такая база именно по Python вот мне понравилось это хорошо знаешь соли То есть ты способен приводить примеры привести пример на javy Там и так далее Да понятно что интерфейс и так далее но то есть понимание что по этой интерфейсов Нет есть абстрактные классы это прям очень похвально вот поискелю Ну смотри я заметил неуверенность Я человек который вы принял бы на работу если бы на моем проекте было только во

    01:12:34 - 01:13:51

  • время прибыл бы человек потому что я считаю что ну нужно как-то сдвигаться к эквамен конкретного проекта искать человека который имеет какую-то практику Вот Но другие люди Они скорее всего сделали бы тебе реджект на это наш собеседование потому что вот эти поиске или там имеешь какую-то неуверенность Вот с моей стороны это вообще не важно но ты понимаешь кель нужно подтянуть нужно знать транзакции нужно уметь писать транзакцию Нужно умеет писать то есть ты молодец что ты написал Join но могут быть там знаешь типа после Joy будут

    01:13:15 - 01:14:34

  • идти там хевинги да разница между вархамингом усложняться и усложняться аж до там каких-то написаний своих автопросижира с объяснений и всего такого то есть SQL я посоветовал бы подтянуть Вот мы с тобой не общались по поводу фреймворков потому что ну я пытаюсь как можно быстрее уложиться в час вот поэтому поэтому яценки к сожалению тебе не дам А ну что еще раз нужно подтянуть понимать его в целом то есть http Как я понимаю tcp ты знаешь как работает вот ну Поднимись на уровень протокола чуть выше на http и более досконально

    01:13:53 - 01:15:19

  • пройтись почти и так далее а в целом ты хорошо справился То есть мне кажется люди оценят это интервью оно для джуниорского интервью она очень показательные то есть Ты очень стойка стойка на все отвечал я вот поэтому там вначале даже никакой неуверенности даже не заметил то есть ты молодец Спасибо Ну ладно теперь завершу Итак друзья Вот такой у нас собеседование для ребят которые желают также пройти собеседование со мной чудное к сожалению не ламповая то у нас есть в description группа Telegram там

    01:14:42 - 01:16:07

  • есть закреп формочка для заполнения всего нужно заполнять там Поля Вот чем больше и лучше Заполните тем более приоритетные вы будете списки я к сожалению не по очереди А выбирая самых интересных кандидатов Вот и принципе когда-нибудь раздают очередь я думаю скоро не так уж много заявок и мы сможем с вами провести собеседование это собеседование могут видеть ваши рекрутеры Вы можете его скидывать там как даже как ковер лета Вы можете скидывать это собеседование вот оно будет открытом доступе и так далее вот

    01:15:31 - 01:16:48

  • поэтому Артур всего тебе хорошего Я думаю ты теперь имеешь доступ к отлично возможности пробиваться на какие-либо вакансии вот на наши новые рубрике где мы будем собирать фокус-группы желаю тебе Желаю тебе удачных поисках Спасибо большое Вот Но если бы я тебя собесела свою компанию да то ты прошел позицию прям приятно слышать Ну и скель подтяни как бы да обязательно Все Всего тебе хорошего пока спасибо пока пока

    01:16:09 - 01:17:39