Готовитесь к собеседованию по алгоритмам или по решению алгоритмических задач? Или просто хотите научиться решать алгоритмические задачи?
Я успешно прошел собеседования в Amazon и Facebook, существенная часть которых это алгоритмические задачи.
Например, в Amazon, у меня было 5 алгоритмических задач (2 на phone screen/online test, 3 на onsite собеседовании). В Facebook, было 6 алгоритмических задач (2 на phone screen и 4 на onsite собеседовании). На каждую такую задачу, по сути, давалось 15-20 минут.
Поэтому эти задачи надо уметь решать очень быстро.
В процессе подготовки я прочитал много книг и использовать множество различных ресурсов.
Но эти 3 я считаю лучшими и стоящими своих денег:
1) Книга Cracking the Coding Interview by Gayle Laakmann McDowell. Новичкам стоит начать с нее. Читать нужно в оригинале. Она разбита по темам. В начале каждой темы приведен алгоритм, который нужно знать наизусть и потом приведены задачи и решения к ним. Стоит начать с запоминания и понимания работы алгоритмов. Попробуйте выписать эти алгоритмы на бумажке без использования подсказок. Делайте это до тех пор, пока у вас это не будет получаться на автомате за пару минут. Далее смотрите задачи. Попробуйте сначала решить задачу сами. Если не смогли решить за 1-2 часа, изучайте решение до тех пор, пока не сможете сами, без подсказок, написать решение. По факту, мне этой книги хватило для прохождения собеседования в Amazon (но только после того, как я мог решить каждую задачу минут за 15 из этой книги. На это у меня ушел примерно год).
2) algoexpert.io. Этот ресурс я также рекомендую новичкам и при среднем владением алгоритмами. У автора этого ресурса есть youtube канал: https://www.youtube.com/@clem. По промокоду clem можно получить скидку. Ресурс содержит набор типовых алгоритмических задач и решений к ним. Его большой плюс - на каждую задачу есть часовое видео с пошаговым разбором решения. Более того, там есть материалы для подготовки к другим собеседованиям: system design, поведенческое собеседование, blockchain, front-end, ML.
3) leetcode.com. Содержит огромную библиотеку задач и решений к ним (более 1000 задач). К сожалению, пояснения к решениям могут отсутствовать или быть очень непонятно написанными. Поэтому рекомендую его только начиная со среднего и продвинутого уровня владения алгоритмами. Leetcode позволяет отфильтровать задачи по названию компании и по частоте встречаемости в этой компании. Благодаря leetcode я смог легко решить все алгоритмические задачи на собеседовании в Facebook. При подготовке я решал задачи, которые спрашивали в Facebook и взял топ 100 по частоте. Половина из задач на собеседовании просто совпали с теми, что я решал на подготовке. А другая половина была похожа на другие, которые я уже решал.
Я знаю и использовал много других ресурсов (тот же https://www.hackerrank.com/) и прочитал много других книг. Но они, по-моему мнению, мне меньше помогли и сделали процесс подготовки менее эффективным.
Post #56
2.01K
- 👍 9
- 🔥 4