Александр (Новосибирск) собеседование python backend разработчик

  Рет қаралды 7,573

Андрей += Пронин

Андрей += Пронин

3 ай бұрын

t.me/KZbinPronin
Чат для общения python разработчиков и им сочуствующих. Свободное общение, тестовые и вопросы с собесов и прочее. Заходите, вам рады.
Моя тележка andpronin -- стучите, если что.
Поддержать канал: www.tinkoff.ru/rm/pronin.andr...
Обычно денежка идёт на книжки про питончик. Но иногда на светлое и тёмное.
Если Тиньков не даёт перечислить, стукните в личку телеги andpronin, придумаем что нибудь
Виш лист
Хорошие книги по Питончику, которые могу рекомендовать (и хочу купить с вашей помощью).
Изучаем Python. Двухтомник. Марк Лутц. Очень подробно и структурно (Хочу дождаться 6го издания.. )
• Изучаем Python с Марко...
Читаем и разбираем ее тут
Куплено (огромное спасибо зрителям)
Знакомство с Python | Бейдер Дэн (2023) - выглядит приятно для новичка
Чистый Python. Тонкости программирования для профи | Бейдер Дэн (2022) - хорошо для продолжения
Высоконагруженные приложения. Программирование, масштабирование, поддержка | Клеппман Мартин
Python. К вершинам мастерства | Рамальо Лучано - 2е издание - сложно для новичка, но интересно
Паттерны разработки на Python: TDD, DDD и событийно-ориентированная архитектура -- хорошо про то, когда какой фреймворк применять
Видимо, дальше появтся еще нескромные желания. Но пока - так
Мой канал про обучению python с нуля и до мидла Андрей+=Пронин
/ @pypronin
Я в других сетях
🔗Вконтакте: CaptPronin
🔗Дзен: zen.yandex.ru/id/5fbd33919412...
#python #питон #программирование #Андрей_Пронин #собеседование #

