Size: a a a

2021 August 12

AM

Aga Mahmudov in ctodailychat
Интересная кстати тактика, многие стримеры так поднялись на площадках - пускают ботов, привлекают внимание в топе и начинается живой поток
источник

S

Stas in ctodailychat
Посоны, не качайте, там по ссылке вирус!
источник

AS

Alexey Shcherbak in ctodailychat
Даже еще проще. Собственно формулировка звучит примерно так - напишите метод, который по 3м длинам сторон (входные данные) отвечает на вопрос - какой перед нами треугольник - обыкновенный, равнобедренный, равносторонний, не существующий. И являетля ли треугольник прямоугольным. Псевдокод -ок, но входные и выходные типы пожалуйста опишите. В конце напишите тестовые данные которые вы бы подали на вход чтобы проверить корректность вашего кода.

Если вдруг кто забывает как про сумму квадратов катетов=квадрату гиппотенузы, я эту формулу напоминаю, не звери же.

Задача намеренно очень простая чтобы не вызвать ступор, но есть нюансы исполнения. Самый распространенный вариант - без детекта прямоугольного треугольника, это уже мое личное добавление (еще пара нюансов)

А потом смотришь что и как человек дизайнит. Какие входные данные, что пишет внутри, какие тесты, обрабатывает ли edge cases, какие пропускает. По завершению у всех есть что-то рабочее но еще ни разу не видел идеального варианта, поэтому начинаешь задавать вопросы и давать тестовые данные - с отрицательной длинной сторон, с нулевой длинной, в зависимости от языка - int.maxvalue,int.minvalue смотришь на переполнение квадратов и так далее.

Я смотрю не на правильность исполнения а на то как человек реагирует на свои ошибки и исправляет их. Самый лучший кандидат в итоге с восторгом кромсал свой код и предвосхитил несколько вопросов исправив их когда исправлял другие куски. Работает отлично, даже на синьорах, не только на джунах.
источник

СА

Сергей Аксёнов... in ctodailychat
Интересно, спасибо!
источник

AS

Alexey Shcherbak in ctodailychat
Я могу детально разложить все особенности задачи под дотнет например, если интересно взять на вооружение. А расскажи какие ты задаешь специальные вопросы-детекторы и на какие вещи обращаешь внимание? И еще больше вопрос из общей практики - как пройти путь от "результаты зависят от личности интервьера" и кандидатов невозможно объективно сравнивать до "результаты зависят от прохождения неких формальных задач" и 2 кандидата очень легко сравниваются, но не свалиться в фаанг-овские развороты красно-черных деревьев?
источник

СА

Сергей Аксёнов... in ctodailychat
Я не провожу технические интервью, мой этап последний.
источник

AS

Alexey Shcherbak in ctodailychat
Понимаю, все же интеесны вопросы на cultural fit. Или они общие и ты в таком случае полагаешься на чутье фаундера ака личная экспертиза?
источник

СА

Сергей Аксёнов... in ctodailychat
Я не фаундер, я наёмный Head of)

У меня есть два обязательных открытых вопроса. Первый: расскажи, в чём ценность code review: для команды, для продукта, для бизнеса? Если собеседую на миддловый грейд, то поясняю: вот ты пришёл в новую команду, а там нет code review, как ты будешь объяснять коллегам, почему его надо ввести. Или вот к вам на дейлик пришёл продуктовый менеджер и спрашивает: зачем вы тратите время на это ревью, от него только задачи в прод медленнее попадают, а нам надо догонять конкурентов! Или подходит к тебе директор и говорит: ты тут подбил всех смотреть в код друг друга, вместо того чтобы новый код писать, а я вам зарплату за это платить должен, зачем?

И аналогичный вопрос про автотесты.

Из того, как человек про это рассуждает, как правило вылезает десятка два других вопросов, не все из которых успеваю задать) Как человек решает личностные конфликты, например, на code review хорошо можно посмотреть.
источник

AO

Alexander Ovchinniko... in ctodailychat
с привычным мне свойством поспорить с чем-нибудь 🙂 я бы начал искать кейсы, когда код ревью и автотесты и правда избыточны) например, когда цена ошибки на проде крайне низкая (нано/малый бизнес), а продукт, скорее всего, не проживёт долго и является простым (условный лендинг можно и вручную проверить)
источник

СА

Сергей Аксёнов... in ctodailychat
Да, есть и такие кандидаты, которые не видят другой ценности, кроме предотвращения ошибок)
источник

AO

Alexander Ovchinniko... in ctodailychat
но первая мысль была бы про "почему Head of спрашивает про автотесты и код ревью? уж не лоббирует ли он интересы какого-нибудь создателя продукта по их проведению внутри компании?" :-)))
источник

AO

Alexander Ovchinniko... in ctodailychat
кстати, умный ведь подход по удержанию клиента - создать внутри компании-клиента такие процессы, которые бы препятствовали нанимать в неё тех, кто идеологически против использования твоего SaaS'а)
источник

AO

Alexander Ovchinniko... in ctodailychat
ну, ценность не единственная, но продают обычно её) можно про безопасность сказать (сложнее внедрить бэкдор в программный продукт) или про выстраивание процессов (повышение предсказуемости и отлаженности всей работы) или про взаимообучение) ещё там что-нибудь есть, наверное, если подумать...
источник

СА

Сергей Аксёнов... in ctodailychat
Взаимообучение, уже лучше)
источник

AO

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

AO

Alexander Ovchinniko... in ctodailychat
насчёт обучения - тут надо понимать, что в интересах разработчиков как раз не учить других, а вендорлочить (через недостаток области знаний) на себя, так он станет незаменимым и сможет через шантаж увольнением получить выше зарплату) это зависит от людей, с кем-то сработает, с кем-то (особо хитрым) нет

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

МС

Михаил Серебренников... in ctodailychat
Ну вот, не JS-файлы не открывает. (
источник

OP

Oleg Perov in ctodailychat
У меня пару минут пытался загрузиться интерфейс, потом мне надоело ждать и я вышел. В приницпе большего я и не ждал
источник

DS

Dmitriy Sh. in ctodailychat
Читал тут https://cheatsheetseries.owasp.org/cheatsheets/Nodejs_Security_Cheat_Sheet.html и наткнулся на строчку, что Node.js построен на single-thread event driven архитектуре и любое достаточно сложная операция блокирует выполнение всех остальных функций в приложении.

Я претензий к NodeJS не имею, но может знает кто хорошие статьи где какая-нибудь большая техническая компания рассказывает почему они выбрали NodeJS, а не что-то другое
источник

DS

Dmitriy Sh. in ctodailychat
Интуитивно хочется сказать, что нод выбирают когда хотят сэкономить на бэкенд разработчиках превращая фронтенд разрабов в фуллстак. Но мне кажется это слишком примитивный вывод и все не так просто
источник