Merge pull request #10 from TinkoffCreditSystems/design-section-patch-1

Исправления + добавлено описание дизайн-секции.
This commit is contained in:
Andrey Marchenko
2021-04-23 10:16:22 +03:00
committed by GitHub

View File

@@ -10,31 +10,32 @@
## Этап 1: предварительное собеседование ## Этап 1: предварительное собеседование
Вы откликнулись на вакансию и отправили резюме — через некоторое время с вами свяжется рекрутер и проведет предварительное собеседование. Вы откликнулись на вакансию и отправили резюме — через некоторое время с Вами свяжется рекрутер и проведет предварительное собеседование.
На предварительном собеседовании знакомимся друг с другом. Беседа займет полчаса: рекрутер спросит вас об интересах, опыте и мотивации, а затем расскажет о работе и вакансиях в Тинькофф. Не стесняйтесь задавать вопросы. На предварительном собеседовании знакомимся друг с другом. Беседа займет полчаса: рекрутер спросит Вас об интересах, опыте и мотивации, а затем расскажет о работе и вакансиях в Тинькофф. Не стесняйтесь задавать вопросы.
Рекрутер запомнит направление и проекты, над которыми хотите работать. В течение двух дней он свяжется с вами и согласует время для технического собеседования. Рекрутер запомнит направление и проекты, над которыми хотите работать. В течение двух дней он свяжется с Вами и согласует время для технического собеседования.
## Этап 2: техническое собеседование ## Этап 2: техническое собеседование
Техническое собеседование состоит из нескольких отдельных тем — секций. Созвон по каждой секции длится час и проходит в Zoom с отдельным интервьюером. Вы можете пройти все секции сразу или в течение нескольких дней — скажите рекрутеру, как удобнее. Техническое собеседование состоит из нескольких отдельных тем — секций. Созвон по каждой секции длится 1-1.5 часа и проходит в Zoom с отдельным интервьюером. Вы можете пройти все секции сразу или в течение нескольких дней — скажите рекрутеру, как удобнее.
Как проходить секции: Как проходить секции:
1. Подготовьте рабочее место: проверьте компьютер и интернет, подготовьте веб-камеру, возьмите пару листков бумаги и ручку. Рекомендуем выспаться и захватить бутылку воды. 1. Подготовьте рабочее место: проверьте компьютер и интернет, подготовьте веб-камеру, возьмите пару листков бумаги и ручку. Рекомендуем выспаться и захватить бутылку воды.
2. Не используйте телефон: вы будете много кодить в онлайн-IDE, рисовать схемы и общаться с интервьюером. 2. Не используйте для созвона телефон: Вы будете много кодить в онлайн-IDE, рисовать схемы и общаться с интервьюером.
3. Задавайте вопросы и предлагайте разные решения, даже если они кажутся неправильными: интервьюер проверяет не только знания, но и как вы подходите к решению задач. 3. Задавайте вопросы и предлагайте разные решения, даже если они кажутся неправильными: интервьюер проверяет не только знания, но и как Вы подходите к решению задач.
Обычно нужно пройти 2—4 секции — это зависит от направления и вашего опыта. Точное количество вам скажет рекрутер. Обычно нужно пройти 2—4 секции — это зависит от направления и Вашего опыта. Точное количество Вам скажет рекрутер.
### Направления и секции в Тинькофф ### Направления и секции в Тинькофф
#### Backend-разработка #### Backend-разработка
* [Алгоритмы](#Алгоритмы) * [Алгоритмы](#Алгоритмы)
* [Секция по платформе или языку](#Секция-по-платформе-или-языку) * [Секция по платформе или языку](#Секция-по-платформе-или-языку)
* [Дизайн распределенных систем](#Дизайн-распределенных-систем) * [Системный дизайн](#Системный-дизайн)
#### Frontend-разработка #### Frontend-разработка
* [Алгоритмы](#Алгоритмы) * [Алгоритмы](#Алгоритмы)
* [Секция по платформе или языку](#Секция-по-платформе-или-языку) * [Секция по платформе или языку](#Секция-по-платформе-или-языку)
* [Системный дизайн](#Системный-дизайн) (для кандидатов senior-уровня)
#### SRE #### SRE
* [Алгоритмы](#Алгоритмы) * [Алгоритмы](#Алгоритмы)
@@ -50,14 +51,14 @@
* [Алгоритмы](#Алгоритмы) * [Алгоритмы](#Алгоритмы)
* [Секция по дизайну проектов тестирования производительности](#Секция-по-дизайну-проектов-тестирования-производительности) * [Секция по дизайну проектов тестирования производительности](#Секция-по-дизайну-проектов-тестирования-производительности)
В отличие от вакансий разработчиков, в секции алгоритмы, используются облегчённые задачи по кодированию, нацеленные на умение использовать простые структуры данных, а не на эффективную реализацию алгоритмов. В данном случае в алгоритмической секции используются облегчённые задачи по кодированию, нацеленные на умение использовать простые структуры данных, а не на эффективную реализацию алгоритмов.
### Материалы для подготовки к секциям ### Материалы для подготовки к секциям
Рекомендуем ознакомиться с материалами до интервью: в них есть книги и курсы Рекомендуем ознакомиться с материалами до интервью: в них есть книги и курсы.
#### Выявление и устранение проблем #### Выявление и устранение проблем
Цель секции понять как вы мыслите в режиме неопределенности и стресса в сбойной ситуации. Каков Ваш опыт, как много приемов и инструментов поиска причин технических проблем вы знаете. Вам предложат описание архитектуры решения и наблюдаемые признаки сбоя (обращения пользователей или текст пришедшего алерта). Задавая вопросы интервьюверу, наподобие, "Вижу ли я в логах сообщения о такой то проблеме?", "Перезагружаю сервер, исчезла ли проблема?" Вы должны выявить исходную проблему в системе и предложить способы устранения и защиты от нее в дальнейшем. Цель секции понять, как Вы мыслите в режиме неопределенности и стресса в сбойной ситуации. Каков Ваш опыт, как много приемов и инструментов поиска причин технических проблем Вы знаете. Вам предложат описание архитектуры решения и наблюдаемые признаки сбоя (обращения пользователей или текст пришедшего алерта). Задавая вопросы интервьюверу, наподобие, "Вижу ли я в логах сообщения о такой то проблеме?", "Перезагружаю сервер, исчезла ли проблема?" Вы должны выявить исходную проблему в системе и предложить способы устранения и защиты от нее в дальнейшем.
#### Секция по платформе или языку #### Секция по платформе или языку
@@ -65,12 +66,12 @@
#### Алгоритмы #### Алгоритмы
В рамках секции проверяем знания по алгоритмам и структурам данных. В рамках секции проверяем знание алгоритмов и структур данных и умение их применять.
###### Рекомендуем повторить все, что связано с алгоритмами: ###### Рекомендуем повторить все, что связано с алгоритмами:
- основные структуры данных — строки, списки, деревья, ассоциативные массивы, векторы; - основные структуры данных — строки, списки, деревья, ассоциативные массивы, векторы;
- базовые алгоритмы — поиск элементов в коллекциях, обход деревьев, сортировки, динамическое программирование; - базовые алгоритмы — поиск элементов в коллекциях, обход деревьев, сортировки, динамическое программирование;
- понятие сложности алгоритмов. O-нотация, обсудим вычислительную сложность решения и расход памяти. - понятие сложности алгоритмов, O-нотация.
###### Сайты, которые помогают решать задачи: ###### Сайты, которые помогают решать задачи:
- [LeetCode](https://leetcode.com/) - [LeetCode](https://leetcode.com/)
@@ -89,13 +90,18 @@
- Алгоритмы. Построение и анализ / Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн - Алгоритмы. Построение и анализ / Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн
- Cracking the Coding Interview: 189 Programming Questions and Solutions / Gayle Laakmann McDowell - Cracking the Coding Interview: 189 Programming Questions and Solutions / Gayle Laakmann McDowell
#### Дизайн распределенных систем #### Системный дизайн
Обсуждаем, как проектировать распределенные системы. Во время секции предложим разработать дизайн системы по набору требований. Обсуждаем проектирование системы. Во время секции предложим Вам разработать дизайн системы по набору требований.
###### Как проходит секция
Вам будет предложен набор функциональных требований к системе. В течение часа Вам предстоит формализовать задачу, спроектировать API системы, оценить нагрузку и необходимые мощности, спроектировать модели и потоки данных.
В зависимости от направления Вашей деятельности, акцент может быть сделан на различные аспекты системы — например, на архитектуру веб-интерфейса в случае, если Вы — фронтенд-разработчик.
###### Сайты: ###### Сайты:
- [System Design Primer](https://github.com/donnemartin/system-design-primer). Вы найдете базовые темы и упражнения по дизайну систем, а также упражнения по объектно-ориентированному анализу и проектированию - [System Design Primer](https://github.com/donnemartin/system-design-primer) — базовые темы и упражнения по дизайну систем, а также упражнения по объектно-ориентированному анализу и проектированию.
- [Architectural Katas](http://nealford.com/katas/). Примеры архитектурных задач - [Architectural Katas](http://nealford.com/katas/) — множество примеров архитектурных задач.
###### Книги: ###### Книги:
- Высоконагруженные приложения. Программирование, масштабирование, поддержка / Мартин Клеппман. В книге достаточно просто объясняют теорию - Высоконагруженные приложения. Программирование, масштабирование, поддержка / Мартин Клеппман. В книге достаточно просто объясняют теорию
@@ -130,7 +136,7 @@
#### Секция по дизайну ML систем #### Секция по дизайну ML систем
Цель ML дизайн секции - обсудить подходы к проектированию и декомпозиции сложной ML системы. Во время секции вам предложат систему, которую необходимо спроектировать. Можно выделить следующий общий дизайн решения: форматизация задачи и требований, декомопозиция на подзадачи, сбор данных, разбор ML архитектур для подзадач, деплой и тестирование итоговой системы. Цель этой секции - обсудить подходы к проектированию и декомпозиции сложной ML системы. Во время секции Вам предложат систему, которую необходимо спроектировать. Можно выделить следующий общий дизайн решения: форматизация задачи и требований, декомопозиция на подзадачи, сбор данных, разбор ML архитектур для подзадач, деплой и тестирование итоговой системы.
###### Книги: ###### Книги:
- Machine Learning Design Patterns / Valliappa Lakshmanan, Sara Robinson, Michael Munn [github](https://github.com/GoogleCloudPlatform/ml-design-patterns) [library](https://www.oreilly.com/library/view/machine-learning-design/9781098115777/) [youtube](https://youtu.be/udXjlvCFusc) - Machine Learning Design Patterns / Valliappa Lakshmanan, Sara Robinson, Michael Munn [github](https://github.com/GoogleCloudPlatform/ml-design-patterns) [library](https://www.oreilly.com/library/view/machine-learning-design/9781098115777/) [youtube](https://youtu.be/udXjlvCFusc)
@@ -175,15 +181,15 @@
## Этап 3: знакомство с командой ## Этап 3: знакомство с командой
После технической секции рекрутер подберет подходящие проекты и согласует созвон с командами. Обычно созвон длится час: ребята рассказывают про текущие проекты, отвечают на вопросы и спрашивают о вашем опыте, любимых задачах, увлечениях. После технической секции рекрутер подберет подходящие проекты и согласует созвон с командами. Обычно созвон длится полчаса: ребята рассказывают про текущие проекты, отвечают на вопросы и спрашивают о Вашем опыте, любимых задачах, увлечениях. Таких созвонов будет не более трёх.
После созвона с вами свяжется рекрутер: скажите ему, в какой команде вы хотели бы работать. После созвона с Вами свяжется рекрутер: скажите ему, в какой команде Вы хотели бы работать.
## Этап 4: приглашение на работу ## Этап 4: приглашение на работу
В течение нескольких дней мы вернемся с оффером. Если вам нравятся условия и команда, останется согласовать дату первого рабочего дня. В течение нескольких дней мы вернемся с оффером. Если Вам понравятся условия и команда, останется согласовать дату первого рабочего дня.
## Дополнение: ## Дополнение:
1. Рекрутер отвечает между этапами в течение трех дней, на финальное решение уходит чуть больше времени. Рекрутер на связи: вы можете связаться с ним, если нужно что-то уточнить. 1. Рекрутер отвечает между этапами в течение трех дней, на финальное решение уходит чуть больше времени. Рекрутер на связи: Вы можете связаться с ним, если нужно что-то уточнить.
2. В беседе с интервьюерами задавайте вопросы и предлагайте разные решения. Интервьюер проверяет не только знания, но и как вы подходите к решению задач. 2. В беседе с интервьюерами задавайте вопросы и предлагайте разные решения. Интервьюер проверяет не только знания, но и как Вы подходите к решению задач.
3. Бывает так, что на каком-то этапе интервью мы отказываем кандидату. Отказ не влияет на отношение к кандидату: он может попробовать подать заявку через полгода, а если откроется подходящая вакансия, мы предложим варианты. 3. Бывает так, что на каком-то этапе интервью мы отказываем кандидату. Отказ не влияет на отношение к кандидату: он может попробовать подать заявку через полгода, а если откроется подходящая вакансия, мы предложим варианты.
4. Если есть пожелания или что-то не понравилось, напишите нам: [apply@tinkoff.ru](mailto:apply@tinkoff.ru). 4. Если есть пожелания или что-то не понравилось, напишите нам: [apply@tinkoff.ru](mailto:apply@tinkoff.ru).