Собеседование junior python разработчик | Сергей Афонин

  Рет қаралды 13,421

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

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

Жыл бұрын

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

Пікірлер: 93
@Soloo333
@Soloo333 6 ай бұрын
Он решил неверно. Условия: подсчитать кол-во впадин, которые преодолел путешественник, учитывая что путь заканчивается на уровне моря, т.е. 0. (в таком случает он преодолевает любое последнее препятствие) travel_map = input().upper() ALPHABET = 'DU' # разрешенные символы def calculation(x: str) -> (str, int): sea_level = 0 # уровень моря peak = 0 # кол-во преодоленных вершин pit = 0 # кол-во преодоленных впадин for i in x: if i not in ALPHABET: raise TypeError("Неверно введено значение: Введите вершину(U, u) и\или впадину(D, d)") if i in 'U': sea_level += 1 if sea_level > 0 and not sea_level > 1: peak += 1 if i in 'D': sea_level -= 1 if sea_level < 0 and not sea_level < -1: pit += 1 return f"Вершины преодолены: {peak} Низины преодолены: {pit}" if __name__ == "__main__": result = calculation(travel_map) print(result) assert calculation("DDUUD") == f"Вершины преодолены: {0} Низины преодолены: {2}" # ======================================================================== если кому-то нужно короткое решение и только для впадин: def calculation(): travel_map = 'DDUUD' sea_level = 0 pit = 0 for i in travel_map: if i == 'U': sea_level += 1 else: sea_level -= 1 if sea_level < 0 and not sea_level < -1: pit += 1 return pit print(calculation())
@bdwayne1452
@bdwayne1452 Жыл бұрын
Сергей учился со мной в одной когорте. И он был очень хорош, практически в каждом треде помогал людям, был одним из самых активных и самых быстрых. Тут фактор волнения, плюс не совсем, возможно, серьезное отношение к этому тестовому собесу роль сыграло Без записи, я уверен, решил бы он это оч быстро
@MrBeltalowda
@MrBeltalowda Жыл бұрын
насколько я понял, проблема была не в том, что он долго решал задачу.
@user-ng6nx1uo5u
@user-ng6nx1uo5u Жыл бұрын
Смотрю собеседования, как "Что? Где? Когда?" или "Поле чудес", типа "во я знаю слово целиком!". Но понимаю, что это я сидя на диване так, а перед собеседователем скорее всего растеряюсь. Хотя тут достаточно приятные собеседники.
@duckwasfirst
@duckwasfirst Жыл бұрын
«Почему выбрал нашу компанию и подал резюме в неё?» Задавая этот вопрос, рекрутер думает, что человек без опыта тщательно отбирает вакансии куда его скорее всего не возьмут?
@user-ng6nx1uo5u
@user-ng6nx1uo5u Жыл бұрын
Да, кстати, Мне кажется, ответ собеседующегося здесь был хотя бы честным. А рассказывать, что "я давно следил за вашей компанией", хотя первый раз о ней услышал посылая резюме - это как-то лицемерно что ли. Хотя что-то о компании заранее узнать и как-то ответ сформулировать получше, можно было.
@kaluginpeter
@kaluginpeter Жыл бұрын
Про задачу подумал решить так: def waves_count(s: str): count, word, dic = 0, '', {'U':1, 'D':-1} for i in s: count += dic[i] word += '(' if count < 0 else ')' return word.count('()') Работает на каверзных тест-кейсах. Спасибо за видео, информативно!
@user-bb6cs6wk6y
@user-bb6cs6wk6y Жыл бұрын
Я конечно понимаю там инфляция знаний, переизбыток джунов на рынке,но говорить человеку с неплохим опытом за плечами,что он не должен только решать задачу но и смотреть глубже ,угадать что заказчик затребует,это вызывает у меня нервный смех,это же всего лишь Джун который должен делать то что от него просят а уже потом,глобально смотреть на проблему ,постепенно развиваться и т.д Если каждый Джун будет думать над всем проектом вместо своего куска задачи, становится страшновато .
@user-bi9lt8fh3g
@user-bi9lt8fh3g Жыл бұрын
Плох тот солдат, который не мечтает стать генералом.
@user-qw9ct3ot6e
@user-qw9ct3ot6e Жыл бұрын
Через re pattern = "uudd" def find_quantity_pattern(track: str = "") -> int: result = re.findall(pattern, track) return len(result)
@Swetocopy
@Swetocopy Жыл бұрын
Пофантазируй над входными данными. Выше уровня моря все еще холм.
@toxa1toxa
@toxa1toxa Жыл бұрын
Как бы выглядело решение этой задачи, если нужно было просчитать сколько раз были выходы в + из впадины. Т.е. если -1,1,1 - это будет один переход в повышение. Если текущее значение, к примеру будет -2, то +2 не подходит, так как уровень будет 0.
@pavelkuznetsov8106
@pavelkuznetsov8106 Жыл бұрын
def count_cavity(path: str) -> int: summa = count = 0 for segment in path: summa = summa + 1 if segment == 'u' else summa - 1 if summa == -1 and segment == 'd': count += 1 return count
@Easylifehacker
@Easylifehacker Жыл бұрын
def func(str): dict_path{"u": 1, "d": -1} sum=see_sum=count=0 for i in str: sum +=dict_path.get(i) if sum-1: count+= 1 see_sum = sum return count
@seoonlyRU
@seoonlyRU Жыл бұрын
лукасик от СЕООНЛИ
@user-fg4og7mh1n
@user-fg4og7mh1n Жыл бұрын
Здравствуйте, Андрей! У меня вопрос, объясните, пожалуйста, по поводу документации и библиотек, модулей... Как учить, например, в Питоне, сторонние библиотеки, например Pygame или TKinter, стоит ли смотреть видеоуроки, или лучше привыкать читать документацию? А если документацию, то как ее правильно научиться читать, то есть там много всего, деталей всяких, и выуживать главное иногда нелегко, и как выработать тот навык, который позволяет не знать или выучить библиотеку, а ПОЛЬЗОВАТЬСЯ ей (словно ты не знаешь эту библиотеку, но ты знаешь что тебе надо сделать и просто заходишь там в доки и правильно все применяешь, сформулировал задачу, и идешь в доки и ищешь что тебе надо)? И еще: документацию лучше стараться на английском читать, даже если не очень знаешь язык(хотя в этом есть плюс: научишься понимать доки на англ.)? В целом можете сказать как вы сами учите библиотеки, что бы вы сделали и как бы вы сделали, если бы вам, например сказали, написать скажем таймер обратного отсчета времени с графическим интерфейсом на JavaSript(там есть скажем какой-то похожий модуль на pygame), вот??
@nataliepodgainova6582
@nataliepodgainova6582 Жыл бұрын
Странно, что ещё никто не ответил. Я только начала учиться, но у меня возник бы вопрос сначала как передается время. Если с терминала, то нужен модуль sys. И модуль datetime, чтобы распознать дату. Если дата одна и указана в программе, например, сколько осталось до Нового года, то sys не нужен. Будет ли эта дата сама по себе изменяться, как с Новым годом, потом нужно прибавлять 1 год, а 31.12 остаются прежним. Пользуются ли этим временем люди из других временных зон, или будет использоваться только на локальном компьютере, будет оно сохраняться в файл или нет. Если будет на локальном, то хватит и datetime, если нужно общемировое время, которое видно всем, то нужен модуль pytz. Как будет выводиться время: цифрами или буквами. Если буквами, то нужен модуль locale, но насколько я помню он не склоняет на русском месяцы в windows, а склоняет только в linux и mac os. Поэтому нужно будет написать или массив, или словарь с месяцами. Ну это я знаю только про русский вариант, а как там с другим обозначением времени, нужно ещё разбираться. Потом нужен будет метод timedelta, считать разницу между датами сейчас и планируемой. Он в том же модуле datetime. Если нужен календарь, в котором что-то выбирать, то нужен модуль calendar. Это первое, что пришло в голову.
@MrBeltalowda
@MrBeltalowda Жыл бұрын
оформил чуть посимпатичнее: SEA_LEVEL = 0 UP, DOWN = 'u', 'd' STEP = {UP: 1, DOWN: -1} def count_valleys(path: str) -> int: valleys, height = 0, SEA_LEVEL for direction in path: if direction == DOWN and height == SEA_LEVEL: valleys += 1 height += STEP[direction] return valleys
@apikhenko
@apikhenko Жыл бұрын
Отличное собеседование и фидбек!
@makooprime
@makooprime Жыл бұрын
Честно говоря я вообще не понял что он говорил в начале собеса, как то все спутано.
@yrubiko
@yrubiko Жыл бұрын
Получилось как то так. Какие еще есть алгоритмы решения? def find_crossing(path: str) -> int: crossing = 0 result = 0 for x in path.lower(): if x == 'u': crossing += 1 if crossing == 0: result +=1 if x == 'd': crossing -=1 if crossing == 0: result +=1 return result
@frostibums
@frostibums Жыл бұрын
ududud попробуй)
@user-bb6cs6wk6y
@user-bb6cs6wk6y Жыл бұрын
Просят отдельно количество холмов и вершин как я понял,тут нужно тогда 2 result один когда снизу пересекает вверх уровень моря (это вершина) и когда сверху пересекается уровень моря вниз (это впадина)
@flower-py
@flower-py Жыл бұрын
Блин, хочу быть по жизни как Олег: крутым и в то же время небезразличным, творческим, и в классных очках к тому же.
@galandec2000
@galandec2000 6 ай бұрын
пишите всегда функции или классы! это важно, ибо это покажет что вы понимаете парадигмы программирования. если пишите просто голым кодом, это укажет на ваш низкий уровень со старта, вы себя сразу обесцениваете. мелочь, но часто может не слабо повлиять не только на ваш оффер но и сумму в нем!
@justman073
@justman073 Ай бұрын
Не соглашусь, что решение задачи через структурную парадигму указывает на низкий уровень, например решения задач с Advent Of Code от hyper-neutrino в плане владения инструментарием языка Python и владения алгоритмами поражает
@IlyaChaplenko
@IlyaChaplenko Жыл бұрын
Вопрос а можно попасть к вам на собес если не из практикума и с другой страны?
@AndyPronin
@AndyPronin Жыл бұрын
t.me/KZbinPronin тут время от времени планирую розыгрыши делать
@Galgonochka
@Galgonochka 10 ай бұрын
Это точно задача на позицию джуна? может, это на миддл-позицию собеседование?
@san9blin
@san9blin 9 ай бұрын
Простая задачка
@totaldestruction7128
@totaldestruction7128 Жыл бұрын
невовремя дядя решил свичнуться, тут нейросети джунов вытесянют)
@AndyPronin
@AndyPronin Жыл бұрын
Есть мнение, что умения нейросетей в области разработки сильно раздуты хайпом
@MrBeltalowda
@MrBeltalowda Жыл бұрын
@@AndyPronin это понимают все, кто пытался добиться от chatgpt хоть чего-то полезного 🙂
@AndyPronin
@AndyPronin Жыл бұрын
@@MrBeltalowda поисковики, боты, работа с естественным языком. Возможно, картинки. Там оно развернётся.
@jewgenijmoldawski3306
@jewgenijmoldawski3306 Жыл бұрын
Каждый мидл когда-то был джуном так что джуны никуда не денутся
@germanmariot34
@germanmariot34 Жыл бұрын
Привет. Ого, вы дедов - программистов берёте? Я тоже хочу. Какие вакансии?
@AndyPronin
@AndyPronin Жыл бұрын
Сеньоры с бородой нужны )
@germanmariot34
@germanmariot34 Жыл бұрын
@@AndyPronin лол, Сеньоры давно у Омэрике 😂
@AndyPronin
@AndyPronin Жыл бұрын
@@germanmariot34 потому и набираем новых
@Vasilii_Furi
@Vasilii_Furi Жыл бұрын
def traveler(input_data: str) -> int: check_pit = man = 0 for i in input_data: if i == "D": if man == 0: check_pit += 1 man -= 1 else: man += 1 return check_pit print(traveler("DDUUD"))
@mandico21
@mandico21 Жыл бұрын
Добрый день, подскажите пожалуйста, как можно попасть на тестовое собеседование к Вам?
@AndyPronin
@AndyPronin Жыл бұрын
Студент практикума?
@mandico21
@mandico21 Жыл бұрын
@@AndyPronin нет
@AndyPronin
@AndyPronin Жыл бұрын
@@mandico21 t.me/KZbinPronin тогда тут ждать розыгрыша
@lufnex38
@lufnex38 Жыл бұрын
count=0 rv=0 g="dduduudu" for i in g: if count
@user-kw8cj5ys5k
@user-kw8cj5ys5k Жыл бұрын
Здравствуйте,как к Вам попасть?Начинающий разраб на пайтон,очень хочу попробовать свои силы в тестовом собеседовании.
@AndyPronin
@AndyPronin Жыл бұрын
Привет. Студент практикума?
@user-in5ir5jd7u
@user-in5ir5jd7u Жыл бұрын
def count_vpadins(path): d = {'U': 1, 'D': -1} uroven = 0 vpadina = 0 c = 0 while c < len(path): if uroven < 0: vpadina += 1 while uroven < 0: uroven += d[path[c]] c += 1 else: uroven += d[path[c]] c += 1 return vpadina
@Wein4ik
@Wein4ik Жыл бұрын
Сделайте таймкоды, очень неудобно ориентироваться по видео
@AndyPronin
@AndyPronin Жыл бұрын
Прошу прощения, на это нет ресурса. Я не настоящий ютубер
@niktaub6407
@niktaub6407 Жыл бұрын
Rejected ? Вы серьезно? Кандидат хорошо выполнил задание, при этом оценили его чисто по софтам. Олег выдумал задание за 5 минут при этом не убедился, что его задание хорошо понятно соискателю, изменял условия и постоянно мешал кандидату.
@user-fb9zv9cf1s
@user-fb9zv9cf1s Жыл бұрын
Странная формулировка, мол чел решил всё правильно, но ответ - нет. Больше на кулинарные шоу похоже.
@mikeofs1304
@mikeofs1304 Жыл бұрын
Открою тебе вторую тайну золотого ключика, в 80 процентов случаев ты будешь получать именно такие вводные от и что тебе "его задание НЕ хорошо понятно " никого не волныет. Это энтропия нашей вселенной. Ты сам должен получив задание, сейчас внимение важно ПОДУМАТЬ, а потом уточнить все тонкости, а не бросатся долбить его напрямую. Это собственно был одним из тестов, показывающий уроыень, думает человек так или идет в лоб.
@niktaub6407
@niktaub6407 Жыл бұрын
@@mikeofs1304 Чел, тебе бы философию смотреть, под боярку очень хорошо заходит ;)
@mikeofs1304
@mikeofs1304 Жыл бұрын
@@niktaub6407 иди купи еще 3 курса, и потом дальше сможешь ныть какой ты титулованный и дипломированный, а на собесах тебя валят злые завистники, ггг
@niktaub6407
@niktaub6407 Жыл бұрын
@@mikeofs1304 Походу боярки ты перепил, какие курсы, шо ты несешь? Через собесы продвигаются вкатуны, которые хорошо умеют философствовать как ты например, такие держатся от силы 3 месяца, последние два из которых активно лижут очко начальству, тру-кодеры проходят по хардам за счет пет проектов и идеально выполненных ТЗ.
@7IdE
@7IdE Жыл бұрын
Какой-то рили странный и отрешенный чувак так-то. Ну а фидбек от Олега как всегда на высоте.
@nataliepodgainova6582
@nataliepodgainova6582 Жыл бұрын
Почему странный, флегматик, да и возраст добавляет пофигизма.
@dartaulus
@dartaulus Жыл бұрын
path=input().split() count=0 for i in range(len(path)-1): if path[i]!=path[i+1] and path[i]=='d': count+=1 print(count) но значения должны подаваться через пробел =(
@Piro_
@Piro_ 11 ай бұрын
path = [i for i in input()] если надо без пробела.
@user-hq3wz4vk7q
@user-hq3wz4vk7q Жыл бұрын
def check_count_downs(path): n = 0 count_downs = 0 instance = 0 for x in path: if x == 'u': n += 1 elif x == 'd': n -= 1 if n < 0 and instance == 0: count_downs += 1 instance += 1 elif instance == 1 and n >= 0: instance = 0 return count_downs изи пару минут, хотя я далеко не спец по решению задач
@jewgenijmoldawski3306
@jewgenijmoldawski3306 Жыл бұрын
Как по мне, вполне даже тянет на юниора. Видно, что опыта нет, ну так на то и джун.
@user-bd6lx1bo6r
@user-bd6lx1bo6r Жыл бұрын
X = ‘ududu’ S=0 K=0 # кол-во for i in range(len(x)): if x[i] == ‘u’: S+=1 else: S-=1 if S
@ritchenko
@ritchenko Жыл бұрын
cort = {'U':1, 'D':-1} res = 0 prev = 0 summ = 0 for i in inp: if i in cort: res += cort[i] if res == -1 and prev == 0: summ += 1 prev = res return summ
@Chel1k7
@Chel1k7 Жыл бұрын
C Олегом собесы круче, не в обиду Андрею
@AndyPronin
@AndyPronin Жыл бұрын
Буду удалять такие комменты)
@Piro_
@Piro_ 11 ай бұрын
Хз зачем, но вот моё решение ^_^ def check_count(st): ans = flag = 0 d = {'U': 1, 'D': -1} for i in st: if flag < 0 and (flag + d[i]) == 0: ans += 1 flag += d[i] return ans
@PZDC_1988
@PZDC_1988 Жыл бұрын
Ну и здесь ошибка на превьюхе😊
@AndyPronin
@AndyPronin Жыл бұрын
Не ошибка, а тонкий пристёб
@rrrreetreereerrerrrr
@rrrreetreereerrerrrr Жыл бұрын
че вы там курите что такие задачи придумывать? тоже хочу закупить
@AndyPronin
@AndyPronin Жыл бұрын
Олег в Амстердаме, вроде... у нас нелегально
@user-ds8xu8my1r
@user-ds8xu8my1r Жыл бұрын
path = ('U','U','U','D','D','D','D','D','U','U','U','D','D','D','D','U','U',) def down_counter(path): level = 0 prev_level = 0 down_count = 0 for step in path: if step =='U': level+=1 else: level-=1 if level == -1 and prev_level == 0: down_count +=1 prev_level = level return down_count print(down_counter(path))
@igorxjarvinen
@igorxjarvinen 8 ай бұрын
def trench(path): count = 0 total = 0 inside_trench = False for i in path: if i == 'u': count += 1 elif i == 'd': count -= 1 if count == -1 and inside_trench == False: total += 1 inside_trench = True elif count == 0 and inside_trench == True: inside_trench = False return total if total and inside_trench == False else 0 s = 'dduud' print(trench(s))
@lexomonov2843
@lexomonov2843 Жыл бұрын
Да ужжж , такой человечек, судя по его бэкграунду должен собеседоваться на мидл, а то все Джуны после такого как то пропадают 😅
@flower-py
@flower-py Жыл бұрын
А "после такого" - это после чего? И "пропадают" - куда пропадают?
@ChillMouse
@ChillMouse Жыл бұрын
Чел на Панфилова Никиту похож
@MrBeltalowda
@MrBeltalowda Жыл бұрын
def count_valleys(path, height=0): return str([0] + [height := height + 1 if direction == 'u' else height - 1 for direction in path]).count("0, -1") Ютуб съел прошлый комментарий с однострочником
@vadim1398
@vadim1398 Жыл бұрын
Проверь uudddudu
@MrBeltalowda
@MrBeltalowda Жыл бұрын
@@vadim1398 2, как и должно быть
@dmitriynayanov6428
@dmitriynayanov6428 Жыл бұрын
Что за двоеточие в height := height + 1 ? Что-то не понимаю такое выражение
@MrBeltalowda
@MrBeltalowda Жыл бұрын
​@@dmitriynayanov6428 это моржовый оператор. он позволяет задавать значение переменной внутри выражения. появился в питоне 3.8
@vadim1398
@vadim1398 Жыл бұрын
@@MrBeltalowda должно быть 2, а получается 0
@ptn_hlo
@ptn_hlo Жыл бұрын
По-моему, человеку в очках он сразу не зашёл после ответа на вопрос: "почему выбрали нашу компанию". Просто потому что у вас открыта вакансия, потому и выбрал. Ну а вообще душноват этот человечек в очках, я б под такое начало не пошёл. Кандидат улыбается, шутит, этот сидит, как сыч.
@Swetocopy
@Swetocopy Жыл бұрын
Ну собес это не про смехуечки, а про знания. Посмеяться и обменяться любезностями можно в начале при знакомстве и в конце. Мужик местами не к месту угарает) Легко сдается, не пытается найти решения, даже того, что уже делал. Шаг влево, шаг вправо и "на курсе этого не было". Даже для студента не знать, что такое orm и т.п. - плохо. Использует библиотеки асинхронные, но не знает как они работают. Такого человека надо постоянно контроллить и направлять. Это конечно в целом ок, без менторства прогресс будет хуже, но важно уметь задавать вопросы, уточнять и учиться самостоятельно, ментор не няня.
@ptn_hlo
@ptn_hlo Жыл бұрын
@@Swetocopy какие курсы, такие и знания, раз шаг вправо/влево - проблема. Что хорошо знать, а что плохо понятно только из собеседований и дальнейшего опыта. Или все всё сразу знают? На велосипеде тоже надо учиться ездить. Первое время можно и понянчить, корона не упадёт.
@ptn_hlo
@ptn_hlo Жыл бұрын
@@Swetocopy друг до этого кем работал, если не секрет?
@ptn_hlo
@ptn_hlo Жыл бұрын
@@Swetocopy т.е., у него бэкграунд программиста имеется, верно? Курсы обещают повара превратить в программера за полгода. Это шляпа, на которую все ведутся. Превратится тот, у кого куча свободного времени и понимание, что конкретно изучать. Создание ботов? разработка сайтов вместе с django? Аналитика с pandas? Каждое из этих направлений можно изучать долго.
Айрат Сахибгареев собеседование python разработчик
1:12:57
YouTube Play Buttons !! 😱😱
00:17
Tibo InShape
Рет қаралды 10 МЛН
SHE WANTED CHIPS, BUT SHE GOT CARROTS 🤣🥕
00:19
OKUNJATA
Рет қаралды 14 МЛН
ОДИН ДОМА #shorts
00:34
Паша Осадчий
Рет қаралды 6 МЛН
Что такое JWT и как его создать
14:32
Listen IT
Рет қаралды 39 М.
Здор Дмитрий собеседование python разработчик
1:10:25
Андрей += Пронин
Рет қаралды 6 М.
Домрачев Дмитрий python developer собеседование
1:13:04
Андрей += Пронин
Рет қаралды 6 М.
YouTube Play Buttons !! 😱😱
00:17
Tibo InShape
Рет қаралды 10 МЛН