Получается, что вы поладили с компанией и выдержали несколько первых раундов собеседований. Вы продемонстрировали свой энтузиазм, красноречиво участвуя в вдумчивом обсуждении, вместо того, чтобы давать краткие ответы на вопросы интервьюера без особых подробностей. Однако больше всего им понравилось ваше понимание тонкой грани между демонстрацией уверенности и полным высокомерием; ставит вас на место с последней горсткой кандидатов. Вы не только хорошо выглядите на бумаге, но и обладаете социальной смекалкой, чтобы следить за разговором и выражать свои мысли в соответствии с ситуацией. Теперь вопрос: готовы ли вы к техническому собеседованию?

Скорее всего, вы лихорадочно прогуглили и просмотрели практически все статьи на Quora и Forbes в надежде найти чудо-туза, который поможет вам почувствовать себя лучше подготовленным. Расслабляться. Заполнение всего интервью Гейл Лаакманн МакДауэлл «Взломать кодирование» за несколько дней до технического собеседования не поможет, если только вы не являетесь каким-то особенным человеком с фотографической памятью. Это не значит, что вы просматриваете заметки / справочные материалы,

иметь в своем распоряжении безнадежное дело. Вот несколько областей, которые вам не помешают:

1. Структуры данных

Мы избавим вас от определения и предположим, что вы уже в какой-то мере
знакомы с тем, что такое структуры данных. Существуют разные структуры данных для разных задач, а также узкоспециализированные для конкретных задач. Помимо того, что они используются практически во всех программных системах и программах, они помогают решать проблемы, а также писать код, который не только эффективен, но и легче читается. Как пишет на Quora инженер-программист Аакаш Басу: «Без них вы будете изобретать велосипед - не всегда успешно». Проще говоря: структуры данных не важны в информатике. Это информатика. Массивы, связанные списки и хеш-таблицы / карты должны быть среди ваших основных фокусов наряду с бинарными деревьями. Доберись до этого.

2. Поиск

Знание алгоритмов поиска - важная часть оценки
навыков потенциального разработчика, и было бы неплохо пролистать заметки по двум важным из них. Помимо знания тонкостей поиска в ширину (BFS) и поиска в глубину (DFS), важно знать нюансы между ними и то, какая ситуация требует одного по сравнению с другим.

3. Эффективная сортировка

Как следует из названия, эффективная сортировка важна для оптимизации использования алгоритмов
. Как и в реальной жизни, сортировка упрощает и ускоряет поиск. Сортировка слиянием и быстрая сортировка приходят на ум как ключевые области, в которых нужно сосредоточиться на уточнении своих знаний, а также на возможности сравнивать и противопоставлять их. Хотя пузырьковая сортировка
редко используется в реальном мире, это отличный инструмент для обучения, поскольку, по словам пользователя Stack Overflow Билла Ящера,
ее легко понять и
реализовать.

4. Типы алгоритмов

Алгоритмы - это не более чем серия шагов для решения проблемы. Существует множество
видов алгоритмов для выполнения одной и той же функции, но разные ситуации требуют
разных алгоритмов, потому что некоторые из них более эффективны в использовании, чем другие. Другими словами:
интервьюеры захотят увидеть, как вы подходите к решению конкретной проблемы, сколько решений вы можете придумать и каково ваше лучшее суждение. Рекурсивные
алгоритмы, итерационные алгоритмы и жадные алгоритмы относятся к большой тройке, которую вы должны
знать с упором на рекурсию и итерацию.

Для дальнейшего чтения обязательно ознакомьтесь с самой превосходной шпаргалкой по техническим вопросам Тристана Сигела на GitHub и не забудьте использовать папку Входящие вакансий Careerscore, чтобы увидеть предварительно согласованные вакансии и свою квалификацию.