Вопросы на собеседовании по PYTHON

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

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

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

    00:00:00 - 00:00:56

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

    00:00:28 - 00:01:34

  • хорошей стороны умения себе показать хорошего коммуникатора так называемый soft skills естественно когда мы приходим и плавится на позицию разработчика мы должны показать свою hour части бы так называемый hard skills сегодня с нашим преподавателям и заодно software инженерам из компания би пи мобайл дмитрий омельченко мы поговорим о следующем какие вопросы на собеседовании по направлению python вы можете встретить а также я обязательно у него спрошу какие вопросы сам он задает когда к нему приходят ребята обязательно

    00:01:03 - 00:02:01

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

    00:01:32 - 00:02:47

  • почему он низкоуровневый потому что скажем так он работает напрямую с железом с памятью с процессором то есть регистры процессора определяется что в каком порядке там будет выполняться ну то есть максимально быстро максимально приближена к железу тогда какие есть высокоуровневые языки программирования почему они так называются но мой любимый python высокоуровневый там руби он раз есть java script высокоуровневый но здесь работа уже идет не с какими-то железками грубо говоря даже не с цифрами как таковыми с какими-то абстракциями да

    00:02:14 - 00:03:35

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

    00:02:55 - 00:04:07

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

    00:03:31 - 00:04:47

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

    00:04:09 - 00:05:23

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

    00:04:48 - 00:06:02

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

    00:05:24 - 00:07:04

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

    00:06:14 - 00:07:36

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

    00:06:56 - 00:08:15

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

    00:07:38 - 00:08:48

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

    00:08:12 - 00:09:19

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

    00:08:47 - 00:10:07

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

    00:09:26 - 00:10:48

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

    00:10:07 - 00:11:15

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

    00:10:42 - 00:12:02

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

    00:11:21 - 00:12:41

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

    00:12:01 - 00:13:21

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

    00:12:40 - 00:14:16

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

    00:13:29 - 00:14:42

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

    00:14:05 - 00:15:34

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

    00:14:51 - 00:16:08

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

    00:15:30 - 00:16:39

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

    00:16:04 - 00:17:18

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

    00:16:42 - 00:18:08

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

    00:17:25 - 00:19:00

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

    00:18:12 - 00:19:23

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

    00:18:48 - 00:19:55

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

    00:19:21 - 00:20:40

  • все таки я думаю что асинхронно такие вещи было бы проще реализовать потому что в многопоточности нам нужно заботиться об их блокировках то есть нам нужно блокировать поток остальные ставить в ожидании и у нас грубо говоря транзакция там несколько действий должны выполнится но есть better me at the more на дату с брони от и до гарантированно либо все выполнилась либо ничего поэтому ну на самом деле тут можно на эту тему дискутировать довольно долго я думал что ты один из олеварн их вопросов вообще

    00:20:01 - 00:21:11

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

    00:20:36 - 00:21:58

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

    00:21:16 - 00:22:33

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

    00:21:58 - 00:23:37

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

    00:22:46 - 00:24:05

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

    00:23:27 - 00:24:49

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

    00:24:06 - 00:25:33

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

    00:24:55 - 00:26:17

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

    00:25:36 - 00:26:46

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

    00:26:11 - 00:27:32

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

    00:26:51 - 00:28:12

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

    00:27:32 - 00:28:32

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

    00:28:02 - 00:29:09