Pull to refresh
102
0.2
Роман Смирнов@Source

Head of Elixir at Ecom.tech

Send message

Это "static void Main" сокращенно, для тех, кто помнит что надо написать, но ему лень :-)

Если что, ветка про тестовое задание на оптимизацию, как альтернативу тупым задачкам. Или вы ожидаете, что кандидаты будут решать реальные проблемы вашего продакшена за 1 час?
В принципе задание на оптимизацию конкретной выборки — это тоже вариант. Даёте доступ к БД, медленный запрос и задание ускорить выборку. Но если Вы сами потратили 2 дня, то странно будет ожидать, что другой человек справится за 1 час. А если справится, компания готова ему платить в 10-15 раз больше, чем Вам?


В результате выход нашелся, добавил в order by фейковое условие, которое пустило оптимизатор по нужному следу.

Как-то костыльно и хрупко выглядит, где гарантия что после обновления минорной версии MS SQL сохранит нужное вам поведение? Я бы попробовал "сначала через хэш мерж склеить две других таблички" в подзапросе, чтобы у планировщика не было выбора, а потом уже поверх него добавить всё остальное.

У вас в финальном варианте $curr не определён при $n <= 3, и нет проверки что $n > 0
Ну и мемоизацию не помешало бы докрутить, а то нафига всю последовательность пересчитывать при каждом вызове xD

Это не разговор, это фантазии arheops. Вы такой код (завязанный на характеристики конкретных моделей железа) за пару часов не напишете, а если и напишете, то это будет говорить о вас с негативной стороны, если речь не идёт о разработке под микроконтроллеры.


По конфигурации нельзя понять, какой вариант из них имеет место

Можно. Характеристики конкретных моделей никто не скрывает.

Эм, а конфигурацию выписать и приложить к заданию сложно что-ли? Зачем гадать? Да и, по факту, не упрётесь вы в железо в рамках тестового задания. Что вы там собрались оптимизировать за 1-2 часа, чтобы модель процессора влияла на место вашего алгоритма в общей таблице результатов?

Он просто сделает задачку быстро и четко
String.Split(" "), цикл, String.Find()

Вы это в контексте данной задачки считаете решением?
Она же изначально сформулирована не как задача, а как проверка "конформизм vs профессионализм": прогнётся ли человек под вас в стрессовой ситуации, поступится ли профессиональной этикой, начав писать то, что вы просите?

Ахах, ну как вариант )))

Ну, не многие конторы пишут софт под конкретное железо. Можно изначально рассчитывать на SSD и более-менее современный проц, но жёстко оптимизировать под конкретные модели — это слегка перебор в большинстве случаев.
А так, можно и тестовый стенд выделить, чтобы все решения в одних условиях сравнивать. Во всяком случае, это достаточно реалистичная задача, которая позволяет отличать сеньоров от джуниоров.

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

И как из этого следует "решит и любые другие"? Другие задачи на то и другие, что они принципиально отличаются.

Это звучит примерно как: нас устраивало O(nˆ3), и всё было нормально до тех пор, пока n не начало расти.

Но есть одно «но»: человек, который умеет решать подобные таски, решит и любые другие.

Вы прикалываетесь? Все бы тогда джунами обошлись, если бы учебные задачки позволяли решать реальные.

Таким подходом хорошо нанимать джунов, но не сеньоров же. Сеньор должен вас зае**ть на первом же этапе кучей вопросов. Почему города хранятся в массиве? Как часто возникает задача поиска городов? Проходит ли ввод от пользователя валидацию формата? Зачем мы даём пользователю вводить несколько городов в одно поле? Какую пользовательскую задачу мы вообще решаем? Какие SLA есть к этой задаче? И если вы вразумительно не сможете ответить на все эти вопросы, то контрольный: Нафига вы меня спрашиваете такую дичь?


Но и не просить писать код — это тоже же глупость, так реально нанять человека, который вообще не умеет код писать.

Ну конечно, как минимум 5+ лет работал программистом и не умеет писать код.
Работа сеньора состоит в том, чтобы сначала думать, а не бросаться кодить. Поэтому всякие учебные задачки и перестают работать. Если у задачи нет никакой практической пользы, то она может поставить в тупик лучших специалистов. Ведь их прямая обязанность — избегать решения подобных задач, т.к. решать любую бесполезную задачу — это прямые убытки для бизнеса.

например, дается кусок кода, задача уменьшить время исполнения в два раза, чем не практическая задача?

Кстати, очень хороший вариант. Можно даже без уточнений во сколько раз… просто ускорить. Кто сильнее ускорит, тот и больший молодец :-)

только программист может знать когда в его программе лучше сделать сборку мусора

Поэтому хотелось бы, чтобы со сборщик перестал быть черным непредсказуемым ящиком.

В чём проблема? Пишите на Rust.

Явный вызов GC — это скорее симптом того, что у вас что-то не в порядке с самим алгоритмом. Как правило, в таких случаях достаточно несложно переписать так, чтобы, в принципе, минимизировать аллокацию памяти.

Для отдельных звуков — Sounds American, для следующего этапа — Speekify.
В принципе, если не с нуля, то можно сразу переходить к повторению за носителями, а звуки подробнее изучать и прорабатывать именно те, которые тяжело даются.

Ведь можно повторять за native speaker-ми и сравнивать насколько фонетически похоже.

Это заодно и понимание на слух очень хорошо развивает. Ну и можно автоматизировать процесс сравнения для удобства.

На Github обычно по звёздочкам меряют. От 100 звёзд можете считать проект условно популярным, от 1000 уже объективно популярным.
Можно ещё по кол-ву скачиваний считать, тут тоже хотя бы 1000 на 1 версию надо набрать.

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

Information

Rating
3,164-th
Location
Россия
Works in
Registered
Activity