Готовимся к собеседованию 2. Реальные задания.

Проверка знаний. Создавайте свои задания или решайте существующие
Правила форума
Информация о разделе и рекомендации по созданию тем: viewtopic.php?f=18&t=1036
Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Готовимся к собеседованию 2. Реальные задания.

Сообщение rezak90 » 03 сен 2013, 21:24

Всем привет! Как и обещал, выкладываю тестовые задания которые дают рекрутеры/работодатели при устройстве на работу. Задания почти (кроме двух) на должность Junior. На джуна всегда дают тестовые задания. На Midle уже как повезёт. Senior'ам очень и очень редко. В общем я бы мог написать много, но за подробностями/советами стучим в личку. Так же если нужно то помогу подготовится к собеседованию и составить резюме. Единственное с чем не смогу помочь это тем кто решил посвятить себя геймдеву.
Задания собирались из тех людей которые обращались за помощью, так что отдельное им спасибо за предоставленный материал.
P.S. материал надеюсь будет время от времени пополняться и если у кого то он есть то пожалуйста поделитесь, думаю всем интересно.
P.S.S. от себя ещё скажу что уровень заданий отличается от компаний и географического положения (города) где собираетесь проходить собеседование.
Последний раз редактировалось rezak90 03 сен 2013, 21:27, всего редактировалось 1 раз.
R.id.team
Политика на форуме запрещена

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение rezak90 » 03 сен 2013, 21:26

GEO TASK (Android Junior)

Приложение состоит из 3х экранов
1. Сплеш (картинка с неоднородным фоном на весь экран)
2. Активити ввода начальной и конечной точки
Содержит:
а) 2 таба Откуда и Куда.
Внутри таба:
• Поле ввода для поиска при вводе геоенкодер определяет вариант и координаты (до 7 штук)
• Список найденных вариантов (видимы 3 шт остальное скролл). Клик по элементу выбирает его.
• Карта показывает место выбранного варианта на карте
б) Кнопка поиска пути. При нажатии переход
на Форму результата.
3. Форма результата:
Карта, смасштабированная таким образом что включает:
• Местоположение пользователя по геолокации
• Путь от точки Откуда в точку Куда, полученный с помошью прямого запроса (HTTP GET) к Google сервису DirectionsAPI (https://developers.google.com/maps/docu ... irections/).
Ответ от DirectionsAPI принимаем в виде JSON. Нас интересуют только координаты детали пути не важны. Отрисовываем в виде Polyline черного цвета.
После получения ответа от сервиса выше карты пишем:
Found или Unknown в зависимости от ответа Google.

Общие требования:
Портрет и ландшафт
Разрещения от 480х800 до 1080х1920
Android 2.3 4.2
Желательно оформление в стиле Android 4.x (Actionbar etc)


Facebook Client (Android Junior)

Реализовать приложение, которое подключается к публичному API произвольной соц. сети (предпочтительно FB/VK) или к другому сервису, который может отдать данные для их последующего отображения.
Если сервис отдает данные с координатами (например, instagram/foursquare), сделать возможность отображения полученных данных на карте.

Приложение должно:
1. Выводить список друзей/follower/фотографов, с фотографиями и минимальным описанием.
2. Выполнять просмотр более детальной информации/списка фотографий.
3. Выполнять просмотр больших фотографий (фотографии должны кешироваться на устройстве).


Network Android Miner (Android Junior)

Описание:
Реализовать Android-игру Miner, которая позволяет играть двум людям по сети.

Требования к исполнению:
1. Java SE 6.0
2. Использование сторонних библиотек запрещено.
3. Ожидаемый результат: исходные коды, исполняемый/установочный apk-файл.
4. Ограничение работы программы по объёму используемой памяти – 32 М
5. Визульный интерфейс реализовывать с помощью стандартные компоненты Android
6. Работу по сети реализовывать с помощью пакета android.bluetooth.
7. Размер игрового поля конфигурируется(Допустимые значения: 32х32, 64х64, 128х128, 256х256)
8. Максимальное количество мин выставленных «Минером» не должно превышать половину количества игровых клеток на поле.

Постановка задачи:
1. Игра начинается с того, что один игрок создает Bluetooth-сервер в своем приложении. Второй игрок соединяется с первым.
2. После успешного соединения выпоняется пункт 3.
3. В приложении есть 2 кнопки: «Be a miner», «Be a sapper». Любой из игроков может выбрать себе соответствующую роль. Но 2 саперов или 2 минеров одновременно быть не может.
4. После выбора роли «Минер» игрок получает доступ к игровому полю(до этого оно должно быть неактивным) и может расставлять мины на свое усмотрение. Плюс в окне игры «Минера» пояляется кнопка «Finish setting of the mines»
5. В случае установки максимального количества мин на поле дожен выводится диалог «Reached maximum number of mines» и игра должна переходить к пункту 7.
6. После завершения установки мин игрок может нажать кнопку «Finish setting of the mines» и передать ход «Саперу», как результат активируется игровое в окне «Сапера».
7. Сапер приступает к игре, как в обыной игре «Сапер»
8. Условие победы «Сапера», если он открывает все мины, «Минера» в противоположном случае.
9. После завершения игры выводится диалог на оба устройства, приветствующий победившего игрока.
R.id.team
Политика на форуме запрещена

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение rezak90 » 03 сен 2013, 21:30

Тестовое задание Android Junior

1) Клиент для сервиса http://jpg.to
Задача:
Разработать клиентское приложение для сервиса http://jpg.to . Смысл сервиса состоит в том что он выдает по url http://ЛЮБОЕ_СЛОВО.jpg.to картинку, которая логически соответствует подставленному слову. Приложение должно иметь форму для ввода слова, кнопку поиска и компоненту для отображения результата.

Требования по функционалу:
1. Поддержка русских символов;
2. Проверка на корректность ввода;
3. Сохранение полученного изображения по желанию пользователя;
4. Вести историю последних 10 запросов;
5. Возможность подбора случайных слов-картинок;

Тестовое задание Android Junior

2) Виджет для рабочего стола
Задача:
Разработать простой виджет рабочего стола, для отображения погоды на сегодняшний день. Источником данных может быть любой интернет-сервис: например http://informer.gismeteo.ru/ (смотреть раздел xml-информер).

Требования по функционалу:
1. Размер виджета должен быть 4х1 ячеек;
2. Виджет должен предусматривать наличие кнопки с функционалом «Обновить данные»


Тестовое задание Android Middle

1) Простой клиент для социальной сети.
Задача:
Разработать клиентское приложение для просмотра своих фотоальбомов в социальной сети (на выбор facebook или vkontakte).

Требования по функционалу:
1. Логин/форма входа для авторизации в соц. сети.
2. Список фотоальбомов: таблица со списком. Ячейка таблицы – миниатюра обложки альбома и его название. Миниатюры должны подгружаться асинхронно, на время подгрузки отображать индикатор круглый загрузки.
3. Фотографии: таблица со списком фотографий. Ячейка таблицы – миниатюра фотографии, ее название, дата загрузки. Миниатюры также должны загружаться асинхронно. При нажатии на миниатюру открывается окно ее просмотра.
4. Просмотр фотографии на весь экран. Реализовать отображение дополнительной информации по фотографии.
5. Поддержка навигации по фотографиям в полноэкранном режиме с помощью жестов.

Тестовое задание Android Middle

2) Виджет для рабочего стола
Задача:
Разработать простой виджет рабочего стола, для отображения случайной картинки с сервиса http://demotivators.to/ .

Требования по функционалу:
1. Размер виджета должен быть не мене 3х3 ячеек и предусматривать растягивание.
2. Виджет должен предусматривать наличие кнопки с функционалом «Обновить данные».
3. Предусмотреть конфигутор виджета с настройками частоты обновления демотиваторов и лимита загружаемых данных в сутки.
4. По тапу на картинке должна стартовать Activity с возможностью полноэкранного просмотра демотиватора, просмотра комментариев и рейтинга, а также возможностью сохранить картинку.
5. Реализовать логику получение данных с помощью Service.
R.id.team
Политика на форуме запрещена

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение rezak90 » 03 сен 2013, 21:32

Тестовое задание Android Senior

1) Приложение для роботы с контактами адресной книги и соц. сетями.
Задача:
Реализовать возможность, с помощью приложения, вручную (возможно также автоматически) изменять аватарки контактов из адресной книги. Аватарка контакта из адресной книги устройства (Google account) должна быть синхронизирована с соответсвующей аватаркой пользователя в соц. сети vkontakte или facebook.

Требования по функционалу:
1. Отображение списка контактов из адресной книги устройства.
2. Для выбранного контакта отобразить новое окно с доступными действиями и отображением полной информации о контакте.
3. Логин/форма входа для авторизации в соц. сети.
4. Отображение списка друзей пользователя в соц. сети.
5. Если контакта нету в друзьях пользователя , то осуществить поиск по пользователям соц. сети, и предложить найти его. Если соответствующий пользователь найден, то «украсть
6. его аватарку» и предложить добавить в друзья в соц. сети.
7. Полученную фотографию «примерить» к контакту и предложить сохранить или отменить изменения.
8. В приложении показать умения использовать Services,Threads, Content Providers и т.п.
9. Приложение должно быть написано с использованием Android SDK 4.*
10. При разработке UI использовать Android Design Guidelines.
11. Реализация автоматической синхронизации аватарок будет большим плюсом.
R.id.team
Политика на форуме запрещена

Аватара пользователя
kondra007
Сообщения: 91
Зарегистрирован: 23 янв 2013, 14:49

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение kondra007 » 01 июн 2014, 21:06

Прошу прощения, а "ответов" (типовых решений) на эти задания нет?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение rezak90 » 02 июн 2014, 00:43

Все эти задания когда либо кто то решал (я или те кто мне его давали). Но не вижу смысла делиться решениями, та и сомневаюсь что они сохранились. Смысл этого топика, что бы вы готовили себя сами посмотрев предварительно то что вас ждет и чего ожидать на собеседовании.
R.id.team
Политика на форуме запрещена

sgtraf
Сообщения: 7
Зарегистрирован: 16 май 2013, 21:28

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение sgtraf » 23 сен 2014, 10:07

Сколько дается времени на решение одной задачи для юниора?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение rezak90 » 23 сен 2014, 10:50

sgtraf писал(а):Сколько дается времени на решение одной задачи для юниора?
Когда как. От полудня до 1 недели. А иногда говорят когда сделаешь тогда и приходи. Все зависит от конторы.
R.id.team
Политика на форуме запрещена

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение Mikhail_dev » 23 сен 2014, 11:22

И на всякий случай прочтите мой пост - viewtopic.php?f=53&t=1735#p11836
Последний раз редактировалось Mikhail_dev 23 сен 2014, 22:49, всего редактировалось 1 раз.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение rezak90 » 23 сен 2014, 22:24

Mikhail_dev писал(а):И на всякий случай простите мой пост - viewtopic.php?f=53&t=1735#p11836
прощаю :lol: :lol: :lol:
R.id.team
Политика на форуме запрещена


Saint_Byte
Сообщения: 26
Зарегистрирован: 03 мар 2013, 13:15

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение Saint_Byte » 26 сен 2014, 14:23

Палю вопросы от знатных спамеров ЛайтСофт job.lightsoft.ru

Тестовое задание компании ЛайтСофт
Не обязательно отвечать на все подвопросы.

1. В чем отличие strong, weak, assign-свойств в классах ObjC?

2. Как добавить в категории класса в ObjC новое свойство? Какой техникой можно воспользоваться, чтобы оно сохранялось при копировании объекта инстансом copyWithZone? Что делать, если нужно добавить новое свойство к объектам в Java, не имея доступа к их исходному коду и не сломав существующий код? Как быть, если объект копируется?

3. Что такое autorelease, @autoreleasepool? В каких случаях нужно волноваться об этом при использовании ARC?

4. Какие классы в ObjC и Java реализуют словари, сопоставляющие объектам-ключам объекты-значения? Какие условия накладываются на ключи в этих классах? Какие операции поддерживают эти классы и какие гарантии производительности они на них дают? В каких случаях имеет смысл использовать эти классы, если ключи - числа?

5. Гарантирует ли класс NSString, что строка будет хранится линейно в неразрывном буфере? А String в Java? Если нет, то в каких случаях может быть иначе?

6. Возможно ли создать в классе ObjC private-метод, который невозможно вызывать откуда-то кроме других методов этого класса? Почему? Как в таких условиях прятать детали реализации от пользователей класса? Назовите несколько вариантов и оцените, в каких ситуациях они практичны.


