Подготовка к собеседованию на 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 каналы и чаты
Транскрипция видео:
Да вот слышу тебя что-то необычное непонятное [музыка] Компаньон какой-то в общем Здравствуй Расскажи о себе Чем занимаешься Какой опыт имеешь Сколько времени изучаешь Какие курсы не курсы и так далее ничего там я только по этим использовал как инструмент моделирования [музыка] пойдем сразу по теории поэтому вот типа данных какие есть на что можно разделить так типы данных делятся на изменяемые и неизменяемые значит int float комплекс string Set prozen Set лист и она также хорошо генераторы итератор Может ли рассказать
00:00:00 - 00:02:14
про них что-то генераторы это объект который возвращает один элемент за раз генератор это разновидности таратора и генераторе у нас используется ключевое слово которое при вызове генератора у нас срабатывает и дальше нас прекращается террасы до следующего вызова генератора хорошо у нас есть цикл for Да что вообще происходит в нем Когда например мы тренируемся по лист поэтому лист да да Ford X там in list и там в листе не знаю там любые элементы например строки список наш который пришел [музыка]
00:01:57 - 00:03:48
разница между ними Нет это в классе обязательный параметр конструктор там у нас создаются поля класса они Честно говоря я вроде как не помню чтобы я использовал никогда то поэтому наверное только предположить новые элементы создает объект класса он создает новый класса хорошо что такое декоратор поэтому декораторы это обертка функции можно написать объявление функции декоратор собака и объявить и это будет Аналогично конструкции [музыка] есть такие два декоратора что они делают и зачем их используют
00:03:23 - 00:05:11
класс метод и наверное мне микрофон это работает класс метод и Статик это у нас в классах используется Наверняка Наверняка метод статичный метод Когда объявляешь в классе какой-то метод это видимо декоратор что он делает точно не могу вспомнить а класс метод класс метод наверное класс Статик метод делает Так что тебе не нужно метод прокидывать селф аргумент то есть класса он тебе дает возможность просто группировать этот метод вместе со всем классом используя вместо того чтобы оставлять этот метод снаружи класса класс метод
00:04:53 - 00:06:31
даете возможность вместо получать instance а именно сам класс обычно слово меняет на CLS вот когда используется класс метод Окей А пропорции значит такое пропорции это свойство в классе Мы можем перед методом написать этот декоратор и мы сможем потом вызвать программе название класса точка и название функции которые мы обернули этот но без скобочек можно получить значение поля [музыка] хорошо что такое по 8 это набор правил для написания кода если бы тебе дали строку которые все символы в Нижнем регистре как бы ты
00:06:00 - 00:07:50
сделал с этой строки строку с первыми символом верхнего регистра есть функция с помощью что это вообще такое Это имеется ввиду метод док или доктрина это такое явление которое окружено там тремя скобками сверху тремя скобками снизу и просто что-то туда вписывается это наверное документация функция Вот это вот там где три кавычки пишешь и первая строка это основная информация потом пустая строка идет и пишется дополнительная информация Что такое например туда можно передать список и и это будет индекс элемента списки
00:07:01 - 00:08:46
он возвращается получается индекс Хорошо как бы ты прочитал файл файл можно через край [музыка] вообще помню что делал виз Open имя файла и через запятую как считаешь ты его или записываешь у него там Брайт или read Write binary binary Ну есть методы чтения записи и так далее но что мы должны сделать в начале самом Когда мы читаем файл открыть файл а с файл и уже в этой мы будем делать Мы можем открыть файл без без [музыка] откроем файл и просто прочитаем для закрытия наверное какой-то Close Да ты угадал
00:08:27 - 00:10:24
теперь давай рассмотрим контактный менеджер да то есть опыт на самом деле это так менеджер который как раз таки через виза триггере когда-нибудь разбирал тему контекстных менеджеров [музыка] не помню но они таки называются это такой класс который внутри содержит себя два метода таких можно знаешь какие 22 метода у него есть которые как раз таки используется в этой конструкции из блока это именно контекстный менеджер там есть [музыка] Enter Вентер у тебя происходит Open да Когда заканчивается у тебя происходит
00:09:59 - 00:11:36
Где ты делаешь на файно ли это если ты сделал бы край у тебя в любом случае выполняется Да но это совершенно не то это связано с хэндлингом поэтому как раз таки вот этих Exception ошибок и так далее А это просто чтение файла где ты его можешь удобно открыть и закрыть это кстати что произойдет если мы не закроем файл [музыка] если мы пытаемся его доступ через другую программу будет не очень хорошо я думаю можно получить доступ через другую программу вряд ли файл файл уже прочитался и прочитался у нас
00:10:56 - 00:12:28
есть мы можем там не остается это же не знаю нет какого-то фиксации к данных мы там не запрещаем доступ другому и так далее но файл прочитали мы можем прочитать файлы забить на него там например и получить эти данные переформатировать примеру вот дальше ничего не случится можно почитать этот файл там не будет Windows ничего прочитать можно открыть что плохого случится может быть если писать через две программы информацию может произойти какой-то рейс Condition на уровне файла но если мы его в один
00:11:49 - 00:13:16
момент прочитали то если вы там потом поменяли какая нам разница может какую-то точку времени уже прочитали вот вообще в университете Ты должен был об этом Ну узнать то есть потому что я когда не закрываю файл ошибка программе я не помню конкретно какая-то ошибка была Я просто открывал вот будет локация памяти в пайтоне и если у тебя там файл весит там несколько мегабайт то вот эта память поэтому она будет анонсирована и не освободиться Вот лучше будет когда ты сделаешь голос ты сможешь дать возможность
00:12:37 - 00:14:03
выводить эту память и Ну то есть по факту ты сделаешь себе утечку памяти вот что произойдет Окей есть такой интересный модуль поэтому называется осинки Вы когда-нибудь с ним работал только слышал от рейтинг Трейдинг это потоки Видимо да да Ладно я уже честно говоря не помню делали Ну можешь например сравнить Трейдинг и мульти процессинг два таких модуля поэтому есть тренинг позволяет на потоке каких-то вычисления есть Нам нужно чтобы они произошли одновременно два потока а ты знаешь что не получится у тебя на
00:13:22 - 00:15:05
два потока все это разделить Потому что это не плюсы Хотя я за плюсы не могу говорить вот что это Python у нас есть такая штука называется Джилл и в пайтоне несколько потоков они будут работать поочередно конкурентно то есть они оба будут пытаться сделать одну задачу но будет работать только один поток в один момент времени и они будут просто переключаться вот очень быстро какая-то энергия на переключение потоков это называется globallock импретация си пайтона как раз таки у нас такая блокировка и работает вот поэтому если
00:14:25 - 00:15:43
хочется именно чтобы несколько работала что-то одновременно работала в пайтоне то есть там ряд исключений например использовать внешнюю либо она будет работать на потоке можно будет не знаю там еще что-то сделать но можно воспользоваться мульти процессингом и как раз таки процессы знаешь эти чем отличие процессы и потока это кстати вопрос системного уровня не по поэтому но у нас наверное процесс можно разделить на потоке но кардинальное отличие наверное не смогу сейчас сформулировать Ну процесс
00:15:04 - 00:16:22
нельзя разделить на потоки в процессе просто крутится потоки Вот то есть по этому процесс ты можешь увидеть диспетчеры задач примеру там как раз таки крутятся вот эти потоки которые крутятся как я тебя выражение не параллельно А конкурентно вот что все это происходит если ты сделаешь что-то заспавнешь процессов мульти процессинг это у тебя просто появится в Диспетчере задач несколько экземпляров поэтому но проблема этого метода в том что он более прожорливый это раз два его используют скорее более для распределения на ядра
00:15:45 - 00:17:05
для того чтобы вычислять какие-то тяжелые вычисления и был нет общей памяти то есть для того чтобы работать с процессами Ну на уровне системы каждый процесс имеет свою память лоцированный и процессы цели безопасности вообще какой-то секьюрности сейвы и так далее процесс они могут видеть друг друга память Поэтому ты должен придумать как бы ты имел какую-то очередь Да которая бы симкала все эти процессы или базу данных стоит Север Вот что-то вот такого Хорошо давай тогда Вот ты университете как понимаю проходил
00:16:25 - 00:17:48
компилируемые какие-то языки да там Java например плюсы все плюс один раз только использовал лабораторки то так давай сравним плюсы и поэтому вот поэтому интерпретируемый Ну не знаю Ну синтаксис примеру поэтому более приятный на для новичков более маленький есть еще Ты кстати Опа изучал Хотя бы четыре принципа вот ну есть четвертый принцип инкапсуляция сейчас скажу это когда у нас есть паблик Private и protects в том числе такие слова были я помню если плюс А у нас впадине пишет Private это нижнее нижнее подчеркивание
00:17:12 - 00:19:08
одно протектор 2 подчеркивания если я не путаю и разница протектор это то что у нас внутри класса виден а протектор наследуемых классах если они могут Ну это все видно принципе и так самое главное Суть в том что нет практически она есть на уровне соглашения между разработчиками Нижний подчеркивание видишь не трогаешь видишь два нижних подчеркивание не трогаешь никогда Вот все вот принципе так и работает Окей давай тогда пройдемся по опе может все четыре пункта прояснить Ну вот эта капсуляция только что сказали
00:18:39 - 00:20:14
Мы потом наследование Когда у нас есть какой-то класс основной и мы можем создать еще один класс который принимает параметр тот наследуемый класс и все методы которые объявлены в главном классе нас будут использоваться в классе ребенке ну его нет мы должны прописать ключевое слово супер чтобы передать поля чтобы инициализировать еще и как-то так это когда у нас есть [музыка] какой-то определенные действия метод который выполняется в нескольких классах У нас есть кошка и собака и они они должны выполнять определенные действия спать но
00:19:39 - 00:21:36
они спят по-разному могут спать по-разному и мы определяем в классах код и собака эти места и определяем такую функцию которая принимает на вход объект класса и внутри вызывает метод Таким образом мы можем получить хорошо задавай перейдем с базами данных работал да тогда ты расскажешь это требование к [музыка] их четыре штуки более подробно разберем атомарность должна выполняться когда происходит транзакция и все сказать [музыка] все запросы инструкции должны быть выполнены либо не выполнены совсем то
00:20:48 - 00:22:48
есть либо выполняем транзакции либо нет Хорошо если разберем более подробно изолированность там про параллельные транзакции никакая Да есть еще такая штука уровень изоляции которые как раз таки немножко раскрывает самоизоляцию какие есть четыре уровня Да там есть четыре уровня вроде такие и они отличаются по там есть 4 точно не помню есть грязное чтение и какие-то еще два Потерянное обновление они все отличаются по по удовлетворению таким проблемам которые могут произойти у нас Давай тогда приступим к решению задачек
00:22:04 - 00:23:55
я тебе скинул две простейшие задачки можешь показать эти экран который вот прям сколько текста Телец не 26 вот вообще прям Я думаю ты должен каждый решить за 26 секунд Переключись на [музыка] так Верните не отрицательное число X употребляется квадратным корнем округленная ближайший мне нельзя использовать вот эту штуку что-то я не помню как это делать [музыка] скверт [музыка] я тебе не говорил что она встроенная но она есть Я знаю что модулем масс я вся эта функция Ну если ты знаешь так давай использовать
00:23:28 - 00:25:14
интересно конечно все делается но я вижу ты зарегистрирована лидкоде сможешь сделать Давайте супер следующая задача больше по работе со строками похоже на какой-то реплейс возможно Вроде должно быть должен быть такой есть что он находится Давай чекнем работает да вроде Окей давай до следующей задачи Сейчас скину попробую найти задачу уровня медиум прожарки так сказать вот эта задача можешь попробовать решить на любом удобном тебе языке если это будет проще даже я точно поэтому Ну мало ли может прям плюсах лютого меньше там все это
00:25:51 - 00:27:37
решать очень давно последний раз запускал что-то на языке [музыка] так видно экран да да хорошо то есть нужно менять две смежные вернуть да да подменить Две ноты и вернуть то есть между ними должен быть промежуток в одну в Один узел не понимаю Привет так Ну тут я задачу честно не решал ранее поэтому мне тоже чтобы разбираться даст Ну тут связные списки которые тебе дают Head начало [музыка] но я здесь вижу что 34 просто они как-то их меняют [музыка] Ну по всей видимости так ты учти что задача не такая простая
00:29:19 - 00:31:22
потому что здесь Видишь сверху закаменчены класс лист Да я ну чтобы ты примерно давно еще нужно каждые два понятия нам нужно указатель на следующий элемент [музыка] то есть блин как-то это сложно Да нужно просто перекинуть считай я вижу просто есть подмена этих мест ты по факту берешь и меняешь местами внутри ноты То есть тебе нужно я бы это просто я бы прочитал бы все ноду и потом просто бы там переделал бы вот может сделал бы какой-то рейндж по-другому там плюс два плюс один вот как-то так сделал Но как как тебе
00:31:40 - 00:33:35
кажется так и делает [музыка] так Ну хорошо Начнем с того что секундочку Алло алло добрый а вы можете [музыка] а я типичная маркетинг в Украине тут как ты знаешь как Может быть как пузырьком что ли делать Я честно не знаю но Next Next Хорошая идея Вот Но вообще в поэта не использовать Вайл считается не очень использовать можешь там как-то по-другому но я бы просто рекурсивно обошел бы ноду и построил бы такую же ноду просто с измененным порядком Это я так сделал [музыка] еще как тогда тебе надо еще отдельная функция которая
00:33:02 - 00:34:57
будет рекурсию проводить сразу вот так вот здесь нельзя не можно и сделать внутри с впрс даже просто Ну я бы не пытался подстроить под рекурсию Я бы отдельную функцию сделал бы Чек и выходил Какая идея Не знаю в курсе поменять как мы вменяем А я понял создадим еще одну и вернем да да ну ты просто делаешь идешь под Next постоянно пока Next не будет на Да и проходишь всю ноду и потом можешь в то же время строить свою новую ногу измененную его делал по тупому сделал бы какой-то лист и там бы это все переменял бы и по
00:35:33 - 00:37:15
нему бы построил через эти вылез ноду как я вернуть А кто тебе сказал что ты не можешь Потом с этого листа построить ноту Но это моя тупая подсказка Я просто не такой умный чтобы ты сразу решить поэтому я пытаюсь как-то ну простыми для 7 методами мне поменять если честно в листе вот эти значения перекинуть их так гораздо проще чем я бы это делал в нодах вот знаешь как механики любят Они они не думают там знаешь как-то открутить взять какой-то вороток там не знаю приспособу какую-то они любят на
00:37:06 - 00:38:28
машине отрезал разобрал обратно приварил [музыка] вот зачем зачем там думать что-то откручивать там не ломать ничего вот я тоже ноду прочитал в лиц превратил сварил хед вернул [музыка] [музыка] Давай Можно попробовать не рекурсии Можно я получил Ну ты прошел через все ноды И ты получил их в реальность теперь тебе нужно построить НАТО с этим не особо рекурсивно ходить а просто даже вайлом это делать копи ноты даже Наша задача теперь тебе точно также нужно просто построить Доту измененную я буду писать Рандомные подсказки
00:37:51 - 00:39:34
которые вообще не по этой теме но если тебя получится можешь их использовать а у нас уже одна связана с а тут я привез на провес может быть Сначала надо потом Head Head Next блин чтобы сохранить предыдущий элемент Ну я уже через это делаю как ты сказал лучше я даже свой какой-то придумал с этим последний поменял Так теперь меня хорошо теперь осталось создать новый список и также пройтись верно заменив создать Head который я не просит читаю с этого списка нам надо идти по и просто каждое значение заменять
00:40:17 - 00:41:54
значение Я не знаю получится так или нет так не получится что он вернется конец нам нужен нам нужен нужно сначала [музыка] нам нужно сохранить начало каким-то образом получится Привет Ну да конечно супер супер это получилось даже на сабмите я могу тебя поздравить с решением достаточно сложные задачки руля Митя ха Спасибо Теперь давай Смотри я готов оценить тебя на уровень Потому что ты плохо знаешь по этой теорию и тебе скажу честно то есть ты вот прям не забудь его но у тебя очень хорошо получилось решить задачи то есть
00:43:42 - 00:45:29
видно что у тебя был как раз таки опыт решения задач и так далее но ты еще вот понимаешь Тебе нужно реально очень много учить теорию чтобы ты мог очень уверенно не отвечать то есть вот на те вопросы они были достаточно базами тебе нужно очень быстро и уверенно отвечать на собеседованиях люди как раз таки Ну смотрится сам понимаешь на как раз таки эту Уверенность вот Так что Вот такой у меня фидбэтчик а я отвечал именно вот просто медленно или быстрее отвечать или неправильно ты Нет не отвечал Неправильно ты где-то
00:45:56 - 00:47:15
вообще не отвечал вот понимаешь ты на какие-то вопросы не мог ответить и например ну потоки процессы тебе нужно знать как они работали счет можете системный уровень это ну понял вот это очень процесс потоки это одна из таких тем которые разжевывают на собеседовании плюс тебе нужно обязательно знать проджил то есть видишь ты говорил что ты начала говорить что вот потоки Да они там поэты не что-то можно одновременно выполнять на самом деле нет Вот это прям знаешь такая серьезная ошибка вот это все ну короче тебе нужно очень
00:46:37 - 00:47:47
прям усилится в теории пайтана задачами у тебя всё хорошо то есть ты решил эту задачу многие на моих собеседованиях не решая задачи связанные вот поэтому вот так вот я тебе желаю приятных дней изучение титанической теории плюс ну плюс плюс всё понятно спасибо сегодня хорошо Пока пока
00:47:11 - 00:48:05