Співбесіда junior python розробника. Теорія + live coding
ฝัง
- เผยแพร่เมื่อ 14 มี.ค. 2024
- Співбесіди з програмування складні, але саме вміння добре пройти їх - це те, що допоможе вам отримати роботу у високотехнологічній компанії. Вдоскональте свої навички проходження співбесіди, переглянувши цю повнометражну,технічну співбесіду з програмування (туорія + лайв кодінг) на посаду junior python backend розробника.
Олексій поділився своїм досвідом, відповідав на теоретичні питання про python core та по всій веб розробці включаючи бази даних, алгоритми, клауд сервіси та інше. А вкінці була невеличка кодінг сессія, де він вирішував задачу у реальному часі.
Я у соціальних мережах:
Instagram: / vlad.ushakov.it
Telegram: t.me/+Hj8CDqoMF_RhZDg6
Зміст
00:00 Інтро
00:30 Попередній досвід
04:08 Python Core
40:21 Веб розробка
01:08:25 Live coding
Список запитань зі співбесіди. Може комусь буде у нагоді.
Де працював і чим займався, (опис проектів, стек технологій та прямі обов’язки на проектах)
Які базові типи даних ти знаєш?
Чим відрізняються lists та tuple? Навіщо нам незмінні типи даних?
Словники. Які типи даних можуть виступати ключем?
Асимптотична складність алгоритмів. Опишіть що ви знаєте про це
За що відповідає break та continue в циклі?
Як використовується конструкція else у циклах?
Що таке декоратор?
Яким чином можна викликати декоратор без “@”?
Як створити свій особистий декоратор?
Як створити декоратор з параметрами?
Що таке контекстний менеджер?
Наведіть приклади використання контекстного менеджера
Яким чином можна створити свій контекстний менеджер?
Що таке генератор і навіщо його використовують?
Як створити генератор?
Що таке ітератор?
Як створити ітератор?
Які концепції ООП ви знаєте?
Як працює успадкування у python?
Що таке Diamond Problem?
Розкажіть про інкапсуляцію
Як реалізована інкапсуляція у Python?
Що таке поліморфізм у Python?
Назвіть принципи SOLID
Що таке GIL?
Як працює асинхронне програмування в Python?
Як працює Garbage Collector у Python?
За що відповідають ключові слова WHERE та HAVING у PostgreSQL?
Які види Join’ів ви знаєте?
Різниця між INNER JOIN ТА LEFT JOIN?
За що відповідає EXPLAIN у PostgreSQL?
Що таке індекси у БД?
Напишіть SQL код та виберіть 3 співробітників з найвищою зарплатою з таблиці employee.
Напишіть SQL код який вибере з таблиці users усі дубльовані значення email.
Що таке Middleware?
Чи доводилось вам писати власні middleware?
Як визначається порядок виклику middleware для request та response?
select_related() та prefetch_related() - що це і коли використовується?
Назвіть основні концепції REST
Яка різниця PATCH та PUT HTTP методів
Назвіть HTTP статус коди
З якими AWS сервісами ви працювали?
Напишіть функцію яка буде перевіряти чи є число простим?
Ну точно буде у нагоді для тренувань і підготовки до формату співбесід.
На задачці Олексій перехвилювався, але в цілому виглядав добре. Чекаю наступних інтерв'ю на каналі!
Крутий формат! Продовжуйте в тому ж дусі
Дякую за відос, багато почув шо треба підівчити
Дуже дякую! Цікаве та корисне відео!
Цікаве відео, круто що є такий контент українською!!
Теж планую шукати роботу на junior python developer, було б круто поспілкуватися з вами.
Цікавий формат для перевірки власних знань, спостерігаючи за відповідями опитуваного. Чітко поставлені питання, а також "натякаючі" питання для поштовху до відповіді взагалі круто)
Дуже якісне інтервʼю
Льоха харош, для практики підійде )
Вітаю, доєднуюсь до коментаторів про україномовний контент. Дякую за працю, чекаємо нових серій!
А ви впевнені що це інтерв'ю на джуна?
Хочеться підтримати хлопця, він молодець! на мою думку, інтерв'ю точно не джунівське
Інтерв'юера хочеться попросити трохи повільніше та доброзичливіше 🙏
1:27:33 можна ще оптимізувати до sqrt(n) + 1. якщо a*b=n, де 1
можна ще оптимізувати, якщо спершу дивитися чи число при діленні на 6 дає остачу 1 або 5, оскільки будь-яке просте число (крім 2 і 3) - це 6k+1 або 6k-1, але не навпаки. По цій умові можна відкидати відразу ~5/6 всіх чисел, і тоді йти в циклі від п’ятірки до (кореня з заданого числа)+1 але з кроком 6 і на кожній ітерації дивитися чи число відповідає хоча б на одній з двох умов: ділиться на і або на і+2, якщо ні, то вертаємо False, а якщо так, йдемо далі в циклі.
Оптимізувати можна, але нашо?
Гляньте реалізацію решета Ератосфена на Пайтоні, якщо не бачили, найоптимальніше рішення цієї задачі. Я просто кайфанув коли зрозумів як працює
про for ... else це питання із серії "я вчора сам нагуглив, що так можна, спитаю сьогодні на собесі" - може не буквально, але по суті. Це прям дуже-дуже рідко юзають.
Ну так він же і сказав що це неймовірно рідкісна штука
Вау, я використовую. І часто. Так само як і else try/except.
Джун повинен знати теорію мови програмування. Це мастхев
Все дуже круто, але пригальмуйте ведучого)
Відчуття ніби інтерв'ю проводиться в кінці п'ятниці і він спішить додому)
Задача с простыми числами конечно для джуна не простая :)
какой то вариант они могут накинуть, но он в 99% будет не оптимальным что в принципе не даст возможности показать себя...
самый адекватно хороший вариант если будет заимплеменчен перебор делителей, деление числа N на все делители от 2 до округленного значения "корень от N" (а не N/2+1)...
def simple_number(number):
if number
Якщо перевіряти на більше нуля, то можна просто вийти з функції раніше і не брати постійно корінь.
@@FlLAIS що більше 0? І де там «береться постійно корінь»? Подивіться уважно на код
Слава Україні!
Героям Слава!
інтервювер підчас інтервю починає давати відгук відразу після почутоі відповіду. типу якщо нема бажання перевірити кандидата на стресостійкість, то не бажано так робити.
все було добре, поки не з'явилась "лячна" математика)
Дуже професійна поведінка інтервʼєра 🙂
By the way, у функцій є методи, хоч і магічні лише :) Бо функція є об'єктом :))
Хороша співбесіда
Супер контент. Дякую!
Не тягне поки що він на джуна, і математику йому треба підтягнути...
Ех, якщо би не служив строкову 20 років тому то можна було би і по працювати, але наразі не до програмування. Прийшлося покинути роботу. Так, і хто сказав що having то сабквері ?
Розʼїбав хлопака ((( Еххх , але по факту
як вважаєте, лайв кодінг це не вмираючий вид? Враховуючи такі тули як чат джпт чи щось подібне.
Думав що else це саме простіше шо може бути, і на співбесідах такого і не питають.. А тут таке😮😊
кому як, його рідко використовують тому можна забути,
і малась на увазі конструкція for else, їх всього є 3: if else, for else, try else
@@ivan2885 так, я це розумію, але ж це одна з найперших тем яких вчать на Python Core... Це як два плюс два,.. але можливо я помиляюсь))).
@@Pentagon846 ну так, але скажем ти вчив то на початках а потім 5 років ніде не використовував то воно забудеться
@@Pentagon846 ви плутаєте "if else" та "for else"
На більш реальній співбесіді, інтерв'ювер не буде за вуха тягнути по питанням, чи пояснювати де претендент плаває, просто поставить ще декілька простих алгоритмічних питань з математики наприклад як множити матриці, як порахувати персентиль, або логарифм по базі 10, якщо претендент також не розуміє, то ставиться мінус в графі щодо математики. Якщо це важливо для роботи то це автоматична відмова, якщо не важливо то це просто мінус бал при виборі з претендентів
Дуже класний відос, але інтервьюер трішки погано пояснював хлопцю що таке просте число. Можливо як би він сказав, що просте число це число яке ділиться БЕЗ ОСТАЧІ, лише на себе та на одиницю, то хлопець би швидше зрозумів =) Бо ділиться все на все (окрім нуля)
Ну, поки враження, що ніфіга не джуніорське інтерв'ю, та й хлопець не зелений джун. Але треба додивитися до кінця. )
Дописую по ходу перегляду інтерв'ю:
Інкапсуляція в першу чергу - це не приховування, це об'єднання/групування даних та методів роботи над даними в одному місці/об'єкті. Приховування - це вже більше побічний ефект.
Ну з базами то та, трішки туйво, і все ж не геть нулячий.
n+1 проблему не всі сіньйори знають )
Ех, задачка з простими числами підкачала, але загалом можна і мідла з натяжкою дати.
Ну та зазубрити теорію це багато мізків не треба, а вот елементарну функцію написати на перевірку цілого числа і так тупити це навіть не джун)0))😂😂
Ну ні.. це точно не мідл з натяжкою.
Перша секція. Це базові питання по конструкціям мови і інформатиці. Людина відповіла про конструкції мови, але вже були пробіли в розумінні BigO нотації. Це база алгоритмів і структур даних, а не якісь складні алгоритми обходу графу. Далі трошки в бік, питання про асиннхронність і теж пробіл.
Друга секція про бази даних, індекси, SQL. Теж багато пробілів, і знає, що індекси прискорюють пошук, і в той же час не розуміє які є підробні камені.
Секція з кодом, тут нема що коментувати, можливо, трошки переночував, але блін..
Як на мене, це рівень трейні-джуна. Умовно кажучи, студент 4 курс, який закінчив університет знав би не менше, якщо не більше. Але такого студента ніхто не візьме на мідла.
@@Footy-Funnies к сожалению, у соискателя не было возможности продемострировать навык кодирования, как таковой, т.к. сама концепция простых чисел для него оказаллась чем-то новым и тупил он именно из-за этого. Интервьюер мог бы дать что-то попроще, например сортировку массива целых чисел, просто чтобы посмотреть, как парень кодит, когда понимает поставленную задачу.
@@Vladyslav_Sliusar половина фронтендерів теж не знає що таке складність алгоритмів, бо їм це ніколи не тра було )
@@MasterSergius ну, зараз такі фронтендери і роботу знайти не зможуть.
На мою думку відверто кажучи дуже слабенько пройшов інтерв'ю хлопець. Може перенервував, все ж під запис складніше проходити, думаю. Наче і досвід є. Я жодного дня не працював розробником, для мене програмування це хоббі, і то на переважну більшість питань зміг відповісти спокійно. Не маю досвіду співбесід на позицію розробника, але чомусь думав, що такі базові речі як лічильник посилань / garbage collector, CPU bound / IO bound операції, часова складність операцій над базовими структурами даних і т.п. - це типу стандартні питання і їх всі знають. Навіть трохи замислився, може все ж таки спробувати перетворити хоббі на роботу?))
на майже всі запитання він добре відповів, посипався вже на кодингу
@@olexandr_v ну я вказав де прям невпевнено або неправильно відповідав. І це ще я про частину по SQL не згадав. Мені важко собі уявити людину, яка б працювала з БД і не знала для чого використовується HAVING.
Та ні, цьому мало де вчать і воно мало де потрібно.
@@user-bq7hh5gr5f можливо це тому, що я почав цікавитись програмуванням з мікроконтролерів, потім був С++, зараз Python) Мені цікаво розібратися як саме працює технологія зсередини, а не просто навчитись нею користуватись. Може для роботи воно і не потрібно, тут не можу стверджувати.
Це не всі мідли знають)) бо це майже ніде й не потрібно знати на практиці. Це ж не плюси.
Одне питання - як розробник може не знати що таке просте число?)
9:30 із множини(set) неможна отримати значення по індексу
def is_integer(number):
return number % 1 == 0
таки треба вайті в айті мені нарешті
А не було ідеї проспівбесідувати іншого senior девелопера, скажем щоб показати студентам як потрібно правильно та комплексно відповідати?
Senior співбесіда в корені відрізняється від джунів та міблів, бо там більше архітектурні питання та питання про досвід, я планую провести мідловське, це буде цікавіше
@@vladysllav я б не сказав що таки прямо в корені, можна і на суто технічні питання відповідати по різному для приклад навіть про ті ж декоратори джун розкаже як робити базовий декоратор та може параметризований, мідл реалізує їх та може розкаже за класові декоратори сіньйор за реалізацію асинхронних декораторів, та лямбда декораторів, думаю тут справа в нюансах.
@@vladysllav дуже хотілося би побачити з мідлом, бо сам переходжу від джуна на мідла і не знаю до чого готуватися
Між джунами і сіньйорами лише одна принципова різниця: поки джун іще гуглить відповідь на проблему, то сіньйор уже нагуглив.
Ойойойой.....
Взагалі то лафа на рідній мові проходити співбесіду,на жаль в мене такого немає
ну про else мене розсмішило
от дивлюсь на пайтон і завжди враження що якийсь дивний(не правильний) рубі =))
Скоріше ruby - не правильний python, оскільки він вийшов на 4 роки пізніше
А в мене з рубі враження що то якийсь клон пітона
Не сваріться, просто подивіться кількість вакансій на Python, і трішки більше нуля вакансій на Ruby
Нарешті україномовна співбесіда на пайтон розробника
кожен раз як він казав тАпл у мене вуха просто відпадали😭. Жодних притензій і тд це моя проблема що я вивчаю копютерні науки англійською, але якщо хочете говорити правильно то кажіть тЮпл (tuple)
Гугл перекладач каже ТАПЛ; Оксфордський і Макмілан словники не знають такого; Кембриджський каже ТЮПЛ; Зайшов на Youglish - є багато прикладів обидвох версій; Звичайний пошук гугл каже, що ТАПЛ; Дискусії в інтернеті - жодна версія непомилкова🤷♂
Носители произносят и тЮпл и тАпл, в словарях (не во всех) тоже указаны оба варианта. Просто для полноты картины.
@@davyzaebali цей варінт зустрічається, але майже відсутній(в основному так криво лише гугл переклдач каже, якщо зайти на оксфордський словник там немає варіанта тАпл і навіть гугл так не каже там буква між а та е). З битанців/американців відсотків 5 лише так скаже і знову ж там ніхто не вимовляє чітку А це щось між а та е і ближче наближене до е. І знову ж англійська в нього хороша, і загалом якщо людину розуміють значить все ок. Просто дуже різко дало по вухам
оксфорд словник - британська вимова, гугл транслейт - американська (якби в гугл транслейт була неправильна - її б змінили). про 5 відсотків - стата з голови. глянув в ютубі 5 перших відео - в двох тапл. ось ще пруф, де люди сперечаються th-cam.com/video/uFEXQVkhjGs/w-d-xo.htmlsi=xasmwlcwEYGU6CxP
@@drainage-water у кембридському словнику є два варіанти і американський теж тЮпл. У тому що ви відправили теж немає тАпл там інший звук. На рахунок словника гугл, цей словник більшьшою своєю частиною це машинне навчання. Ніхто не сидить і не виправляє його і він вважається доволі ненадійним словником для користування
лайвкодинг в 2024 році? серйозно? коли це вже вимре ?
Жодних намірів когось образити. 1:23:40 тіп банально не розуміє логіки, мені 15 років, за 5-7 хвилин (думаю для мене це довго) вирішив цю задачу в репліте, візьміть мене на працювати будь ласка). Мені відверто не зрозуміло як такі люди як цей «тіпок» взагалі вчать програмування. Я розумію що на співбесіді може бути трохи складно, але щоб настільки тупити…
Ось моє вирішення:
def simple(number):
a = [2, 3, 5, 7]
if number in a:
return True
else:
for i in a:
if number % i == 0:
return False
return True
while 1:
print(simple(int(input())))
Автор, надайте будь ласка відповідь до цього повідомлення з вашою думкою щодо того що я написав (Не про влаштування мене працювати, а щодо людини яка проходить співбесіду). Доречі «собачка» з російською, українською буде «равлик», це до того де ви розбирали декорації. Ще раз - нікого не хотів образити. Образив - прошу вибачення
13?
цей код не є валідним вірішенням задачі, так як він перевіряє лише множники до 7, а що робити з більшими простими множниками? вони мають визначатись як range(2, int(number ** 0.5) + 1) бо простих чисел є нескінченний ряд. Також питання куди поділась 1?
прості числа починаються з 2, вот куди поділась 1@@ririol
Пацан просто зазубрил ответы на вопросы, которые чаще всего попадаются на собеседованиях. Невозможно понять как устроены декораторы, итераторы, и не решить задачу на простые числа. От программиста, который не любил в школе математику ничего хорошего не ждите.
Для реалізації завдання "з визначення Чи_Є_Число_Простим" потрібно знати, що таке Просте число і алгоритми його визначення
Алгоритм Ератосфена. Коду там на 10-20 рядків. А "кандидат" не знає основи математики - це жах :(
Не можна бути вправним програмістом і не знати базу з математики, фізики і хімії шкільної програми, а можна бути просто "кодером-початківцем". Я шокований
Навіщо програмісту знання з хімії?)) Фізика теж сумнівно
Щоб знати до якого класу речовин, належать ті, які вживаєш у вечір пятниці@@vladyslavgooglya9902
Я не могу понять, почему чел с русским именем и фамилией делает контент на украинском
Ого. Я думав я повний нуль в програмуванні. Також вже не памятаю математику. Загуглив що таке прості числа, хвилин за 5 написав функцію. Це впринципі легкий рівень на літкоді, навіть і алгоритмом не назвеш. Може хлопець неовував і просто зациклився на цьому а не на рішенні. Але якщо справді не знає , то це не джун точно початківець.
🚀🐷💥
Как там белгород?
Я туплю з приводу else? For if else? Else рідко використовується ?
ні, досить часто як і elif
@@user-lg8dj9dz1l дякую) дуже не зрозуміло як він про елс не знає а про декодери і інше знає. І автор молодець, ніколи не використовує)
@@ilang747якщо я правильно зрозумів, то кажуть не про конструкцію if-elif-else, а про for-else та while-else, які використовуютсья доволі рідко
@@ilang747 ти тупиш, почитай за конструкцію for else.
@@ivan2885 не подумав про це використання. Навіть не знаю чи зустрічав таке