Ошибки, которые я сделал при подготовке к техническим собеседованиям

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

Вот самые серьезные ошибки, которые я совершил:

  1. Ввод моих решений прямо в LeetCode
  2. Слишком рано искать решение проблемы
  3. Не тратить время на то, чтобы глубоко понять решение и лежащий в основе шаблон
  4. Создание нереалистичных планов и целей

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

Часто, решая проблемы с помощью LeetCode, я сдавался и слишком рано смотрел на решение. Вы должны потратить не менее 30 минут на работу над проблемой, прежде чем искать решение. Если через 30 минут (или дольше) вы полностью заблокированы, то можете проверить решение и попытаться понять его. Слишком ранний поиск решений не принесет вам пользы. Я так сожалею о том, что сделал это в первые дни подготовки. Это снимает напряжение, которое мы испытываем, когда не знаем, как решить проблему, но ничему нас не учит. Сядьте с проблемой и боритесь с ней, и, в конце концов, посмотрите на ответ, если вам нужно. Не проверяйте решение слишком рано, просто чтобы почувствовать себя лучше.

Вначале у меня не было времени, чтобы глубоко понять решение проблемы и лежащие в основе модели. Для многих из этих проблем существуют общие закономерности. Детали самого решения имеют меньшее значение, чем ваша способность определить, какой шаблон следует использовать при решении проблемы. При поиске решения не просто копируйте и вставляйте его в редактор кода и проверяйте, проходят ли все тесты. Прочтите код построчно и поймите, что делает каждая строка. На YouTube так много отличных видеороликов с объяснением почти каждой проблемы на LeetCode. Мой любимый канал - Back To Back SWE. На канале Беньям предлагает отличные и подробные объяснения проблем LeetCode. Он сосредотачивается на том, чтобы помочь зрителям понять лежащие в основе модели, а не просто решение отдельной обсуждаемой проблемы.

Последняя ошибка, которую я сделал, касалась создания нереалистичных планов и целей. Имея так много практических задач, легко подумать, что вы можете просто решить их все, если потратите достаточно времени на подготовку. Это не так, как вы думаете. Решение каждой проблемы требует времени, усилий и энергии. Чтобы добиться успеха, вам, вероятно, придется расставить приоритеты. Если вы проходите собеседование в определенной компании, попробуйте просмотреть список вопросов этой компании. Список наиболее распространенных вопросов LeetCode также является отличным местом для начала. Если вы освоите наиболее часто задаваемые вопросы, вы сможете определить закономерности, когда увидите вопросы, которых раньше не видели. При создании планов и целей я часто переоценивал, сколько времени я мог бы посвятить подготовке к собеседованию по техническим вопросам, или недооценивал, сколько времени требуется на решение проблемы. Не делай этого. Поставьте перед собой реалистичную цель и придерживайтесь ее. Решение 10 вопросов в день в течение недели, а затем выгорание не улучшит ваши навыки в такой степени, как решение 2 или 3 вопросов в день последовательно в течение нескольких месяцев. Определите для себя, сколько времени вы можете посвятить подготовке к техническим собеседованиям, составьте план и придерживайтесь его.