Страна, за которую никто не хочет воевать, не должна воевать. Предлагаю ли я переговоры? Нет, я предлагаю капитуляцию. Потому что страна нахуй не нужна её же гражданам, она дискредитировала себя окончательно и бесповоротно. Нехай Зеля сдаётся, Пыня открывает границы, и все недовольные режимом Украины (и России) — т.е. 99,9% населения спердаливают нх куда хотят. Кто в Европу, кто в Кыргызстан, кто в Рашку, кто в Канаду.
И ещё. Ловлю себя на мысли, что у меня, увы, при всей моей ненависти к России, не поворачивается рука написать, что это в равной степени людоедские режимы. Нет, мы уже давно Россию переплюнули. С уверенным отрывом. Я знаю, знаю, почему, но разве мне от этого легче? Разве то, что мы воюем против вчетверо превосходящего нас мобресурса, хоть как-то оправдывает зверства по отношению к собственному населению? Разве то, что мы будем воевать до последнего запертого в мышеловке гражданина, придаёт сопротивлению хоть какой-то смысл?
Я ебу...
Страна, за которую никто не хочет воевать, не должна воевать. Предлагаю ли я переговоры? Нет, я предлагаю капитуляцию. Потому что страна нахуй не нужна её же гражданам, она дискредитировала себя окончательно и бесповоротно. Нехай Зеля сдаётся, Пыня открывает границы, и все недовольные режимом Украины (и России) — т.е. 99,9% населения спердаливают нх куда хотят. Кто в Европу, кто в Кыргызстан, кто в Рашку, кто в Канаду.
И ещё. Ловлю себя на мысли, что у меня, увы, при всей моей ненависти к России,...
Блядь, слава богу. Слава богу, что меня там нет. Пошло оно всё на хуй. Сделаю субтитры и буду показывать вестернам. Это тоталитарное зло в чистейшем виде. Это совок сталинской эпохи. Это Пол Пот, Ким Чен Ын и Франсуа Дювалье. Это SS. Это ЛНР, Моторола и Гиви.
Пытались сегодня с сыном расковырять Steam Web API, чтобы можно было качать контент из воркшопа, не покупая игру. Да хрен там. Прикрыли они эту лавочку ещё раньше, чем нам эта идея пришла в голову. А раньше вроде можно было.
И, наконец, на сладкое у нас был SQL, а именно MySQL.
Тут уже ничего в IDE не склонируешь, тут уже надо запросики писать. Ручками. Времени осталось — 40 минут.
Дана схема базы данных. Две таблички, связанные через третью как many-to-many со всякими метаданными в связующей таблице. Нуднейшее условие, которое раз двадцать пришлось перечитывать, чтобы осознать, что именно от нас хотят. Чтобы не спойлерить, выглядит оно типа такого:
"Найти всех доярок-рекордсменок и всех подоеных ими коров, отсортировав по имени коровы и годовому числу надоев, где дояркой-рекордсменкой считается доярка, надоившая за все годы в среднем больше, чем все доярки колхоза в среднем за 1968 год. Кроме того, бригадирок звена поместить наверх доски почётов"
Там не про доярок и коров, но этим текстом я просто иллюстрирую класс сложности запроса. Вроде и не сложный, но дико нудный и после полутора часа программирования вгоняющий в смесь тоски, паники и обречённости.
Итак, читаем ещё раз: "Найти всех доярок-рекордсменок...", о-о-о чёрт... "среднемесячных удоев за отчётный год..." бля... "...бригадой считается звено...", бу-э-э-э...
Короче, не стал заморачиваться и в полубесознательном состоянии набросал решение через CTE.
Ну, типа "WITH средниеУдои AS (SELECT AVG(удой) AS срУдой FROM дойка_коров..." и т.д. А потом ", дояркиРекордсменки AS (SELECT д.* FROM доярка д INNER JOIN дойка_коров дк..."
Не хочу вспоминать. Больно до сих пор. А потом из всех этих CTE джойнами и такой-то матерью вытаскиваем нужные председателю колхоза данные.
И самое прикольное, что ход мыслей у меня был изначально правильный.
Да вот только данные не сходились с тестовыми, хоть плачь!
Причина была в том, что я до конца не осознавал, что у меня в запросе по актам дойки, совершённым за 1968 год (необходимом для получения среднемесячных удоев за год) WHERE-выражение для фильтрации по году было написано с ошибкой. А всё остальное — идеально правильно (ну, и, разумеется, совершенно по-идиотски с точки зрения оптимизации).
Понял я свою ошибку за полторы минуты до конца срока. Задание делал ранним утром, чтобы никто не отвлекал.
А теперь представьте картину. Спавшая до этого в соседней комнате Птичка, просыпается от моих криков: "Ну! Ну! Сука! Не убивай меня! А-а-а-а-а, на тебе, на, сука, умри!!! АААА не уибиваааааййй!!! Сдохни!"
Это я боролся с жутко тормозным интерфейсом тестовой системы, который по 10 секунд запускал каждый запрос. А может быть со своими тормозными мозгами. А может, и скорее всего, с тем, как по-дебильному был написан мой SQL-запрос.
Но я всё-таки успел исправить и нажать чёртову кнопку Submit and Finish на последней секунде до конца срока.
Вот так это было. Буквально на последней секунде.
В итоге, я остался доволен всеми заданиями. Но, конечно, ограничение в два часа это и эйджизм, и эйблизм сразу, и при желании можно их за это по американским законам засудить. Эйджизм — потому что вдруг я дедушка старенький, печатаю медленно, думаю ещё медленнее. Эйблизм — а вдруг я вообще слепой, сижу в brltty, дайте два дня как минимум. Или я Стивен Хокинг. Стивен Хокинг бы не прошёл, разве что с Neuralink, да и то не факт.
Ну, в общем, подождём, чо скажут.
Зарплата у них там обещается по результатам тестирования от 5 до 8 k$, претендую на 8.
И, наконец, на сладкое у нас был SQL, а именно MySQL.
Тут уже ничего в IDE не склонируешь, тут уже надо запросики писать. Ручками. Времени осталось — 40 минут.
Дана схема базы данных. Две таблички, связанные через третью как many-to-many со всякими метаданными в связующей таблице. Нуднейшее условие, которое раз двадцать пришлось перечитывать, чтобы осознать, что именно от нас хотят. Чтобы не спойлерить, выглядит оно типа такого:
На второе у нас тоже был JavaScript. Постараюсь не сильно спойлерить, но там задание было в том, чтобы написать асинхронный пул воркеров. Не тех воркеров, которые прямо worker thread, а просто функций, которые выгребают из очереди асинхронные таски, выполняют их и так по кругу.
Тут тоже было несколько уровней сложности, от "просто реализуй ТЗ" до "сделай охуенно и оптимально", но в этот раз оба уровня были досконально покрыты юнит-тестами.
Но ИИ, опять-таки, больше путался под ногами, чем помогал реально, поэтому, я считаю, задачка тоже была довольно продуманная и хитрая. Требует опыта асинхронного мышления, наверное, знания каких-то минимальных паттернов конкурентности.
Это всё у меня нашлось, поэтому на задачу вместе с полировкой кода ушло минут 20.
На второе у нас тоже был JavaScript. Постараюсь не сильно спойлерить, но там задание было в том, чтобы написать асинхронный пул воркеров. Не тех воркеров, которые прямо worker thread, а просто функций, которые выгребают из очереди асинхронные таски, выполняют их и так по кругу.
Тут тоже было несколько уровней сложности, от "просто реализуй ТЗ" до "сделай охуенно и оптимально", но в этот раз оба уровня были досконально покрыты юнит-тестами.
Итак, галера Lumenalta предложила мне прикольное тестовое задание на позицию фуллстека.
Платформа для тестирования — DevsKiller.
Тебе дают комплексный тест из трёх заданий. Время на выполнение — 2 часа. Ставить на паузу нельзя. Пробовать повторно — по-моему тоже нельзя.
Очень понравилось что два первых задания можно клонировать гитом и спокойно себе решать в IDE. Только нельзя больше никуда пушить, кроме как на их сервер. То есть, они не против, чтобы в этих заданиях кандидаты пользовались ИИ-помощниками. Хотя, сразу скажу, что задания подобраны так, что ИИ-помощники особо там не помогут.
Итак, задание первое. React.
Есть уже написанное веб-приложение на простом джаваскрипте, без типов. Есть эмулятор бекенда. Также имеется набор юнит- и e2e-тестов, покрывающий основной функционал. Нужно разобраться в том, какого чёрта все эти тесты падают, а также пройтись по списку рекваерментов и внимательно проверить, что из непокрытых тестами рекваерментов реализовано, а что нет. И насколько вообще оно праильно там реализовано.
А в самом коде повсеместно напартачено. Где-то вместо данных передаётся пустой массив. Где-то — захардкоженная заглушка, где-то какой-то виджет не так нарисован, где-то логика не до конца реализована. И вот этот фронтэнд в состоянии "тысяча мелких порезов" нужно отрефакторить мало того, чтобы тесты позеленели, но и приложить к нему любовь и заботу, стать его пользователем и продактом, довести до ума.
Времени ушло на это примерно час, но это не впустую потраченный час.
Мне просто дико понравилось это задание, 5/5!
ИИ с таким не справляется, потому что у ИИ нет главного — воли, страсти, чисто человеческого любопытства. Он не выйдет за рамки спецификации, и поэтому не отыщет скрытые алмазы в куче говна.
Итак, галера Lumenalta предложила мне прикольное тестовое задание на позицию фуллстека.
Платформа для тестирования — DevsKiller.
Тебе дают комплексный тест из трёх заданий. Время на выполнение — 2 часа. Ставить на паузу нельзя. Пробовать повторно — по-моему тоже нельзя.
Очень понравилось что два первых задания можно клонировать гитом и спокойно себе решать в IDE. Только нельзя больше никуда пушить, кроме как на их сервер. То есть, они...
То, как обращаются с гражданскими.
То, как ведут себя в магазинах.
То, что хозяйничают в квартирах и домах мирных людей.
Нахуй такой контрнаступ. Ведём себя как российские захватчики. Садизм и беззаконие. Мы должны были быть выше методов врага, а уместно этого радостно повизгивая от чувства безнаказанности опустились до них. #Суджа
@janPona там в Чехии наемник рассказывал про то, как мародерил и издевался над местными в Буче. Вместе с украинскими коллегами. Над украинскими гражданскими.
Похоже, сказка про "воинов добра и света" немножко разваливается.
Нашёл на заправке возле мусорных баков. Обогнал студента-поляка на доли секунды, но и он не ушёл ни с чем — забрал карманный справочник по матстатистике, который ему больше пригодится. А если захочет сишку изучить, ему и родители учебник купят.
Так вот, издание 2003 года. Примечательно, что это год, когда я прочёл первую книгу по C (кажется, Шилдт). Курсач писал, затем диплом (на C++, правда), потом чуть-чуть по работе подёргал Borland, и благополучно это дело забыл.
Нашёл на заправке возле мусорных баков. Обогнал студента-поляка на доли секунды, но и он не ушёл ни с чем — забрал карманный справочник по матстатистике, который ему больше пригодится. А если захочет сишку изучить, ему и родители учебник купят.
Так вот, издание 2003 года. Примечательно, что это год, когда я прочёл первую книгу по C (кажется, Шилдт). Курсач писал, затем диплом (на C++, правда), потом чуть-чуть по работе подёргал Borland, и благополучно это дело забыл.
А, вон оно что. Давайте уже раз и навсегда напишем такой сервис, который умеет это делать правильно, — и чтобы всё настраивалось только конфигурацией. #SystemDesign
1) То ли то, что у нас называется синьором, в России называется пре-миддлом.
2) То ли я тупой.
Подозреваю второе.
Этот лысый дядя, которому на интервью дали пососать, легко даст пососать мне по части system design и go internals. А ведь он начал карьеру ещё до рождения зачитывальщика вопросов.
Хорошо, что ещё я вчера не пошёл добровольцем на это мероприятие (а то бы сгорел от позора). А собирался ведь, собирался! Птичка из кровати не отпустила. Спасибо Птичке, уберегла!
Так. Что делать, что делать? Node наше всё.
А знаете что? Нет тупее вопроса о том, какие бывают планировщики в Go и чем отличаются микротаски от макротасков в JS. Вам-блядям это в работе никогда не пригодится. Если вы не пишете ядро самого языка или его рантайма. А вы на пишете.
Я ебу, короче, беру тайм-аут на изучение утиной типизации с луковой архитектурой. Ну вы поняли. И пузырьковую сортировку посредством нефильтрованного пива на закуску возьму. #Go
1) То ли то, что у нас называется синьором, в России называется пре-миддлом.
2) То ли я тупой.
Подозреваю второе.
Этот лысый дядя, которому на интервью дали пососать, легко даст пососать мне по части system design и go internals. А ведь он начал карьеру ещё до рождения зачитывальщика вопросов.
Хорошо, что ещё я вчера не пошёл добровольцем на это мероприятие (а то бы сгорел от позора). А собирался ведь, собирался! Птичка из кровати не отпустила. Спасибо...