Компания
283,74
рейтинг
15 декабря 2015 в 15:25

Разработка → Зимняя стажировка для разработчиков в Redmadrobot

image
Привет, Хабр! Мы открываем набор на вторую стажировку для разработчиков в Redmadrobot. Старт — в середине января.

Чего ждать от нас?


Мы собрали список тем, которе будут со всех сторон рассмотрены в рамках стажировки:

Проектирование
  • MVC, MVP, MVVM, MVPM и SOA в iOS- и Android-приложениях
  • Data binding
  • Уместное и правильное применение шаблонов проектирования
  • Разработка по принципам реиспользования и универсальности
  • Поддержка общей кодовой базы в чистоте и актуальном состоянии после каждого WWDC и Google I/O

Многопоточность
  • Модели взаимодействия потоков в Android и iOS
  • Способы общения с main thread
  • Как многопоточность согласуется с жизненным циклом

Безопасность
  • Как по-настоящему защитить HTTPS соединение
  • Что надо знать о шифровании данных на устройстве
  • Root доступ: можно ли добиться безопасности приложений
  • Что делать с Jailbreak на iOS-устройствах
  • Модель угроз: как уберечь доверчивых пользователей от них самих

UI
  • Как стать UI-ниндзей и AutoLayout-джедаем

Android 6
  • Новая модель разрешений
  • Backups
  • Doze mode

Коммуникация в производстве
  • Роль и ответственность разработчика в рамках успеха всего проекта
  • Как общаться с BA, DES, QA и не сойти с ума

Из чего мы исходим при составлении программы
  • Максимально актуальные и нужные навыки
  • Материалы из реальных проектов
  • Вечерние занятия три раза в неделю, которые получится совмещать с работой
  • Сложные и интересные домашние задания
  • Знакомство с внутренней кухней компании
  • Ну и, конечно, возможность стать одним из Роботов для тех, кто на нашей волне

Стажировку проведут лучшие технические специалисты Redmadrobot: Артур Сахаров ( mc_murphy ), Егор Тафланиди ( BepTep ), Роман Чуркин ( firmach ), Максим Ефимов ( MaximEfimov ), Александр Смирнов ( scottKey ), Артем Кулаков ( Fi5t ), Григорий Матвиевич ( fountainhead ) и многие другие.

Что мы ищем в вас?


Вы имеете опыт разработки под мобильные платформы, но хотите разложить все по полочкам? Вы уже пишете код лучше всех и думаете, куда расти дальше? Вы еще не пишете код лучше всех, но являетесь middle’ом и энтузиастом? Давайте синхронизируемся по тем терминам, знание которых мы ожидаем перед началом:

Класс. Объект.
Инкапсуляция. Наследование. Полиморфизм.
Частные методы. Публичные методы. Виртуальные методы.
Конструкторы. Деструкторы. Акцессоры. Мутаторы. Поля/свойства.
Жизненный цикл приложения. Жизненный цикл экрана/страницы.
Ссылки. Указатели. Reference Type. Value Type.

iOS: Протоколы. Категории. Расширения. ARC. Модификаторы указателей. Блоки. Замыкания. id. Селекторы. Отсылка сообщений. Делегаты. GCD. Переиспользование ячеек. View. Контроллеры. Модель.

Android: Интерфейсы. Абстрактные классы. Внутренние классы. Шаблонные классы. GC. Модификаторы доступа. Рефлексия. Boxing/unboxing. Activity. Fragment. View. Adapter. Intent.


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

Стажировка не оплачивается. Лучшие стажеры будут приглашены на постоянную работу.

Как записаться?


