{"id":6322,"title":"\u042d\u043a\u0441\u043f\u0435\u0440\u0442\u044b Microsoft \u2014 \u043e \u0442\u0440\u0435\u043d\u0434\u0430\u0445 \u0432 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435","url":"\/redirect?component=advertising&id=6322&url=https:\/\/vc.ru\/promo\/292291-korotko-konferenciya-dlya-razrabotchikov-ot-vedushchih-ekspertov-microsoft&placeBit=1&hash=375c2d721b2d9852bb87139c0426790661017b1f7b417f646406981606618620","isPaidAndBannersEnabled":false}
Карьера
Dmitry Kotenko

Проходим технические интервью в крупных IT-компаниях

Если тема технического интервью для вас ещё не раскрыта, советую это исправить. В новой статье объясняем, что ждет вас на техническом интервью в крупную IT-компанию, но для начала несколько вводных слов.

Мы с компанией InfoShell провели в Краснодаре митап, посвященный техническим собеседованиям. В коворкинге CO-PLACE с нами выступали спикеры из Rutorika и Speek Corp. Получилась довольно полезная встреча для молодых специалистов. Спасибо Krasnodar Dev Days, что дали огласку мероприятию!)
Но вернемся к предметной части.

Во-первых, однозначно сказать, что вас спросят на тех. интервью и в каком порядке, сложно. Сценарий интервью одному лишь интервьюеру известен и в каждой компании он может быть разный. Во-вторых, в статье будет не список конкретных тем для подготовки к экзамену: «Сдал и забыл!». Все, о чем я напишу от лица компании – действительно необходимые разработчику навыки и знания. Цель данной статьи – заострить внимание на основных вещах и сделать подготовку к техническому интервью более структурированной, а значит, эффективной.

