Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Співбесіда з Python. 100+ запитань для Junior, Middle, Senior

Редакція DOU поспілкувалася з розробниками, які проводять технічні співбесіди Python-спеціалістів для різних рівнів, і зібрала приблизний список запитань до кандидатів. Звісно, він не є вичерпним, проте містить типові запитання.

Запитання для Junior

Від джуніорів вимагають знати та вміти застосовувати базові структури даних і модулі, найпростіші запити до баз даних, знати найпростіші команди системи контролю версій тощо.

Загальне з Computer Science та Web Development:

1.Що таке інженерія і процес розробки загалом?
2.Які знаєте принципи програмування?
3.Чим відрізняються процедурна та об’єкто-орієнтована парадигми програмування?
4.Які основні принципи ООП (наслідування, інкапсуляція, поліморфізм)?
5.Що таке множинне наслідування?
6.Які є шість етапів розробки продукту в Software Development lifecycle і яка різниця між Agile і Kanban?
7.Які є методи HTTP-запитів та яка між ними різниця?
8.Як виглядають HTTP-request/response?
9.Що таке авторизація і як вона працює?
10.Що таке cookies?
11.Що таке вебвразливість?
12.Які знаєте класичні бази даних?
13.Як читати специфікацію в конкретній мові (наприклад, PEP8 у Python)?
14.Як відбувається взаємодія клієнта і сервера?
15.Які є підходи до проєктування API?
16.Як використовувати патерни програмування?
17.Що таке Acceptance Testing і навіщо його використовують?
18.Що таке модульні та інтеграційні тести, API-тести?
19.Як писати unit-тести?
20.Які є best practices у написанні автотестів?
21.Які базові команди системи контролю версій?
22.Як використовувати Git?
23.У чому різниця між хешуванням і шифруванням?

Python:

24.Python — мова, що інтерпретується чи компілюється?
25.Які є змінні та незмінні типи даних?
26.Що таке область видимості змінних?
27.Що таке introspection?
28.Різниця між is і ==?
29.Різниця між __init__() і __new__()?
30.У чому різниця між потоками та процесами?
31.Які є види імпорту?
32.Що таке клас, ітератор, генератор?
33.Що таке метаклас, змінна циклу?
34.У чому різниця між ітераторами та генераторами?
35.У чому різниця між staticmethod та classmethod?
36.Як працюють декоратори, контекстні менеджери?
37.Як працюють dict comprehension, list comprehension і set comprehension?
38.Чи можна використовувати кілька декораторів для однієї функції?
39.Чи можна створити декоратор з класу?
40.Які є основні популярні пакети (requests, pytest, etc)?
41.Що таке lambda-функції?
42.Що означає *args, **kwargs та як вони використовуються?
43.Що таке exceptions, <try-except>?
44.Що таке PEP (Python Enhancement Proposal), які з них знаєте (PEP 8, PEP 484)?
45.Напишіть hello-world сервіс, використовуючи один із фреймворків.
46.Які є типи даних і яка різниця між list і tuple, навіщо вони?
47.Як використовувати вбудовані колекції (list, set, dictionary)?
48.У чому полягає складність доступу до елементів dict?
49.Як створюється об’єкт в Python, для чого __new__, навіщо __init__?
50.Що знаєте з модуля collections, якими ще built-in модулями користувались?
51.Що таке шаблонізатор та як у ньому виконувати базові операції (об’єднувати ділянки шаблона, виводити дату, виводити дані з серверного боку)?
52.Як Python працює з HTTP-сервером?
53.Що відбувається, коли створюється віртуальне середовище?

Бази даних:

54.Які є базові методи роботи з SQL- базою даних у Python?
55.Що таке SQL-транзакція?
56.Як зробити вибірку із SQL-бази з простою агрегацією?
57.Який вигляд має запит, який виконує JOIN між таблицями й до самих себе?
58.Як відправляти запити у SQL-базу даних без ORM?

Алгоритми:

59.Що таке алгоритми (наприклад, Big-O notation)?
60.Які є базові алгоритми сортування?
61.Що таке Bubble Sort і як це працює?
62.Що таке лінійна складність сортування?

Запитання для Middle

Якщо джуніору все треба підказувати й допомагати, то мідл може самостійно взяти щось нове і швидко його вивчити та зрозуміти. У нього накопичено достатньо знань і досвіду, щоб швидко опановувати нове. Він може прийти й обговорити з досвідченішим розробником, проконсультуватись, але остаточних рішень не ухвалює.

Зазвичай у мідлів запитують:

63.Чи орієнтуєтесь в *nix, можете писати скрипти/автоматизацію для себе і колег?
64.Що таке багатопотоковість?
65.Що таке архітектура вебсервісів?
66.Як працює сучасний навантажений вебзастосунок (намалювати й обговорити приблизну архітектуру, наприклад, Twitter чи Instagram)?
67.Що потрібно для сайту/сервісу середнього розміру (redis\celery\кеш\логування\метрики)?
68.Як написати, задеплоїти та підтримувати (мікро) сервіс?
69.Як масштабувати API?
70.Як проводити Code review?
71.Що таке абстрактна фабрика, як її реалізувати й навіщо її застосовують?
72.Що таке цикломатична складність?

Python:

73.Async Python: як працює, навіщо, що під капотом?
74.Порівняти асинхронні web-фреймворки.
75.Що таке модель пам’яті Python?
76.Що таке SQLAlchemy (Core та ORM частин) і які є альтернативи?
77.Принципи роботи та механізм Garbage collection, reference counting?
78.Як працює thread locals?
79.Що таке _slots_?
80.Як передаються аргументи функцій у Python (by value or reference)?
81.Що таке type annotation?
82.Для чого використовують нижні підкреслення в іменах класів?
83.Статичні аналізатори: Flake8, Pylint, Radon.

Бази даних:

84.Різниця між SQL і NoSQL?
85.Як оптимізувати SQL-запити?
86.Які є рівні ізоляції транзакцій?
87.Які є види індексів?
88.Точкові питання з вибору БД, рушіїв БД?
89.Front-end: чи є досвід роботи із «сучасним» JS (Babel, Webpack, TS, ES)?
90.DevOps: чи працювали з Docker-контейнерами, пояснити основні терміни K8s (кластер, pod, node, deployment, service), що таке Kibana?
91.Алгоритми: що таке часова складність алгоритму (time complexity)?
92.Поглиблені знання Linux: як зайти на зовнішній сервер, працювати з пакетами, налаштувати середовище та виконувати операції?
93.Специфічно для Data Science: як працювати з пакетами для обробки та візуалізації даних (NumPy, Pandas та інші)?

Запитання для Senior

На співбесідах із Senior’ами зазвичай мало говорять про теоретичний бік технології, більше обговорюють конкретний досвід розробника. Тому формалізованих питань тут немає. Проте прикладом можуть бути:

94.Що таке @property?
95.Яким чином можна запустити код на Python паралельно?
96.Як працювати зі stdlib?
97.Які завдання вирішували за допомогою метакласів?
98.Що таке дескриптори?
99.Знання інших мов, крім Python (досвід).
100.Які технологічні особливості реалізації розподілених систем?
101.Які є низькорівневі особливості мов і фреймворків?
102.Способи та методи керування пам’яттю.

Бонус. Практичні завдання

1.Спроєктувати клон Instagram. Це сервіс, який зрозумілий практично будь-якому кандидату, навіть якщо в нього немає акаунту. На високому рівні він дуже простий: картинки, описи, коментарі. Тому щось мінімальне зможе описати й джуніор. Якщо кандидат претендує на вищі позиції, можна нескінченно копати вглиб, торкаючись API, тротлінгу запитів, захисту від фроду, побудови фідів користувача тощо.

2.Дано рекурсивне визначення чисел Фібоначчі, треба написати функцію, яка реалізує це визначення.

3.Є база даних із трьох таблиць — стандартна many-to-many схема. Потрібно написати запит, який об’єднує три таблиці й повертає певний результат.

4.Даємо ТЗ якогось корисного мікросервісу (скорочувалка урлів, пошук дублікатів картинок, пошук тегів у текстах) або функції (rate limiter). Просимо кандидата розповісти, як би він його реалізовував. Це дає та можливість дізнатися, що звик використовувати фахівець, наскільки глибоко він знає і розуміє різні технології.

5.Написати якийсь нескладний декоратор (виводить аргументи функції на екран чи, наприклад, вимірює скільки часу виконувалась функція).

6.Junior’у можна запропонувати реалізувати задачку FizzBuzz test.

7.Для Middle+ я полюбляю давати нескладні задачки на рекурсію. Наприклад, є вкладений список чисел і треба щось на ньому порахувати (скажімо, знайти максимум). Також можна запропонувати написати аналог deepcopy для конкретної структури даних (tree, graph).

8.Для Senior — гра «спроєктувати за 5 хвилин...» Це може бути Google, FB, Twitter, високонавантажений інтернет-магазин, сервіс пошуку, продажу та бронювання квитків, сайт новин тощо. Така задача допомагає зрозуміти, як кандидат розв’язує проблеми, хід його думок, чи вміє відділяти головне від другорядного, зрозуміти, якого він типу («у глибину» чи «в ширину»).

9.Гра «у юзера щось не працює». На прикладі спроєктованої системи співбесідувач вигадує помилку з «дикими симптомами», яку дуже складно зрозуміти, відтворити. Але потрібно швидко розв’язати проблему.

10.Завдання, що демонструє знання та розуміння list та dict comprehensions.

Looking at the below code, write down the final values of A0, A1, ...An.

	A0 = dict(zip(('a','b','c','d','e'),(1,2,3,4,5)))
	A1 = range(10)
	A2 = sorted([i for i in A1 if i in A0])
	A3 = sorted([A0[s] for s in A0])
	A4 = [i for i in A1 if i in A3]
	A5 = {i:i*i for i in A1}
	A6 = [[i,i*i] for i in A1]
	A7 = [i if i%2 else 0 for i in A1 if 2 < i < 8]

	','.join(str(j**2) for j in range(10)) – what is this object ?

11.Задача, в якій є три функції, в них виконуються базові операції (сортування, фільтрування, піднесення масиву до квадрата). Потрібно упорядкувати ці три функції в порядку зростання часу, що йде на їх виконання.

Place the following functions below in order of their efficiency. They all take in a list of numbers between 0 and 1. The list can be quite long. An example input list would be [random.random() for i in range(100000)]. How would you prove that your answer is correct? -  profiling?

def f1(lIn):
    l1 = sorted(lIn)
    l2 = [i for i in l1 if i<0.5]
    return [i*i for i in l2]

def f2(lIn):
    l1 = [i for i in lIn if i<0.5]
    l2 = sorted(l1)
    return [i*i for i in l2]

def f3(lIn):
    l1 = [i*i for i in lIn]
    l2 = sorted(l1)
    return [i for i in l1 if i<(0.5*0.5)]

Тобто на вході усі функції мають однакові дані, на виході видають однаковий результат. Але через те, що всередині операції виконуються у різному порядку, час виконання буде відрізнятися. Тут потрібно орієнтуватися в алгоритмах і розуміти, що відбувається з твоїми даними у процесі. Цю задачу може розв’язати Junior, а може не розв’язати й Middle. Здавалося б, така дрібниця, але коли ми працюємо з великою кількістю даних, важливо, щоб код був оптимізованим і програма виконувалася максимально швидко.

12.Прості задачі на статистику чи логіку. Наприклад, визначити кут між стрілками годинника, що показує 8:40.