Заполнить анкету до 23 декабря — мы выйдем на связь в течение двух недель.
Проведем эту зиму вместе — будет холодно интересно :)
Автор: @redmadrobot
REDMADROBOT
рейтинг 283,74

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

  • +1
    MVPM – что? Это вы сами придумали?
    • +7
      Идея принадлежит Мартину Фаулеру, см. Presentation Model. MVPM — интерпретация этой идеи применительно к iOS SDK.
      • 0
        Мартин пишет,
        As such this material is very much in draft form and I won’t be doing any corrections or updates until I’m able to find time to work on it again.

        Действительно выказываю почтение тем, кто докопался до насалфетных набросков Фаулера. Интересно, намного это полезней того же MVVM в разработке под iOS, например?
        • 0
          Учитывая то, что мне пока ни разу не довелось натыкаться на не то что одинаковые интерпретации MVVM в разных проектах, но даже и MVC — то вполне могут оказаться полезными знаниями (ну или на самом деле очередной интепретацией MVVM :-) ) )
        • +1
          Я бы не стал говорить, что MVPM может быть полезней MVVM.
          Я бы сказал, что каждый из этих шаблонов может быть более уместен в тех или иных условиях.

          Набор классов iOS SDK физически разделяет пользовательские истории на экраны, предоставляя логическую единицу в виде наследников UIViewController. Учитывая подобный подход, мы получаем возможность применения различных шаблонов (MVC, MVP, MVVM, MVPM) в рамках одного и того же приложения. Один экран = один шаблон в самом абсурдном случае.

          Следует понимать, что, с одной стороны, программная логика в рамках экрана может потребовать разделения. Выделения сущностей, посвящённых той или иной ответственности.
          С другой стороны, MVPM и MVVM (как и вообще любой шаблон проектирования) предполагают изначальный overhead по коду; MVPM и MVVM физически сложнее MVC и MVP.

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

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

          Внимание, викторина: какой из шаблонов где следует применять? (-:
          • 0
            Все эти экраны, так или иначе можно уложить в MVP или MVVM (при условии, что он two-way).
  • +1
    Только для жителей и гостей столицы? Или возможно удаленное посещение?
    • 0
      К сожалению, удаленное посещение невозмжно. Стажировка очная в московском офисе Redmadrobot.
      • 0
        Прошу прощения за вопрос — что вы вкладываете в понятие «лучшие стажеры»? Это активные (интересующиеся) / отвечающие на семинарах / хорошо программирующие / хорошо сделавшие итоговое задание / коммуникабельные / красивые /…?
        Интересны критерии оценки потенциальных кандидатов.
        p.s. не подумайте что я тролль — к инициативе отношусь положительно.
        • 0
          Есть набор формальных критериев (качество выполнения заданий, результаты проверок на лекциях и пр.) и неформальных (скорость роста, усердие и внимательность, формулировка и состав вопросов, коммуникация).

          По итогам мы собираем все в одно место и принимаем решение по каждому кандидату. В общем, так же, как это бывает после собеседований, но более информированно.
  • 0
    iOS9, Android 6 и другие знания, которые вам не скоро ещё пригодятся.
    *это не в претензию, это сожаление о медленной скорости обновления устройств*
    • 0
      А что значит не скоро пригодятся? В Android 6 появилась новая модель управления разрешениями, которую стоит учитывать вот прямщас, потому что всё равно все придут к Android 6, пусть в течение 3 или 4 лет. Забить на краши новой версии или вообще выбросить из головы мысли о том, что приложение будет жить более года, как-то неверно.
      Android 6 нужно изучать уже, несмотря на то что дашборд показывает долю в 0.5 процента.
      • 0
        Да понятно, что надо учитывать последние версии OS. В android они через время новые фичи хотя бы бекпортируют.

        Вот с iOS — беда. Ну добавили они контрол. На старых осях его как не было, так и нет.
        • 0
          Боль ваша, конечно, понятна. Но не все новинки бесполезны: например, всякие фишки типа force touch и quick actions можно спокойно встраивать уже сейчас, новые фичи по безопасности придется учитывать всем (иначе iOS 9 просто заблокирует доступ к ресурсам), работать с iPad multitasking и iPad Pro приходится уже какое-то время. Самое большое разочарование, наверное, это UIStackView, но мы пользуемся ORStackView без особых проблем.

          В общем, тут есть много того, о чем нужно поговорить.
    • 0
      iOS 9 = 71% спустя ровно три месяца после выхода
      developer.apple.com/support/app-store

      Куда уж быстрее?

      С андроид не так шустро, конечно, это да.
  • 0
    Подскажите, в течение какого времени будет стажировка? Вы пишете что это зима. Т.е. полтора месяца? И еще: в вечернее время, это во сколько?
    • 0
      Да, стажировка продлится около полутора месяцев.
      Вечернее время мы спланировали так, чтобы можно было успевать с работы (18:30–19:00), но и заканчивать не поздней ночью (20:30–21:00). Это еще будет более точно скорректировано перед стартом для максимального удобства.

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

Самое читаемое Разработка