(ч.3) Яндекс Школа iOS

05.10.2017
6 мин

Описание школы на сайте Яндекса.

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

Советую для полноты картины сначала прочитать предыдущие части: первая часть, вторая часть.

Затишье перед бурей

После всех испытаний прошло около трех недель и наконец мне пришло письмо. Не могу сказать, что оно меня порадовало.

Хм… Наверное в этот момент у вас возникают вопросы? Ничего, скоро все встанет на свои места.

На работе еще пара человек не прошли. Я списался с младшим братом и узнал, что его взяли! Очень порадовался за него, и решил что обучение ему намного нужнее. Как уже упоминал во второй статье, я решил, что завалил часть собеседования, в которой нужно было объяснить зачем я хочу учиться и стать стажером. Я уже давно работаю пусть и со старым добрым Objective-C. В итоге, брат начал готовиться, а я набрал проектов на подработку, чтобы занять время.

Через неделю я получил странное сообщение в телеграмме. Это был вопрос о том, нужен ли мне макбук для обучения.

Это было так смешно и одновременно таааааак грустно...

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

🚀 Murphy’s law: Anything that can go wrong will go wrong.

В итоге брат понял свой уровень и думаю поставил себе цель, на мой взгляд это очень важный момент. А я отправился изучать Swift в Яндекс и отдыхать от работы.

Начало занятий

В этот же день я отправился в офис Яндекса, заполнил документы и получил пропуск. Как мне объяснили специальных пропусков для школы iOS нет)

Очень удивил состав группы, 8 парней и 2 девушки. Я работал в разных компаниях и обычно встречал 98 парней и 2 девушки) И это не последнее мое удивление в этой статье связанное с девушками.

Всего в школе было 10 занятий продолжительностью около 2 часов. Первые 8 занятий были, грубо говоря, по основам, а остальные 2 на более углубленные темы. Занятия проводились раз в неделю по вечерам.

После каждого занятия из первых 8 нужно было выполнить и сдать домашнее задание. На каждое задание был дедлайн 2 недели. Система оценок:

  • Базовая задача на 3;
  • Усложнения на 4;
  • Усложнения на 5.

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

Немного о лекциях

Первой лекцией нам рассказали основы языка Swift. Затем рассмотрели различные инструменты, архитектуру, UI, сетевой уровень, многопоточность и CoreData.

Получилось все довольно сжато в 8 лекций. Дополнительно провели лекцию по геолокации и по работе приложения в фоновом режиме, а также более глубокую лекцию по языку Swift.

Домашнее задание

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

На мой взгляд задания действительно были интересными и очень полезными. Я стал намного лучше разбираться в языке Swift и смело писать более сложный код на нем, прощай Objective-C. Также я вспомнил то, чем давно уже не занимался в силу использования готовых решений или распределения задач в командах.

Домашний проект — Notes

Собеседование на стажера

Примерно после 8–9 лекции меня пригласили на собеседование по результатам оценок. Интриги не будет, я его благополучно провалил.

По своей вине, это раз. Также считаю мне просто немного не повезло, это два. Я изначально представил себе совсем другой формат и почти не готовился.

Когда пришел мне уже рассказали, что буду в течение часа решать задачи онлайн на ноутбуке Lenovo (уже лет 6 Windows не видел и все вот это) и за мной будут смотреть через телемост из Москвы. Все это ощутимо добавило напряжения)

На самом деле задачи были не сложные. Подробно описывать их не буду, считаю это моветоном. В первой нужно было читать из файлов и писать в файл построчно на Swift. В этот момент все 5 лет моей работы на Objective-C пролетели перед глазами и я вспомнил только как примерно по chunk’ам читать видео файлы чтобы затем загружать в Facebook. Представил что нужно еще читать до переноса строки и вспомнить синтаксис... Появилось желание резко переключиться на C++, но и там я не помнил как точно называется библиотека работы с файловыми потоками и прочий синтаксис. И появились серьезные сомнения в отведенных временных рамках. Очень серьезные)

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

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

Результаты

В целом я тратил довольно много времени на выполнение домашних заданий так как ставил перед собой задачу углубленно разобраться с языком Swift и понять различные тонкости на практике.

По результатам всех оценок максимальные баллы получили трое: я и еще 2 девушки) Хм, а я раньше не верил знакомому, который рассказывал что девушек программистов все больше и больше.

По окончанию школы давали сертификаты в рамке. Можно было окончить с отличием при определенных балах. Также небольшим бонусом я получил ручку за экономию времени преподавателей) Часто сдавал с первых попыток. Я бы все ручки на собеседованиях сделал такими, чтобы не расслаблялись. Почувствуй нашу любовь)

Кнопка на ручке не нажимается если код неверный

Выводы

Какие выводы я сделал для себя?

  • Всегда есть чему учиться, не важно сколько у вас лет опыта. К тому же все очень быстро развивается и иногда для работы приходится изучать важные вещи поверхностно за ограниченное время. Мне нравится идея: Учись учиться. Чем сложнее вещи мы изучаем, тем проще дается что-то новое, сложное;
  • Язык Swift очень интересный, легкий и удобный. Если вы перешли на него, у вас скорее всего не будет особого желания поддерживать Legacy проекты на Objective-C. Билет в один конец, пожалуйста;
  • По собеседованиям можно сделать массу выводов, но в целом к ним нужно серьезно готовиться. Немного пугает, что на деле собеседования и работа чаще всего это два совершенно разных мира;
  • Девушек-программисток больше чем вы думаете! Точно больше 5)

Конец

Презентации 8 лекций в открытом доступе, забирайте. Я хотел также выложить свою практическую часть, но решил что возможно в следующей школе будет что-то похожее и будет не интересно)

Кроме знаний я получил еще небольшой бонус. Мне предложили пройти курс Алгоритмы и структуры данных в Школе Анализа Данных (ШАД) в Екатеринбурге вольнослушателем. Похоже я снова школьник)

На этом пока все. Подписывайтесь в Twitter, статьи еще будут.