Дякуємо за підготовку матеріалу Михайлу Кашкіну (Founder в Okumy і курсів з Python), Руслану Скірі (Python Developer в CodeIT LLC), Бориславу Ларіну (Python Developer у Prom.ua), Володимиру Обризану (Director в Design and Test Lab), Віктору Свірському (Senior Developer в DataArt), Миколі Зоріну (CTO в Jiji, проєкт Genesis), Володимиру Селюху (Team Lead у Prom.ua), Сергію Галабурді (Software Engineer в N-iX), Олексію Чуприкову (Lead Python Engineer в EPAM), Івану Лучку (TL Data Science Specialist в Boosta), Олегу Новікову, Володимиру Щербініну, Романові Могилатову (Technical Leader в SoftServe) Вадиму Рудю, Наталії Кушнір, Андрію Лейцюсю, Роману Луцю та іншим.


Читайте також матеріал про .NET

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось20
До обраногоВ обраному61
LinkedIn

Схожі статті

  • Співбесіда з C++. 400+ запитань для Junior, Middle, SeniorСпівбесіда з C++. 400+ запитань для Junior, Middle, Senior

    Редакція DOU

    Пропонуємо список технічних запитань, які, ймовірно, вам поставлять на співбесідах з C++. Питання надали фахівці, що проводять технічні інтерв’ю з цієї мови. Врахуйте, що є широкий спектр спеціалізацій, а тому обирайте свій напрям і готуйтесь. 116

  • Співбесіда з .NET. 150+ запитань для Junior, Middle, SeniorСпівбесіда з .NET. 150+ запитань для Junior, Middle, Senior

    Редакція DOU

    Редакція DOU поспілкувалась з розробниками, що проводять технічні співбесіди для різних рівнів .NET-спеціалістів, і зібрала приблизний список запитань для кандидатів. У матеріалі є і теоретичні питання, і практичні задачі. 95

  • Співбесіда з DevOps. 300+ запитань для Junior, Middle, SeniorСпівбесіда з DevOps. 300+ запитань для Junior, Middle, Senior

    Редакція DOU

    Можна сперечатися про популярність DevOps, а можна просто готуватися до співбесіди та отримати омріяні 9K :) Щоб допомогти вам зорієнтуватись у питаннях, які ставлять на інтерв’ю, ми поспілкувались з тими, хто їх проводить, і склали список можливих запитань. 115




50 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Спасибо за подборку вопросов!
Более подробно можно посмотреть требования и вопросы к кандидатам в Design and Test Lab:

Вот инженерные уровни и требования по знаниям и умениям: workat.dnt-lab.com/...​are-engineer-career-2020

Вот вопросы которыми мы проверяем знания: workat.dnt-lab.com/...​to-get-prepared-for-exam

Пользуясь случаем: порекомендуйте забористую книгу по питону. Такую, чтобы после прочтения жизнь разделались на «до» и «после». Строго на английском. Питон использую для скриптования под Unix.

mark lutz learning python 5th edition
mark lutz programming python

Завтра ищешь в интернете книжку Dive into python. По*** если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, с*ка, вызубриваешь конвенцию по написанию питоньего кода — PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше — тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выбл**ков / просто неудачников типа рейфага или сисярп/джава-х**сосов, которые сосут х*й по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.

Враження що на прекрасному відбувся memory leak, який знайшов собі вихід в цьому коменті. Або лурку. Тут я вагаюсь.
А взагалі радий бачити=)

Завтра ищешь в интернете книжку

Классека!

Я прямо чувствовал, что эта копипаста не сможет не появится в этом треде!

В цьому треді не дуже корисні поради, бо ніхто не дочитав до місця:

Питон использую для скриптования под Unix.

Думаю тобі не потрібно знати внутряки мови. Також не дуже актуальна асинхронщина.

Для простої автоматизації можна почати з www.amazon.com/...​Programming/dp/1593275994

«Fluent Python» читати лише у випадку вибору Python як інструменту розробки.

Для простої автоматизації можна почати з www.amazon.com/...​Programming/dp/1593275994

Дякую, цю вже прочитав :) Непогана книга, але після неї залишилось відчуття underwhelmed.
Тому шукаю щось серьозніше. Крім суто практичної мети в мене є також і «академічний» інтерес до вивчення мов програмування, тому вже стягнув Fluent Python на O’Reilly. Table of Contents виглядає перспективно: суто vanilla Python без доменних фреймворків.

