diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 3cde1c6..0268678 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -23,4 +23,3 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 - uses: ocular-d/md-linkcheck-action@1.0.2 - - uses: tomwhross/write-good-action@v1.2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..67461f2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +# IDE +.DS_Store +.vscode +.idea diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..6394dc1 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,45 @@ +# Внесение изменений в документы + +> Принимаются корректировки опечаток + +- Зарегистрируйтесь на [GitHub](https://github.com/) (если вы еще этого не сделали). + +- Откройте в браузере документ, в который собираетесь внести изменения (например [этот](https://github.com/TinkoffCreditSystems/career/blob/main/interview.md)) + +- Нажмите кнопку редактирования ![кнопку редактирования](http://s.csssr.ru/U2Y7B7QMD/chrome_2021-01-27_11-37-34.png) + +- В открышемся редакторе внесите изменения в файл. Вы всегда можете переключиться между режимом редактирования и предпросмотра кнопками `Edit File` и `Preview Changes` + +> Для написания документов используется облегченный язык разметки [Markdown](https://ru.wikipedia.org/wiki/Markdown). Если Вы с ним не знакомы, ознакомьтесь со специальным [руководством](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) + +- Создайте новую [ветку](https://github.com/TinkoffCreditSystems/career/blob/main/CONTRIBUTING.md#ветки), дайте ей название и отправьте [изменения](https://github.com/TinkoffCreditSystems/career/blob/main/CONTRIBUTING.md#коммиты): + +![](http://s.csssr.ru/U2Y7B7QMD/chrome_2021-01-27_12-00-37.png) + +- На открывшейся странице нажмите `Create pull request`, после чего создастся запрос на изменение. В рамках запроса будет проведена автоматическая [проверка](https://github.com/TinkoffCreditSystems/career/blob/main/CONTRIBUTING.md#markdown-style) корректности получившейся разметки и доступности всех ссылок. После [подтверждения](https://github.com/TinkoffCreditSystems/career/blob/main/CONTRIBUTING.md#подтверждение) запроса [изменения](https://github.com/TinkoffCreditSystems/career/blob/main/CONTRIBUTING.md#релиз-изменений) попадут в основную ветку и будут доступны всем. + +## Оформление зарпосов на изменение + +### Ветки + +Ветки желательно создавать от `main`, в названии ветки укажите файл, в который вносятся изменения. + +### Коммиты + +В описании к коммиту желательно указать краткое резюме о вносимых изменениях. + +## Markdown Style + +Все документы проверяются на существование всех присутствующих ссылок при помощи [markdown-link-check](https://github.com/tcort/markdown-link-check). Проверка происходит при создании Pull Request'а в ветку main, информация о ходе проверки и о её результатах выводится на странице Pull Request'a + +### Если проверка не прошла + +Необходимо проверить все ссылки в изменяемом документе, если хотя бы одна ведёт на несуществующий сайт, проверка не выполнится. + +## Подтверждение + +Чтобы изменения вступили в силу, их должен проверить и одобрить [Игорь Маслов](https://github.com/MaslovIgor) или [Юлия Царева](https://github.com/YuliaTsareva). + +## Релиз изменений + +Происходит автоматически после подтверждения изменений и их попадания в ветку `main` diff --git a/README.md b/README.md new file mode 100644 index 0000000..3c2eee7 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# Вакансии + +* [Работа в IT](https://www.tinkoff.ru/career/it/). Развивайте проекты и управляйте ими: вас ждут интересные задачи по тестированию, дизайну, аналитике и разработке + * Как подготовиться к [ИТ-собеседованию в Тинькофф](https://github.com/TinkoffCreditSystems/career/blob/master/interview.md) diff --git a/interview.md b/interview.md new file mode 100644 index 0000000..5983037 --- /dev/null +++ b/interview.md @@ -0,0 +1,130 @@ +# ИТ-собеседование в Тинькофф + +Рассказываем, как подготовиться к собеседованию на ИТ-вакансию: https://www.tinkoff.ru/career/it/ + +## Этапы собеседования +1. Предварительное собеседование. +2. Техническое собеседование. +3. Знакомство с командой. +4. Приглашение на работу. + +## Этап 1: предварительное собеседование + +Вы откликнулись на вакансию и отправили резюме — через некоторое время с вами свяжется рекрутер и проведет предварительное собеседование. + +На предварительном собеседовании знакомимся друг с другом. Беседа займет полчаса: рекрутер спросит вас об интересах, опыте и мотивации, а затем расскажет о работе и вакансиях в Тинькофф. Не стесняйтесь задавать вопросы. + +Рекрутер запомнит направление и проекты, над которыми хотите работать. В течение двух дней он свяжется с вами и согласует время для технического собеседования. + +## Этап 2: техническое собеседование +Техническое собеседование состоит из нескольких отдельных тем — секций. Созвон по каждой секции длится час и проходит в «Зуме» с отдельным интервьюером. Вы можете пройти все секции сразу или в течение нескольких дней — скажите рекрутеру, как удобнее. + +Как проходить секции: +1. Подготовьте рабочее место: проверьте компьютер и интернет, возьмите пару листков бумаги и ручку. Рекомендуем выспаться и захватить бутылку воды. +2. Не используйте телефон: вы будете много кодить в онлайн-IDE, рисовать схемы и общаться с интервьюером. +3. Задавайте вопросы и предлагайте разные решения, даже если они кажутся неправильными: интервьюер проверяет не только знания, но и как вы подходите к решению задач. +Обычно нужно пройти 2—4 секции — это зависит от направления и вашего опыта. Точное количество вам скажет рекрутер. + +### Направления и секции в Тинькофф + +**Backend-разработка** +* Алгоритмы +* Секция по платформе или языку +* Дизайн распределенных систем + +**Frontend-разработка** +* Алгоритмы +* Секция по платформе или языку +* Дизайн распределенных систем + +**SRE** +* Алгоритмы +* Выявление и устранение проблем +* Дизайн распределенных систем + +**Машинное обучение** +* Алгоритмы +* Дизайн распределенных систем +* Секция по общему ML +* Дизайн ML-систем + +### Материалы для подготовки к секциям +Рекомендуем ознакомиться с материалами до интервью: в них есть книги и курсы + +## Алгоритмы + +Проверяем знания по алгоритмам и структурам данных. Предлагаем решить задачу на реализацию, например сделать клиент с бизнес-логикой для сетевых API. + +###### Рекомендуем повторить все, что связано с алгоритмами: +- основные структуры данных — строки, списки, деревья, ассоциативные массивы, векторы; +- базовые алгоритмы — поиск элементов в коллекциях, обход деревьев, сортировки, динамическое программирование; +- понятие сложности алгоритмов. O-нотация, обсудим вычислительную сложность решения и расход памяти. + +###### Сайты, которые помогают решать задачи: +- [LeetCode](https://leetcode.com/) +- [HackerRank](https://www.hackerrank.com/) +- [Codeforces](https://codeforces.com/) +- [Topcoder](https://www.topcoder.com/) +- [Timus Online Judge](http://acm.timus.ru/) + +###### Курсы: +- [Алгоритмы, часть I](https://www.coursera.org/learn/algorithms-part1) +- [Специализация «Структуры и алгоритмы данных»](https://www.coursera.org/specializations/data-structures-algorithms) + +###### Книги: +- Алгоритмы. Построение и анализ / Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн +- Искусство программирования / Дональд Кнут + +## Дизайн распределенных систем + +Обсуждаем, как проектировать распределенные системы. Во время секции предложим разработать дизайн системы по набору требований. + +###### Сайты: +- [System Design Primer](https://github.com/donnemartin/system-design-primer). Вы найдете базовые темы и упражнения по дизайну систем, а также упражнения по объектно-ориентированному анализу и проектированию +- [Architectural Katas](http://nealford.com/katas/). Примеры архитектурных задач +- [Hacking the Software Engineer Interview](https://tianpan.co/hacking-the-software-engineer-interview). Рассказано, какими терминами и категориями нужно мыслить, чтобы пройти секцию + +###### Книги: +- Высоконагруженные приложения. Программирование, масштабирование, поддержка / Мартин Клеппман. В книге достаточно просто объясняют теорию + +## Секция по общему ML + +Разбираем вопросы по анализу данных: о постановке задачи, выборе и обосновании метрик качества, сборе и валидации данных, ML-алгоритмах. Вопросы разбираем на теоретических и практических кейсах. + +###### Сайты: +- [Elements of statistical learning](https://web.stanford.edu/~hastie/Papers/ESLII.pdf) +- [Pattern Recognition and Machine Learning](https://www.amazon.com/Pattern-Recognition-Learning-Information-Statistics/dp/0387310738) +- [Deep learning book, Goodfellow.](https://www.deeplearningbook.org/) +- [Introduction to Information Retrieval](https://nlp.stanford.edu/IR-book/pdf/irbookonlinereading.pdf) +- [Подборка блогов по машинному обучению](https://github.com/josephmisiti/awesome-machine-learning/blob/master/blogs.md) + +###### Курсы: +- [Yandex Data School: Practical_DL](https://github.com/yandexdataschool/Practical_DL) +- [Yandex Data School: Practical_RL](https://github.com/yandexdataschool/Practical_RL) +- [Yandex Data School: NLP_course](https://github.com/yandexdataschool/nlp_course) +- [Catalyst Team: DL_course](https://github.com/catalyst-team/dl-course) +- [Joseph Misiti: awesome-machine-learning](https://github.com/josephmisiti/awesome-machine-learning/blob/master/courses.md) +- [Специализация «Машинное обучение и анализ данных»](https://www.coursera.org/specializations/machine-learning-data-analysis) + +###### Примеры вопросов по машинному обучению: +- [Quant notes](https://github.com/dingran/quant-notes) +- [Data science interview questions and answers](https://github.com/iamtodor/data-science-interview-questions-and-answers) +- [120 data science interview questions](https://github.com/kojino/120-Data-Science-Interview-Questions) +- [Data-science-interviews](https://github.com/alexeygrigorev/data-science-interviews) + +###### Книги: +- Глубокое обучение. Погружение в мир нейронных сетей / Сергей Николенко, Артур Кадурин, Екатерина Архангельская + +## Этап 3: знакомство с командой +После технической секции рекрутер подберет подходящие проекты и согласует созвон с командами.Обычно созвон длится час: ребята рассказывают про текущие проекты, отвечают на вопросы и спрашивают о вашем опыте, любимых задачах, увлечениях. + +После созвона с вами свяжется рекрутер: скажите ему, в какой команде вы хотели бы работать. + +## Этап 4: приглашение на работу +В течение нескольких дней мы вернемся с оффером. Если вам нравятся условия и команда, останется согласовать дату первого рабочего дня. + +## Дополнение: +1. Рекрутер отвечает между этапами в течение трех дней, на финальное решение уходит чуть больше времени. Рекрутер на связи: вы можете связаться с ним, если нужно что-то уточнить. +2. В беседе с интервьюерами задавайте вопросы и предлагайте разные решения. Интервьюер проверяет не только знания, но и как вы подходите к решению задач. +3. Бывает так, что на каком-то этапе интервью мы отказываем кандидату. Отказ не влияет на отношение к кандидату: он может попробовать подать заявку через полгода, а если откроется подходящая вакансия, мы предложим варианты. +4. Если есть пожелания или что-то не понравилось, напишите нам: [apply@tinkoff.ru](mailto:apply@tinkoff.ru). diff --git a/package.json b/package.json new file mode 100644 index 0000000..69a88e3 --- /dev/null +++ b/package.json @@ -0,0 +1 @@ +{}