🔸🔸🔸🔸🔸🔸🔸🔸 с моего собеса, за которые мне стыдно
Недавно сходил на очередной техсобес на системного аналитика🙂
Интервьюер шёл по чек-листу: архитектура, интеграции, брокеры, базы, SQL, упавший прод, нефункциональные требования.
Уложились в 33 минуты из заложенного часа, и под конец он сказал, что таких подготовленных кандидатов ещё не встречал.
Приятно, конечно. Потом я разбирал запись и насчитал семь ответов, за которые до сих пор неловко😐
🔸Что такое SLA
Я сказал, что это срок, который ставим на задачу. На деле SLA - соглашение об уровне сервиса: доступность 99,9%, время реакции на инцидент, окна для техработ. Самое смешное, что про 99,9% я сам рассказывал минутой раньше, когда говорил про нефункциональные требования.
🔸 Почему POST безопаснее GET
Мой ответ: данные из query можно перехватить. Без HTTPS перехватят и тело запроса. Беда query в том, что параметры оседают в логах серверов, истории браузера и кэше, поэтому токены и персональные данные в URL не кладут.
🔸Зачем нужен HAVING
Я ответил, что для цифровых (хотел сказать числовых🤣) значений. Правильно так: WHERE фильтрует строки до группировки, HAVING фильтрует готовые группы после GROUP BY. Например, клиенты, у которых больше пяти заказов.
🔸Оконные функции
Честно признался, что не писал. Идею знаю в общих чертах, но на собесе, конечно, не вспомнил: ROW_NUMBER, RANK, SUM() OVER считают по группе строк, и сами строки при этом остаются на месте. Типовая задача - найти последний заказ каждого клиента.
🔸 NoSQL и SQL
У меня прозвучало, что NoSQL тоже работает с SQL. В общем виде это неверно, у MongoDB свой язык запросов, у Redis свои команды. Где-то есть SQL-подобные диалекты, и на собесе лучше так и сказать.
🔸ACID и третья нормальная форма
Суть я передал, но путано и без названий. Интервьюеру проще поставить плюс, когда он слышит четыре слова: атомарность, согласованность, изолированность, долговечность. Для 3НФ хватит одной фразы: неключевые поля зависят только от ключа, без транзитивных зависимостей.
🔸 Все методы идемпотентны, кроме POST
PATCH идемпотентность тоже не гарантирует. Запрос прибавить к балансу 100 рублей, отправленный дважды, даст двойную сумму.
Что я из этого вынес. Похвала интервьюера говорит о том, что база крепкая, а дыры всё равно есть у всех, даже к тех, кто постоянно прогоняет программу с учениками🙂 Лучше найти их сразу после своего собеса, пока всё свежо, чем на следующем. Записывайте вопросы, на которых поплыли, и закрывайте их в тот же вечер.
На каком из семи вы бы тоже споткнулись? Пишите номер в комментариях⬇️
Потренировать разговор с заказчиком можно в боте Интервью с заказчиком
💛 MAX
Недавно сходил на очередной техсобес на системного аналитика🙂
Интервьюер шёл по чек-листу: архитектура, интеграции, брокеры, базы, SQL, упавший прод, нефункциональные требования.
Уложились в 33 минуты из заложенного часа, и под конец он сказал, что таких подготовленных кандидатов ещё не встречал.
Приятно, конечно. Потом я разбирал запись и насчитал семь ответов, за которые до сих пор неловко😐
🔸Что такое SLA
Я сказал, что это срок, который ставим на задачу. На деле SLA - соглашение об уровне сервиса: доступность 99,9%, время реакции на инцидент, окна для техработ. Самое смешное, что про 99,9% я сам рассказывал минутой раньше, когда говорил про нефункциональные требования.
🔸 Почему POST безопаснее GET
Мой ответ: данные из query можно перехватить. Без HTTPS перехватят и тело запроса. Беда query в том, что параметры оседают в логах серверов, истории браузера и кэше, поэтому токены и персональные данные в URL не кладут.
🔸Зачем нужен HAVING
Я ответил, что для цифровых (хотел сказать числовых🤣) значений. Правильно так: WHERE фильтрует строки до группировки, HAVING фильтрует готовые группы после GROUP BY. Например, клиенты, у которых больше пяти заказов.
🔸Оконные функции
Честно признался, что не писал. Идею знаю в общих чертах, но на собесе, конечно, не вспомнил: ROW_NUMBER, RANK, SUM() OVER считают по группе строк, и сами строки при этом остаются на месте. Типовая задача - найти последний заказ каждого клиента.
🔸 NoSQL и SQL
У меня прозвучало, что NoSQL тоже работает с SQL. В общем виде это неверно, у MongoDB свой язык запросов, у Redis свои команды. Где-то есть SQL-подобные диалекты, и на собесе лучше так и сказать.
🔸ACID и третья нормальная форма
Суть я передал, но путано и без названий. Интервьюеру проще поставить плюс, когда он слышит четыре слова: атомарность, согласованность, изолированность, долговечность. Для 3НФ хватит одной фразы: неключевые поля зависят только от ключа, без транзитивных зависимостей.
🔸 Все методы идемпотентны, кроме POST
PATCH идемпотентность тоже не гарантирует. Запрос прибавить к балансу 100 рублей, отправленный дважды, даст двойную сумму.
Что я из этого вынес. Похвала интервьюера говорит о том, что база крепкая, а дыры всё равно есть у всех, даже к тех, кто постоянно прогоняет программу с учениками🙂 Лучше найти их сразу после своего собеса, пока всё свежо, чем на следующем. Записывайте вопросы, на которых поплыли, и закрывайте их в тот же вечер.
На каком из семи вы бы тоже споткнулись? Пишите номер в комментариях⬇️
Потренировать разговор с заказчиком можно в боте Интервью с заказчиком
💛 MAX