Введение

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

1.Создание хорошего резюме:

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

Вы не можете предполагать, что ваши прошлые роли и обязанности — это именно то, что ищет ваш будущий сотрудник. Просмотрите 6–7 должностных инструкций и отметьте наиболее распространенные обязанности, необходимые навыки и квалификацию. Только тогда создайте резюме, которое будет отражать это исследование. В описании своей трудовой деятельности постарайтесь показать, что вы делали, как вы это делали и каковы были результаты (результаты должны быть измеримыми). Не сокращайте технические линии ради своих нетехнических хобби.

2. Создайте хороший профиль в LinkedIn и выделитесь среди своих онлайн-заявок на работу:

Создайте хороший профиль в LinkedIn, который смогут найти рекрутеры. В вашем профиле должна быть хорошая фотография профиля, на которой вас будет хорошо видно. Многие люди совершают ошибку, не добавляя изображение профиля или изображение, которое не видно четко. Это снижает вероятность того, что ваш профиль прочитают рекрутеры, а также повлияет на установление связей (это вопрос доверия).

Обязательно обновите заголовок по умолчанию. Добавьте в заголовок соответствующие навыки и ключевые слова, чтобы поисковая программа LinkedIn высоко оценила ваш профиль при поиске рекрутеров.

Сеть играет важную роль при поиске любой работы, поэтому вам следует обязательно расширить свою сеть контактов в LinkedIn.

Составьте сопроводительное письмо, в котором расскажите о типичных проблемах в вашей отрасли и о том, как вы решали эти проблемы в прошлом. Расскажите им, почему вы хотите работать с ними, выразив свое волнение, и поблагодарите их за то, что они прочитали ваше письмо.

3. Как пройти собеседование: В большинстве ведущих технологических компаний собеседования по разработке программного обеспечения обычно состоят из: (а) программирования (с упором на структуры данных и алгоритмы, что составляет большую часть процесса собеседования), (б) объектов. -Ориентированное проектирование, © Системное проектирование и масштабируемость, (г) Знание основных предметов, (д) ​​Поведенческое собеседование. На этапе кодирования интервьюеры будут оценивать вашу работу на основе ваших аналитических навыков (насколько оптимальным было ваше решение, сколько времени вам потребовалось, чтобы прийти к решению, нужна ли вам большая помощь при решении проблемы), навыков кодирования. (ваш код был чистым или нет, думали ли вы о граничных случаях) и технические навыки (ясены или нет ваши основы информатики и т. д.).

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

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

2. Нарисуйте пример на доске: Нарисовав пример, вы сможете быстро решить вопрос, повысив свою наблюдательность в отношении проблемы. Рисуя пример, не используйте особый случай и убедитесь, что ваша диаграмма достаточно велика, чтобы вы могли легко найти ошибки (если таковые имеются) в вашем алгоритме.

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

4. Оптимизируйте свое решение:После получения решения методом грубой силы начните оптимизировать свое решение. Для оптимизации вы можете посмотреть, есть ли какая-либо неиспользуемая информация, найти компромисс между временем и пространством, посмотреть, может ли хеш-таблица быть полезной, использовать другой пример. Если у вас есть решение со сложностью O(N²), не Не пытайтесь сначала уменьшить его O(N), подумайте, сможете ли вы найти решение, имеющее сложность O(N log N), используя алгоритм сортировки или что-то в этом роде, а затем подумайте, сможете ли вы найти более оптимальное решение, например, имеющее сложность O( Н). Иногда даже неправильное решение задач помогает найти оптимизированные решения.

5. Проверка наличия ошибок/пробный прогон: Пока не приступайте к кодированию, сначала проверьте, работает ли ваш алгоритм для всех тестовых случаев (особых, граничных случаев и случаев с большим объемом ввода/вывода).