А, ну тоді повний вперед. На даний момент це реально Біблія для пітоніста. Ледь не єдина книга, яку я константлі перечитую

я ше маю тут 100 питань по пайтону + відповіді, але на англ!

Хороший список, на самом деле, особенно для тех, кто давно не ходил на собеседования, но хочет «оставаться в форме». Под «оставаться в форме» я подразумеваю именно скил прохождения собеседований, потому что как показывает практика, обычно на собеседованиях спрашивают, будто берут в NASA или SpaceX разрабатывать ИИ для управления беспилотными космическими кораблями, а потом попадая в проект понимаешь, что никаким rocket science даже и близко не пахнет.

Бывает обратная ситуация — задаешь вопросы по делу, а программисты считают что как-то все слишком просто. Я же senior %язык% developer, а тут про синтаксис ничего и не спросили.

Тут намеренно ошибка сделана?

def f3(lIn):
l1 = [i*i for i in lIn]
l2 = sorted(l1)
return [i for i in l1 if i<(0.5*0.5)]

может все-таки [i for i in l2 if i<(0.5*0.5)] ?

94.Що таке @property?

— вопрос для синьора

82.Для чого використовують нижні підкреслення в іменах класів?

— вопрос для миддла

27.Що таке introspection?
29.Різниця між __init__() і __new__()?
30.У чому різниця між потоками та процесами?
33.Що таке метаклас?
35.У чому різниця між staticmethod та classmethod?
36.Як працюють декоратори, контекстні менеджери?
45.Напишіть hello-world сервіс, використовуючи один із фреймворків.
52.Як Python працює з HTTP-сервером?
53.Що відбувається, коли створюється віртуальне середовище?

— вопросы для джуна..

Главное не перепутать...

Добавлю как мнение:

Різниця між __init__() і __new__()?

Этот я бы к миддлу адресовал, это хорошо изучается в метаклассах и там этому больше места.

И то весьма спорно. Вот что пишет о мета классах Тим Петерс (эксперт мирового уровня в Python):
«Metaclasses are deeper magic than 99% of users should ever worry about. If you wonder whether you need them, you don’t (the people who actually need them know with certainty that they need them, and don’t need an explanation about why).»

Поэтому логичность вопроса про метаклассы даже у миддлов весьма под вопросом. Если проект настолько активно использует метаклассы, что миддл с ними обязательно столкнется, то, скорей всего что-то сильно не так с архитектурой.

Честно говоря, очень напрягает когда на собеседовании тебе задают «100+ запитань з Python для Junior, Middle та Senior», еще и иметь глубокие знания в SQL, например.
И для этой позиции это все не нужно знать))

P.S. Спасибо, что подытожили вопросы, джунам будет понятно, что подтянуть. Для остальных, думаю, не сильно актуально.

а при чем sql алхимия, статические анализаторы, асинхронные фреймворки и щаблонизаторы к знаниям питона? выделяйте уже другую категорию «фреймворки и библиотеки». только туда можно напихать вообще все, что есть. ну и напишите уже, что вопросы так то для web разработчика.

У чому полягає складність доступу до елементів dict?

хотелось бы знать в чем же сложность по мнению автора вопроса?

хотелось бы знать в чем же сложность по мнению автора вопроса?

Наверно, надо создать абстрактную фабрику и обратиться к ней по XMLRPC для получения аксессора.
Хотя если это вопрос от того же косноязычного автора про «Що таке лінійна складність сортування», то ответ требуется только O(конкретное).

2редакция: вам что, так сложно было найти кого-то, кто бы просто вычитал эту зелёную муть?

ответы доступны для пользователей с платной подпиской

Треба усвідомлювати, що більшість українських компаній на вакансію Junior запитують, як для рівня Middle. А тестові завдання відрізняються кардинально від компанії до компанії.

