3 уровня заданий на собеседование

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

3 уровня заданий на собеседование

Сообщение rezak90 » 26 июл 2012, 11:08

Всем привет! Хочу предоставить всем задания которые проходятся на собеседовании. Скажу сразу что у каждой фирмы свои методы и подходы к собеседованию, но это уже отдельная тема (если надо то и этим поделюсь).
И так задачи состоят из трёх уровней (0-2). Вы можете начать из того уровня на который вы себя оцениваете (мне пришлось начинать с нулевого, так как я на тот момент не видел андроида даже в глаза :? , но у меня был опыт в java и других языках). И так собственно задачи:

Нулевой уровень. На этом уровне предлагается написать приложение "простое десктопное" однопоточное. Например: блокнот, калькулятор. Здесь ничего сверхестественного нету, все знакомы с этими программами на Windows'e, а если на Android'e то ещё легче будет. Обычно конкретное ТЗ не ставят, говорят вот "напиши калькулятор", а уж потом начинают придераться почему криво почему нету этого (вот тута ещё проверяется и ваша фантазия как разработчика, сможете вы сделать красивый интерфейс, понятный код и т.д.). Но по правилам нужно ТЗ и я постараюсь более конкретно описать задачу. Так как я писал калькулятор то предоставляю требования к нему:
  • Интерфейс (он должен быть простым и понятным, не надо придумывать велосипед);
  • Меню (в любом приложении должно быть меню, хотя бы из одного пункта About где указана версия приложения и автор);
  • Результаты (имеется в виду точность подсчёта, это даже вам маленькая подсказка что бы не использовали стандартные типы, с выбором типа должны потом объясниться);
  • Функции (что бы калькулятор реализовывал хотя бы 4 простых операции элементарной математики, если будет больше это вам только плюс);
  • Компоненты (уже на нулевом уровне нужно уметь пользоваться градиентами, селекторами и т.д., серые стандартные кнопочки не кому не интересны, включайте фантазию).
На счёт требования знаний, требовать в этом задании трудно чего то. Вам нужно знать хотя бы два компонента (Button, TextView), меню, основы Java и ООП. И кстати здесь в основном проверяются знания ООП и Java так как будут заморочки с обработками ошибок, деление на ноль и т.д. ;)

Первый уровень. На этом уровне уже предлагается написать приложение которое работает с одним из сетевых протоколов и которое требует многопоточности. Например: новостная лента(RSS), парсер валют или биржевых котировок, авторизация на каком нибудь сервисе. Мне пришлось писать новостную ленту, отличное задание которое даёт возможность поработать с http протоколом и XML. Никто не заставляет писать универсальную ленту для любого сервиса, напишите хотя бы для одного какого нибудь сервиса, но что бы это было грамотно и правильно. И так требования:
  • Интерфейс (здесь вообще заморачиваться над интерфейсом не стоит, запустили приложение, оно сразу начинает парсить и выводить список новостей и потом переход по новостям, но если вы придумаете что то то вам только плюс);
  • Меню (как я уже говорил меню всегда должно быть, плюс подсказываю возможность обновить новости, и например две опции "день/ночь");
  • Многопоточность (я думаю каждый должен знать что любой http запрос должен выполняться в отдельном потоке, так что думайте, выбор какой способ многопоточности выбирать должны объяснить);
  • XML (должны знать что существует 2 способа парсинга XML + XmlPullParser, так что с выбором тоже должны объясниться).
Требования: знание работы с http протоколом, работа с потоками, стандарт RSS, парсинг XML документа. Из компонентов нужно знать хотя бы меню и TextView, адаптеры и ListView Большим плюсом будет если будете распарсивать новости с картинками (а если с аудио или видео то вообще супер).

Второй уровень. здесь надо проявить знания и умения использовать посторонние API. Разъясню. Например написать приложение которое использует VK API, google maps API, gmail API, facebook api и т.д. Не обязательно даже использовать api иногда можно обойтись простыми (но главное правильными) get/post запросами. Целью является написать приложение для одного из сервисов. Я выбрал google maps, конечно легче из всего что можно было но это было интересно 8-) Требований будет мало, на этом уровне разработчик уже много знает и по этому включает своё воображение.
  • Google Maps Api (всё просто, читаете мануалы, смотрите примеры, здесь проявляется то как вы сможете разобраться с посторонней библиотекой);
  • Интерфейс (про меню уже умолчу, а как такового интерфейса здесь нету, карта и всё на ней с помощу api);
  • Функции (когда прочитаете мануалы то сами сможете понять какие функции стоит лучше реализовать, та и достаточно зайти на maps.google.com и самому посмотреть, но от себя скажу что хотя бы такие функции должны присутствовать: показывать на карте ваше местоположение, возможность добавление маркеров, прокладка маршрута, менять статусы карты - физическая и т.д.).
Требования: просто разобраться в api google.maps, если до этого момента не знали как работать с местоположением эмелятора то посмотрите в гугле :D , ваша свобода действий над приложением безгранична, так что дерзайте ;)

Если кто заинтересовался то пишите сюда ваши пожелания и т.д. Выкладывайте выполненные задания, по возможности буду проверять/подсказывать. В общем не стесняемся. Критика тоже приветствуется.
R.id.team
Политика на форуме запрещена

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: 3 уровня заданий на собеседование