6. Реализация и тестирование. Теперь вы можете реализовать свой код в редакторе кода. Если вы не хотите показывать, что вы плохой разработчик, напишите хороший чистый код, а это значит, что ваш код должен корректно работать со всеми ожидаемыми и неожиданными входными данными. Он должен быть эффективен как с точки зрения асимптотической, так и с точки зрения практической эффективности, при этом следует учитывать постоянные факторы. Он должен быть простым и читаемым (Читаемый код не означает, что он должен включать много комментариев, пишите комментарии только там, где это необходимо, в противном случае имя переменной и функции должно быть понятным.) Код должен быть адаптирован к изменениям. Другие разработчики должны легко поддерживать его. Не следует «отправлять» код, не протестировав его на собеседовании. Протестируйте все концептуальные, специальные и крайние случаи. Если во время тестирования кода вы обнаружите какую-либо ошибку, тщательно ее исправьте.

Если вы хотите подготовиться к такого рода раундам, вам необходимо знать следующие темы:

  • Структуры данных:связанные списки, деревья, графики, стеки, очереди, кучи, векторы/массивы, списки, хэш-таблицы и т. д.
  • Алгоритмы: поиск в ширину, поиск в глубину, двоичный поиск, сортировка слиянием, быстрая сортировка и т. д.
  • Основы:битовая манипуляция, память (стек или куча), рекурсия, динамическое программирование, большое время и пространство и т. д.

Некоторые моменты для стратегии подготовки к собеседованию по программированию

1. Имитационные интервью с друзьями: Вы можете сформировать группу для имитационных интервью с друзьями (обладающими такими же знаниями, как у вас, или большими, чем у вас), чтобы брать интервью друг у друга. Вы можете давать друг другу обратную связь и вместе улучшать свои технические навыки, а также навыки общения. Всегда составляйте группу людей, которые мотивируют вас совершенствоваться и дают правильные советы.

2. Создайте список для отслеживания своих ошибок:Создайте список для отслеживания ошибок, которые вы допустили при решении любой проблемы, чтобы не повторять одни и те же ошибки во время собеседования. Кроме того, отслеживайте ошибки, которые вы допустили при создании проектов, и способы их устранения, чтобы, если интервьюер спросит о них, вы могли легко объяснить. Многие компании проводят поведенческие раунды, и один из известных вопросов — рассказать о своих ошибках/неудачах, поэтому вы также можете записать ответ на эти вопросы, так как в этот момент сложно найти правильный ответ.

3. Начните рассчитывать время:Вы должны быть в состоянии решить проблему в установленные сроки во время собеседования. Вы можете повысить свою эффективность, решив как можно больше проблем.

4. Решайте целевые вопросы. Решите вопросы о компании, в которой вы проводите собеседование, используя такие сайты, как Glassdoor, GeeksforGeeks и т. д. Поговорите с друзьями, которые, возможно, уже проходили собеседование в этой компании.

5. Создайте шпаргалки и карточки для повторения: Составьте короткие шпаргалки для задач, которые вы решали раньше, и концепций, с которыми вам не очень комфортно. Используйте их, чтобы позже быстро исправить проблемы.

6. Не прыгайте с сайта на сайт: Просто выберите один или два хороших ресурса и придерживайтесь их. Переход с книги на книгу или с веб-сайта на веб-сайт занимает много ненужного времени, и часто кандидаты пропускают вопросы сложного уровня при переходе с сайта на сайт и решают только вопросы легкого уровня, что мало помогает.

Заключение

Вам необходимо помнить, что все основы и основы программирования (согласно вашему резюме) должны быть вам понятны, а также приличные знания в других важных областях, таких как структуры данных и алгоритмы, а также другие основные предметы CS, чтобы добиться успеха в кодировании. Интервью!!

Конец!

ОСТАВАЙТЕСЬ ЗА СЛЕДУЮЩЕЙ СТАТЬЕЙ:)

Если вам это нравится, подписывайтесь и делитесь со своими друзьями.

Code.org Команда edX Ленивый программист Помешанный на программировании

Выход из состава
Сахил Кумар