Программистам
За последние четыре года я проинтервьюировал или присутствовал в процессе собеседования более чем с 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.
Это лишь некоторые общие советы, которые помогут вам на любой должности программиста. Собеседование также очень зависит от конкретной должности и проекта, в котором вы будете участвовать.