Пікірлер: 77
@slizverg23
@slizverg23 3 ай бұрын
Ох, когда вижу, как кто-то тупит на собесах даже на элементарных вопросах и рука уже тянется писать гневно-саркастический комментарий - каждый раз одергиваю себя, ибо понимаю, что тупил бы не меньше, скорее всего:) Александру - удачи!
@dazzline7800
@dazzline7800 3 ай бұрын
Спасибо 😊 Уже говорил, что вообще не успел подготовиться и голова в итоге была забита сессией, а так даже рад что за полгода ещё не всё забыл)
@dazzline7800
@dazzline7800 3 ай бұрын
Ребят, строго не судите. В своё оправдание только скажу, что последние полгода занимался чисто алгоритмами на Python, а к интервью вообще не успел подготовиться 😅
@user-bh8qg5gq7b
@user-bh8qg5gq7b 3 ай бұрын
Помню месяца 3-4 назад интервью смотрел. Там наоборот ситуация была)))))
@user-db7kz5un3x
@user-db7kz5un3x 3 ай бұрын
Молоток! Продолжаем двигаться к цели!
@user-zl5sp9yh1n
@user-zl5sp9yh1n 3 ай бұрын
Палиндром жеж базовая база, какие алгоритмы?
@slizverg23
@slizverg23 3 ай бұрын
@@user-zl5sp9yh1nКнута-Морриса-Пратта наверное:)
@dazzline7800
@dazzline7800 3 ай бұрын
@@user-zl5sp9yh1n да обычная задачка, ну я её не выбирал, но решил
@johndubssound
@johndubssound 2 ай бұрын
Самое показательное видео о том, кого выпускают с псевдо-курсов Яндекса/скиллбокс и тд.
@WDemidenko
@WDemidenko 2 күн бұрын
ну с его попыток написать sql запрос я посмеялся от души)
@sscapture
@sscapture 3 ай бұрын
Удачи парню!
@user-jl4ey9zy3i
@user-jl4ey9zy3i Ай бұрын
Золотое у Вас терпение😂😂😂
@rudolf_rozbergo9
@rudolf_rozbergo9 3 ай бұрын
А задачу с палиндромом нельзя было решить срезами? Сравнивая первую строку с второй перевёрнутой [::-1]. Или по условию надо было другим способом ?
@dazzline7800
@dazzline7800 3 ай бұрын
Можно, хотел, но сбился и пошли уже так
@slizverg23
@slizverg23 3 ай бұрын
Это было бы не кошерное решение, Андрей об этом прямо сказал вроде бы. На интервью хотят увидеть более "алгоритмическое" решение
@user-qv5dk9tl9b
@user-qv5dk9tl9b 3 ай бұрын
самое красивое решение в одну строку) def isPalindrome(x): return x[::-1] == x
@justman073
@justman073 Ай бұрын
И сразу будет засчитано как провал
@user-rl7vz2er7d
@user-rl7vz2er7d Ай бұрын
@@justman073 а почему? изза сложности? тогда надо было бы вводить изначальное условие с ограничением сложности. Но такое ограничение введено не было, а следовательно позволялось его додумывание на основании объема задачи. При таком объеме это не существенно. Поэтому это скорее был бы не провал, а вопросы, типа "а еслибы слово было из миллиарда букв?" и т.д.
@BylKaktus
@BylKaktus 3 ай бұрын
Простой способ через while: ``` def is_polindrome(string): head = 0 tail = len(string) - 1 while head < tail: if string[head] != string[tail]: return False head += 1 tail -= 1 return True ```
@erlan4123
@erlan4123 2 ай бұрын
Проходил эту задачку у Сергея Балакирева. Задачка изи на 3 минуты)
@UserName-xp4dk
@UserName-xp4dk 3 ай бұрын
def is_palindrome(string): for index in range(len(string) // 2): if string[index] != string[len(string) - index - 1]: return False return True Меня возьмут в Яндекс?
@user-eo9kz8ru9d
@user-eo9kz8ru9d 3 ай бұрын
так же сделал, если что я следующий в яндекс за тобой)
@user-wh4pf7dt8w
@user-wh4pf7dt8w 3 ай бұрын
Либо я чего-то не догоняю, допустим длина строки 10, цикл пробегается по значениям от 0 до 5, на первой проверке if сравнивает первый элемент с 4? Что за глупость
@UserName-xp4dk
@UserName-xp4dk 3 ай бұрын
@@user-wh4pf7dt8w Как ты получил 4? len(string) = 10, index = 0, len(string) - index - 1 = 9.
@user-wh4pf7dt8w
@user-wh4pf7dt8w 3 ай бұрын
​@@UserName-xp4dkпринял
@user-bb6cs6wk6y
@user-bb6cs6wk6y 3 ай бұрын
1вариант решения палиндрома (он же колхозный) def foo(value): return value==value[::-1] 2 вариант (уровень илита) def foo(value): If len(value) ==0: return True If value[0] != value[-1] : return False return foo(value[1:-1]) Мб что то и забыл, ибо пишу с телефона но суть такова
@BylKaktus
@BylKaktus 3 ай бұрын
неиспользуйрекурсиюнеиспользуйрекурсиюнеиспользуйрекурсиюнеиспользуйрекурсиюнеиспользуйрекурсиюнеиспользуйрекурсиюнеиспользуйрекурсиюнеиспользуйрекурсиюнеиспользуйрекурсиюнеиспользуйрекурсиюнеиспользуйрекурсиюнеиспользуйрекурсиюнеиспользуйрекурсию
@MasterID
@MasterID 3 ай бұрын
В YP только один ревьюер, это легенда (нельзя говорить его имя)
@AndyPronin
@AndyPronin 3 ай бұрын
Мистер Кви не хочет вести собесы. Увы(
@user-ue4iv3nw3x
@user-ue4iv3nw3x Ай бұрын
Люди такие забавные тут сидят, наверно смотрят и думаю какие они умные, и могут все решить, поднимают свою самооценку
@AndyPronin
@AndyPronin Ай бұрын
возможно, для неторых это важно
@WDemidenko
@WDemidenko 2 күн бұрын
конечно, а это кому-то мешает что люди сидят поднимают себе самооценку?
@7IdE
@7IdE 3 ай бұрын
Ну, это было крайне слабо. Первая задача, ИМХО, крайне лютая для собеса - там нужно посидеть и подумать насчет subquery или annotated - а, мб, и погуглить. Только если часто такое пишешь, то можно написать в пределах собеса. Однако, это многое показало: 1. SQL он вообще не знает. После SELECT * там какая-то лютая дичь началась. Знал бы SQL, можно было бы, хотя бы, .raw() запрос кинуть. 2. Зачем-то ORDER BY туда приплетал, post_id... 3. Запрос, который он написал через ORM - тоже было крайне слабый: навскидку - у него фильтрация в методе .all(). 4. Начал писать запрос не от модели, а от request - тут сразу минус за знание Джанги: 2 доп вопроса вида "что такое request" и "что такое objects, где он есть и зачем" - и все, фиаско. Дальше перешли к алгосам. Человек ниже комментах написал, что пол полгода изучал алгосы. Это же он добавил в интервью. И еще добавил, что изучал сам Питон. Ну, когда я увидел, что задача - проверка на палиндром, то для человека с базой в алгосах в полгода я предположил, что через 2 минуты он напишет готовый код. Особенно после того, как он дал наиболее эффективный алгоритм для этой задачи. Еще и пафосно так назвал это "наивным алгоритмом, который первый пришел в голову". Но когда я увидел, как он код пишет... 5. Как можно пропустить двоеточие в конце if? Я такого не смог бы понять, даже если бы код писался без подсветки синтаксиса. Но тут даже Пичарм сам подсвечивает место синтаксической ошибки... 6. Положить в head и tail определенные символы строки - сомнительно, ну окай. А дальше он это назвал указателями и писал код совершенно для другого. 7. Сравнить конкретный символ строки со срезом? 8. Его совсем не смутило то, что его код 2 раза проверяет одни и те же пары символов. 9. Оценка сложности - тоже тотальнейший провал. О(n) по времени, а потом начал считать, сколько элементов проходит его алгоритм. Это не совсем минус, а, скорее, звоночек. 10. А вот на оценке памяти уже был колокол: О(n) по памяти? Ладно, это не самое плохое. Но говорить о том, что дальше будут вызовы функции и это нужно учесть в оценке алгоритма в самой функции?... И вот этот человек полгода алгосы изучал? Ну вообще хз. Как по мне, лучше бы он этого не озвучивал и пытался таким образом оправдаться - бы меньше вопросов и претензий возникло. Как по мне, если человек полгода изучает алгосы, то он при этом решает задачи. А если человек решает задачи, то он пишет код. И не может человек вот с такой скоростью писать такой код через полгода реального изучения алгосов. Как итог: SQL, ОРМ, Джанго, алгосы и, что самое главное, Питон - все это очень слабо. P.S. Есть те, кто на Джанге запрос составил из первой задачи? Скиньте, плз, хочу посмотреть на то, что в итоге получается. У меня вышло: SQL: SELECT * FROM Group AS g WHERE (SELECT COUNT(*) FROM Post AS p WHERE p.group_id = g.id) > 10 ORM: post_cnt = Post.objects.filter(group_id=OuterRef("pk")).count() groups = Group.objects.annotate(cnt=Subquery(post_cnt)) Но тут groups - это, кажись, словарь будет, где будут айдишники всех групп, а не нужные объекты. И по этому всему нужно будет еще и филтрацию обеспечить и сами объекты достать. А это уже N + 1... Кароче, покажите мне правильный ответ! :D
@Chel1k7
@Chel1k7 3 ай бұрын
from django.db.models import Count Groups.objects.alias(count_posts=Count('posts')).filter(count_posts__gt=10)
@7IdE
@7IdE 3 ай бұрын
@@Chel1k7, ого. Это, я так понимаю, мало того, что Count через related_name отработает, так еще и фильтрация прям на месте доступна. Весьма любопытно. А как сам SQL запрос будет выглядеть? N + 1 не появится?
@Chel1k7
@Chel1k7 3 ай бұрын
@@7IdEN+1 нету, тулбар вот так показывает запрос: SELECT "category"."id", "category"."title" FROM "category" LEFT OUTER JOIN "movie" ON ("category"."id" = "movie"."category_id") GROUP BY "category"."id" HAVING COUNT("movie"."id") > 10 у меня вместо groups таблица category, вместо posts - movie
@Chel1k7
@Chel1k7 3 ай бұрын
@@7IdE ``` SELECT "category"."id", "category"."title" FROM "category" LEFT OUTER JOIN "movie" ON ("category"."id" = "movie"."category_id") GROUP BY "category"."id" HAVING COUNT("movie"."id") > 10 ``` нет n+1
@Chel1k7
@Chel1k7 3 ай бұрын
@@7IdE ютуб почему то удаляет sql запросы, не могу скинуть его сюда, N+1 нету, всё окей
@user-mg6eg5xy6v
@user-mg6eg5xy6v 2 ай бұрын
ббл штриф больше
@user-xg8qt8ky1s
@user-xg8qt8ky1s 3 ай бұрын
Деточка, какие 50к? В других странах такие как ты сами за стажировку платят что бы с ним возились.
@dazzline7800
@dazzline7800 3 ай бұрын
К вашему сведению у меня в портфолио 30+ учебных проектов и расценки я выбирал исходя из региона. Не надо обрушать ранок в угоду корпорациям и гнать людей работать за еду
@vegzuzvegzuz2866
@vegzuzvegzuz2866 3 ай бұрын
​@@dazzline7800 ключевая фраза "такие как ты". Потому что это был тотальный треш. Худший собес у Пронина за последние два года
@user-xg8qt8ky1s
@user-xg8qt8ky1s 3 ай бұрын
@@dazzline7800 Реальные проекты (это те которыми хоть кто то пользуется) у тебя есть? Что то мне подсказывает что нет. А за рынок и корпорации не переживай, ты никому и даром не нужен.
@user-ks7jf7pw8l
@user-ks7jf7pw8l 3 ай бұрын
Вот иди и сам за еду работай9
@seykonag3982
@seykonag3982 3 ай бұрын
​@@dazzline7800к вашему сведению вы на интервью полностью облажались, пусть у вас хоть миллион проектов на гите будут, с таким интервью они приравниваются к списанным проектам
@Chel1k7
@Chel1k7 3 ай бұрын
1) from django.db.models import Count Groups.objects.alias(count_posts=Count('posts')).filter(count_posts__gt=10), запрос легкий, но надо вспоминать ситаксис джанго орм, я лично с первого раза не вспомнил это) 2) def is_palindrome(string: str) -> bool: first = 0 last = -1 center = len(string) // 2 while first < center: if string[first] != string[last]: return False first += 1 last -= 1 return True
@7IdE
@7IdE 3 ай бұрын
first < last - будет достаточно, если инициализировать через len(string) - 1.
@dazzline7800
@dazzline7800 3 ай бұрын
Там надо вывести не 10 постов, а все посты, где их больше 10
@Chel1k7
@Chel1k7 3 ай бұрын
@@dazzline7800 ну вот тут ты показал всю мощь своих знаний, красава
@dazzline7800
@dazzline7800 3 ай бұрын
@@Chel1k7 ну я потом глянул вспомнить как вообще Джанго выглядело и половина сразу написал 😅
@2173045
@2173045 3 ай бұрын
Как он сдал диплом и как он сдавал задания с такими знаниями . Сам учился и понимаю как это не просто временами , даж если представить что он все списывал ,есть ведь ревью и защита . Плюс только за смелость.
@dazzline7800
@dazzline7800 3 ай бұрын
Как раз потому что и не записывал, так за полгода у меня уже всё повылетало из головы 😅
@2173045
@2173045 3 ай бұрын
@@dazzline7800 про orm верю , но как индексы и срезы могли вылететь. В любом случае удачи тебе , я сам волнуюсь на собеседование и многое забывается .
@MrBeltalowda
@MrBeltalowda 3 ай бұрын
def is_palindrome(s: str)->bool: return all((x==y for x,y in zip(s, s[::-1])))
@user-ok7xl2hl7t
@user-ok7xl2hl7t 3 ай бұрын
лучше так: def is_palindrome(s: str)->bool: if s == s[::-1]: return True return False
@MrBeltalowda
@MrBeltalowda 3 ай бұрын
@@user-ok7xl2hl7t тогда проще return s == s[::-1]
@over3089
@over3089 3 ай бұрын
В этом решении потребуется дополнительная память
@MrBeltalowda
@MrBeltalowda 3 ай бұрын
@@over3089 единственное, для чего нужна дополнительная память - это построить обратный срез из s. если использовать reversed(s), она не потребуется
@oreh350
@oreh350 3 ай бұрын
Хм. А я вот так сделал: def is_palindrome(string: str) -> bool: new_string = string[::-1] return True if new_string == string else False Нормальное ли это решение с точки зрения алгоритмов? Может оно жрет дофига памяти, я в этом очень плохо разбираюсь. Мурыжу пока Codewars, до leetcode не добирался
Собеседование python разработчик. Фадеева Вера
47:01
Андрей += Пронин
Рет қаралды 6 М.
КАК СПРЯТАТЬ КОНФЕТЫ
00:59
123 GO! Shorts Russian
Рет қаралды 2,5 МЛН
Joven bailarín noquea a ladrón de un golpe #nmas #shorts
00:17
когда достали одноклассники!
00:49
БРУНО
Рет қаралды 879 М.
Разбудила маму🙀@KOTVITSKY TG:👉🏼great_hustle
00:11
МишАня
Рет қаралды 3,9 МЛН
Решаем тестовое задание на позицию junior python backend разработчик
21:18
𝐧𝐞𝐫𝐝𝐢𝐳𝐚𝐲-𝐜𝐨𝐝𝐞
Рет қаралды 10 М.
Собеседование на позицию Senior Python Developer 5000$ #12
21:18
Python собеседования
Рет қаралды 2,6 М.
Жестко про мягкие навыки. Что делать, если HR - жестит?
1:12:41
Алтынбаев Артур python разработчик собеседование
52:07
КАК СПРЯТАТЬ КОНФЕТЫ
00:59
123 GO! Shorts Russian
Рет қаралды 2,5 МЛН