Десять наиболее частых ошибок программистов при подготовке к собеседованию
Автор этих советов, Гейл Лакман Макдауэлл — основатель и CEO CareerCup, автор известных книг по подготовке к собеседованиям. Гейл работала программистом в Microsoft, Apple и Google. У неё есть степени бакалавра и магистра University of Pennsylvania, а также MBA Wharton School. В настоящее время проживает в Пало-Альто, Калифорния.
1. Использование компьютераСтанете ли вы учиться сёрфингу в бассейне? Скорее всего, нет. Ведь вам нужны волны и другие особенности «живой природы». Можем поспорить, что ваш выбор падёт на океанское побережье. Использование компилятора для «репетиции» собеседования подобно тренировкам в бассейне. Забудьте про компилятор, возьмите ручку и лист бумаги. Используйте компилятор для проверки решения, но только после того, как написали и протестировали код.
2. Игнорирование поведенческих вопросовМногие кандидаты тратят всё свое время на подготовку к техническим вопросам и упускают поведенческие. Но ваш интервьюер, скорее всего, их не упустит! Более того, ответы на поведенческие вопросы могут изменить восприятие интервьюером ваших профессиональных данных. К ответам на поведенческие вопросы легко подготовиться. Вспомните все свои проекты и используйте их для подготовки.
3. Отказ от псевдоинтервьюПредставьте, что вы готовитесь к публичному выступлению перед своей группой, компанией или какой-нибудь другой большой аудиторией. Ваше будущее зависит от этого. Только сумасшедшие или излишне самоуверенные люди будут готовить такую речь в одиночку. Один из способов подготовки — так называемое псевдоинтервью. Если вы инженер, то должны быть знакомы с коллегами. Попросите приятеля провести для вас «собеседование». Этот метод принесет только пользу!
4. Попытка зазубрить ответЗапоминание решения конкретной задачи пригодится вам только в том случае, если интервьюер даст именно эту задачу, но никак не поможет решить новые задачи. Очень маловероятно, что в Интернете или какой-либо книге вы найдете все или хотя бы большую часть вопросов, которые могут достаться вам на собеседовании. Намного эффективнее не привязываться к конкретике. Это поможет вам разработать стратегии решения новых задач. Лучше качество, нежели количество.
5. Решение задачи «в уме»Откроем вам секрет — интервьюеры не телепаты и не знают, что происходит у вас в голове. Следовательно, если вы ничего не произносите вслух, не известно, о чем вы думаете. Если вы молчите, они считают, что у вас нет решения. Больше говорите и пытайтесь комментировать решение. Это покажет интервьюеру, что вы решаете поставленную задачу, а ваше молчание будет расценено как то, что вам нечего сказать. Дайте возможность интервьюеру подсказать вам путь решения или указать на ошибку, когда вы в этом будете нуждаться. Простейшие навыки коммуникации помогут получить желаемую вакансию. Что может быть лучше?
6. СпешкаПрограммирование — это не ралли, даже на собеседовании. Уделите больше времени написанию кода. Спешка приводит к ошибкам, а они могут быть расценены как небрежность. Пишите код последовательно и неторопливо, анализируйте задачу и проверяйте код. В итоге вы закончите работу за меньшее время и с минимальным количеством ошибок (а может и без них).
7. Грязный кодЗнаете ли вы, что код, даже написанный без ошибок, может быть просто ужасным? К сожалению, это так! Дублирование, огромные структуры данных (отказ от объектно-ориентированного программирования) и т.д. являются показателями плохой программы. Когда вы пишете код, представьте, что он должен быть ещё и хорошо поддерживемым. Разбейте код на подпрограммы и выберите оптимальную структуру, соответствующую данным.
8. Отказ от проверкиКогда вы пишете код в реальной жизни, вы его тестируете, так почему бы этого не сделать на собеседовании? Когда код написан, «запустите» его (в качестве компилятора будете выступать вы сами) и протестируйте. При решении сложных задач тестируйте фрагменты кода по мере написания.
9. Небрежное отношение к исправлению ошибокОшибки неизбежны. Это норма жизни и программирования. Если вы тщательно протестируете код, то наверняка обнаружите свои ошибки, — и это хорошо. Если вы обнаружили ошибку, то прежде чем исправить ее, постарайтесь разобраться, откуда она появилась. Некоторые кандидаты, обнаруживая, что при определенных условиях функция возвращает false, просто инвертируют значение, а не разбираются, почему так происходит. Конечно, это встречается не часто, но подобное действие порождает дополнительные ошибки и показывает, насколько вы небрежно относитесь к написанию кода. Никто не застрахован от ошибок, но бездумное исправление кода недопустимо.
10. Отказ от решенияОчень часто вопросы оказываются достаточно сложными. Примете ли вы вызов или повернёте назад? Мы рекомендуем достойно встретить трудную задачу. Ведь собеседования для этого и проводятся. Не удивляйтесь, когда вам достанется действительно сложный вопрос.
Также рекомендуем по теме:
Советы взяты из перевода книги Г. Лакман Макдауэлл и предназначены исключительно для ознакомления. Если они вам понравились, то рекомендуем купить книгу «Карьера программиста. Как устроиться на работу в Google, Microsoft или другую ведущую IT-компанию».