2
Вопрос 2
Не обязательно отвечать на все подвопросы.

1. Что из себя представляют паттерны Abstract Factory, Composite, Observer, Strategy, Visitor? Где и как они используются в Foundation и UIKit, в Java SE и Android SDK? В чем особенность их реализации в ObjC и этих библиотеках, в Java?

2. Что такое Dependency Injection, для чего этот паттерн нужен? Как он используется в Java, в ObjC?

3. Чем использование синглтона в Java лучше, чем использование статических полей и методов класса? Foundation и UIKit используют слабую версию синглтона, допускающую создание других объектов, кроме общего инстанса. Для чего это сделано?

4. Какой паттерн используется в Core Data для экономии памяти?

5. В каких случаях использование объекта-делегата, реализующего протокол, лучше, чем использование блока?

3
Вопрос 3

Реализуйте клиент GitHub для айфона и/или для андроида и выложите его в GitHub или BitBucket.

Требования:
- Не должен требоваться логин
- При запуске пользователь видит список пользователей (ники и аватары) гитахаба с бесконечной прокруткой и pull to refresh
- При тапе на пользователе появляется экран с дополнительной информацией, включая список репозиториев
- В любой момент пользователь может жестом смахивания направо вызвать боковое меню (как в аппе вконтакте), где есть:
- список 5 недавно просмотренных пользователей
- поле поиска, которое позволяет вручную вбить ник пользователя
- результаты поиска показываются в боковом меню, заменяя спискок недавно просмотренных пользователей

Только вертикальный вид. Можно использовать любые сторонние библиотеки, в случае с iOS желательно использовать cocoa pods.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение altwin » 26 сен 2014, 17:43

Saint_Byte писал(а):Палю вопросы от знатных спамеров ЛайтСофт job.lightsoft.ru

Тестовое задание компании ЛайтСофт
Не обязательно отвечать на все подвопросы.

1. В чем отличие strong, weak, assign-свойств в классах ObjC?

2. Как добавить в категории класса в ObjC новое свойство? Какой техникой можно воспользоваться, чтобы оно сохранялось при копировании объекта инстансом copyWithZone? Что делать, если нужно добавить новое свойство к объектам в Java, не имея доступа к их исходному коду и не сломав существующий код? Как быть, если объект копируется?

3. Что такое autorelease, @autoreleasepool? В каких случаях нужно волноваться об этом при использовании ARC?

4. Какие классы в ObjC и Java реализуют словари, сопоставляющие объектам-ключам объекты-значения? Какие условия накладываются на ключи в этих классах? Какие операции поддерживают эти классы и какие гарантии производительности они на них дают? В каких случаях имеет смысл использовать эти классы, если ключи - числа?

5. Гарантирует ли класс NSString, что строка будет хранится линейно в неразрывном буфере? А String в Java? Если нет, то в каких случаях может быть иначе?

6. Возможно ли создать в классе ObjC private-метод, который невозможно вызывать откуда-то кроме других методов этого класса? Почему? Как в таких условиях прятать детали реализации от пользователей класса? Назовите несколько вариантов и оцените, в каких ситуациях они практичны.


2
Вопрос 2
Не обязательно отвечать на все подвопросы.

1. Что из себя представляют паттерны Abstract Factory, Composite, Observer, Strategy, Visitor? Где и как они используются в Foundation и UIKit, в Java SE и Android SDK? В чем особенность их реализации в ObjC и этих библиотеках, в Java?

2. Что такое Dependency Injection, для чего этот паттерн нужен? Как он используется в Java, в ObjC?

3. Чем использование синглтона в Java лучше, чем использование статических полей и методов класса? Foundation и UIKit используют слабую версию синглтона, допускающую создание других объектов, кроме общего инстанса. Для чего это сделано?

4. Какой паттерн используется в Core Data для экономии памяти?

5. В каких случаях использование объекта-делегата, реализующего протокол, лучше, чем использование блока?

3
Вопрос 3

Реализуйте клиент GitHub для айфона и/или для андроида и выложите его в GitHub или BitBucket.

