Пікірлер
@werft2266
@werft2266 Күн бұрын
крутое видео
@MrSunTrope
@MrSunTrope 2 күн бұрын
Андрей, не удержался не потролить на 26 минуте, еле улыбку сдержал 🤣
@supernaturalmlady
@supernaturalmlady 2 күн бұрын
у меня в голове произошел диссонанс на этом моменте. знал, что flake8 - полноценный линтер, а black - просто форматировщик, но уверенные вопросы интервьюера на каждый ответ собеседуемого немного запутали
@7IdE
@7IdE 2 күн бұрын
Ну, хз. В целом, для стажера, мб, и норм. Но меня капец триггернули 2 фразы: "...люблю продумывать архитектуру" и "...самая большая проблема бота - там монолит, а не микросервисы". Джун, который думает интересуется архитектурой - это найс. Но джун, который продумывает архитектуру, без знаний в этом деле - тут очень велика вероятность того, что он начнет изобретать велосипед, а в результате изобретет что-то более страшное. Но больше, конечно, триггернула фраза о монолите. Я очень часто вижу/слышу, что, мол, "монолит - плохо, микросервисы - хорошо". И всегда одни и те же аргументы. А когда мы смотрим на конкретную задачу, то понимаем, что в ней не нужны все те плюсы, что дают микросервисы. Вот и тут в этом ответе я примерно это и услышал: человек где-то когда увидел эту фразу, принял ее за истину и теперь постоянно пихает это, даже не пытаясь подумать, а правильно ли он это делает. И все это делает с такой лютой уверенностью в своей правоте... ИМХО, джун должен залюбить всех, включая гугол, вопросом "почему так, а не иначе", а не просто принимать все как истину. И, да, я, конечно, не исключаю вероятность того, что конкретно у них в боте нужна была микросервисная архитектура, но лично мне крайне сложно представить, что они там такого пилили, что им это было бы нужно. Кароче, спорный собес. Мб хоть код выложите, раз уже спалили тестовое. :D
@databox4279
@databox4279 2 күн бұрын
Андрей, огромная благодарность за реальный собес. Хотел узнать, вы у себя в компании сообщения к коммитам пишите на русском или на английском? Читал, что где-то пишут на английском, где-то комбинируют, где-то на русском, мол нет смысла изголяться если не работаете на внутреннем рынке. Заранее благодарю за ответ.
@AndyPronin
@AndyPronin Күн бұрын
Для локальных проектов - на русском. Для иностранных - на английском
@2173045
@2173045 2 күн бұрын
Странный собес
@Chel1k7
@Chel1k7 3 күн бұрын
Максим чисто уши погреть пришел
@AndyPronin
@AndyPronin 2 күн бұрын
Следующий собес он уже активнее вёл)
@7IdE
@7IdE 2 күн бұрын
@@AndyPronin, поэтому и не выложили следующий? :D
@AndyPronin
@AndyPronin Күн бұрын
@@7IdE там барышня попросила не выкладывать
@TheLineHit
@TheLineHit 3 күн бұрын
import random def func(lst: list) -> int: return sum(list(map(int, lst))) arr_numbers = list(map(str, [random.randint(10**10, 10**15) for i in range(20)])) print(func(arr_numbers))
@kapitonius_v
@kapitonius_v 9 күн бұрын
Если так хочется в список положить один тип данных, можно унаследовать все объекты страницы от PageObject какого-нибудь... И вообще объекты на странице, может быть, словарем сделать, ключи будут именами экземпляров класса, для обращения по имени. Отдельно обращаться по индексам из dict.values()
@okretiv
@okretiv 10 күн бұрын
Примеряешь на себя собеседование.. Вроде все знаешь.. Вот только проектов не хватает. Наверное поздно начинать лезть в эту сферу в 55 лет . :)
@DrewPython
@DrewPython 11 күн бұрын
целый час бреда.
@DrewPython
@DrewPython 11 күн бұрын
целый час бредили и придумывали костыли.
@igorratnik2357
@igorratnik2357 12 күн бұрын
Это они с яндекс курсов такие? Генератор списка не знает?😮
@AndyPronin
@AndyPronin 9 күн бұрын
Научится
@kinozvu4ka848
@kinozvu4ka848 12 күн бұрын
А куда в личку писать за промокодом?) И могу ли я его применить вместе с подарочным сертификатом например для обучения в практикуме на системного администратора?)
@AndyPronin
@AndyPronin 9 күн бұрын
andpronin телеграм. Попытка не пытка) можно попробовать. Вдруг сработает
@user-yj1on3bf1v
@user-yj1on3bf1v 12 күн бұрын
Задачу дали некорректную в принципе. У нее нет решения. Задача была посчитать слова в тексте, сколько повторений. Но ничего не сказано про сам текст. Есть ли спецсимволы там, что есть понятие слова, что есть разделитель между словами, считаются ли словами 1-2 символа, отделенных пробелами. Можно ли удалять спецсимволы или нет, потому что там может быть пароль или спецсимволы вписаны внутри слова. В последнем варианте вообще тогда надо ставить вопрос что и как удалять из строки, чтобы отделять слова, что является разделителем слов. Уважаемые. Если в таких конторках как срандекс и прочие работают колхозники, которые не могут даже дать тех. задание корректное, зато hr отдел бесполезный на понтах и алгоритмы ненужные на собесах, то я вам скажу, что никто адекватный в такие конторы не пойдет работать. Мне жаль людей кто в подобное суется, по сути это рабы и вынужденные быть терпилами, мило улыбаться идиотскому начальству и вылизывать задницы. Кстати, смешит если тим лидами ставят баб не выше уровня мидла, это действительно смешно и говорит о многом.
@carambl1524
@carambl1524 12 күн бұрын
Люблю зайти к пронину посмеяться какае бездари бывают, как на этом колхознике который не знает типы данных ахха
@dmitrikolesnikov9762
@dmitrikolesnikov9762 15 күн бұрын
lst = [4, 90, 0, 123, 64, 0, 44, 5] print(*list(filter(lambda x: x, lst)) + [0] * lst.count(0))
@kostya7469
@kostya7469 16 күн бұрын
ппц неуверенный человек. Нужно прокачивать навык самопрезентации, говорить громче, увереннее, артикулированнее.
@user-cm3rz4jb8r
@user-cm3rz4jb8r 17 күн бұрын
Не помогло
@xesax
@xesax 17 күн бұрын
можете подсказать что за расширение , чтобы вот так подчеркивало в vs code ?
@werft2266
@werft2266 18 күн бұрын
p1 = len(a) - 1 p2 = len(b) - 1 r = '' n = 0 while True: if p1 >= 0: ch1 = a[p1] else: ch1 = 0 if p2 >= 0: ch2 = b[p2] else: ch2 = 0 if p2 < 0 and p1 < 0: if n == 1: r = '1' + r return r r =str( (ch1 +ch2+ n)%10 ) + r n = (ch1 + ch2 + n)//10 p1 -= 1 p2 -= 1
@dmitrysapelnikov
@dmitrysapelnikov 20 күн бұрын
2я задача в оптимальном решении o(n) рантайма + o(1)- это гроб уровня hard, который не алгоритмическая, а математическая задача. Данила решил просто потешить свое чсв.
@ShinKranel
@ShinKranel 20 күн бұрын
1:56 Кандидат: На Яндекс.Практикуме мы делали проект на Джанго один......блок Андрей: о_о Кандидат: Потом писали на FastAPI один проект Андрей: о_о
@nerdizay
@nerdizay 20 күн бұрын
В url могут быть запятые))
@hornermotorbiker4360
@hornermotorbiker4360 22 күн бұрын
Не Тиньков, а Тинькофф
@user-fq2hr1pu5e
@user-fq2hr1pu5e 22 күн бұрын
return spisok == spisok[::-1]
@nebesnistalker
@nebesnistalker 22 күн бұрын
Харизматичная девушка)
@user-bd2dp1ug3t
@user-bd2dp1ug3t 23 күн бұрын
Код первого задания у пацана не работает и не увидивитиьно но я типо не осуждаю самого пацана, но вот чел типо с яндекса или откуда он там, просто видно что когда пацан начал слишком громоздить, он перестал понимать что он делает и сделал вид что решение норм (хотя оно time limit ) да и какой O(n) approach это смешно, ощущение что тип пришел не из it сферы даже а с помойки. Хахах я смотрю Андрей уже смеётся с задачки типо про sliding window ) What is going on ?
@AndreiIvanov-ph8sx
@AndreiIvanov-ph8sx 25 күн бұрын
А в Яндекс только с "ушками" берут?
@AndyPronin
@AndyPronin 24 күн бұрын
Ян не попал в Яндекс в итоге. Так что, нет
@judg3Grady
@judg3Grady 26 күн бұрын
Чел отучился на Яндекс Практикуме и не может написать алгоритм поиска палинрома? Серьезно? Ну и с бинпоиском любой недостажер легко должен справляться. Ни первый, ни второй собеседуемые не тянут на стажеров, не говоря уже о каком-то более высоком уровне.
@user-xw3rq9ng5u
@user-xw3rq9ng5u 27 күн бұрын
Яна молодец) Теперь я знаю, что не я один так сильно волнуюсь что все трясется и все вылетает из головы)
@luckytima2315
@luckytima2315 27 күн бұрын
Очередные нулевый питонисты, который привыкли юзать библиотечные методы не понимая реализаций
@user-yj1on3bf1v
@user-yj1on3bf1v 28 күн бұрын
в задаче на смещение массив не нужен. Надо скопировать подстроку от начала до номера индекса смещения, аналогично надо оставшуюся часть символов скопировать в другую переменную. и из этих двух переменных сформировать новую строку. Но тут еще надо учитывать глубину смещения, если функция получает на вход число, то надо высчитать корректное смещение на случай ели смещение больше чем число символов.
@user-zx6fq1ig4h
@user-zx6fq1ig4h 29 күн бұрын
Я бы этого типа, не то, чтобы не взял программистом, я б его на пушечный выстрел не подпустил. Возможно, он будет хорош у других областях, например в продажах(там как раз языком чесать нужно).
@goterogotero8240
@goterogotero8240 29 күн бұрын
Антон классный парень, хотел бы с ним поработать!
@AndyPronin
@AndyPronin 29 күн бұрын
Да. Он молодец большой
@engineer103
@engineer103 29 күн бұрын
Здравствуйте Андрей смотрю вас уже год и постоянно разбераю ваше интервью большое спасибо! Можете ли сказать как я смогу попасть на ваше собеседование
@AndyPronin
@AndyPronin 29 күн бұрын
Пока через Практикум. Возможно, сделаю розыгрыш на канале. Но это не точно
@marebf3301
@marebf3301 29 күн бұрын
​@@AndyPronin, а что за практикум?
@AndyPronin
@AndyPronin 28 күн бұрын
@@marebf3301 Яндекс Практикум. Я эти собесы в рамках работы там делаю
@MrBeltalowda
@MrBeltalowda 29 күн бұрын
грустно смотреть, когда кандидаты тривиальные задачки на палиндром или бисект решить не могут
@NightoSan
@NightoSan Ай бұрын
как сделать так что бы подсвечивались варианты в IDE ?
@AndyPronin
@AndyPronin 28 күн бұрын
Продкючить нейросети
@kruptixx
@kruptixx Ай бұрын
Благодарю за интересный контент! всегда интересно посмотреть на джунов и повспоминать питон :) def pol(arr: list) -> bool: for i in range(len(arr) // 2): if arr[i] != arr[-i - 1]: return False return True def version_checker(arr: list) -> object: def is_bad(ver: object) -> bool: pass l_p, r_p = 0, len(arr) - 1 while 1: if is_bad(arr[l_p]): return arr[l_p] elif is_bad(arr[r_p]): if is_bad(arr[curr := (l_p + r_p) // 2]): r_p = curr else: l_p = curr + 1 continue return None
@runneso
@runneso Ай бұрын
def firstBadVersion(n: int) -> int: left, right = 0, n while (right - left) > 1: mid = (left + right) // 2 if isBadVersion(mid): right = mid else: left = mid return right def palindromeCheck(array: list[int]) -> bool: left, right = 0, len(array) - 1 while left < right: if array[left] != array[right]: return False left += 1 right -= 1 return True
@bunasha
@bunasha Ай бұрын
Багованный модуль равномерно распределен с независимыми случайными приращениями. Ты не докажешь факт корреляции между багованными модулями, что если один модуль багован, то все последующие также багованны. А если корреляция есть, т.е. тебе однозначно известно как выглядит баг, ты можешь просто прочитать модуль как текстовый файл и найти в нем данный баг. Он на чтение млнонов символов и сопоставление с щаблоном бага потратит менее секунды и туфта с бинарным поиском не нужна. У тебя же не трлн версий модуля. Смысла лепить этот поиск не нужно там, где он не нужен.
@MrBeltalowda
@MrBeltalowda 29 күн бұрын
man git bisect
@fight_me-
@fight_me- Ай бұрын
Вот такие штуки получились def palindrome(numbers: list[int]) -> bool: pointer: int = -1 for idx in range(len(numbers)//2): if numbers[idx] == numbers[pointer]: pointer -= 1 else: return False return True def get_bad_version(versions: list[int]) -> int: low: int = 0 high: int = len(versions) - 1 while high > low: mid: int = (low + high) // 2 if is_bad_version(versions[mid]): high = mid else: low = mid + 1 return low
@fight_me-
@fight_me- Ай бұрын
Если я, конечно, правильно понял, что после первой плохой версии, все последующие тоже будут плохими
@user-zb3wv3jl5b
@user-zb3wv3jl5b Ай бұрын
def func(x): if len(x) % 2 == 0: return False left = 0; right = len(x)//2 + 1 while right < len(x): if x[left] != x[right]: return False left += 1; right += 1 return True
@runneso
@runneso Ай бұрын
Палиндром может быть чётной длины [1,2,2,1]
@user-zb3wv3jl5b
@user-zb3wv3jl5b 29 күн бұрын
@@runneso def func(x): if len(x) == 0: return False left = 0; right = len(x)//2 + 1 if len(x) % 2 != 0 else len(x)//2 while right < len(x): if x[left] != x[right]: return False left += 1; right += 1 return True
@ThembaKai
@ThembaKai 24 күн бұрын
def is_palindorme(lst): left = 0 right = len(lst) - 1 while left < right: if lst[left] != lst[right]: return False left += 1 right -= 1 return True
@Chel1k7
@Chel1k7 Ай бұрын
с его условием в цикле while start != end, при четном кол-ве элементов будет падать ошибка out of range, потому что условие не выполнится при палиндроме. Как такое можно было пропустить, Андрей))
@AndyRoid1986
@AndyRoid1986 Ай бұрын
тоже об этом подумал , поэтому ограничил до середины списка проверку, чтобы старт в конец не ушел и енд в начало
@Chel1k7
@Chel1k7 Ай бұрын
@@AndyRoid1986там просто нужно сделать while start < end:
@AndyPronin
@AndyPronin 28 күн бұрын
Косяк( чуйка подсказала про аут оф рейндж, но сходу не сообразил.
@AndyRoid1986
@AndyRoid1986 Ай бұрын
Сделал так: def fpolyn(l=list)->bool: p=-1 # указатель на элемент списка zn=True # значение for i in range(len(l)//2): if l[i]!=l[p]: zn=False break else: p-=1 return zn
@Chel1k7
@Chel1k7 Ай бұрын
Коряво сделал, подумай еще:)
@AndyRoid1986
@AndyRoid1986 Ай бұрын
Ну или через ваил; def fpolyn2(l=list)->bool: i=0 # указатель сначала p=-1 # указатель с конца zn=True # значение while len(l)!=0 and l[i]==l[p] and i!=len(l)//2: # проверка до середины списка i+=1 # пока совпадает сдвигаем указатели p-=1 if l[i]!=l[p]: zn=False return zn
@Chel1k7
@Chel1k7 Ай бұрын
@@AndyRoid1986 пипец ты усложняешь))
@AndyRoid1986
@AndyRoid1986 Ай бұрын
@@Chel1k7 20 лет простоя после паскаля в универе, не претендую на профа))) радует, что уже работает то что я накалякал
@Me-dq5ix
@Me-dq5ix Ай бұрын
Как тяжело их слушать… вообще ответы не логичные
@sergeiryzhov9043
@sergeiryzhov9043 Ай бұрын
Ольга красивая)
@idontknow_
@idontknow_ Ай бұрын
Задача решается при помощи ord(i) и chr(ord(i)+3) с проверкой диапазона ascii символов конечно же.
@user-yj1on3bf1v
@user-yj1on3bf1v 28 күн бұрын
батенька, чатгпт ругался на ваше решение, вы смещаете вправо :))
@idontknow_
@idontknow_ Ай бұрын
В чем смысл задачи, я не понял. Если есть что то кроме интов, флоатов конвертировать result в строку и уже прибавлять к ней str(i). Либо отсеять инты, и не инты и на выходе проверять результат и склеивать их.
@AndyRoid1986
@AndyRoid1986 Ай бұрын
Сперва пытаюсь сам решить задачу, потом досматриваю и смотрю коменты. Пришлось пару часов голову ломать и получил вот это: def charnum(st:str)->str: p=0 answ='' for i in range(len(st)): if i>=p : k=0 while (i+k)<len(st) and st[i]==st[i+k]: p+=1 #point место с которого продолжаем смотреть строку k+=1 #количество повторений answ=answ+st[i]+str(k) return answ
@AndyRoid1986
@AndyRoid1986 Ай бұрын
Фух, решил рассмотреть вариант с библиотекой, пол дня убил на функцию которая выдаст остаток вычитания списков def listaminuslistb(a:list,b:list): #не хотел трогать изначальный лист #программа выдасть разницу a1=a.copy() b1=dict.fromkeys(b,0) #создаем словарь for i in b: b1[i]+=1 # значения в б и их количество zzz=list(b1.keys()) #значения в списке kkk=list(b1.values()) #кол значений в списке for i in range(len(zzz)): for j in range(kkk[i]): if zzz[i] in a1: a1.remove(zzz[i]) #удаляем значения из а ,если есть по кол раз в б return a1 #остаток а после вычитания