Программистам

За последние четыре года я проинтервьюировал или присутствовал в процессе собеседования более чем с 300 разработчиками в Косово, Македонии и Албании. Менее 15% этих собеседований были успешными. Я хочу поделиться с вами этим опытом, чтобы он мог помочь вам во время собеседования в LinkPlus (где я работаю) или в любой другой компании, работающей с международными проектами. Я составил краткий список самых важных вещей, которые вам нужно знать, изучить и улучшить, основываясь на моем личном опыте.

Улучшите свой английский

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

Узнайте, как читать свое резюме

Если вы попали на интервью, значит, кому-то понравилось или увидел в нем что-то интересное. Сейчас важно знать, как говорить о своем резюме. Большинство собеседований начинается со слов «Расскажите нам что-нибудь о себе и своей карьере на основе вашего резюме». Это твой шанс засиять. Это ваш шанс поговорить о вещах, в которых вам должно быть комфортно, и постараться как можно подробнее вдаваться в подробности.

Объектно-ориентированные принципы

Вы должны уметь объяснять эти принципы на практических примерах. Я видел много разработчиков с 4–5-летним опытом работы, у которых возникли проблемы с этим. Помните - ПИРОГ.

  • Абстракция
  • Полиморфизм
  • Наследование
  • Инкапсуляция

Шаблоны проектирования

Самое слабое место в большинстве интервью. Это правда, что существует множество шаблонов проектирования, и изучить их непросто, если у вас не было возможности работать над более крупными проектами, но вам нужно читать, учиться и практиковаться, чтобы мыслить «шаблонно». Некоторые шаблоны, которые обычно задают на собеседовании:

  • Шаблонный метод - Поведенческий
  • Стратегия - Поведенческие
  • Заводской метод - Творческий
  • Адаптер - структурный
  • Композитный - Структурный
  • Фасад - Структурный
  • Синглтон - Создание

ТВЕРДЫЙ

На каждом профессиональном собеседовании обычно задают пять принципов «хорошего программирования». Вы должны знать, как объяснять их теоретически, но также и на практических примерах.

Инструменты управления проектами и задачами

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

  • IDE - IntelliJ, Eclipse, Xcode, Visual Studio и т. Д.
  • Управление задачами - Jira, Asana, Trello и др.
  • Управление сборкой - Maven, Ant и т. Д.
  • Управление исходным кодом - GitHub, Bitbucket, SourceTree и т. Д.
  • Инструменты непрерывной интеграции - Дженкинс. Бамбук, Страйдер и др.

В LinkPlus мы в основном использовали инструменты Atlassian.

Agile и / или Scrum

Я не говорю, что Agile - лучшая методология, и не предлагаю вам использовать Scrum. Возможно, «очки истории» - не способ показать прогресс, но есть вероятность, что вас спросят о них в целом.

Облако

Сейчас 2016 год, и вам нужно разбираться в облаке. Если у вас не было возможности поработать в облачной среде, прочтите и протестируйте столько, сколько сможете, с помощью AWS, Azure и т. Д. Я не говорю, что вы должны быть системным администратором, но хороший опыт работы со средой Could является большим плюсом. а в некоторых случаях просто необходимо.

Большие данные

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

В LinkPlus у нас есть вакансии для Java-разработчиков, имеющих опыт работы с Hadoop.

База данных

Неважно, подаете ли вы заявку как FrontEnd, Mobile и особенно BackEnd разработчик, на каждом техническом собеседовании будут вопросы о БД. В 2016 году вам также необходимо знать хотя бы один фреймворк NoSQL (MongoDB, Cassandra, CouchDB).

Вам необходимо понимать принципы ACID

Некоторые из обычных вопросов:

  • Хранимые процедуры
  • Другой тип СОЕДИНЕНИЙ.
  • Ключ, первичный ключ, кандидатный ключ и т. Д.
  • Союзы и секции
  • Subqeuries
  • Моделирование данных

Реактивное программирование

У нас было несколько собеседований, на которых требовалось знать реактивное программирование. Прямо сейчас мы работаем над проектом, в котором вся мобильная среда меняется на Reactive. Мой совет - начать учиться как можно скорее.

Модульное тестирование

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

Уверенность в себе и решимость

Никто не хочет нанимать человека, который не верит в себя. Программирование - это больше, чем StackOverflow. Я видел, как слишком много разработчиков уходили после того, как не смогли найти решение в Stack.

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