Сообщение Finch » 26 июл 2012, 13:33

Я так понимаю ты описал какими 6ывают задания на со6еседовании?
Ну у каждой компании по разному для некоторых хороший уровень это создать колекцию ра6отников, вывести результат последних 3-х на екран, создать классы наследники от а6страктного, создать интерфейс
Как-то так =)

п.с. Судя по твоим примерам я прохожу по категории 2+ =)
ти з якого міста та в якій компанії працюєш, якшо не секрет?)))
CEO of a company R.id.team

Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Re: 3 уровня заданий на собеседование

Сообщение andev » 26 июл 2012, 18:11

Не спрашивают ли о уже реализованных проектах на меркете?
Какое время дается на выполнение и чем можно пользоваться?

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

Re: 3 уровня заданий на собеседование

Сообщение rezak90 » 27 июл 2012, 00:25

конечно спрашивают и о опыте и о существующих возможных проектов. Выше перечисленную схему я описал тем у кого нету ни опыта ни проектов. Но я думаю если бы у Вас был бы проект/опыт то всё равно дали бы задание но не нулевой уровень а второй, или придумали бы особенное что то. Времени даётся обычно где то 3 дня, приходишь показываешь, тебе делают замечание (так как с первого раза ты не сделаешь всё идеально, ибо ты без опыта, я хоть и учился 7 лет колледж и универ, но оказалось в работе совсем другие подходы) и дальше идёшь переделывать и приходишь через 3 дня (можно и раньше, просто 3 дня это придел).
Чем пользоваться? желательно кончено своими руками и мозгом :D , единственное что могу сказать так это желательно делать всё своими руками, например не использовать посторонние либы для парсинга xml так как это легче и не даёт понять работодателю о том как вы мыслите и т.д.
R.id.team
Политика на форуме запрещена

Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Re: 3 уровня заданий на собеседование

Сообщение andev » 27 июл 2012, 03:12

3 дня ? )))
я думал это нужно сделать при них (по крайней мере 0-1 уровень можно осилить за несколько часов вместе с тестингом и выловом большинства ошибок). На третий уровень, если впервые работаешь с технологией, но можешь гуглить - часов 5.

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

Re: 3 уровня заданий на собеседование

Сообщение rezak90 » 27 июл 2012, 08:04

город у нас не большой, толковых людей мало, если интересно то могу рассказать как допустим происходят собеседования в Киеве, Одессе и т.д. Там конкуренция побольше соответственно спрос с соискателя больше.
R.id.team
Политика на форуме запрещена

Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Re: 3 уровня заданий на собеседование

Сообщение andev » 27 июл 2012, 12:06

Да, интересен Киев, буду рад любой инфе :)
И из какого города вы сами, в какой компании работаете?

Coment
Сообщения: 22
Зарегистрирован: 10 авг 2012, 16:27
Откуда: Ukraine, Lviv

Re: 3 уровня заданий на собеседование

Сообщение Coment » 18 сен 2012, 23:36

Мне на одной фирме дали тестовое задание, создать программу - после запуска появляется ListView состоящий из двадцати пунктов ( в каждом - thumbnail изображения, его URL и chekbox ). Пользователь выбирает картинки чеками и жмет "старт", идет загрузка из сети + виден прогресс (сколько и на сколько закачалось), рисунки естественно кешируються и сохраняются в отдельной папке (телефон, SD на выбор). Из меню приложения user может перейти в activity, где в GridView, лицезреть результаты загрузки. И наисать ко всему этому спецификацию on English. В общем, в сети есть "велосипеды" подобного (UniversalLoader итд.), но спрашивать то будут с меня =) В общем, пока, учусь "андроидить", но будем думать, что даже если и не на ту фирму, то уж junom, после такого опыта можно будет рыпаться в другие.

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

Re: 3 уровня заданий на собеседование

Сообщение rezak90 » 18 сен 2012, 23:49

Ну немножко не согласен с таким подходом к заданию со стороны ПМ (ну или ТМ, когда как). Так как когда рассказывают что нужно тебе сделать и как то пропадает творчество программиста. То есть они не смогут оценить твой уровень "высказывания" (я хз как это назвать, проще наверное "творчество", как бы ты видел реализацию той или иной задачи - самое главное как бы ты сделал а не как они сказали). Лучше давать задания, в виде: "Привет! Сделай мне виджет будильник. Приноси завтра!", а вот как сделай и как он должен выглядеть это на твоё усмотрение, если удивишь то тебе же лучше, нет тебе же хуже))) Обычно с таким подходом приносят велосипед, потом этот велосипед факают, далее идёшь переделывать, приносишь и опять факают и так получается рекурсия с двумя условиями выхода: 1) им понравилось; 2) ты их настолько утомил что тебе сказали "давай досвиданья" :D
R.id.team
Политика на форуме запрещена

Coment
Сообщения: 22
Зарегистрирован: 10 авг 2012, 16:27
Откуда: Ukraine, Lviv

Re: 3 уровня заданий на собеседование

Сообщение Coment » 18 сен 2012, 23:56

Эмм... сорри, я просто не упомянул, в ТЗ по почте было " Создайте список из двадцати эскизов картинок, user может выбрать несколько или все и загрузить". Это я уже приблизительно свою спецификацию описал :) Кстати, тут кто-то спрашивал "как выглядит ТЗ?", - Ну вот так :)

Ответить