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

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

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

  • Привет Привет нормально слышно слышно меня да меня слышно Да отлично Ну в общем привет снова значит Давай чтобы оптимизировать максимально Собес Вот и вложиться в час Я немножко расскажу про план и надеюсь у него получится придержаться вот сначала по этой теория потом фреймворки потом скилл потом решение задачи Вот принципе Такой путь но вначале твой опыт Представься расскажи чем занимаешься Что лучше Какие курсы проходил какой коммерческий опыт имел и так далее хорошо Привет меня Олег зовут Мне 22

    00:00:01 - 00:01:27

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

    00:01:06 - 00:02:53

  • хорошо Пэт проекты какие-то у тебя в целом были пробовал себя Да были проект на PHP блох Это мой самый первый проект на питоне тоже несколько под проектов было Ну как в качестве финальной работы в курсах и соответственно то что мне было интересно то что я хотел сам для себя делать там всякие фишки и просто Статик сайты в принципе все у меня лежит хабе там можно будет потом посмотреть Если тебе интересно ну потом если конечно у тебя что-то было продакшене запущенные на доме вообще было идеально вот

    00:02:13 - 00:03:46

  • наверное еще в начале собеседования скажу что ребята У нас проходят набора напайтон собеседование мы проводим такие прекраснейшие собеседования Вот для этого нужно вступить нашу группу ссылка на группу у нас в описании description там в закрепленных будет формочка Вот давай тогда сразу начнем с поэта на прям самый первый мой любимейший вопрос типа данных поэтому какие есть на что делятся изменяем и не изменяемые изменяемых это у нас лист лист все остальные собственно неизменяемые Intel strontype

    00:03:08 - 00:04:31

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

    00:03:54 - 00:05:48

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

    00:04:59 - 00:06:48

  • это более для удобства сделано от защиты от дурака так сказать дурака это нас капсуляция которую по этой даже нету А это как раз таки один из функционал Поэтому вот ты говорил про цикл for Что такое и Next можешь объяснить как вообще что это есть класс он кажется функции что-то на самом деле это класс просто с маленькой буквы это не так сделано Это не функция Вот Но есть еще NEXT с двумя подчеркивание тоже оператор есть Питер который определяет объекты которые как раз таки краски делает это Проход как for рынок

    00:06:07 - 00:07:42

  • но for Наверное это реализация Next А это может какой-то объект класса Next for это даже не реализация Next это просто конструкция интерпретатора пайтона которая постоянно у тебя спавнит флудит нексто и все То есть ты каждый раз в RX и на не знаю там листов intergers у тебя X будет Как раз таки я один из элементов последовательности Вот как раз таки у тебя просто будет каждый раз на итерацию вызываться Next dander метод и он будет тебе как раз таки вот давать вот X следующий принципе поэта не так

    00:07:02 - 00:08:31

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

    00:07:47 - 00:09:32

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

    00:08:46 - 00:10:24

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

    00:09:39 - 00:11:14

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

    00:10:33 - 00:12:12

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

    00:11:23 - 00:13:02

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

    00:12:27 - 00:13:57

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

    00:13:22 - 00:15:20

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

    00:14:26 - 00:15:36

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

    00:15:03 - 00:16:19

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

    00:15:48 - 00:17:33

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

    00:16:57 - 00:18:42

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

    00:17:53 - 00:19:03

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

    00:18:28 - 00:19:45

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

    00:19:06 - 00:20:39

  • углубляясь то эти методы Ты когда их используешь каким-либо запросом они определяет как у тебя будет строиться из кильвери под капотом вот этот джанговорен да то есть так как раз таки Join и Давайте вложены какие-то вопросы это определяет там будет Или у тебя будет Как раз таки проявление мне уже это не надо Я за нами не работаю давно Но я думаю как человек который Джанго должен прям нормально про этой теме пройтись блин какой-то интерьер офигел этого что ты там про faction lated на уровне джанковский код Base

    00:20:09 - 00:21:22

  • Знаешь какой он вообще метод там наследует даже другого класса база Окей Что такое это грубо говоря как прослойка между Ну это просто это как ворота перед Эквестрии то есть какой-то есть request после она идет туда куда нужно и пропадает но если есть какой-то и проверяет если все подходит все устраивает то она пропускает дальше Если нет то реджект просто как можно сказать такие ворота через которые пролетает как раз таки request можно сделать что-то Да request можно сделать что-то после игры Квеста на самом деле вот

    00:20:47 - 00:22:25

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

    00:21:48 - 00:23:41

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

    00:23:04 - 00:24:37

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

    00:24:04 - 00:25:32

  • Вот а еще еще умеет их валидировать чтобы тебе прилетала то что тебе надо от клиента Да вот давай представим что ты сделал проект сайт который продает мороженое отправляет по Новой Почте допустим концепция такая и тебе говорит клиент что я хочу Продавать мороженое всем Вот Но кроме Алексеев вот Алексеем Продавать мороженое нельзя потому что Алексей Априори нельзя мороженое У тебя есть классным Да какое мороженое допустим три поля вот как бы ты сделал так чтобы Алексей не получился но я бы наверное написал бы кастомный

    00:24:47 - 00:26:36

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

    00:25:44 - 00:27:21

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

    00:26:45 - 00:28:05

  • сделал все калькуляции во Вью То есть если у тебя там во Вью Еще надо взять от список мороженных там проверить курсы проверить на них качество взять нейронную сеть которая определяет Какое мороженое лучше подойдет то ты уже потратил огромную кучу ресурсов на request который не должен был произойти вот смотри ее подсказки ты мог бы сделать это во Вью Потому что ты имеешь данные со своего сериалайзера вот тебе надо было переопределить метод скорее всего это Create если это был модуль Если это было 5 то можно было

    00:27:32 - 00:28:47

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

    00:28:12 - 00:29:56

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

    00:29:07 - 00:30:36

  • ты написал мне такую говорю которая выдаст Вот такой результат [музыка] сейчас Может просто скинуть то есть в идеале это все написать одним из запросов да А ты двое не напишешь А ну да точно [музыка] тебе нужно сделать Select вот одно магическое слово чтобы эти две таблицы соединить между собой и все Всем привет друзья Все как всегда как-то так [музыка] тебе нужно [музыка] можно было место Джона просто писать Join потому что energi это Join это одно и то же вот так а тебе надо было бы написать Что ордера

    00:30:06 - 00:31:53

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

    00:36:02 - 00:37:40

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

    00:38:06 - 00:39:35

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

    00:42:47 - 00:44:05

  • работает то есть ну скажем так Это нигде не используется Но это часть Вот как раз таки таких собеседований и так далее плюс мы разговаривали про синхронную часть Поэтому нужно понимать про неё понимать разницу между пролизмом конкурентностью и так далее да вот касательно баз данных Ну смотри Ты очень долго писал эту query то есть видно сразу видно что у тебя нету практики со скелем ты его не учил И это ну вот это как раз таки очень честно для меня мне вообще все равно потому что я считаю что если на проекте там есть

    00:43:26 - 00:44:34

  • рынка и так далее да и нет надобности написание Rock veries то для упрощения поиска кандидата Ну не стоит требовать с ним носки Да есть лучше кандидаты которые знают саму технологию Да там например если у нас на проекте есть там кавка да или там целый рэббит и человек там очень хорошо все это знает Зачем человек который ещё знает риски или если это нам не надо но на как раз-таки как раз таки Вот собеседованиях всегда спрашивают SQL и это нужно знать Вот мы там не проходились по теории Skill а потому что ну как бы по квери понятно

    00:44:00 - 00:45:21

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

    00:44:41 - 00:46:19

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

    00:45:33 - 00:47:01

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

    00:46:17 - 00:47:36

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

    00:46:56 - 00:47:36