Я воспринимаю тестовые задания как хороший и адекватный метод отбора людей (для противников этого мнения есть голосовалка в конце поста), ведь работодатель может оценить конкретно то, что и будет делать сотрудник за своим рабочим местом. И поэтому зачастую с энтузиазмом принимаюсь за их выполнение, не смотря на то, что делать их приходится по ночам. К тому же, задания обычно небольшие и их можно расценивать как написание прототипов — а прототипы писать я тоже люблю. В общем опыт положительный, а положительный настрой — великое дело.
Здесь я хотел бы поделиться примерами тестовых заданий от разных работодателей: маленьких и больших, зарубежных и отечественных. Названия компаний приводиться не будут. Каждый пример задания будет сопровождаться ссылкой на репозиторий где лежит мой вариант решения. С кодом этим, можно делать все, что угодно: использовать в проектах, исправлять, посылать пул реквесты.
Может быть кому-то это будет просто интересно, кто-то осознает к чему ему нужно готовиться и что нужно уметь, а кто-то поймет что здесь нет ничего страшного и решится отправить резюме.
Внимание: в коде отсутствует API key для giphy.com — нужно вставить самому
github.com/PavelKatunin/GifSearcher
Создать приложение которое стучится по запросу в API giphy.com и достает оттуда гифки по запросу из
UITextField. Отображает анимированные гифки в UICollectionView.
Никаких ограничений по переиспользованию кода озвучено не было, поэтому смело был подключен RestKit через cocoa pods, взяты категории для инициализации UIImage с Gif и написана несложная логика.
github.com/PavelKatunin/GoogleImagesSearcher
Здесь примечательного то, что написание кода нужно было демонстрировать через скайп в течение примерно часа, но доделать можно было потом. Так же было запрещено использовать сторонние библиотеки — только NSURLConnection — только хардкор. Нужно было используя Api Google по запросу доставать картинки и отображать их в UITableView. Так что был создан базовый класс для запросов реализующий NSOperation и пара конкретных реализаций запросов.
github.com/PavelKatunin/AsciiSymbolsCounter
Нужно найти самый частый символ в ASCII строке, при этом мы никак не ограничены по памяти.
Еще все это нужно было распараллелить на 2 потока.
github.com/PavelKatunin/TinyBrowser
Написать простейший браузер с адресной строкой, отображением прогресс бара при загрузке и возможностью ходить назад и вперед по истории, не возбраняется использование WKWebView. Дополнительно к этому делу был реализован поиск из адресной строки и несколько тестов.
В работе еще несколько тестовых заданий, которые я тоже собираюсь выложить в open source если это кому-то будет интересно.
Бывало и так, что просили просто написать контроллер c UITableView с фиктивными данными, но при этом демонстрировать свой экран. Но обычно работодатель хочет удостовериться в том, что вы в состоянии взаимодействовать с серверным API, загружать что-то в бэкграунде и отображать на UI (Часто это вездесущие UITableView или UICollectionView, кстати, работодатели могли бы придумывать что-то похитрее). Важным еще является читаемость кода и архитектура решения. Гораздо шире, но поверхностнее другие вещи обсуждаются на самом интервью. Все в целом — далеко не Rocket science, но будьте внимательны и постарайтесь оставить хотя бы один день для исправления багов, утечек памяти и отладки производительности приложения — это тоже очень важно, они хотят увидеть маленькое, но законченное приложение. Меня пару раз халатность подвела — и это тоже хороший детектор того, что человек не очень то и хочет в эту компанию.
Кстати некоторые задания выкладываются публично, тоже интересно посмотреть goo.gl/PCqa0i
Желаете показать примеры задания + решения (?) — можно поделиться в комментах.
Спасибо за внимание.
Опрос:
Здесь я хотел бы поделиться примерами тестовых заданий от разных работодателей: маленьких и больших, зарубежных и отечественных. Названия компаний приводиться не будут. Каждый пример задания будет сопровождаться ссылкой на репозиторий где лежит мой вариант решения. С кодом этим, можно делать все, что угодно: использовать в проектах, исправлять, посылать пул реквесты.
Может быть кому-то это будет просто интересно, кто-то осознает к чему ему нужно готовиться и что нужно уметь, а кто-то поймет что здесь нет ничего страшного и решится отправить резюме.
Задание 1. Поиск GIF.
Внимание: в коде отсутствует API key для giphy.com — нужно вставить самому
github.com/PavelKatunin/GifSearcher
Создать приложение которое стучится по запросу в API giphy.com и достает оттуда гифки по запросу из
UITextField. Отображает анимированные гифки в UICollectionView.
Никаких ограничений по переиспользованию кода озвучено не было, поэтому смело был подключен RestKit через cocoa pods, взяты категории для инициализации UIImage с Gif и написана несложная логика.
Скриншоты
Задание 2. Поиск картинок.
github.com/PavelKatunin/GoogleImagesSearcher
Здесь примечательного то, что написание кода нужно было демонстрировать через скайп в течение примерно часа, но доделать можно было потом. Так же было запрещено использовать сторонние библиотеки — только NSURLConnection — только хардкор. Нужно было используя Api Google по запросу доставать картинки и отображать их в UITableView. Так что был создан базовый класс для запросов реализующий NSOperation и пара конкретных реализаций запросов.
Скриншоты
Задание 3. Поиск наиболее часто встречающегося символа в ASCII последовательности.
github.com/PavelKatunin/AsciiSymbolsCounter
Нужно найти самый частый символ в ASCII строке, при этом мы никак не ограничены по памяти.
Еще все это нужно было распараллелить на 2 потока.
Задание 4. Маленький браузер.
github.com/PavelKatunin/TinyBrowser
Написать простейший браузер с адресной строкой, отображением прогресс бара при загрузке и возможностью ходить назад и вперед по истории, не возбраняется использование WKWebView. Дополнительно к этому делу был реализован поиск из адресной строки и несколько тестов.
Скриншоты
В работе еще несколько тестовых заданий, которые я тоже собираюсь выложить в open source если это кому-то будет интересно.
Что в среднем.
Бывало и так, что просили просто написать контроллер c UITableView с фиктивными данными, но при этом демонстрировать свой экран. Но обычно работодатель хочет удостовериться в том, что вы в состоянии взаимодействовать с серверным API, загружать что-то в бэкграунде и отображать на UI (Часто это вездесущие UITableView или UICollectionView, кстати, работодатели могли бы придумывать что-то похитрее). Важным еще является читаемость кода и архитектура решения. Гораздо шире, но поверхностнее другие вещи обсуждаются на самом интервью. Все в целом — далеко не Rocket science, но будьте внимательны и постарайтесь оставить хотя бы один день для исправления багов, утечек памяти и отладки производительности приложения — это тоже очень важно, они хотят увидеть маленькое, но законченное приложение. Меня пару раз халатность подвела — и это тоже хороший детектор того, что человек не очень то и хочет в эту компанию.
Кстати некоторые задания выкладываются публично, тоже интересно посмотреть goo.gl/PCqa0i
Желаете показать примеры задания + решения (?) — можно поделиться в комментах.
Спасибо за внимание.
Опрос:
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Я участвую в интервью как кандидат и считаю, что тестовые задания
73.52% это хорошо597
26.48% это зло215
Проголосовали 812 пользователей. Воздержались 316 пользователей.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Я отбираю людей, провожу интервью и считаю, что тестовые задания
73.13% это хорошо362
26.87% это зло133
Проголосовали 495 пользователей. Воздержались 511 пользователей.