Они притворяются синьорами)

В прошлой компании в соседний проект знакомый Java разработчик собеседовал кандидата по скайпу и одно из мини-заданий было «Напишите код, который входной массив целых чисел преобразует в другой массив, оставляя только те элементы исходного массива, которые нацело делятся на 3».
Кандидат не справился, даже с многочисленными подсказками.

Не знаю как в Java, может там это и непростое задание, но в Python это одна строчка кода, буквально.
Так что полностью с вами соглашусь — кандидаты бывают разные и валятся даже на простых, казалось бы, вещах.

IntStream.of(input).filter(x -> x%3==0).toArray();

в джаве тоже одна строчка.

Більшість питань виглядає досить разумно (з поправкою на те, що не маю досвіду веб-девелопмента, а тут вочевидь більшість питань на нього), але це здивувало:

Як читати специфікацію в конкретній мові (наприклад, PEP8 у Python)?

Про що саме мова? Брати і читати. Або треба було сказати «вичленити головне і другорядне, знайти тверді вимоги і лише побажання»?
Особливо смішно це в контексті PEP-8 :)

У чому різниця між хешуванням і шифруванням?

Це дійсно треба саме так питати? Типу перевірка на ази криптографії?

Чи можна створити декоратор з класу?

А тролейбус з буханки? Це дійсно комусь треба?

Що знаєте з модуля collections, якими ще built-in модулями користувались?

А чому саме collections так виділено? Я от в рази більше втягував sys, os, threading, re, time...

Що таке Bubble Sort і як це працює?

Навіщо?????

Що таке лінійна складність сортування?

І що це? ;)

Як Python працює з HTTP-сервером?

Відповідь «він його виконує» піде, чи як? ;)

Як працює thread locals?

На якому рівні чекається відповідь? Чи треба памʼятати, де використовується регістр FS, а де — GS?

Поглиблені знання Linux: як зайти на зовнішній сервер

Це — поглиблене знання? :rolleyes:

Як працювати зі stdlib?

З чим? Якщо мова про це, чому їй така увага? (І взагалі вона давно перейменована)

Способи та методи керування пам’яттю.

I accidentally my cat. (tm)

Як працює thread locals?

тут мається на увазі це docs.python.org/...​ng.html#thread-local-data Наприклад, в django ORM та алхімії така штука використовується для того, щоб для кожного треда зберігати свій конекшн в бд.

Як Python працює з HTTP-сервером?

тут скоріш за все очікують відповідь про wsgi/asgi. Також в деяких джерелах gunicorn/uvicorn (сервер, який виконуює python код) називають як application server, а apache, nginx — як HTTP server.

Наприклад, в django ORM та алхімії така штука використовується для того, щоб для кожного треда зберігати свій конекшн в бд.

А, ну це банально. От якщо спитали б про аналог для корутин, було б весело :) (занадто нова фіча)

тут скоріш за все очікують відповідь про wsgi/asgi.

Дякую, зрозуміло. Я думав таки більш про стиль aiohttp і аналогів...

Чи можна створити декоратор з класу?
А тролейбус з буханки? Це дійсно комусь треба?

в вебі це використовується, наприклад, для написання middleware

Що таке лінійна складність сортування?
І що це? ;)

Можливо хочуть почути про counting/radix/bucket sort.

Хех... тоді треба було б спитати «Чи може сортування мати лінійну складність, і яке?» А «що таке лінійна складність?» це або навмисно криве запитання, або запитуючий сам не розуміє теми, або йому треба знову в школу вчитись мові.

(І я не визнаю O(N) для цих сортувань, бо це чітерство — приховати логарифм в особливости реалізації.)

(І я не визнаю O(N) для цих сортувань, бо це чітерство — приховати логарифм в особливости реалізації.)

Зрозуміло. Так і скажете на співбесіді по алгоритмах :)
А я не визнаю складності бінарного пошуку, бо це чітерство сортувати дані. Записуйтесь у мою секту.

Зрозуміло. Так і скажете на співбесіді по алгоритмах :)

Ну якщо буде співбесіда з кимось розумним — зрозуміє. А якщо ні — для чого таке місце?

бо це чітерство сортувати дані

Це в Амазоні так вважають?

Це в Амазоні так вважають?

Пишу особисто мою думку ніяк не пов’язану із роботодавцем.

Ну якщо буде співбесіда з кимось розумним — зрозуміє

Тут або
1. ви приходите зі своїм доведенням (а краще науковою статтею у відомому журналі), що ці алгоритми є логарифмічними. Головне, щоб інтерв’ювер був достатньо розумним верифікувати ваше доведення за час інтерв’ю.
2. Інтерв’ювер має власнення доведення чи статтю, що вони логарифмічні. Тоді він/вона із вами погодиться.

ви приходите зі своїм доведенням

Нічого особо доводити не треба, все уже є:

> Radix sorts operates in O(nw) time, where n is the number of keys, and w is the key length.

«Key length» вже є логарифмом від ліміту кількости ключів.

Блін, завжди бісить коли намагаєшся використати сортування на amazon.com. До сортування — тисячі одиниць товару, після — сотні (і вже перші у списку дивують); гарний приклад — сортування за ціною. На співбесіді у Амазоні запитав чому так, відповіли: не купляйте найдешевше, купляйте найкраще (реальний випадок). Хоча рітейл і клауд то зовсім різні орги.

Велике дякую за матеріал! Тільки почала проходити курс з Пітону, буду знати на що орієнтуватися!

який курс проходите і як враження?

Почала з найпростішого на Stepik stepik.org/course/67/syllabus
Розказують саму базу (змінні, цикли тощо). Я вивчала в універсітеті Java, тому поки тільки оновлюю знання і дізнаюся синтаксис Пітону, складнощей не виникає. Подобається, що одразу є прості практичні задачі.
Пройшла третину, як закінчу, планую переходити до більш складного stepik.org/course/512/syllabus

А, ну ви такий самий закінчили 3 тижні тому))) Тому здається я повинна питати, як враження))

думав можливо щось інше)) шукаю продовження розвитку. ну для початку непоганий курс, але він не дуже детальний, хоча добре що і такий є, з задачами з живою спільнотою. Інколи з коментарів під уроками можна дізнатися більше ніж з уроків. Успіху вам і терпіння, як матимите ще якісь варіанти навчання, пишіть коментар ))

Подивиться другий лінк, що я скинула, може, він вам підійде) я як раз його планувала наступним

Для мене дуже корисними були курси зосереджені на практичних завданнях. Перший який проходив був ’Python for security’, це авторський курс спеціалістів з безпеки. Він дав мені розуміння того як побудовані процеси у вебі та, я впевнений, зекономив рік книжного навчання. github.com/oleoko/Zlol_course

Я зараз направив свою освіту у сторону data science. І тут можу порадити два гарні інституційні курси.
Перший від DataRoot Labs dhired.com/...​ence-fundamentals-13mx228
Я не заверший його проходження та враження залишились дуже приємними. Гарно побудована програма, чудова спільнота, спілкування у Slack, можливість по завершенні отримати пропозицію роботи.
Другий від fast.ai. я його зараз проходжу і мені здається це найкращий курс який може бути по машиному навчанню. В них прекрасна філософія навчання та чудова методика викладання. Знову ж, багато практики. www.fast.ai/...​020/08/21/fastai2-launch

Не курс але тема, яку навряд вдастся оминути: тестування. Якщо пройшли обидва курси stepic, думаю можна і до цієї сфери приступити. Мені старші товариші порадили розібратись з pytest і порадили книгу Персиваль — «Розробка на основі тестування». Напишіть, дам посилання на торент.

Дякую за поради, і ще особливо буду вдячний за лінк на торент)) для мене поки автоматизація тестування в пріоритеті, тому як раніше займався ручним тестуванням + не маю багато часу на навчання. @ifortunato телеграм, якщо так буде зручніше

Підписатись на коментарі