IMHIRED Telegram 321
Собеседование в Order Capital. Часть 2

Продолжаю цикл рассказов о том, какие знания и навыки пригодились мне для успешного трудоустройства в компанию Order Capital 🐋. Начало здесь, а сегодня я расскажу о втором из четырёх собеседований. Мне снова давали задачи, непосредственно связанные с будущей работой.

1️⃣ Первая задача касалась дизайна API на C++. Задание формулировалось так: "создайте наилучший интерфейс для не буду раскрывать чего именно". Сейчас, уже работая в компании, я вижу, что умение грамотно проектировать код напрямую влияет на результаты компании.

Многие разработчики, сталкиваясь с подобным заданием, стараются сразу применить все знания о принципах SOLID и шаблонах проектирования «Банды четырёх». К сожалению, это часто приводит к оверинженирингу и созданию громоздких конструкций, далёких от реальных потребностей бизнеса.

Я же подошёл к задаче с другой стороны. Я спросил интервьюера о конкретных юзкейсах проектируемого API. Мне предложили самому определить потенциальные сценарии использования, так что я выбрал несколько наиболее типичных, на мой взгляд, задач. Я начал разрабатывать примеры кода, который бы использовал мой API для их решения. Это позволило мне лучше понять, какие функции и классы необходимы для создания действительно удобного и функционального интерфейса. И уже после этого я стал создавать сам API ☝️

2️⃣ Вторая задача была связана с работой с большой кодовой базой. Мне предстояло предложить способы внедрить новую функциональность в класс стандартной библиотеки, который активно используется по всему проекту. Здесь важно было не только продумать удобство использования нового кода, но и трудоемкость внедрения этого изменения во всю кодовую базу. Здесь мне помог опыт Яндекса: я видел там много масштабных рефакторингов, поэтому смог предложить несколько вариантов и перечислить плюсы и минусы каждого из них.

Подведём итоги:
💡 В задачах на проектирование API важно чётко понимать, как он будет применяться на практике. Это поможет создать инструмент, который эффективно решает задачи пользователя, а не абстрактного коня в вакууме.
💡 Задачи на масштабный рефакторинг требуют не только программирования, но и планирования внедрения, чтобы изменения легко интегрировались в существующую систему.

Жду ваших комментариев! Расскажите, сталкивались ли вы с похожими задачами и как вы подходили к их решению?



tgoop.com/imhired/321
Create:
Last Update:

Собеседование в Order Capital. Часть 2

Продолжаю цикл рассказов о том, какие знания и навыки пригодились мне для успешного трудоустройства в компанию Order Capital 🐋. Начало здесь, а сегодня я расскажу о втором из четырёх собеседований. Мне снова давали задачи, непосредственно связанные с будущей работой.

1️⃣ Первая задача касалась дизайна API на C++. Задание формулировалось так: "создайте наилучший интерфейс для не буду раскрывать чего именно". Сейчас, уже работая в компании, я вижу, что умение грамотно проектировать код напрямую влияет на результаты компании.

Многие разработчики, сталкиваясь с подобным заданием, стараются сразу применить все знания о принципах SOLID и шаблонах проектирования «Банды четырёх». К сожалению, это часто приводит к оверинженирингу и созданию громоздких конструкций, далёких от реальных потребностей бизнеса.

Я же подошёл к задаче с другой стороны. Я спросил интервьюера о конкретных юзкейсах проектируемого API. Мне предложили самому определить потенциальные сценарии использования, так что я выбрал несколько наиболее типичных, на мой взгляд, задач. Я начал разрабатывать примеры кода, который бы использовал мой API для их решения. Это позволило мне лучше понять, какие функции и классы необходимы для создания действительно удобного и функционального интерфейса. И уже после этого я стал создавать сам API ☝️

2️⃣ Вторая задача была связана с работой с большой кодовой базой. Мне предстояло предложить способы внедрить новую функциональность в класс стандартной библиотеки, который активно используется по всему проекту. Здесь важно было не только продумать удобство использования нового кода, но и трудоемкость внедрения этого изменения во всю кодовую базу. Здесь мне помог опыт Яндекса: я видел там много масштабных рефакторингов, поэтому смог предложить несколько вариантов и перечислить плюсы и минусы каждого из них.

Подведём итоги:
💡 В задачах на проектирование API важно чётко понимать, как он будет применяться на практике. Это поможет создать инструмент, который эффективно решает задачи пользователя, а не абстрактного коня в вакууме.
💡 Задачи на масштабный рефакторинг требуют не только программирования, но и планирования внедрения, чтобы изменения легко интегрировались в существующую систему.

Жду ваших комментариев! Расскажите, сталкивались ли вы с похожими задачами и как вы подходили к их решению?

BY Илья Шишков: код, собесы, IT


Share with your friend now:
tgoop.com/imhired/321

View MORE
Open in Telegram


Telegram News

Date: |

You can invite up to 200 people from your contacts to join your channel as the next step. Select the users you want to add and click “Invite.” You can skip this step altogether. Telegram is a leading cloud-based instant messages platform. It became popular in recent years for its privacy, speed, voice and video quality, and other unmatched features over its main competitor Whatsapp. A new window will come up. Enter your channel name and bio. (See the character limits above.) Click “Create.” With the “Bear Market Screaming Therapy Group,” we’ve now transcended language. Clear
from us


Telegram Илья Шишков: код, собесы, IT
FROM American