Как подготовиться к собеседованию программисту?


Почти все вопросы, опубликованные в этой статье, - это вопросы «что нужно знать/делать, чтобы пройти техническое интервью/получить работу». Здесь собрано несколько советов, которые предлагает Engineering Director, проведя более 1000 технических интервью. Вопросы не охватывают все темы программирования, но затрагивает самые важные и основополагающие темы.
Если ищете работу в первый раз, нужно вложить достаточно сил в подготовку к собеседованию. Не только профессионалы в отрасли полностью игнорируют этот совет, но и вчерашние студенты. По сути, вы сдаете тест, поэтому не расслабляйтесь - это тоже работа. Теперь пришло время заполнить пробелы в знаниях и найти работу мечты.


Структуры данных
Откройте wikipedia и прочитайте страницы про каждую из структур данных несколько раз, затем напишите свою собственную реализацию на любимом языке программирования (это самая важная часть).
Нужно знать «O» большое для вставки, удаления, поиска и т. д. для каждой структуры данных. Вы должны уметь запрограммировать каждую структуру. Подготовьте реальные примеры того, когда лучше использовать каждую из структур данных и объясните, почему это лучший выбор. Не забудьте про вопрос о сравнении (не связан с кодом): «зачем использовать X вместо Y в ситуации Z».
Алгоритмы
Необходимо изучить алгоритмы и попрактиковаться в их кодировании. Простое чтение кода, написанного кем-то другим, не эффективно. Откройте любимую IDE и начните писать код. Помните, что единственный способ найти пробелы в знаниях - написать код. Изучите все Big-O для алгоритмов и их самих.
Не нужно досконально изучать все, но просмотрите и выучите пару пунктов:
Отлично, более половино изучено! Теперь нужно практиковаться в применении знаний. Найдите сайты вопросов для интервью. Прежде чем написать одну строку кода, организуйте свои мысли и выясните все решение, а затем начните кодирование. Кодирующая часть должна быть скучной и простой. В реальном интервью сделайте то же самое. Прежде чем писать одну строку кода, убедитесь, что вы подтвердили с интервьюером, что ваш подход является хорошим. Практика, практика и еще раз практика!
Заполнить пробелы
Здесь можно быть честными с самим собой. Есть длинный список вещей, которые вы не знаете. Но вы постоянно говорите себе, что все в порядке, потому что материал, который вы не знаете, на самом деле не важен. Вот список тем, которые действительно нужно знать:
  • написание кода - принципы стиля кода, его организации;
  • биты и байты;
  • как работает Интернет. Нужно знать, как работают сокеты, что такое TCP/IP, что такое HTTP на самом деле. Изучите сетевые уровни и то, за что они отвечают. Это звучит пугающе, это займет всего пару часов.
  • базы данных. Изучите базовое моделирование SQL и данных, триггеры, представления, нормальные формы.
  • узнайте немного о тестировании. Напишите код и протестируйте его. Что такое TDD?
  • если всегда использовали Windows самое время попробовать Linux немного.

Хорошая новость: темы в этом списке намного легче изучить, чем кажется. Успехов в изучении программирования!

Comments

Popular posts from this blog

Освоить веб-разработку? Легко!

Как изучить основы веб-программирования гуманитарию?