Примеры тестовых заданий для iOS разработчиков

от автора

Я воспринимаю тестовые задания как хороший и адекватный метод отбора людей (для противников этого мнения есть голосовалка в конце поста), ведь работодатель может оценить конкретно то, что и будет делать сотрудник за своим рабочим местом. И поэтому зачастую с энтузиазмом принимаюсь за их выполнение, не смотря на то, что делать их приходится по ночам. К тому же, задания обычно небольшие и их можно расценивать как написание прототипов — а прототипы писать я тоже люблю. В общем опыт положительный, а положительный настрой — великое дело.

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

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

Задание 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
Желаете показать примеры задания + решения (?) — можно поделиться в коментах.

Спасибо за внимание.

Опрос:

Я участвую в интервью как кандидат и считаю, что тестовые задания

Проголосовал 1 человек. Воздержавшихся нет.

Я отбираю людей, провожу интервью и считаю, что тестовые задания

Никто ещё не голосовал. Воздержался 1 человек.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

ссылка на оригинал статьи http://habrahabr.ru/post/254933/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *