Полезные практические советы по подготовке к собеседованию и его прохождению.
1. Продолжайте программировать. Чем больше вы программируете, тем лучше. Программируя, вы практикуетесь. Но лучшая практика — это целенаправленная практика. Держите цели в своей голове, изучайте новое, и мотивируйте себя. Через некоторое время вы должны сделать портфолио законченных и незаконченных проектов. GitHub/Bitbucket — это отличное место для размещения портфолио.
2. Совершенствуйте хотя бы один мультипарадигмальный язык. Совершенствование языка дает вам чувство перспективы. Чтобы сделать это, вам нужно много программировать, много читать, и изучить все тонкости и практики. Хороший выбор для начала — C#, C++, Java, PHP, Python, и Ruby.
Есть главный вопрос, который интервьюеры C++ любят задавать кандидатам: “По шкале от 1 до 10, где 10 — это самая высокая отметка, насколько вы оцените свои знания C++?”. Я ненавижу этот вопрос. И Бог в помощь тем, кто ответит 9-10, потому что интервьюеры выпустят когти. Сам Бьёрн Страуструп ответил бы 8 или меньше. Язык слишком сложный и богатый, и постоянно развивается.
3. Знайте свои слабости. Прочитайте этот список[http://bigocheatsheet.com/]. Затем, убедитесь, что вы понимаете, как все это работает. Затем, выполните базовые вычислительные алгоритмы, такие как алгоритм Дейкстры, алгоритм Флойда — Уоршелла, задача коммивояжёра, алгоритм A*, фильтр Блума, итеративный поиск в ширину, бинарный поиск, k-way merge, сортировка пузырьком, вставками, выбором, in-place quick sort, блочная/поразрядочная сортировка, алгоритм двух ближайших точек и т.д. И снова — продолжайте программировать.
4. Изобретайте колесо. Вы должны реализовать самые общие структуры данных в выбранном вами языке. Не полагайтесь на общие библиотеки. Реализуйте следующее и напишите тесты: вектор (динамический массив), связанный список, стек, очередь, замкнутая очередь, хэш-карта, набор, приоритетная очередь, дерево бинарного поиска и т.д. Вы должны быть готовы реализовать их быстро.
5. Решайте задачи. Все сводится к фундаментальным понятиям программирования. Потратьте хотя бы 40 часов на программирование, решая разные задачи.
6. Смотрите на программирование проще. Как минимум, сделайте так, чтобы оно выглядело просто. Дайте вашему интервьюеру понять, что вы знаете, что программирование является лишь инструментом для достижения цели.
Запомните, программирование под наблюдением может быть сложным. Найдите способ практиковать написание кода на доске и парное программирование. Google обычно использует эти способы.
Общие советы:
Я не могу утверждать, что я эксперт. На самом деле, некоторые бы сказали, что я не очень хорошо лажу с людьми. Но я должен дать вам несколько нетехнических советов. Полагаю, что некоторые их них будут для вас очевидны.
1. Осознайте, зачем вы здесь. Если вы на собеседовании в компании и не совсем понимаете, зачем она нужна, кто эти люди и что они делают; уходите оттуда. Разработчики, которые отвечают за набор сотрудников, учуют это за версту. Вы можете уйти только из больших компаний, в маленьких такое не пройдет.
2. Будьте увлечены чем-то. Если вам без разницы, всем без разницы. Будьте увлечены чем-то. Это может программирование, но а если конкретнее? Нравится ли вам разрабатывать компиляторы в свободное время? Строите ли вы квадрокоптеры? Если вы увлечены чем-то, постепенно вы становитесь экспертом в этой области.
3. Не делайте предположений. Спросите, если в чем-то сомневаетесь. Если у вас есть вопрос и вы не знаете точного ответа, спросите. Несколько раз я видел кандидатов, которые пошли по не той дороге, никогда ничего не спрашивали и в результате тратили время на решение неверных проблем.
4. Улыбайтесь. Будьте радостными и позитивными. Но не переусердствуйте. Я замечал, что люди любят делать поспешные выводы. Будьте уверены, что вы производите хорошее впечатление. Улыбка заразительна.
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев