Спасибо за это классное видео! Сам мидл и почти на всё знаю ответ, но было полезно послушать как красиво/структурированно отвечать на вопросы, на которые уже столько раз давал ответ)
@@positive6329 от компании к компании разнится требовательность к работнику, к примеру, в Тинькоф будь то мид или джун по знаниям требования намного выше, чем в ноу нэйм или мало известных компаниях, про мировые топы вообще страшно представлять..
Супер🔥🔥🔥🔥🔥 Я сейчас набираюсь знаний в области DS, не хватало как раз вот таких основ именно самого языка. На курсах по ml и dl обычно много времени уделяется математической составляющей и работе с фреймворками, но вот про сам язык обычно говорят мало. Знания о языке я собирал по крупицам и давно хотелось структурированно по всему пройтись. В общем ещё раз спасибо 👍
Владисоав Гришин. Вы абсолютно правы!!! Спасибо за короткий ,полезный и очень конкретный совет. Легче всего быть собой и не врать. Спасибо большое Вам!!!
Знать ООП, слабую и строгую типизацию, инкапсуляцию это дело мидлов? XD Мне 15. Я сам пишу на С++. Параллельно учу ассемблер, а также в планах освоить OpenGL на GLAD и WinApi. Можешь мне объяснить, почему для вас, надеющихся устроиться на зарплату 300 тыс. такие вещи кажутся сложными? Также считается нормой не знать собственный язык. Разве вы не должны всё это на зубок знать?
@@rumya2841 Сейчас твой мозг как губка впитывает все что нужно и не нужно. С возрастом эта способность теряется и человек запоминает только то, что использует, а что не использует быстро забывает. Парадигмы в программировании меняются, создаются новые и отмирают старые. Через 10 лет профессиональной деятельности, мозг очень быстро адаптируется к реалиям, зачем на зубок что либо знать, если в нужный момент можно прочитать документацию и решить задачу. Вообще само словосочетание "учить python" или любой другой язык программирования довольно странное. Нужно читать доки, смотреть видео и разбираться как это работает на практике, решая какие либо прикладные задачи. И этот современный процесс собеседования похожий на экзамен тоже какая-то дичь. Оно понятно, большие деньги притянули магнитом кого-попало и нужна фильтрация. А вот 20-30 лет назад в программисты шли люди по призванию, работа не была престижной и все эти экзамены были просто не нужны.
про GIL еще неплохо бы знать\спрашивать - в каких случаях GIL работает а в каких нет? например если питонячий код вызывает системную либу которая не изменяет питонячую область памяти, то GIL для такого процесса "выключается", а также есть либы типа NumPy которые умеют "выключать" его для ускорения вычислений
Большое спасибо! Очень хорошо структурированная информация в роликах. Сижу мучаюсь с ответом на вопрос "Расскажите о себе". Не знаю говорить ли об опыте работы до программирования. Я switcher, и хотя у меня уже больше года коммерческого опыта, почти нет опыта собеседований, так как дважды легко попадал на низкооплачиваемую работу как бы "по знакомству" через техзадание. А теперь нужна ЗП получше- пришла пора мучений.
В Python аргументы в функцию передаются ВСЕГДА по ссылке. Строки, кортежи и т. д. нельзя изменить внутри вызываемой функции потому что они как раз НЕИЗМЕНЯЕМЫЕ, а не потому что какой-то механизм есть отдельный для передачи по значению или ссылке.
@@rineisky в контексте типов вроде кортежей, строк и т.д. не имеет значения какая ссылка передается, потому что в них уже нельзя ничего присвоить или изменить , поэтому как раз они передаются по обычной ссылке. Можете посмотреть id объектов, они не изменяются до передачи в функцию и внутри функции.
@@rineisky много где говорят про неизменяемость типов именно на примере передачи их в функцию, это много кого вводит в заблуждение, будто в питоне как в Java есть список неких особых типов, передающихся по значению, но это не так.
@@rineisky Здравствуйте! Меня заинтересовал ваш диалог. Я не знаю, как правильно задать вопрос, поскольку я начинающий. Не могли бы Вы както попроще для меня объяснить, как будет работать такой код. def some_function(some_arg=1): print(id(some_arg)) some_arg = some_arg + 1 print(id(some_arg)) return some_arg print(some_function()) # 121 122 2 print(some_function()) # 121 122 2 print(some_function()) # 121 122 2 Я предполагаю, что some_arg это ссылка на объект id которого 121 и значения 1. Мы создаем этот объект в момент определения функции (не вызова)? А что дальше? Переприсваиваем some_arg значение some_arg + 1 и это будет совсем другой объект (id=122) ссылку на который мы возвращаем вызвав нашу функцию?
@@rineisky Тоесть some_arg теперь является ссылкой на объект 122. Я знаю, что код работает следующим образом: Если ссылка на объект удалена, то сборщик мусора просто удаляет объект, потому что считает его ненужным. Поскольку мы переприсвоили some_arg (id=122), то ссылка на id=121 удалена? Тоесть объект 121 больше не существует? Я знаю, что мое представление может быть совершенно абсурдным, но буду очень благодарен за любые объяснения. Спасибо!
Спасибо за отличное видео! Как насчёт того, чтобы провести фиктивное собеседование на позицию python junior developer? Ну и конечно выложить это все на твой Ютуб канал. Если что готов быть интервьюируемым)
Вы можете сделать такое же видео только конкретно по web-python? разобрать вопросы по http, frameworks, backend, архитектуру, как-нибудь супер основательно?
С каких пор ООП, инкапсуляция, сильная и слабая типизация это для мидлов? Лично мне 15. Сам пишу на C++, учу ассемблер, в планах выучить WinApi и OpenGL через GLAD. Только с каких пор не знать свой собственный и основной, к тому же и самый простой, такой как Python, который не требует никаких технических знаний, для вас стало являться нормой? Но при этом вы не перестаёте надеяться на зарплату + 300 тыс. с таким низким уровнем знаний. Сейчас в России страдает колхоз и сельское хозяйство. Думаю, что лишние рабочие обществу будут явно полезнее, чем ещё одни недопрограммисты, которые даже язык толком доучить не могут
Тернарный оператор - это скорее короткая запись подстановки значения в зависимости от условия. А не тот извращённый смысл который используется в питоне. Смысл не в записи в одну строчку. А именно как подстановка в формулы. Ну например на языке lua это выглядело бы так: x = isLikeble and 1 or 0 * 10 - isNalogable and 1 or 0 * 5 print(x)
В Python есть принцип, что читаемость имеет значение. Если тернарный хорошо читается, то его можно всунуть, но иногда я предпочитаю написать обычный if в угоду читаемости кода
@@rineisky вот в python как раз тернарный оператор ужасен. Я без понятия кто придумал его именно так использовать. Как обычное условие. Я писал на C# и lua. И там и там короткий и понятный тернарный оператор который можно даже в математические формулы спокойно использовать. Но в python он ужасно читаем
Насчет mock'ов. По идее, тестируемый метод - это метод, не вызывающий сторонних методов напрямую. То есть если он что-то снаружи дергает, то только через абстрактные методы (в "джавке" - интерфейсы), тогда у нас будет возможность тестировать только логику этого метода, не трогая ничего больше. Ну, он может дергать другие методы класса, например, но к ним такое же требование. И при юнит-тестировании мы ДОЛЖНЫ mock'ать все эти абстракции, иначе о детерменированности можете забыть, а это основной критерий тестируемого метода вообще-то.
Отсюда же вытекает и то, что непосредственно в коде создавать новые объекты - не круто. Как минимум потому, что на них заглушки не навесить так просто.
16:00 а почему это не работает с цифрами? В примере ниже выполнятся оба блока. Неужели пайтон при обнаружении значения, которое уже есть в памяти просто наводит туда новый указатель? Если да то почему с массивами так же не работает? Если учитывать что массивы изменяемы и потенциально могут измениться, то почему просто не внедрить CoW, оставив фичу экономии памяти? num1 = 3 num2 = 3 if num1 == num2: print('equal') if num1 is num2: print('equal')
Спустя время пишу ответ: хэшируемость элементов. В питоне неизменяемые типы данных хэшируются. Если мы пробуем присвоить значение чему-либо когда хэш от этого значения УЖЕ находится в памяти - питон просто туда сошлется. В свою очередь массивы это изменяемый тип данных, соответственно нехэшируемый. Что касается CoWa - постоянно пересчитывать хэш от изменяемого типа данных слишком дорого, отсюда от этого и отказались.
Привет спасибо за видео было очень интересно!! Просто хотел спросить а на каком уровне джун к примеру должен уметь решать задачи к примеру codewars или leetcode ?
Про аннотацию не совсем так. Если есть два класса описанных в двух разных файлах и подключенных через import друг к другу. То такой код может стартовать. Если же добавить в аргумент одного из методов первого класса аннотацию, что он принимает класс второго. А у второго в конструкторе, что он принимает класс первого. То будет ошибка что возникла цикличная зависимость. Хотя без аннотаций всё работает. Но почему pycharm до запуска программы не даёт предупреждений??? Всё ведь нормально работает если аннотации убрать и ошибок нет
Спасибо за работу, но 'is' логака читается как написано a is b, тоесть является ли а б, это не вопрос сравнения содержимого. Тоесть вы сами не понимаете что is не сравнивает объекты, а сравнивает их ID
докер - это базовая тема, так что стоит ожидать любых вопросов по нему. Чтобы его понять, не потребуется много времени, за одни выходные с нуля до профи легко осилить
А если придет человек на собез который смотрел это видео ? И о чем тогда разговаривать ) Хорошая шпаргалка. Буду готовиться к собезу, пересмотрю еще разок.
Отличное видео. Автору искреннее спасибо за труды. Касательно Linux, нынче в Win 10/11 уже виртуалка с Lin даже лишнее, на мой взгляд (если нужно изучение терминальных команд). Так как, практически из коробки, уже есть WSL.
Если честно, то что-то многовато на джуна вопросов))). Может я ошибаюсь конечно, но тогда на джуна надо пару лет учиться, чтобы все это знать и руками пощупать...Особенно паттерны и все, что дальше идет.
Насколько я понимаю оператор in работает с итератором, поэтому сложность и для списка и для множества будет всегда одинаковая O(n). Так как под капотом делается вот так: 2 in iter([1,2,3]) 2 in iter({1,2,3})
Так-с, я пока только учусь и ещё не работал с ORM, Django и поэтому ответил на всё до вопроса про ORM, ну и на несколько после него. Месяца 2 ещё поработаю с SQL, ORM и Django, сделаю несколько проектов и буду искать работу )
@@harlok13 Привет, освоил SQL, ORM, Django. Сделал проект - сайт на Django. Еще пару недель на DRF, сделаю ещё один проект, разберусь в асинхронности и многопоточности, ну и буду выходить на рынок) А, ну и ещё английский апнул с низкого А2 до среднего B1)
@@rostikniks отличные результаты) желаю успехов на рынке, да и в изучении😁есть желание в телеге пообщаться? можно было бы делиться успехами хехе я как раз на том же пути @harlok
Странное высказывание изменяемые по значению а не изменяемые по ссылке, если бы передача была по значению, то значение копировалось бы как к примеру голанг, и тогда внутри функции нельзя было бы изменить внешнюю переменную
Ну вообще, в основном выделяют три вида полиморфизма: полиморфизм подтипов, параметрический полиморфизм и ad-hoc полиморфизм. Также у этих трех основных видов полиморфизма выделяют ещё подвиды и их очень много. Знать подвиды основных видов полиморфизма уже точно не стоит рядовому программисту. В любом случае спасибо автору за видео. Очень классное. По нему готовлюсь к собеседованию (уже взяли, но продолжаю) -- разбираю вопросы, читаю дополнительно теорию и выписываю всё себе в заметочник.
Про MRO тоже не совсем верно. Python знал три различных алгоритма MRO: classic, Python 2.2 new-style и Python 2.3 new-style (он же C3). В основе classic MRO (для версии python 2.1 и ниже) использовался алгоритм DFS (поиск в глубину). Для Python 2.2 new-style (имеется ввиду классы нового стиля, которые наследовались от object, например: class A(object):; в python версии 3.0 и выше это наследование происходит не явным образом, то есть class A:) использовался алгоритм BFS (поиск в ширину). Начиная с версии python 2.3 и выше используется алгоритм C3-linearization (C3-линеаризация). Этот алгоритм по прежнему используется в Python 3.0 и выше.
добрый день. Возникают ли на собеседовании вопросы по структурам данных? Будут ли спрашивать как в пайтон работает словарь и тому подобные вопросы. Например, придется ли объяснять, что в реализации словаря в яп питон участвует структура данных хэш-таблица, где она а применяет функцию хеширования, чтобы из ключа сделать число, потом создает вложенный массив и т.д. и т.п.. Просто учу python по roadmap на back-end и говорится что нужно знать структуры данных. Начал изучать, как все это работает, и подумал что если это будет на собесе, то сомневаюсь что не запутаюсь и отвечу правильно. Про массивы, стеки, очереди и кучи более менее понятно и простыми словами можно объяснить. Поэтому насколько это мастхэв знать все эти моменты?
Добрый день! Да, возникают. И постоянно, сам спрашиваю про структуры данных на собеседовании (в основном хеш-таблицы). Хеш-таблицы нужно разобрать в первую очередь (таблица, хеш-функция, признаки хорошей хеш-функции, коллизии, методы разрешения коллизий, какой из них используется в пайтон), так как они используется под капотом у dict и set (от этого, соответственно, и идет ответ на вопрос, почему на многие операции сложность O(1)). Ну а остальные структуры будет полезно для общего развития.
Хорошая шпаргалка перед собесом что-бы системазировать и повторить базовый пайтон👍🙂
Это потрясающе, именно то, что мне больше всего было нужно. Огромное спасибо!
как твои успехи)?
Ну как, устроился уже?
Согласен
@@mlr__roal_6867Всё ещё от потрясения отходит😂
Спасибо большое за практически исчерпывающее объяснение базовых вопросов по Питону.
Спасибо за это классное видео! Сам мидл и почти на всё знаю ответ, но было полезно послушать как красиво/структурированно отвечать на вопросы, на которые уже столько раз давал ответ)
Какой ты мидл, если знаешь ответы 'почти на все' вопросы к junior-ам?
@@positive6329никто не идеален просто
@@positive6329 от компании к компании разнится требовательность к работнику, к примеру, в Тинькоф будь то мид или джун по знаниям требования намного выше, чем в ноу нэйм или мало известных компаниях, про мировые топы вообще страшно представлять..
Супер🔥🔥🔥🔥🔥
Я сейчас набираюсь знаний в области DS, не хватало как раз вот таких основ именно самого языка.
На курсах по ml и dl обычно много времени уделяется математической составляющей и работе с фреймворками, но вот про сам язык обычно говорят мало. Знания о языке я собирал по крупицам и давно хотелось структурированно по всему пройтись. В общем ещё раз спасибо 👍
и что получилось найти роботу?)
@ привет, в сбере уже год data scientist, всё хорошо, надеюсь в скором времени апнусь до мидла
Очень полезная и качественная информация. Благодарю!
Это самый лучший видос по собесам. 100500 лайков.
видос отличный - чтобы освежить знания - самое то.
51:20 - неверное определение замыкания, а так прям очень класно
Спасибо, отличное видео. Понял, что много чего еще надо подтягивать))
Это поистине полезный видеоматериал. Его спокойно можно использовать в качестве лекций при обучении программистов в технических университетах.
Месяц назад числанулся, пните, когда такой хороший материал до вышек дойдёт, поступлю ещё раз, проверю
@@w04m1 это ты зря
@@w04m1 всм?
@@eugenegallas2340 ты учился в высшем учебном заведении на специальности, которая позиционирует себя как "будете программистом или типа того"?
@@w04m1 Не, я ток 9 класс окончиваю
Спасибо за видео! Очень полезно освежить знания перед собеседованиями.
Спасибо, классный обзор. Понятно куда двигаться
чтобы бороться со стрессом на собесах, на них нужно ходить. и будьте собой.
Владисоав Гришин. Вы абсолютно правы!!! Спасибо за короткий ,полезный и очень конкретный совет. Легче всего быть собой и не врать. Спасибо большое Вам!!!
только первые 10 собесов стресс
@@AntiBandera хз, у меня стресс пропадает после 1-2
@@alazarn7 пропадает? не в прошедшем времени?)
@@ЯрославДанилець-ь4с если не ходить несколько месяцев, то навык теряется. Это не велосипед
Наверно лучшее видео по собеседованию на junior. Сам устраивался месяца 3 назад, если бы его посмотрел до собеса, было бы спокойнее.
если не секрет что спрашивали?
@@ИванБетц вопросы из видео, пару простых запросов на sql, и много про асинхронность/многопроцессность/многопоточность.
@@КириллПопов-о3с спасибо
А где учился?
Кирилл, здравствуйте.
А можно как-то с вами связаться? Телеграмм, ватсап?
Хотел задать вопросы про работу, про получение опыта
Спасибо. Видос просто отличнейший. Обновил знания и добавил немало новых )
Вроде все и так знал, но часть уже забыл
Надеюсь поможет в сегодняшнем собесом🙏
ну как, помогло? встречались похожие вопросы?
@@irinaseroshtanova4972 больше его никто не видел)))
Ахаха
Я думаю, что эти вопросы более нацелены на мидлов.
У меня многие вопросы из данного списка спрашивали именно на данную позицию.
Отличный ролик!
У меня на галере эти вопросы едва ли на джун+ спрашивают…
@@darkvibes2870 у меня их на 1с спрашивают )
Знать ООП, слабую и строгую типизацию, инкапсуляцию это дело мидлов? XD Мне 15. Я сам пишу на С++. Параллельно учу ассемблер, а также в планах освоить OpenGL на GLAD и WinApi. Можешь мне объяснить, почему для вас, надеющихся устроиться на зарплату 300 тыс. такие вещи кажутся сложными? Также считается нормой не знать собственный язык. Разве вы не должны всё это на зубок знать?
@@rumya2841 Ты молодец
@@rumya2841 Сейчас твой мозг как губка впитывает все что нужно и не нужно. С возрастом эта способность теряется и человек запоминает только то, что использует, а что не использует быстро забывает. Парадигмы в программировании меняются, создаются новые и отмирают старые. Через 10 лет профессиональной деятельности, мозг очень быстро адаптируется к реалиям, зачем на зубок что либо знать, если в нужный момент можно прочитать документацию и решить задачу.
Вообще само словосочетание "учить python" или любой другой язык программирования довольно странное.
Нужно читать доки, смотреть видео и разбираться как это работает на практике, решая какие либо прикладные задачи.
И этот современный процесс собеседования похожий на экзамен тоже какая-то дичь. Оно понятно, большие деньги притянули магнитом кого-попало и нужна фильтрация. А вот 20-30 лет назад в программисты шли люди по призванию, работа не была престижной и все эти экзамены были просто не нужны.
Спасибо, отличный разбор
@@rineisky скинь плиз тг канал. Хочу ворд достать
Фантастический разбор
Спасибо большое, очень интересный и важный видос)
Это прямо в закладки! Спасибо!
Классное видео, спасибо автору.
Хотелось бы word документ прикреплённый к видео.
И это точно на джуна, а то как то жирно?)
@@rineisky Добрый день! Не могу найти ваш телеграм канал ( дайте пожалуйста линк. Спасибо.
Офигенный видос, спасибо!
Спасибо, очень плотно и по делу.
Огромное Вам спасибо! 🙏
Какая самая сложная задача, отвечаю: переучиться на программиста, в течении года. Вот вам в помощь.
Хорошо все объяснил, респект.
Спасибо, полезно!
Очень полезный подбор. Спасибо.
Чітко і структуровано. Респект автору.
Спасибо, очень полезное видео
Отличное видео, спасибо
спасибо Вам за видео
про GIL еще неплохо бы знать\спрашивать - в каких случаях GIL работает а в каких нет? например если питонячий код вызывает системную либу которая не изменяет питонячую область памяти, то GIL для такого процесса "выключается", а также есть либы типа NumPy которые умеют "выключать" его для ускорения вычислений
@@rineisky Можно ссылку на этот файл с вопросами?
Зачем это джуну?
Чтобы знать, что такое существует. Нужно разбираться в инструменте с которым работаешь@@awdawdawdbfw
@@mihailbury240 ага. Таким же аргументом можно обосновывать требования знаний ассемблера
Большое спасибо! Очень хорошо структурированная информация в роликах.
Сижу мучаюсь с ответом на вопрос "Расскажите о себе". Не знаю говорить ли об опыте работы до программирования.
Я switcher, и хотя у меня уже больше года коммерческого опыта, почти нет опыта собеседований, так как дважды легко попадал на низкооплачиваемую работу как бы "по знакомству" через техзадание. А теперь нужна ЗП получше- пришла пора мучений.
Чо как успехи? У меня ровно такая же ситуация с > 1 годом коммерческого как у тебя на момент написания коммента. Уже уверенный мидл, наверное?)
А точно для джунов эти вопросы, просто огомный объем информации и вопросов....
Нет. просто рынок в рф переполнен джунами и соответственно требования к джунами увеличили до уровня мидлов.
Оу, спасибо за инфу, получается, что "хер вкатишься" в отрасль((@@elkins87
В Python аргументы в функцию передаются ВСЕГДА по ссылке. Строки, кортежи и т. д. нельзя изменить внутри вызываемой функции потому что они как раз НЕИЗМЕНЯЕМЫЕ, а не потому что какой-то механизм есть отдельный для передачи по значению или ссылке.
@@rineisky в контексте типов вроде кортежей, строк и т.д. не имеет значения какая ссылка передается, потому что в них уже нельзя ничего присвоить или изменить , поэтому как раз они передаются по обычной ссылке. Можете посмотреть id объектов, они не изменяются до передачи в функцию и внутри функции.
@@rineisky много где говорят про неизменяемость типов именно на примере передачи их в функцию, это много кого вводит в заблуждение, будто в питоне как в Java есть список неких особых типов, передающихся по значению, но это не так.
@@rineisky Здравствуйте! Меня заинтересовал ваш диалог. Я не знаю, как правильно задать вопрос, поскольку я начинающий. Не могли бы Вы както попроще для меня объяснить, как будет работать такой код.
def some_function(some_arg=1):
print(id(some_arg))
some_arg = some_arg + 1
print(id(some_arg))
return some_arg
print(some_function()) # 121
122
2
print(some_function()) # 121
122
2
print(some_function()) # 121
122
2
Я предполагаю, что some_arg это ссылка на объект id которого 121 и значения 1. Мы создаем этот объект в момент определения функции (не вызова)? А что дальше? Переприсваиваем some_arg значение some_arg + 1 и это будет совсем другой объект (id=122) ссылку на который мы возвращаем вызвав нашу функцию?
@@rineisky Тоесть some_arg теперь является ссылкой на объект 122. Я знаю, что код работает следующим образом: Если ссылка на объект удалена, то сборщик мусора просто удаляет объект, потому что считает его ненужным. Поскольку мы переприсвоили some_arg (id=122), то ссылка на id=121 удалена? Тоесть объект 121 больше не существует? Я знаю, что мое представление может быть совершенно абсурдным, но буду очень благодарен за любые объяснения. Спасибо!
@@markervictor Здравствуйте Виктор! Не могли бы вы взглянуть на мой код тоже. Буду благодарен за объяснение.
Шикарный видос, кому надо будет проходить собес как раз самое то
Спасибо большое.
Огонь! Спасибо!!
лайк за подробнейший разбор!!! и не просто лайк, а лайк от СЕООНЛИ - гуру в вебмастеринге
Башка к концу видео лопнула. Завтра пересмотрю
Хорошее видео. Спасибо! От себя изучающим питон порекомендую книгу Effective Python.
Почти все вопросы были понятны. Спасибо за информацию, кое-что для себя узнал нового
Спасибо за отличное видео! Как насчёт того, чтобы провести фиктивное собеседование на позицию python junior developer? Ну и конечно выложить это все на твой Ютуб канал. Если что готов быть интервьюируемым)
ПРошу прощения, что честно заимствовал идею и сделал такое видео.
@@AndyPronin нет тебе прощения Пронин !
Вы можете сделать такое же видео только конкретно по web-python? разобрать вопросы по http, frameworks, backend, архитектуру, как-нибудь супер основательно?
*КОНЕЧНО, А ПОТОМ РАБОТАТЬ ЗА ТЕБЯ ПОЙДЕТ!*
@@sobaka600 вообще супер будет
50-100 строк кода на тестовой задаче на собеседовании? это в какой вселенной так? :)
МОЩНЫЙ ВИДОС
Спасибо за обзор, он шикарный. НО откуда джуну всё это знать? чтоб это всё знать это прям работать надо...
Какие именно пункты? Эти вопросы скорее даже не на джуна, а на стажировку
@@kirillyudin3766 у нас уборщица знает ответы на них, просто слушая разговоры в кабинете.
С каких пор ООП, инкапсуляция, сильная и слабая типизация это для мидлов? Лично мне 15. Сам пишу на C++, учу ассемблер, в планах выучить WinApi и OpenGL через GLAD. Только с каких пор не знать свой собственный и основной, к тому же и самый простой, такой как Python, который не требует никаких технических знаний, для вас стало являться нормой? Но при этом вы не перестаёте надеяться на зарплату + 300 тыс. с таким низким уровнем знаний. Сейчас в России страдает колхоз и сельское хозяйство. Думаю, что лишние рабочие обществу будут явно полезнее, чем ещё одни недопрограммисты, которые даже язык толком доучить не могут
@@rumya2841 я все это уже знал в детском саду, воспиталку на информатике поправлял.
@@kuznet1941мне кажется, что два года назад, когда с Паскаля начинал в 7 классе, и то больше знал, чем те недопрограммисты XD
Тернарный оператор - это скорее короткая запись подстановки значения в зависимости от условия.
А не тот извращённый смысл который используется в питоне. Смысл не в записи в одну строчку. А именно как подстановка в формулы.
Ну например на языке lua это выглядело бы так:
x = isLikeble and 1 or 0 * 10 - isNalogable and 1 or 0 * 5
print(x)
В Python есть принцип, что читаемость имеет значение. Если тернарный хорошо читается, то его можно всунуть, но иногда я предпочитаю написать обычный if в угоду читаемости кода
@@rineisky вот в python как раз тернарный оператор ужасен. Я без понятия кто придумал его именно так использовать. Как обычное условие.
Я писал на C# и lua. И там и там короткий и понятный тернарный оператор который можно даже в математические формулы спокойно использовать. Но в python он ужасно читаем
Насчет mock'ов. По идее, тестируемый метод - это метод, не вызывающий сторонних методов напрямую. То есть если он что-то снаружи дергает, то только через абстрактные методы (в "джавке" - интерфейсы), тогда у нас будет возможность тестировать только логику этого метода, не трогая ничего больше. Ну, он может дергать другие методы класса, например, но к ним такое же требование. И при юнит-тестировании мы ДОЛЖНЫ mock'ать все эти абстракции, иначе о детерменированности можете забыть, а это основной критерий тестируемого метода вообще-то.
Отсюда же вытекает и то, что непосредственно в коде создавать новые объекты - не круто. Как минимум потому, что на них заглушки не навесить так просто.
Чтобы запомнить фамилию Берна, надо соединить СТРАУС и ТРУП == СТРАУСТРУП
Есть инкапсуляция, а есть сокрытие. Инкапсуляция очень даже однозначна.
Отличное видео, это запись с вебинарам какого-то?
16:00 а почему это не работает с цифрами?
В примере ниже выполнятся оба блока. Неужели пайтон при обнаружении значения, которое уже есть в памяти просто наводит туда новый указатель? Если да то почему с массивами так же не работает? Если учитывать что массивы изменяемы и потенциально могут измениться, то почему просто не внедрить CoW, оставив фичу экономии памяти?
num1 = 3
num2 = 3
if num1 == num2:
print('equal')
if num1 is num2:
print('equal')
Спустя время пишу ответ: хэшируемость элементов. В питоне неизменяемые типы данных хэшируются.
Если мы пробуем присвоить значение чему-либо когда хэш от этого значения УЖЕ находится в памяти - питон просто туда сошлется. В свою очередь массивы это изменяемый тип данных, соответственно нехэшируемый. Что касается CoWa - постоянно пересчитывать хэш от изменяемого типа данных слишком дорого, отсюда от этого и отказались.
А байты и мемори вью не типы данных больше?
чел хорош!
один з найкраших оглядів співбесід, який коли не будь бачила
Привет спасибо за видео было очень интересно!! Просто хотел спросить а на каком уровне джун к примеру должен уметь решать задачи к примеру codewars или leetcode ?
спасибо!
Заиметь бы такой файлик с вопросами...)
Спасибо за видос, очень круто, ровно то что нужно, ни больше ни меньше!
50-100 строк кода это адекватно?
Про аннотацию не совсем так. Если есть два класса описанных в двух разных файлах и подключенных через import друг к другу. То такой код может стартовать.
Если же добавить в аргумент одного из методов первого класса аннотацию, что он принимает класс второго. А у второго в конструкторе, что он принимает класс первого. То будет ошибка что возникла цикличная зависимость. Хотя без аннотаций всё работает. Но почему pycharm до запуска программы не даёт предупреждений???
Всё ведь нормально работает если аннотации убрать и ошибок нет
отличное видео, а как можно получить эту таблицу в документе?
Спасибо за работу,
но 'is' логака читается как написано
a is b, тоесть является ли а б, это не вопрос сравнения содержимого. Тоесть вы сами не понимаете что is не сравнивает объекты, а сравнивает их ID
хорошее видео, не могли бы вы прислать текстовку вордовского файла или сам файл прикрепить?
Спасибо за Видео!. Правда я думал у меня матрица полетела на компе). Справа сверху на видосе пятня какие-то. Видос Тема!!!!
Большое спасибо за столь подробное видео!
Кстати, вопрос: Часто ли джуна по Докеру сильно спрашивают, или нет?
докер - это базовая тема, так что стоит ожидать любых вопросов по нему. Чтобы его понять, не потребуется много времени, за одни выходные с нуля до профи легко осилить
1:37:54 , 1:38:11
мне кажется вы интеграционные тесты называете функциональными
а тесты касаемые доступов называете интеграционными
А если придет человек на собез который смотрел это видео ? И о чем тогда разговаривать )
Хорошая шпаргалка. Буду готовиться к собезу, пересмотрю еще разок.
ну тут шаг вправо влево и будет видно, реально чел знает или заучил
Ну так выучите это, поймите и получите офффер. Это как назвать шпаргалку учебник по математике, потому что в нем все написано.
Супер
Хорошая и понятная подача. Я так понимаю это выкладка с какого-то курса. Я бы даже записался годик назад, но сейчас если только на определенные блоки)
Резко позвали на повторное собес завтра вот готовлюсь :)
Как прошло?
Отличное видео. Автору искреннее спасибо за труды. Касательно Linux, нынче в Win 10/11 уже виртуалка с Lin даже лишнее, на мой взгляд (если нужно изучение терминальных команд). Так как, практически из коробки, уже есть WSL.
Но а вдруг человек который принимает собеседование старомоден? Всякое бывает.
@@призРАК-л2ы старомоден и сидит на winXP )
Здравствуйте. Можно ссылку на Ваш вордовский документ который открыт в видео?
Готовтесь к порке
Если честно, то что-то многовато на джуна вопросов))). Может я ошибаюсь конечно, но тогда на джуна надо пару лет учиться, чтобы все это знать и руками пощупать...Особенно паттерны и все, что дальше идет.
8 месяцев учился, почти все было, но в большинстве случаев перед вопросом говорили знаешь отвечай, не знаешь ну и ладно
Это общие вопросы на Python думаю, к концу больше уже темы для middle разработчиков.
Это на Джуна что ли?
Сейчас к джуну требования даже выше, чем к мидлу
thx!
2:24:58 Разве в Python не используется метод открытой адресации?
Метод квадратичного пробивания - это один из видов открытой адресации
Где можно сами вопросы найти?
По вопросу аннотации типов. А singledispatch как же?
Насколько я понимаю оператор in работает с итератором, поэтому сложность и для списка и для множества будет всегда одинаковая O(n). Так как под капотом делается вот так:
2 in iter([1,2,3])
2 in iter({1,2,3})
Нет. Посмотри про хештаблицы
Сколько бы ни было элементов в словаре, хеш любого из них посчитается с одной скоростью
Этот собес для Junior?
44:46 *обязательных параметров нет. Ведь так?
Так-с, я пока только учусь и ещё не работал с ORM, Django и поэтому ответил на всё до вопроса про ORM, ну и на несколько после него. Месяца 2 ещё поработаю с SQL, ORM и Django, сделаю несколько проектов и буду искать работу )
привет, как успехи?)
@@harlok13 Привет, освоил SQL, ORM, Django. Сделал проект - сайт на Django. Еще пару недель на DRF, сделаю ещё один проект, разберусь в асинхронности и многопоточности, ну и буду выходить на рынок)
А, ну и ещё английский апнул с низкого А2 до среднего B1)
@@rostikniks отличные результаты) желаю успехов на рынке, да и в изучении😁есть желание в телеге пообщаться? можно было бы делиться успехами хехе
я как раз на том же пути
@harlok
Ну что, как сейчас?@@rostikniks
где можно увидеть ссылку на Ваш гитхаб?
19:12 почему так?
MRO3 несколько неточно объяснён. там не просто поиск в ширину.
Странное высказывание изменяемые по значению а не изменяемые по ссылке, если бы передача была по значению, то значение копировалось бы как к примеру голанг, и тогда внутри функции нельзя было бы изменить внешнюю переменную
17:45 не совсем понял ответ((
как так?
Спасибо!
Что за больница ?
про декораторы супер объяснение, но ничего не понятно )
Это на всех собеседованиях вопросы тестов суперважные?
@@rineisky Спасибо
Ну вообще, в основном выделяют три вида полиморфизма: полиморфизм подтипов, параметрический полиморфизм и ad-hoc полиморфизм. Также у этих трех основных видов полиморфизма выделяют ещё подвиды и их очень много. Знать подвиды основных видов полиморфизма уже точно не стоит рядовому программисту. В любом случае спасибо автору за видео. Очень классное. По нему готовлюсь к собеседованию (уже взяли, но продолжаю) -- разбираю вопросы, читаю дополнительно теорию и выписываю всё себе в заметочник.
Про MRO тоже не совсем верно.
Python знал три различных алгоритма MRO: classic, Python 2.2 new-style и Python 2.3 new-style (он же C3).
В основе classic MRO (для версии python 2.1 и ниже) использовался алгоритм DFS (поиск в глубину).
Для Python 2.2 new-style (имеется ввиду классы нового стиля, которые наследовались от object, например: class A(object):; в python версии 3.0 и выше это наследование происходит не явным образом, то есть class A:) использовался алгоритм BFS (поиск в ширину).
Начиная с версии python 2.3 и выше используется алгоритм C3-linearization (C3-линеаризация). Этот алгоритм по прежнему используется в Python 3.0 и выше.
1:41:00 про патчинг прожевал.
добрый день. Возникают ли на собеседовании вопросы по структурам данных? Будут ли спрашивать как в пайтон работает словарь и тому подобные вопросы. Например, придется ли объяснять, что в реализации словаря в яп питон участвует структура данных хэш-таблица, где она а применяет функцию хеширования, чтобы из ключа сделать число, потом создает вложенный массив и т.д. и т.п.. Просто учу python по roadmap на back-end и говорится что нужно знать структуры данных. Начал изучать, как все это работает, и подумал что если это будет на собесе, то сомневаюсь что не запутаюсь и отвечу правильно. Про массивы, стеки, очереди и кучи более менее понятно и простыми словами можно объяснить. Поэтому насколько это мастхэв знать все эти моменты?
Добрый день! Да, возникают. И постоянно, сам спрашиваю про структуры данных на собеседовании (в основном хеш-таблицы). Хеш-таблицы нужно разобрать в первую очередь (таблица, хеш-функция, признаки хорошей хеш-функции, коллизии, методы разрешения коллизий, какой из них используется в пайтон), так как они используется под капотом у dict и set (от этого, соответственно, и идет ответ на вопрос, почему на многие операции сложность O(1)). Ну а остальные структуры будет полезно для общего развития.
@@rineisky благодарю 👍
Не совсем подробно были разобраны некоторые вопросы когда были примеры в коде