По Бен Рогоджан
Интервью по разработке программного обеспечения, как и другие технические интервью, требуют большой подготовки. Существует ряд предметов, которые необходимо осветить, чтобы убедиться, что вы готовы к вопросам с алгоритмами, структурами данных, проектированием, оптимизации и, честно говоря, просто растущей корзиной предметов.
Поэтому я создал контрольный список в своем последнем раунде интервью, который охватывает многие популярные темы.
Чтобы помочь вам отслеживать ваш прогресс, мы собрали комплексный контрольный список тех же проблем, перечисленных ниже; Этот список можно найти здесь .
Согреться с классикой
- Fizz Buzz
- 560. Subarray сумма равна k
- Массивы: левое вращение
- Строки: изготовление анаграмм
- Nth Fibonacci
Как ты это сделал? Найдите минутку и оцените себя на эту классику. Нас спросили большинство из них в какой-то момент в процессе собеседования-и часто на раннем этапе в качестве вопросов в стиле сорняков. Они часто имеют меньшее отношение к алгоритмам и структурам данных, но все же требуют хорошего понимания петель и массивов (да, массив – это структура данных).
Алгоритмы и структуры данных
Проблемы с предварительным изучением
Прежде чем просматривать видеоконтент о структурах данных и алгоритмах, рассмотрите возможность попробовать эти проблемы ниже. Посмотрите, сможете ли вы ответить на них. Это поможет вам узнать, на чем сосредоточиться.
- 985. Сумма четных чисел после запросов
- 657. Робот возвращается в происхождение
- 961. N-повторяемый элемент по размеру 2n массив
- 110. Сбалансированное бинарное дерево
- 3. Самая длинная подстрока без повторяющихся символов
- 19. Удалить N -й узел Из конца списка
- 23. Merge K сортированные списки
- 31. Следующая перестановка
Алгоритмы и видеоролики структуры данных
Структуры данных
- Структуры и алгоритмы данных № 1 — Что такое структуры данных? — Видео
- Multi-Dim — Видео
- Динамические массивы — Видео
- Изменение размера массивов — Видео
- Структуры данных: связанные списки — Видео
- Основные связанные списки против массивов — Видео
- Указатели на указатели — Видео
- Структуры данных: Деревья — Видео
- Структуры данных: кучи — Видео
- Структуры данных: хэш -таблицы — Видео
- Проблема телефонной книги — Видео
- Структуры данных: стеки и очереди — Видео
- Использование стеков Last-In First-Out — Видео
- Структуры данных: Crash Course Компьютерная наука #14 — Видео
- Структуры данных: попытки — Видео
Алгоритмы
- Алгоритмы: поиск графика, DFS и BFS — Видео
- BFS (поиск по ширине) и DFS (поиск по глубине) — Видео
- Алгоритмы: двоичный поиск — Видео
- Обзор дерева бинарного поиска — Видео
- Алгоритмы Python для интервью — Видео
- Алгоритмы: рекурсия — Видео
- Алгоритмы: Bubble Sort — Видео
- Алгоритмы: слияние сортировки — Видео
- Алгоритмы: QuickSort — Видео
Большой О записка
- Введение в Big O Обозначения и сложности времени (структуры данных и алгоритмы № 7) — Видео
- Гарвард CS50 — Асимптотическая нотация — Видео
- Нежное введение в анализ сложности алгоритма — Сообщение
- Шпаргалка — Сообщение
Динамическое программирование
- Динамическое программирование (Подумайте как программист) — Видео
- Алгоритмы: Мемуализация и динамическое программирование — Видео
- 6 .006: Динамическое программирование I: Fibonacci, кратчайшие пути — Видео
- 6.006: динамическое программирование II: Текстовое оправдание, блэкджек — Видео
- Динамическое программирование — post
Манипуляция по струнам
- Вопрос и ответ на интервью кодирование: самые длинные последовательные персонажи — Видео
- Sedgewick — Подстроение поиска — Видео
Проблемы с интервью
- Интервью по кодированию Google — Универсальная ценностная проблема — Видео
- Вопрос и ответ на собеседование Google Кодирование № 1: Первый повторяющийся персонаж — Видео
- Найдите Min и Max Element в двоичном дереве поиска — Видео
- Найдите высоту двоичного дерева — Видео
- Проверьте, является ли двоичное дерево двоичного поиска или нет — Видео
- Что такое хвостовая рекурсия? Почему это так плохо? — Видео
Проблемы после исследования
Теперь, когда вы немного учились и посмотрели несколько видео, давайте попробуем еще несколько проблем!
- Больше больше
- 6. Цигзаговое преобразование
- 7. Обратное целое число
- 40. Комбинированная сумма II
- 43. Умножьте строки
- Массив Ларри
- Короткий палиндром
- 65. Допустимое число
- Больше больше
- Полный подсчет
- Домашнее задание Лили
- Общий ребенок
- 459. Повторная шаблон подстроения
- 27. Удалить элемент
- 450. Удалить узел в BST
- 659. Расколотый массив на последовательные последующие последствия
- Количество субррей с ограниченным максимумом
- Комбинированная сумма IV
- Лучшее время, чтобы купить и продавать акции с восстановлением
- Самая длинная повторяющаяся замена персонажа
- Обмена узлами в парах
- Бинарное дерево Взгляд правой стороны
- Удивление вложенного итератора списка
- Порядок на уровне бинарных деревьев
- Итератор бинарного дерева поиска
- Максимальная длина пар пар
- Разделенный связанный список в частях
Проблемы операционного программирования
Некоторые компании не зададут вам проблемы алгоритма. Вместо этого они могут больше сосредоточиться на реализации и операционных проблемах. Обычно они более ниша и связаны с практическими проблемами, например, зацикливание через данные и выполнение какой -либо задачи. Эти типы проблем обычно не требуют такого большого количества практики, потому что речь идет о том, чтобы принимать основные концепции, такие как массивы и хэшмапы, и отслеживание того, что вы делаете с ними.
- Проблема кенгуру
- Внесение записей
- Найдите строку итер
- Без понятия!
- Дни программиста
- Таблица лидеров
- Порядок слов
- Шерлок и квадраты
- Выравнивать массив
- Яблоки и апельсины
- Больше вопросов в стиле эксплуатации
Системная дизайн видео
Вопросы по проектированию системы – это важные вопросы, которые показывают, что вы больше, чем просто кодер. Вы должны быть в состоянии думать об общей картине как инженера. Где принадлежат определенные услуги, какие серверы вам нужны, как бы вы управляли трафиком и т. Д. Все эти идеи показывают, что вы можете разработать программное обеспечение, а не только кодировать то, что люди говорят вам, чтобы кодировать.
- Система парковки — Видео
- Какое приложение — Видео
- Uber Design — Видео
- Instagram — Видео
- Tinder Service — Видео
Операционные системы
Вопросы операционной системы немного более редки, но хорошо иметь убедительное понимание таких понятий, как потоки, планирование, память и т. Д., Даже если это просто базовое понимание. Очень смущающе, чтобы спросить, в чем разница между процессом и потоком, и не знать ответ.
- Обычно задаваемые вопросы собеседования операционных систем
- Что такое буфер перевода?
- Почему Round Robin избегает проблемы инверсии приоритета?
- Прогрозильный системный вызов — Что такое «inode» в файловой системе?
- Вопросы и ответы интервью операционной системы — Часть I
- Что такое ядро — Гэри объясняет
- Учебное пособие по алгоритму Round Robin (планирование процессора)
- Магия кэша LRU (100 дней Google Dev) — Видео
- MIT 6.004 L15: иерархия памяти — Видео
- Прерывания — Видео
- Планирование — Видео
Потоки
- Поток пользовательского уровня и поток уровня ядра
- Вступление в процессы и потоки — Видео
- Разница между процессом и потоком — Georgia Tech — Усовершенствованные операционные системы — Видео
- Разница между разбрызгиванием и многопоточным чтением
Объектно-ориентированный
Подобно операционным системам, не каждое интервью спросит вас о объектно-ориентированном программировании, но вы никогда не знаете. Вы хотите убедиться, что вы помните свои основы с курса Computer 162.
- Учебник по программированию Java — 49 — Наследство — Видео
- Учебник по программированию Java — 55 — Введение в полиморфизм — Видео
- Учебник по программированию Java — 58 — Аннотация и конкретные классы — Видео
- Учебник по программированию Java — 57 — Правила переоценки — Видео
- Учебник по программированию Java — 59 — Класс для удержания объектов
- Объектно-ориентированное программирование — Видео
Шаблоны проектирования
Если вы были похожи на нас, нас не учили обо всех различных моделях дизайна. Так что хорошо понять, как они работают и почему вы их используете. Некоторые вопросы интервью могут быть такими же простыми, как: «Зачем вам использовать фабричный класс?»
- Паттерн дизайна завода — Видео
- Образец дизайна наблюдателя — Видео
- Паттерн дизайна адаптера — Видео
- Образец дизайна фасада — Видео
- Цепочка ответственности дизайна проектирования — Видео
- Шаблон дизайна интерпретатора — Видео
- Учебник по образцу дизайна Singleton — Видео
- Глава 6 (Часть 1) — шаблоны (видео) — Видео
- Голова первого дизайна — Видео
SQL
Это последний раздел. Многим из вас, вероятно, не задают так много вопросов SQL. Тем не менее, я всегда думаю, что это хорошо иметь в заднем кармане.
SQL — Проблемы
- 262. Поездки и пользователи
- 601. Человеческое движение стадиона
- 185. Три лучших зарплаты отделения
- 626. Поменяться местами
- Hackerrank отчет
- 177. N -й Высшая зарплата
- Симметричные пары
- Занятия Размещение
- Инвентарь Олливандера
SQL — Видео
- IQ15: 6 Вопросы интервью для интервью SQL — Видео
- Узнание о Row_Number и аналитических функциях — Видео
- Расширенная реализация аналитических функций — Видео
- Расширенная реализация аналитических функций Часть 2 — Видео
- Wise Owl Sql Videos — Видео
Prop SQL -проблемы
- Бинарные деревья узлы
- Станция наблюдения за погодой 18
- Проблемы Печать основные номера
- 595. Большие страны
- 626. Поменяться местами
- Вопросы для интервью SQL: 3 технические упражнения (для аналитиков данных)
Интервью может быть сложным, потому что вы можете чувствовать, что не делаете никаких успехов. Наличие этого учебного пособия поможет вам отслеживать ваш прогресс и лучше прочитать, как у вас дела!
Удачи!
Кроме того, если вы хотите прочитать/посмотреть больше отличных постов или видео: Подключение к BigQuery с использованием ноутбука Jupyter на Saturn Cloud Part 2 Три книги Вы должны читать как ученый для данных Hadoop против реляционных баз данных Как алгоритмы могут стать неэтичными и предвзятыми Как улучшить стратегию, управляемую данными, Как разработать надежные алгоритмы 4 должны иметь навыки для ученых данных Лучшие практики SQL – Проектирование видео ETL
Оригинал: “https://dev.to/seattledataguy/the-interview-study-guide-for-software-engineers-764”