Больше чем два месяца назад мы анонсировали отбор в школу Android-разработчиков в Казани. За это время мы получили 575 заявок на участие и 70 выполненных тестовых заданий (невероятная цифра с учетом того, что задание было непростым, а почти 40% из тех, кто подавал заявку, вообще не имели опыта в разработке для Android).


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


В итоге мы отобрали 15 человек:


  1. Искандар Шабаев
  2. Артур Бадретдинов
  3. Денис Михайлов
  4. Константин Родионов
  5. Айдар Фаррахов
  6. Азат Галиуллин
  7. Юрий Перменко
  8. Сергей Микевич
  9. Артур Ельжанов
  10. Алексей Антончик
  11. Аркадий Шарапов
  12. Ольга Тележникова
  13. Сергей Рябов
  14. Ярослав Судник
  15. Антон Казаков

Кстати говоря, у школы получилась очень широкая география — в ней принимают участие люди из 6 городов и 2 стран!


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


Теперь подробнее о том, как проходил процесс отбора. Курс изначально был нацелен на то, чтобы научить участников, которые уже умеют делать клиент-серверные приложения для Android, делать это лучше с точки зрения архитектуры. Поэтому участникам предлагалось реализовать простое клиент-серверное приложение, которое позволяет просматривать информацию о погоде в разных городах. Приложение подразумевало как минимум один серверный запрос и 2-3 экрана (список городов, экран с отдельным городом и экран с добавлением нового города). Более подробные требования к тестовому заданию описаны в документе.


Тестовое задание проверялось по двум ключевым компонентам: сначала с точки зрения пользователя, то есть различные решения по дизайну, неудачные моменты, неправильное поведение и краши. После этого уже изучался код приложения, мы выявляли неудачные или ошибочные решения, а также предлагали варианты, как можно улучшить код и упростить реализацию. Оценки за оба этих компонента были равноценны, они складывались, образуя общий результат.


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


Нас также просили поделиться образцами выполненных тестовых заданий. В качестве такого образца хотелось бы особо выделить приложение Искандара Шабаева, которое сделано на очень высоком уровне как с точки зрения использования приложения, так и с точки зрения кода. Это не значит, что только с таким заданием можно было пройти в школу — можно было сделать и куда меньше, но это проект, на который можно равняться.


Программа курса


После обсуждения с участникам школы мы скорректировали курс таким образом, чтобы он был максимально интересен и полезен. Сейчас план курса выглядит следующим образом:


  1. Введение в архитектуру приложений. Проблема пересоздания Activity.
  2. Классические паттерны A/B/C для обеспечения клиент-серверного взаимодействия.
  3. Фреймворк RxJava и его использование в Android.
  4. Принципы Clean Architecture и их применение в построении архитектуры приложений.
  5. Паттерн MVP.
  6. Unit-тестирование Android-приложений.
  7. UI-тестирование Android-приложений.
  8. Фреймворк DataBinding и его использование в паттерне MVVM.

Также участники высказали немало пожеланий, поэтому мы проведем и небольшие дополнительные лекции по следующим темам:


  1. Проблема Backpressure и способы ее решения.
  2. Фреймворк Google Agera для построения архитектуры приложения.
  3. Фреймворк Mosby для построения архитектуры приложения.
  4. Методология TDD (test-driven development).
  5. Dagger2 как библиотека для реализации принципа Dependency Injection.
  6. Профилирование и поиск узких мест в коде.

И теперь самое главное, после окончания курса 24 сентября, в течение недели все презентации, лекции в текстовом виде и примеры кода по всем озвученным темам будут выложены в свободный доступ для всех желающих! Следите за новостями в блоге компании e-Legion или же за группой GDG Kazan в VK.

Поделиться с друзьями
-->

Комментарии (4)


  1. ndsdmfwg
    30.08.2016 19:33
    +1

    Среди 15 человек только 1 девушка, класс


    1. Arturka
      30.08.2016 19:36

      Это не сексизм :)
      Тестовое задание отправили в общем 5 девушек, из них две прошли, одна отказалась в связи с тем, что не может приехать на такой срок в другой город (справедливости ради надо сказать и ее имя — Светлана Шишкина).

      P.S. Честно говоря, сам замечал такую тенденцию, что Android не пользуется популярностью среди представительниц прекрасного пола :)


      1. inout
        31.08.2016 13:53

        Выражения прекрасный/непрекрасный пол (а так же сильный/слабый, рациональный/эмоциональный и пр.) — все же из сексистского лексикона.


  1. Virtyoz
    31.08.2016 10:42

    Я являюсь одним из счастливчиков, прошедших на школу. Спасибо ребятам из GDG и e-legion, они предоставили действительно хорошую обратную связь непосредственно по проекту, не ограничиваясь общими ошибками.

    Я хочу представить своё тестовое задание на обзор более широкой публике. Буду рад любым комментариям, как говорится, «я не волшебник, я только учусь». Из текущих проблем, у меня куда-то «утекают» activity, о чём меня предупреждает Leak Canary, планирую разобраться на выходных.

    Ссылка на репозиторий: https://github.com/Gaket/InnoWeather