Требования:
- Не должен требоваться логин
- При запуске пользователь видит список пользователей (ники и аватары) гитахаба с бесконечной прокруткой и pull to refresh
- При тапе на пользователе появляется экран с дополнительной информацией, включая список репозиториев
- В любой момент пользователь может жестом смахивания направо вызвать боковое меню (как в аппе вконтакте), где есть:
- список 5 недавно просмотренных пользователей
- поле поиска, которое позволяет вручную вбить ник пользователя
- результаты поиска показываются в боковом меню, заменяя спискок недавно просмотренных пользователей

Только вертикальный вид. Можно использовать любые сторонние библиотеки, в случае с iOS желательно использовать cocoa pods.
ужасно когда задания для джуниора составляет другой джуниор... :(
Изображение

Аватара пользователя
anber
Сообщения: 584
Зарегистрирован: 10 июн 2013, 15:05
Откуда: UA

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение anber » 26 сен 2014, 18:09

Был я недавно на собеседовании, по Java были такие вопросы:

1) int i =1;
++i+i++ сколько будет

2) String hello = "Hello", lo = "lo";
System.out.print((testPackage.Other.hello == hello) + " ");
System.out.print((other.Other.hello == hello) + " ");
System.out.print((hello == ("Hel"+"lo")) + " ");
System.out.print((hello == ("Hel"+lo)) + " ");
System.out.println(hello == ("Hel"+lo).intern());

из этой статьи очевидно http://habrahabr.ru/post/111189/

3) и рекурсивное получение чисел фибоначчи

да, было еще volatile, но про него я не ответил.

Чего хотел человек добиться задавая такие вопросы я не знаю :?:
Личные сообщения с просьбой ответить на форуме или написать программу я просто удаляю, если я в хорошем настроении. Если в плохом добавляю автора в черный список. По любым другим вопросам feel free to write to me.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение rezak90 » 27 сен 2014, 11:31

я на 98% вопросов ответов не знаю)))
R.id.team
Политика на форуме запрещена

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение Foenix » 27 сен 2014, 18:15

та с тобой как раз все ясно :-D
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение rezak90 » 27 сен 2014, 21:11

Foenix писал(а):та с тобой как раз все ясно :-D
кто бы говорил
R.id.team
Политика на форуме запрещена

Аватара пользователя
Sk_games
Сообщения: 77
Зарегистрирован: 20 янв 2014, 21:13

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение Sk_games » 14 окт 2014, 00:47

А вот как выглядит первое время работы, скажем, в самой простой конторе? Допустим собеседование прошло хорошо, ты приходишь в свой первый день и тебе говорят, что делать. Будут ли прогонять по своим материалам. Как будут относиться руководство, например к тому, как часто использую интернет. Или там не катит того, что ты понимаешь, и лучшим решением будет, рабочий день писать код от руки

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение Mikhail_dev » 14 окт 2014, 08:33

Как будут относиться руководство, например к тому, как часто использую интернет.
Будет ставиться задача и от вас будут требовать её выполнения. Как часто вы будете его использовать - это на ваше усмотрение. Но по головке не погладят, если будете в соц. сетях сидеть.
Или там не катит того, что ты понимаешь, и лучшим решением будет, рабочий день писать код от руки
Не понял смысла предложения. А от чего код пишется? От ноги?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Готовимся к собеседованию 2. Реальные задания.

Сообщение rezak90 » 14 окт 2014, 09:39

Sk_games писал(а):А вот как выглядит первое время работы, скажем, в самой простой конторе? Допустим собеседование прошло хорошо, ты приходишь в свой первый день и тебе говорят, что делать. Будут ли прогонять по своим материалам. Как будут относиться руководство, например к тому, как часто использую интернет. Или там не катит того, что ты понимаешь, и лучшим решением будет, рабочий день писать код от руки
Все зависит от места где устроился. Могут в первый день дать проект. Могут дать книжку читать. Могут отправить в свободное плавание и делай что хочешь.
На счет ограничения интернета, опять таки от места зависит. Некоторые конторы запрещают соц сети, даже музыку качать нельзя - приходишь со своим mp3 и наушниками. Если контора имеет дело с секретными данными, защитой информацией, шифрованием и т.д., то с собой даже флешку нельзя носить.
R.id.team
Политика на форуме запрещена

Ответить