Comments 35
вот бы всех компаниях так тестировали…
реализация несложных алгоритмов дает точно такое же представление о квалификации как и тесты с вариантами, т.е. никакое. хотя задачку решать явно веселей, чем вспоминать глубины апи в том же ббенче.
Истинно так. Такие тесты имеют смысл только как средство первичного отбора — когда физически нет возможность пригласить на интервью сотни людей, приславших резюме. Ибо неэффективно тратить своре время на разговор с человеком, который после прочтения «Java за 24 часа» присылает резюме на Senior Java Developer. Для чего-то большего такие тесты бессмысленны.
Эмм… А там всем выдает результат, что вы «better than 99% of all test takers»?
Похоже на то)
Это вы по результатам теста или после просмотра правой колонки на сайте говорите? Мой опыт прохождения этого теста позволяет утверждать, что есть еще, как минимум, одна оценка — 86%. :)
По своим результатам теста.
Вы контроль исходных данных в своем решении производили? Если да, то мы сразу же можем вычислить его максимальную стоимость.
PS Жаль, что полный список тестов решений просмотреть не дают. Или хотя бы детализацию по пройден/завален для каждого решения.
PS Жаль, что полный список тестов решений просмотреть не дают. Или хотя бы детализацию по пройден/завален для каждого решения.
Вы контроль исходных данных в своем решении производили?Вы имеете в виду валидацию параметров переданных в функции, которые было нужно дописать?
Да, именно их. В порядке эксперимента я решил не валидировать входящие параметры. Да и вообще не прогонял тест локально, только проверял на наличие синтаксических ошибок.
Я никогда не понимал работодателей, которые дают решать задачки «уровня районной олимпиады». Дайте им практическое задание! Пусть напишут кусок кода, над которым вы работаете или работали. Или пусть его оптимизируют. Оцените насколько эффективно решение, насколько читаем код
Я не пишу на JAVA, но стало интересно, а выполнение кода тестируемых на сервере безопасно?
Еслибы такой был бы для PHP то теста давно бы не существовало, нашлись бы вандалы.
Как с JAVA дела бстоят?
Еслибы такой был бы для PHP то теста давно бы не существовало, нашлись бы вандалы.
Как с JAVA дела бстоят?
Вполне возможно, что для выполнения попросту выделен отдельный компьютер, на котором попросту нечего вандалить. Или виртуальная машина. Коду даётся, скажем, 10 секунд на исполнение, а потом назад копируются результаты (если есть такие).
> Еслибы такой был бы для PHP то теста давно бы не существовало, нашлись бы вандалы.
Ерунда, просто блокируется всё то, что не нужно для решения алгоритмических задач: лишние библиотеки, ввод/вывод куда-либо помимо стандартного.
Существует немало систем автоматической проверки с PHP/Perl/Bash в качестве допустимых языков, например:
acm.mipt.ru/
www.spoj.pl/
Ерунда, просто блокируется всё то, что не нужно для решения алгоритмических задач: лишние библиотеки, ввод/вывод куда-либо помимо стандартного.
Существует немало систем автоматической проверки с PHP/Perl/Bash в качестве допустимых языков, например:
acm.mipt.ru/
www.spoj.pl/
Во-первых в Java есть такая замечательная вещь как SecurityManager, который позволяет контролировать доступ к тем или иным частям API JVM.
Во-вторых, скорее всего весь код выполняется в изолированном виртуальном контейнере и не может вторгнуться в родительскую ОС.
Во-вторых, скорее всего весь код выполняется в изолированном виртуальном контейнере и не может вторгнуться в родительскую ОС.
Это естественно, что задачи более адекватны, нежели тесты с вариантами.
Помоему при таком способе тестирования у людей с опытом в ACM большое преимущество)
Причем не просто большое, а колоссальное — в ACM совершенно другой подход к программированию. Но, увы, если цель стоит проверить способность писать обычный, а не ACM-код, то такой способ тестирования даст заведомо некорректный результат.
Это скорее не способ тестирования а способ отсева челок, которых будут тестировать более подробно.
АААА!!!
Решил пройти тест, написал три задачи, решение для четвертой (подсчет количества уникальных комбинаций монет) написал в виде супер метода:
return new Random.nextInt(cents/2);
и получил результат в 96%
Решил пройти тест, написал три задачи, решение для четвертой (подсчет количества уникальных комбинаций монет) написал в виде супер метода:
return new Random.nextInt(cents/2);
и получил результат в 96%
Буду рад если кто расскажет об алгоритме для расчета уникальных комбинаций, или хотя бы даст набор ключевых слов для гугла
Динамическое программирование.
dp[k] — количество способов представить k в виде суммы монет уже учтённого номинала.
dp[k] — количество способов представить k в виде суммы монет уже учтённого номинала.
public static int countWaysToProduceGivenAmountOfMoney(int cents) { int[] dp = new int[cents + 1]; dp[0] = 1; for (int x : new int[] {1, 5, 10, 25, 50}) for (int i = 0; i + x <= cents; ++i) dp[i + x] += dp[i]; return dp[cents]; }
Не совсем согласен с утверждением про тесты. Возможно в Ббенче много вопросов на API, но к примеру в Sun Certified Java Programmer (SCJP) не более 20 % на знание API. Весьма много вопросов на concurrency, на знание ООП и занание коллекций, а это базовый уровень знаний. Я не согласен, что человек может правильно подобрать класс в collections по документации. Т.к. программист, который не очень хорошо знает это, будет использовать то, что ему знакомо, и врят ли будет вдаваться в подробности других классов. Ну а про понимание потоков я вообще молчу.
P.S. сертифицированлся и в brainbench и в sun'е.
P.S. сертифицированлся и в brainbench и в sun'е.
Берем N несложных задач с какого-нибуть problemset архива вроде acm.sgu.ru и просим кандидата решить. Знаю живые примеры такой политики. В чем уникальность метода?
Sign up to leave a comment.
Более правильный способ тестирования Java программистов