суббота, 18 декабря 2021 г.

[soft.dev] Посмотрел демо-интервью на тему архитектуры с C++Russia 2021. Чой-то загрустил...

Посмотрел это демо-интервью:

Интересно. Впечатления из категории "Так вот оно чо, Михалыч" :)

За свою карьеру ни разу полноценного интервью не проходил, так уж получалось, что везде устраивался "по знакомству", так что если и были где-то разговоры, то только "за жизнь" просто чтобы познакомиться друг с другом. Познавательно посмотреть как это выглядит.

Но сказать хотел о другом.

Чувствуется, что я основательно отстал от жизни и закуклился в своем маленьком болотце.

Будь я на месте собеседуемого, роль которого играл Павел Филонов, то при такой общей постановке задачи я бы вообще до рисования каких-либо квадратиков не дошел бы.

Большая часть времени бы у меня ушла на то, чтобы расспросить о том, что вообще такое один эксперимент (один запуск игры), как запуск производится (как формулируются начальные условия, как они модифицируются в процессе, если вообще модифицируются), что должно считаться результатом эксперимента, в каком виде результаты представляются, должны ли демонстрироваться какие-то промежуточные стадии выполнения эксперимента, могут ли эксперименты приостанавливаться и возобновляться (с теми же параметрами или с модифицированными), как пользователь должен контролировать ход эксперимента (особенно если сам эксперимент может занимать десятки минут, если не часы) и т.д, и т.п.

Отдельный блок вопросов был бы посвящен тому, как поддерживаются пользователи: есть ли у них какое-то разграничение по правам, как предоставляется доступ, если нужно аутентифицировать пользователей, то какие методы предпочтительнее, должно ли использоваться какое-то квотирование ресурсов для пользователей (нужно ли предусматривать какую-то схему защиты от пользователей, которые попытаются "положить" систему слишком высокой нагрузкой), насколько скрупулезно нужно логировать действия пользователей (и должен ли быть какой-то аудит), и т.д, и т.п.

В общем, сперва бы я попытался сформировать какую-то более-менее четкую картину мира. Не в плане понимания того, как все должно работать. А в плане осознания того, что должно поддерживаться.

Все эти действия укладываются в то, что в свое время (еще до переориентации нашего ИТ на удовлетворение западных заказчиков) называлось "обследование объекта". Сейчас, если не ошибаюсь (но, скорее всего, ошибаюсь) это называется стадией бизнес-анализа и выполняется бизнес-аналитиками с привлечением технарей.

Следующим шагом бы я сделал первичную проработку основных механизмов решения задачи. Чтобы возникло хотя бы поверхностное понимание основных типов данных и способов их обработки. Т.е. что такое "игровое поле", как оно может представляться в памяти, как оно может описываться и как это описание можно хранить в долговременной памяти (не суть важно в виде файла или же в какой-то СУБД), как это будет обрабатываться (с учетом того, что в память одной ноды это может и не поместиться), какие приблизительно требования по обмену данными между нодами нам потребуются и т.д., и т.п.

Далее я бы попытался поискать в Интернете информацию о том, как подобные задачи решаются, какие алгоритмы существуют, какие есть особенности их реализаций. Возможно, если бы всплыли контакты людей, которые подобными задачами занимались, я бы попробовал с ними связаться и проконсультироваться.

И вот только после выполнения этих шагов я бы смог начать рисовать какие-то архитектурные схемы. И то, они были бы невероятно кривыми и наивными, т.к. в силу специфики своей работы в последние 7-8 лет, подобного масштаба проблемами не занимался. Поэтому следующим шагом стало бы штудирование материалов и проведение каких-то предварительных экспериментов, чтобы поднабрать хоть какого-то опыта.

Так что, боюсь, на таком интервью я бы выглядел полным дураком, который бы невпопад задавал дурацкие вопросы (вероятнее всего повторяясь) и говорил бы "понятия не имею", "тут нужно подумать" и "мне нужно погрузиться в этот вопрос" гораздо чаще, чем это позволено на собеседовании. Т.к. нет у меня способности, которой обладали некоторые реально хорошие бизнес-аналитики, с которыми доводилось сталкиваться: не могу сходу из услышанного/прочитанного вычленить самую суть. Мне, к сожалению, для этого нужно сделать несколько итераций. Результат в итоге получается почти такой же, но требует это больше времени и со стороны, полагаю, выглядит так себе.

В общем, что-то меня стала пугать перспектива когда-нибудь попасть на полноценное собеседование.

2 комментария:

Left комментирует...

> Большая часть времени бы у меня ушла на то, чтобы расспросить о том, что вообще такое ...

Я вот как человек который за свою жизнь много раз побывал на собеседованиях с обеих сторон стола - скажу что этого достаточно чтобы его пройти. Человек задающий правильные вменяемые вопросы - куда нужнее человека который рисует абстрактные квадратики. Так что нет, не переживайте за закукленость и болото. Ну, по крайней мере пока ;)

eao197 комментирует...

> Ну, по крайней мере пока ;)

Не буду. Пока не буду :)