Знание ООП ( C++/C#/Java/Scala/Swift и др. – нужное подчеркнуть)

Начните с трех китов: инкапсуляции, наследования и полиморфизма.

Дальше по списку SOLID – принципы, правила, установки, руководство к действию – как хотите, но тут должно от зубов отскакивать. Если кто не знает, что это, вот вам краткий гайд по пяти главнейшим принципам объектно-ориентированного программирования:

Существуют так называемые “признаки плохого проекта”. Они подробно расписаны в Википедии, так что здесь приводить их не будем, но если вам не доводилось встречаться с описанными в них проблемах - вы либо вундеркинд, либо не ходили дальше “Hello, World!”. SOLID – это пять принципов (по букве на каждый), которые нужно применять, чтобы минимизировать эти проблемы

S (The Single Responsibility Principle) – принцип единственной ответственности. На каждый объект должна приходиться единственная обязанность. Если пишете для интернет-магазина, то должен быть свой класс для заполнения массива, свой для подсчета скидки и т.д.

O (The Open Closed Principle) – принцип открытости/закрытости. Изменения в программе должны происходить при написании нового кода, а не модификации старого.

L (The Liskov Substitution Principle) – правило подстановки Барбары Лисков. Объекты в программе могут быть заменены их наследниками без изменения свойств программы.

I (The Interface Segregation Principle) – принцип разделения интерфейса. Много интерфейсов лучше, чем один универсальный.

D (The Dependency Inversion Principle) – принцип инверсии зависимостей. Этот принцип рассказывает об иерархии зависимостей абстракций и подробностей. Чтобы объяснить, что это значит, придется написать отдельную статью.

Кроме того, внимательно повторите структуры, типы данных, модификаторы доступа, сборщиков мусора. Будьте уверены, что у вас нет проблем с синтаксисом, постарайтесь делать код понятным и читаемым. Ну, и напоследок, кто такой объект?

Что такое паттерны проектирования? Какие знаете?

Они позволяют выделить часто встречающиеся проблемы (помним про SOLID), дают им имя и рассказывают, что с этим делать – круто, да? Поэтому в вашем технологическом арсенале должно быть несколько хорошо известных, востребованных экземпляров: singleton, adapter, decorator, bridge, observer, abstract factory, builder и т.д. Можете кратко пробежаться по антипаттернам – приятно и полезно.

А что скажете про фреймворки?

Если паттерны – это знания и опыт, то фреймворки – исполняемая программа, инструмент реализации паттернов. Не надо заучивать, достаточно хорошо знать несколько и уметь характеризовать те, с которыми вы имели дело.

Переходим к прикладному программированию

Многопоточность, асинхронность внутри приложений. Тут понимаем, что такое поток, очередь, задача, как они работают в рамках асинхронности и многопоточности, не забываем спуститься на физический уровень и посмотреть, что происходит на кристалле, как это обрабатывает процессор.

Существует последовательная (serial) очередь, в которой задачи выполняются последовательно (тут из очереди задачи выходят ровно в том же порядке, в каком они поступали на выполнение) и параллельная (concurrent) – это очередь, в которой задачи выполняются параллельно ( несколько процессов в один момент времени).

Основные алгоритмы

Не советуем заходить слишком далеко, но сортировки, KMP, поиск в глубину и ширину не должны вас пугать. Призываем уделить время этому разделу, в крупных компаниях таких вопросов не избежать!

Как работает память?

Знать, что происходит за пределами программной оболочки, в которой dы привыкли работать, необходимо. Зачем? Чтобы уметь этим управлять: экономить вычислительные ресурсы машины и время пользователя.

Вспоминаем про стек и управляемую кучу ( разделы памяти), сильные и слабые ссылки. Если коротко, то стек – быстрая память, обеспечивающая быструю обработку событий и управляемая процессором, но ограниченная по объему, за счет которого и достигается её быстродействие. Управляемая куча ограничена лишь физической памятью, но работает не так шустро. По поводу ссылок: сильные ссылки создаются в памяти и не позволяют сборщику мусора удалить объект, пока он используется в программе, а слабые – дают. Также почитайте про кэши и виртуальную память, а самое главное – как все это использовать для оптимизации работы продукта.

Понятно, что требования ко всем разные. В основном они зависят от должности, на которую вы претендуете. Если вы стажер-junior, необходимо уметь писать код внутри класса и знать ООП. Помните, что вашим заглавным качеством должно быть умение учиться и стремление развиваться! Проходите техническое интервью на middle-разработчика – из нашего списка можете опустить многопоточность и асинхронность плюс некоторые паттерны. Senior должен уметь работать со всем вышеперечисленным: важно не только качество кода, но и его производительность.

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

Удачи, друзья!

{ "author_name": "Dmitry Kotenko", "author_type": "self", "tags": [], "comments": 0, "likes": 7, "favorites": 35, "is_advertisement": false, "subsite_label": "hr", "id": 51438, "is_wide": true, "is_ugc": true, "date": "Wed, 21 Nov 2018 17:30:08 +0300", "is_special": false }
0
0 комментариев
Популярные
По порядку
Читать все 0 комментариев
«Оптимальный портфель» – новая стратегия автоследования от «БКС Мир инвестиций»

«БКС Мир инвестиций» запустил новую стратегию «Оптимальный портфель» на площадке Fintarget – маркетплейсе инвестиционных стратегий.

В Москве стартовал прием заявок на соискание премий в области охраны окружающей среды

Победителям конкурса вручат  статуэтки с символом конкурса, нагрудные знаки и удостоверения, подписанные мэром Москвы.

фото: Департамент природопользования и охраны окружающей среды города Москвы

Премия разделена на два блока и предусматривает финансовое вознаграждение. Один блок – конкурс в области охраны окружающей среды – включает 8 премий. Сумма награды составляет по 200 тысяч рублей и по 100 тысяч рублей в 4-х номинациях.

Осталось всего 3 дня, чтобы подать заявку в Finlanding
«Модульбанк» запустил сервис для анализа продаж на маркетплейсах (даже у конкурентов)

Он доступен бесплатно всем клиентам банка.

Brooke Cagle
19 этикеток вина, которые намного больше, чем просто этикетка

Что может быть лучше, чем этикетка для вина, чтобы рассказать историю. Я веду канал «Логотип побольше», где за более чем год собрал 19 этикеток вина, которые созданы не просто так, а имеют замечательную, порой красивую, а иногда и поразительную идею.

Рынок CPA в России: обзор исследований AdIndex

Рынок партнерского маркетинга продолжает развиваться. Какие задачи бренды закрывают благодаря этому каналу, как предпочитают взаимодействовать с CPA и кого выбирают в качестве партнеров – в обзоре двух исследований AdIndex 2021 года.

«Яндекс.Маркет» начнёт выпускать продукты и электронику под собственной маркой Статьи редакции

Товары под брендом «Кстати, на Маркете» будут продаваться только на маркетплейсе.

Бренд спортивной одежды и обуви Under Armour вновь откроет магазины в России в 2022 году — «Ъ» Статьи редакции

Магазины бренда начали закрываться в 2019 году из-за высокой конкуренции.

Disney построил дом Винни-Пуха в английском лесу — его можно арендовать на ночь через Airbnb Статьи редакции

Ночь стоит от 7633 рублей.

Спальная зона Airbnb
«Самокат» запустит доставку безрецептурных лекарств совместно со «Сбер Еаптекой» Статьи редакции

Благодаря партнёрству ритейлер планирует сократить время доставки с 1–2 часов до 15 минут.

null