Очень сильно меня бесят тестовые задания, которые плохо (чаще - вообще никак) не связаны с реальностью. Казалось бы, программист пишет полезный и востребованный код для заказчика. Нужно испытать новичка - дай ему ту же задачу, над который работал вчера. Вдруг новичок тебя превзойдет - увидит свежим взглядом очевидное и простое решение? Но почему-то программист выдумывает вместо задания полную ахинею, что-то столь невразумительное, что потребуется много усилий, чтобы понять, как такая задача вообще может иметь место в реальной практике.

Пример. Есть пдф с таблицей, задача - распарсить содержимое и перевести в эксель. Не спорю, кому-то задача покажется интересной. Но насколько оправдано то, что этим должен заниматься программист?

На месте руководителя я бы рассуждал так. Пдф маленький, поэтому его сможет перенести в эксель секретарша. Это займет намного меньше времени, чем если бы программист начал писать код. Труд программиста гораздо дороже труда секретарши. Программист будет писать программу день, а секретарша сделает все за час. Предположим теперь, что парсить пдфки нужно регулярно - например, это отчеты из какой-то автоматизированный системы. Это только облегчает дело - достаточно потребовать, чтобы отчеты предоставлялись в структурированном формате. А если заказчик настаивает на пдф, то нужно прямо сказать, что пдф хранит информацию для людей, а не для машин, что при его разборе велика вероятность ошибки, и парсер может выдать неверные данные, что приведет к убыткам.

Заказчик будет полным идиотом, если не внемлет этому аргументу. Он пнет своих, и отчеты будут приходить в джейсоне или иксмле. Выходит, что труд программиста большей частью оказался невостребованным.

Так что думайте в следующий раз, чем занять программиста.