Hacker News Digest

Тег: #leetcode

Постов: 3

There is a huge pool of exceptional junior engineers (workweave.dev) 💬 Длинная дискуссия

Многие компании упускают огромный потенциал, отказываясь нанимать джуниор-инженеров, предпочитая только сеньоров. Это даёт конкурентное преимущество тем, кто готов инвестировать в молодые таланты: мотивированные джуниоры быстро обучаются с помощью ИИ, привносят свежие идеи и демонстрируют высокую лояльность. Например, Shopify планирует нанять 1000 стажёров, отмечая их энергию и влияние на команду.

Ключевые ошибки работодателей — устаревшие представления о длительном онбординге и интервью, сфокусированные на алгоритмах, а не на реальных навыках. Джуниоры, свободные от шаблонов, часто превосходят сеньоров в гибкости и скорости обучения. Чтобы найти лучших, стоит искать кандидатов вне традиционных каналов, например, среди тех, кто не прошёл в Y Combinator, но проявил инициативу.

by mooreds • 30 сентября 2025 г. в 03:17 • 177 points

ОригиналHN

#hiring#engineers#recruitment#shopify#y-combinator#leetcode#interviewing#llm

Комментарии (278)

  • Сложности найма джунов из-за заучивания LeetCode и использования ИИ в учебе, снижения страсти к профессии.
  • Риски найма слабых джунов и необходимость эффективных фильтров для выявления талантов.
  • Переизбыток выпускников CS на фоне сокращения числа вакансий для новичков.
  • Важность реального опыта для джунов и конкуренции с ИИ.
  • Разные подходы к оценке джунов: сложные задачи vs. простые, проверка мышления и сотрудничества.

Many hard LeetCode problems are easy constraint problems (buttondown.com) 🔥 Горячее 💬 Длинная дискуссия

Сложные LeetCode-задачи — простые задачи на ограничения

Интервьюер спросил: «Минимальное количество монет для сдачи 37¢ при номиналах [10, 9, 1]».
Жадный алгоритм даёт 10 монет, оптимум — 4. Ручное ДП сложно, а в MiniZinc — три строки:

int: total; array[int] of int: values = [10,9,1];
array[index_set(values)] of var 0..: coins;
constraint sum(c in index_set(coins)) (coins[c]*values[c]) == total;
solve minimize sum(coins);

Запускаем онлайн, получаем ответы за секунды.


Другие «сложные» задачи

  1. Максимальная прибыль на акциях
    Дано: цены за день.
    Решение: купить до продать, максимизировать prices[sell]-prices[buy].

    array[int] of int: prices;
    var int: buy; var int: sell;
    constraint sell > buy;
    solve maximize prices[sell]-prices[buy];
    
  2. Три числа дают 0 в сумме
    Нужно ли среди списка выбрать 3 числа со знаками ±1, чтобы сумма была 0?

    array[int] of int: nums;
    array[index_set(nums)] of var {-1,0,1}: coef;
    constraint sum(i in index_set(nums)) (nums[i]*coef[i]) = 0;
    constraint sum(i in index_set(nums)) (abs(coef[i])) = 3;
    solve satisfy;
    
  3. Самый большой прямоугольник в гистограмме
    Ширина столбцов = 1, высоты заданы.

    array[int] of int: h;
    var 1..length(h): x; var 1..length(h): dx; var 1..max(h): y;
    constraint x+dx <= length(h);
    constraint forall(i in x..x+dx) (y <= h[i]);
    solve maximize (dx+1)*y;
    

Плюсы и минусы солверов

  • + Код в 3–5 строк, добавление новых ограничений бесплатно.
  • Сложность работы непредсказуема, медленнее «идеального» алгоритма.
  • На собеседовании спросят «а сложность?» — ответа нет.

Вывод: если нужен рабочий код быстро — бери солвер; если нужна гарантированная скорость — пиши алгоритм вручную.

by mpweiher • 12 сентября 2025 г. в 14:44 • 624 points

ОригиналHN

#minizinc#constraint-programming#leetcode#algorithms#interview#optimization

Комментарии (498)

  • Кто-то предлагает решать «задачи на подбор монет» и прочие LeetCode-загадки не вручную, а вызывать готовый constraint-/SAT-/SMT-солвер — быстро и универсально.
  • Интервьюеры возражают: «мы хотим увидеть, как ты сам пишешь алгоритм, а не вызываешь библиотеку; иначе как проверить сложность и масштабируемость?»
  • Сторонники солверов отвечают: в продакшене важен рабочий результат, а не «олимпиадная остроумность»; к тому же солвер легко добавляет новые ограничения.
  • Часть комментаторов считает, что LC-интервью вообще плохо предсказывают рабочие навыки и дискриминируют тех, кто не зубрит шаблоны.
  • Итог: constraint-solvers — мощный инструмент, но на типовом собеседовании их использование чаще всего «вне правил», поэтому приходится писать ручное решение, даже если в реальной жизни ты бы просто вызвал OR-Tools.

An engineer's perspective on hiring (jyn.dev) 💬 Длинная дискуссия

Почему наём — боль

Компании теряют время: 9 раундов, охота за «трендовыми» разрабами, не могут отличить программиста от LLM. Кандидаты страдают: лучшие разрабы (Rust, Haskell) проваливают стресс-интервью, рекрутеры называют их «не-технарями», а потом пропадают на месяцы.

Каким должен быть хороший процесс

  1. Различать сеньора и маркетолога с ChatGPT.
  2. Применимо к работе: код, архитектура, ревью, документация.
  3. Долгосрочно: люди не взаимозаменяемы, уход дорого, специализация под стек выучивается за месяц.
  4. Экономно: инженерное время дорого.
  5. Уважительно: неуважение отпугивает лучших.
  6. Вкус: быстрое, но грязное решение — долгий долг команде; «клей» (поддержка коллег) множит продуктивность.

Почему популярные форматы не работают

  • Live-coding / LeetCode
    Не различают, не про работу, уничтожают уважение и вкус, дорогие при многократных раундах.

  • Take-home
    Легко сгенерировать ChatGPT, неуважительны к времени кандидата, отпугивают сильных.

  • Проектирование архитектуры
    Лучше: ChatGPT не пройдёт, близко к реальной работе, можно оценить вкус и командное влияние.

by pabs3 • 09 августа 2025 г. в 09:49 • 143 points

ОригиналHN

#rust#haskell#recruitment#interviewing#software-engineering#code-review#live-coding#leetcode

Комментарии (171)

  • Современные «интервью» больше похожи на серию экзаменов, чем на профессиональный разговор.
  • Многие считают, что достаточно 1-2 коротких встреч или пробы через контракт «temp-to-perm», чтобы понять, подходит ли человек.
  • Популярные live-coding и leetcode почти не отражают реальную работу и отбирают не тех специалистов.
  • Лучше обсуждать реальные задачи, ревьюить существующий код или решать мелкий баг в паре — это ближе к ежедневным обязанностям.
  • Кандидаты теряют время и энергию на домашние задания и 9-часовые циклы, поэтому всё чаще «интервьюируют» и сами компании.