BlastPy: гм, гуглите по запросу "бесконечный скорллинг django". Может и найдете что-нибудь. Но без знаний js все равно не получится нормально разрабатывать в будущем
DarthJS: ну в моем представлении стоит. Не обязательно становиться специалистом в другом языке, но хотя бы посмотреть подходы. Ну и делать это надо уже тогда, когда понимаешь, что рост в js замедлился и ничего нового уже в принципе не узнаешь. Мне очень сильно помогло изучение lisp и erlang после python. Я не стал специалистом в этих языках (вряд ли даже что-то серьезное осилю написать), но начал немного по-другому смотреть на программирование.
Evsign: Yuri Shikanov: в том и дело, что если за 2-3 часа ничего написать не сможет, то что он будет делать на работе? Джуниор все таки это не школьник, который о программирование знает только что это про компьютеры. Минимальный уровень должен быть. Но чего-то ощутимого он сделать за короткий срок не успеет, а грузить его на несколько дней - отбить все желание (наверняка резюме отосланы не к одному работодателю и сделать N заданий каждое по 2-3 дня нереально). А слова это все таки другое. На словах все проще. Мне всегда интересно как человек будет себя идти в рабочей обстановке. Но опять же напомню, что я никогда не ставлю тестовое задание первым этапом. Иногда после беседы и обнаружении, что у человека есть что-то на гитхабе\битбакете (даже у джуниоров сейчас там зачастую есть какой-то мусор типа курсовых, диплома и т. п.) тестовое задание не вижу смысла выдавать, так как есть на что посмотреть из кода.
Yuri Shikanov: ну это Ваш подход, я ничего против не имею, если это устраивает Ваших соискателей. Но я стараюсь давать задания исходя из уровня, чтобы это занимало 2-3 часа максимум и оговаривается, что если за это время не успеют доделать - ничего страшного(все на доверии, конечно. Я понимаю, что джуниоры некоторые сидят куда больше, но это быстро выясняется на разборе перед принятием решения. Следовательно я сразу понимаю, что человек будет скрывать проблемы и в будущем). Затем смотрю на код, решения, спрашиваю где и какие сложности возникли, что осталась доделать, сколько потребуется времени. Это позволяет оценить в моём представлении куда больше, чем просто приложение.
Yuri Shikanov: честно никогда не понимал работодателей, которые считали, что работник чем-то им обязан до трудоустройства. Для джуна это задание на несколько дней. Т.е. несколько дней бесплатной работы, которая никому не нужна. Особенно напрегает когда это первый этап трудоустройства и ничего не понятно (вплоть до условий). Такие вакансии пропускаю сразу, так как если работодатель не уважает моё время до трудоустройства, то и после не будет гарантий
Алексей Черемисин Ну да, так будет быстрее, получается у вас сложность O(N) * (O(C1) + O(C2)) + O(M) + O(L) против O(N)*O(M)*O(L). Это, наверное, самое эффективное, что здесь можно придумать. Но все равно Выше решение дает 1000 + 100 + 10 итерайций + выборку по словарю, которая тоже не бесплатная. Я бы взял Ваше решение (или как минимум break поставил в циклах) + закешировал то, что генерирует этот код.
А, ну и еще не помешают break в if'ах, так как если объекты в списках не повторяются (а по логике кода их повторение было бы нелогичным вроде), то после нахождения нет смысла искать дальше.
Ну либо Ваш запрос:
SELECT e.* FROM employee e LEFT JOIN employee_to_training et ON (e.employeeID = et.id_employee AND et.id_training ='{$get_id}')
WHERE et.id_emp_training IS NULL
Егор: плохо - нарушение инкапсуляции. Т. е. вольный перевод фразы - не стоит лезть впереди очереди и пытаться прицепиться к текущему циклу, добавьтесь в конец очереди и ждите. Т. е. если не смущает нарушение принципов, которые дает ангуляр - то можно и так (правда читал еще мнение, что есть ненулевой шанс того, что после проверки $phase Вы можете увидеть, что цикл запущен, не запускать свой цикл, произойдет переключение контекста и цикл сразу завершается оставив Ваш код в одиночестве). Про $timeout - это обертка над setTimeout которая всегда запускается извне цикла ангуляра. Передавая задержку в 0 секунд Вы говорите таймауту, что нужно запуститься как только так сразу (но асинхронно). Это "сразу" наступает сразу после завершения цикла. Т. е. фактически Вы дожидаетесь своей очереди.
Эдик: ну в целом 2ой вариант и есть приближение. В большинстве случаев будет давать хороший результат, если подобрать пороги. Если задача академическая (как была у меня), то могу предложить вариант к которому пришел - нейросеть, которую обучаем на наборе изображений и подсказываем ей какой формат лучше использовать. Затем она сама вполне адекватно начинает работать (главное не переобучить, а то ее эффективность начнет стремится к нулю). Если же у Вас практическая задача, то да, используйте второй вариант, так как с нейросетью упаритесь создавать\обучать + по скорости не очень.
Oscar Django: зачем такие сложности? Можно просто alphabet = u'абвгдеёжзийклмнопрстуфхцчшщъыьэюя ', но у автора в коде стоит проверка, которые пробелы оставляет пробелами. Ее стоит убрать
Только стоит учитывать, что если человек привязан к нескольким регионам\метро (не зря же многие ко многим), то эти люди будут в результате несколько раз. Если это нежелательно - добавьте DISTINCT
Олег Серебряков: не, пхп сейчас набирает обороты в плане качества языка и зп. Просто я к тому, что если автор хочет ruby, то и стоит учить сразу ruby, так как путь через другие языки довольно странный. Даже психологически трудно уйти с одного языка, где ты умеешь многое на другой, где ты никто.