Как Вы относитесь к тестированию при приёме на работу?
вполне решабельны за 10-15 минут
-----
Да ну?
За 15 минут можно выяснить какие ограничения подразумевались дающим задачу.
Дальше будет как у той машинистки - печатаю до 180 знаков в минуту... но такая фигня получается...
Нормальное - т.е. СОЛИД + сопровождаемое - минут 40 кодинга по минимуму...
А недостаток времени может элементарно привести не только к отказу от СОЛИДа, но и вообще от ООП...
И если тимлиду важно, чтобы написанный код был сопровождаемым, то он будет давать такие задания, которые продемонстрируют скилл писать сопровождаемый код.
------
Извини, но тут два разных момента:
- определение задачи - тут, да, работа того кто ее выбирает
- решение задачи - увы, но тут именно работа работяги и множество возможных решений.
При этом определение задачи, как правило, не содержит требований по способу решения и ожидать на 10 отведенных минутах полный кодинг по СОЛИДу - наивно.
У меня почему-то возникает ощущение, что при тесте на позицию кодера, ожидается выполнение задач архитектора и теамлида...
Опять же, все зависит от задания.
------
Задания у них... простые.
В том смысле, что написать за отводимое время - не проблема.
Проблемная часть - понять все подразумевающиеся в задании ограничения.
Но вот имплементировать эти задания по СОЛИДу - времени не хватит.
Точнее - не хватит времени на имплементацию всех необходимых объектов - тебя вынуждают писать в процедурной парадигме.
Ну и смысл? Без знания алгоритма мало кто напишет,
БПФ - это хороший пример алгоритма из области нумерики. Если апплицируешся на позицию, где это требуется, то по тому, может ли человек из головы написать БПФ или хотя бы Гаусса, или QR - можно сказать на сколько он потратит времени, когда будет применять эти алгоритмы в задачах на производстве. Если он ни один алгоритм сам не программировал а, максимум, списывал во время сдачи нумерики в универе, ему будет сложно понять как такие алгоритмы использовать.
То же самое в других областях. Если ты апплицируешся на высокопроизводительный С++, то без хорошего понимания как устроены сами алгоритмы из STL и на сколько хорошо они ложатся на процессорный кеш и конвейер, будет практически невозможно потребовать от человека хорошей эффективности алгоритмов и, одновременной читаемости его кода. То есть тут обяательно, чтоб человек и сортировку написал и рассказал бы почему она может замедляться, и бинарные деревья, и многое аналогичное.
Думаю, в других областях будет тоже также. В бытность фрилансером я на такие вопросы регулярно отвечал и регулярно писал всякие похожие тестовые задачки на собеседованиях.
а со знанием эффективность будет наверняка не очень
конечно же вы правы, я с этим не спорю, и, очевидно, что БПФ даже сейчас хорошо продаваемый алгоритм, конечно с учетом того, что он хорошо заточен под архитектуру, лицензия на FFTW за десяток килобакс - тому подтверждение.
Как то слабо представляю себе программиста который ничего не пишет дома
Я не пишу :) У меня дома семья :)
В том году сделал небольшой пет-проект пока катался в поездах, но никуда его не выкладывал. Просто на интерес. Но это был первый проект, который я делал вне работы за 20 лет.
Если апплицируешся на позицию, где это требуется
Тогда до этого он должен(!) делать что то подобное. Ведь мы говорим о человеке с опытом. Зачем еще раз проверять? Ну и То же самое в других областях.
Мне например, еще ни разу ничего подобного не потребовалось. А если потребуется, то написать код с алгоритма, найти готовый или даже купить, особых проблем не должно быть.
Да ну? За 15 минут можно выяснить какие ограничения подразумевались дающим задачу.
Не говори ерунду. Задача про терратиум не требует больше 15 минут. И там не нужно выяснять никакие ограничения.
При этом определение задачи, как правило, не содержит требований по способу решения и ожидать на 10 отведенных минутах полный кодинг по СОЛИДу - наивно.
Решение покажет подход человека к решению задачи. Если человек от ООП использует только ключевое слово class, то это сразу будет видно, а если человек привык мыслись объектами, то это тоже будет видно :)
У меня почему-то возникает ощущение, что при тесте на позицию кодера, ожидается выполнение задач архитектора и теамлида...
Позиция кодера - это джуниор, т.е. вчерашний студент. Тесты для студентов ТС одобряет :)
можно сказать на сколько он потратит времени, когда будет применять эти алгоритмы в задачах на производстве.
-----
Увы, но нельзя.
Я, например, сейчас БПФ не напишу и даже не объясню как должно быть.
Просто потому что никогда его не изучал.
Это не мешало мне писать и эффективно применять в разработке аналоги БПФ.
Мне просто объясняли что и как хотят посчитать, а Я писал как мне было удобно - получалось что то работоспособное.
А когда умудрялись объяснить все до уровня понимания - то еще и довольно эффективно.
Но само БПФ Я не знаю и ни объяснить, ни тем более написать не смогу...
Если он ни один алгоритм сам не программировал
-----
Пыхх...
Я бы понял если бы было сказано - ни один алгоритм сам не разрабатывал...
Несколько лет назад Я тут спрашивал об эффективности ЛИНКа.
Сам с ЛИНКом до этого не работал - что требовалось - писал циклами с ифами.
Послушал что сказали. Потестил как работает. Поконсультировался на предмет оптимизации.
По результатам - отказался от самописных циклов с ифами и перешел на ЛИНК.
И вот объясни мне - почему Я отказался от программирования алгоритмов? - и - Насколько нужно заменять ЛИНК эквивалентным кодом?
обяательно, чтоб человек и сортировку написал
-----
А ты уверен что сможешь ее написать в точном соответствии с ожиданиями?
Я вот на 100% уверен что не сможешь.
Не потому что не в состоянии, а потому что не знаешь что ожидается в качестве решения.
У меня, например, в качестве написанной "сортировки" ожидается генератор пар индексов для сравнения и свопа... чисто генератор - без функций сравнения и свопа - а писать сортировку именно так почти никто не будет... особенно если время ограничить...
Думаю, в других областях будет тоже также.
-----
Зря так думаешь.
В 97% случаев лепится вполне стандартный код который что-то извлекает из базы, слегка трансформирует и как-то показывает результат.
И так - изо дня в день.
Обучить выполнению этой работы не полного дебила можно за 2-3 месяца без отрыва от осной работы...
хорошо заточен под архитектуру
-----
Хммм.... в хорошей архитектуре, в которой требуется много БПФ, вполне может быть многоканальный аппаратный БПФ.
Ну и нахрена, спрашивается, знать алгоритм БПФ, когда надо уметь программировать ДМА контроллер?
Задача про терратиум не требует больше 15 минут.
-----
У нее до сих пор нет устраивающего меня решения.
Мягко говоря - нет даже корректной постановки задачи - предлагаются чисто умозрительные подходы.
Решение покажет подход человека к решению задачи.
-----
В задачах даваемых мелкомягкими предопределены два момента:
- имя класса
- имя метода класса (иногда - с параметрами).
Дальше ты можешь делать что хочешь.
НО!
Объем тайпинга ограничен 15 минутами.
Дальше смотрим что такое "хороший коммерческий программист" и видим - за рабочий день до 300 строк кода.
Т.е. от тебя ожидается 10 строк - вполне нормально для написания короткой ПРОЦЕДУРЫ.
Как только ты начинаешь описывать объекты - у тебя уходит по 3-5 минут на оформление объекта - т.е. их не больше 5-3 штук (обычно - 5) - их ты оформишь, но не останется времени на написание процесса их взаимодействия - той самой ПРОЦЕДУРЫ.
Подход ты продемонстрируешь, но на подход там смотрят только в том случае если предоставленный код пройдет тестирование.
А он не пройдет - времени не хватило на написание и отладку.
Позиция кодера - это джуниор, т.е. вчерашний студент
-----
Позиция кодера - это для тех, кого натаскали на выполнение кодинга с минимальным пониманием того что он делает.
Например - можно посадить человека на лепку бинов по документации.
Ему, в принципе, не надо ничего знать ни об программировании, ни об компьютерх - ему надо занать где в документации читать и куда и что "в коде" писать. Все. Ни за чем, ни для чего - не спрашивается.
Время на обучение - пара часов - на выходе - идеальный кодер.
свои силы в архитектуре
вот попалось. Знаю что не подойдет
https://www.stepstone.de/stellenangebote--Senior-Software-...
Зря так думаешь.В 97% случаев лепится вполне стандартный код который что-то извлекает из базы, слегка трансформирует и как-то показывает результат.И так - изо дня в день.Обучить выполнению этой работы не полного дебила можно за 2-3 месяца без отрыва от осной работы...
Да, на счет 97% (или около того) согласен. Бог миловал, я таким не работал ни дня, у меня другая специализация. И мне сейчас самому такие тоже не нужны, ибо у нас специфика другая. Из РФ/Украины/Белорусии находятся варианты, но с самоорганизацией часто проблемы, а притащить при карантине довольно сложно, а тут, я имею ввиду на немецком рынке - да, полное отсутствие.
если уже имеется Х++ выполненных проектов. Часть из которых можно и пощупать и увидеть код?
Недоверие?
У меня есть и опыт и проекты. Код от которых я не дам. Потому что его у меня нет. Да какой там код, местами в компах юсб-разьемов не было. Что бы никто ничего не утянул. Что я покажу?
Что я покажу?
То что сделано не на работе. Хотя еще никто ни разу не интересовался
А с работы обычно остается документация пользователя и рекламные материалы. Иногда и видео есть.
Проблемы то в проектах наверняка были и решения нашлись. Об этом то можно рассказать? Этого должно быть по идее и достаточно.
У нее до сих пор нет устраивающего меня решения.Мягко говоря - нет даже корректной постановки задачи - предлагаются чисто умозрительные подходы.
Ну это твое мнение :) Как по мне, так задача сформулирована нормально и никаких непоняток там нет :)
В задачах даваемых мелкомягкими предопределены два момента
Приведи пример их задачи.
Дальше смотрим что такое "хороший коммерческий программист" и видим - за рабочий день до 300 строк кода.
Из контор с такими метриками бежать надо роняя тапки. Хотя, глядя на код, который, по словам шефа, писали консалтеры лет 10 тому назад, платили им за строчки кода :)
Как только ты начинаешь описывать объекты - у тебя уходит по 3-5 минут на оформление объекта - т.е. их не больше 5-3 штук (обычно - 5) - их ты оформишь, но не останется времени на написание процесса их взаимодействия - той самой ПРОЦЕДУРЫ.
Давай сначала задание, а потом будем посмотреть :D
Позиция кодера - это для тех, кого натаскали на выполнение кодинга с минимальным пониманием того что он делает.
Я не вижу пользы в таком специалисте.
задача сформулирована нормально
-----
Ну и где там формализация проделана?
Соответственно решение будет - как понял что вижу...
Приведи пример их задачи.
-----
Я вроде как когда-то постил сюда. Сейчас - не могу - железяка все еще дохлая...
с такими метриками
-----
Это никак не меняет того момента, что время сильно ограниченно и оформление объектов выпадает за отведенный таймфрейм...
Я не вижу пользы в таком специалисте.
-----
"Ты просто не умеешь их готовить!"
Есть куча тупой работы, которую в любом случае надо делать, и для результата без разницы кто будет делать - 20К-кодер или 50К-прогер. Разумеется тимлиду придется больше напрягаться, но это стоит 10К на 20 кодеров. Дальше посчитаешь сам...
Ну и где там формализация проделана?
Чего именно тебе не хватает в том задании? Хочешь формализации? Ну будь любезен четко сформулируй свою мысль.
Соответственно решение будет - как понял что вижу...
Ну так и отлично! Во всяком случае до тех пор, пока ты в состоянии приводить аргументы в пользу своего решения.
Я вроде как когда-то постил сюда. Сейчас - не могу - железяка все еще дохлая...
Ну так по памяти воспроизведи.
Это никак не меняет того момента, что время сильно ограниченно и оформление объектов выпадает за отведенный таймфрейм...
Меняет. В томже задании с террариумом достаточно определить интерфейсы, а само управление - функция на 3 строчки.
Есть куча тупой работы, которую в любом случае надо делать, и для результата без разницы кто будет делать - 20К-кодер или 50К-прогер. Разумеется тимлиду придется больше напрягаться, но это стоит 10К на 20 кодеров. Дальше посчитаешь сам...
Я не знаю, что там у тебя за работа такая. И я не совсем понимаю о каких 10К ты говоришь? Если кодер стоит 20К, а прогер стоит 50К, и если надо сделать работу, которую может сделать либо 20 кодеров, либо 1 прогер, то сам подсчитай что выгоднее.
Это когда дают небольшое задание на программирование.
Задания типа таких (неважно какой язык)?
Каверзные вопросы по C# / Habr
Насколько я знаю, такие дают всем вообще. По крайней мере в России.
Вот тут сеньор-помидор не прошёл на работу к другому сеньору.
Как проходят собеседования у синьоров – Мы обречены #3 - YouTube
Хочешь формализации?
-----
Конечно хочу!
Ну зачем мне на каждый тип террариума/термометра/холодильника-нагревателя писать версию кода?
Ну так и отлично!
-----
Для 99% моих шефов - да. Для меня - нет.
достаточно определить интерфейсы
-----
Угу...
Правда ты опустил один маленький момент - потом надо написать имплементацию и... перекомпилировать и слинковать весь проект.
Для юниоров - приемлемо. Профи же должен сделать чутка по другому...
по памяти воспроизведи.
------
Так оно уже под две пятилетки как было... и память уже подводит.
Посмотри в архиве - должно быть...
которую может сделать либо 20 кодеров, либо 1 прогер
-----
Немного не так.
Либо 20 кодеров за год, либо прогер за 20 лет - скорость набивки тупого кода у них одинаковая.
Теперь - пересчитывай, с учетом того, что через 2 года проект перестанет быть нужным.