Страница 1 из 2

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

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

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

Добавлено: 03 сен 2013, 21:26
rezak90
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. После завершения игры выводится диалог на оба устройства, приветствующий победившего игрока.

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

Добавлено: 03 сен 2013, 21:30
rezak90
Тестовое задание 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.

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

Добавлено: 03 сен 2013, 21:32
rezak90
Тестовое задание 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. Реализация автоматической синхронизации аватарок будет большим плюсом.

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

Добавлено: 01 июн 2014, 21:06
kondra007
Прошу прощения, а "ответов" (типовых решений) на эти задания нет?

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

Добавлено: 02 июн 2014, 00:43
rezak90
Все эти задания когда либо кто то решал (я или те кто мне его давали). Но не вижу смысла делиться решениями, та и сомневаюсь что они сохранились. Смысл этого топика, что бы вы готовили себя сами посмотрев предварительно то что вас ждет и чего ожидать на собеседовании.

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

Добавлено: 23 сен 2014, 10:07
sgtraf
Сколько дается времени на решение одной задачи для юниора?

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

Добавлено: 23 сен 2014, 10:50
rezak90
sgtraf писал(а):Сколько дается времени на решение одной задачи для юниора?
Когда как. От полудня до 1 недели. А иногда говорят когда сделаешь тогда и приходи. Все зависит от конторы.

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

Добавлено: 23 сен 2014, 11:22
Mikhail_dev
И на всякий случай прочтите мой пост - viewtopic.php?f=53&t=1735#p11836

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

Добавлено: 23 сен 2014, 22:24
rezak90
Mikhail_dev писал(а):И на всякий случай простите мой пост - viewtopic.php?f=53&t=1735#p11836
прощаю :lol: :lol: :lol:

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

Добавлено: 23 сен 2014, 22:49
Mikhail_dev
Ну теперь я спокоен :lol:

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

Добавлено: 26 сен 2014, 14:23
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.

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

Добавлено: 26 сен 2014, 17:43
altwin
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.
ужасно когда задания для джуниора составляет другой джуниор... :(

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

Добавлено: 26 сен 2014, 18:09
anber
Был я недавно на собеседовании, по 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, но про него я не ответил.

Чего хотел человек добиться задавая такие вопросы я не знаю :?:

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

Добавлено: 27 сен 2014, 11:31
rezak90
я на 98% вопросов ответов не знаю)))

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

Добавлено: 27 сен 2014, 18:15
Foenix
та с тобой как раз все ясно :-D

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

Добавлено: 27 сен 2014, 21:11
rezak90
Foenix писал(а):та с тобой как раз все ясно :-D
кто бы говорил

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

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

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

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

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

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