Варианты подготовки к собеседованию в FAANG/около FAANG для разных уровней текущей подготовки. Часть 2.
Предыдущая часть тут Подготовка для Advanced уровня.
В данном посте опишу пример подготовки не для полного новичка, но близко к тому. Назову этот уровень Pre-intermediate.
Pre-intermediate. Вы знаете какой-то язык программирования на уровне достаточном, чтобы решать алгоритмические задачи. Смотри, например, Шпаргалка по Java для алгоритмического собеседования. Вы знаете английский на уровне от Intermediate и выше. Вы представляете, что такое основные структуры данных (массив, строка, список, стек, очередь, хэш таблица, куча, множество, дерево, граф). Например, вы изучали их ранее в виде курса в университете или самостоятельно. Но у вас нет никакого опыта решения алгоритмических задач или он очень маленький.
Подготовка:
1) Берем книгу Cracking the Coding Interview by Gayle Laakmann McDowell. Берем только нужные главы (Какие главы из Cracking the Coding Interview нужно изучить для прохождения алгоритмического собеседования?) Для начала можно даже еще пару глав на сложные темы исключить (Chapter 8. Recursion and Dynamic Programming и Chapter 17. Hard.). Т.е. взять главы:
1) Chapter 1. Arrays and Strings
2) Chapter 2. Linked Lists.
3) Chapter 3. Stacks and Queues.
4) Chapter 4. Trees and Graphs.
5) Chapter 10. Sorting and Searching
6) Chapter 16. Moderate
В начале каждой темы приведены алгоритмы, которые нужно знать наизусть и потом приведены задачи и решения к ним. Стоит начать с запоминания и понимания работы алгоритмов. Попробуйте выписать эти алгоритмы на бумажке без использования подсказок. Делайте это до тех пор, пока у вас это не будет получаться на автомате за пару минут. Далее смотрите задачи. Попробуйте сначала решить задачу сами. Если не смогли решить за 1-2 часа, изучайте решение до тех пор, пока не сможете сами, без подсказок, написать решение. Смотри также мои статьи:
1) Как выбрать язык программирования для алгоритмического собеседования?
2) Как решать алгоритмические задачи на подготовке, чтобы это было эффективно
3) Как не забыть решения задач и алгоритмы
4) Шпаргалка по основным алгоритмам для алгоритмического собеседования
В этих 6 главах, где-то 70-80 задач. На изучение и запоминание теории к каждой главе + самостоятельное решение задач + разбор правильного решения и запоминание уйдет при вашей подготовке где-то ~250 часов. После перейти к изучению Главы 8. На что уйдет еще где-то ~50 часов. В сумме где-то ~300 часов. Я не утверждаю, что этот подход единственный, но лично я им воспользовался. На изучение этой книги до состояния, что я могу за 5 минут написать на бумажке стандартный алгоритм без ошибок и подсказок, а также решить за 15-30 минут задачи из этих глав у меня ушел 1 год (параллельно с работой). Чем хороша эта книга - в теории нет ничего лишнего, только все самое необходимое. А также очень детально разобраны решения, с несколькими вариантами решения и описанием хода мысли, как к этим решениям прийти. Если сразу перейти на Leetcode, то без должной подготовки до этого, вы будете просто терять свое время.
2) Решаем задачи на https://www.algoexpert.io/. На данный момент там ~200 задач с очень подробным разбором решения в формате видео. Я бы сказал, что это Cracking the Coding Interview только в online формате с возможностью сабмита своих решений и их проверки. Вам не обязательно решать все 200 задач. Можно выбрать только конкретные темы, которые вы хотите прокачать. Или решать задачи выборочно, какой-то процент задач по нужным вам темам. Например, мне это помогло прокачать динамическое программирование, задачи на деревья и графы. Если скажем вы решите и разберете 50-100 задач с этой платформы, то у вас это займет ~100-200 часов.
Post #297
2.54K
- ❤ 7
- 👍 4
- 🔥 3