(ч.3) Яндекс Школа iOS
В этой части я наконец-то расскажу о самом обучении) В конце статьи поделюсь своими выводами и ссылками на лекции. Также немного реальных историй, куда же без них.
Советую для полноты картины сначала прочитать предыдущие части: первая часть, вторая часть.
Затишье перед бурей
После всех испытаний прошло около трех недель и наконец мне пришло письмо. Не могу сказать, что оно меня порадовало.
Хм… Наверное в этот момент у вас возникают вопросы? Ничего, скоро все встанет на свои места.
На работе еще пара человек не прошли. Я списался с младшим братом и узнал, что его взяли! Очень порадовался за него, и решил что обучение ему намного нужнее. Как уже упоминал во второй статье, я решил, что завалил часть собеседования, в которой нужно было объяснить зачем я хочу учиться и стать стажером. Я уже давно работаю пусть и со старым добрым 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. Также я вспомнил то, чем давно уже не занимался в силу использования готовых решений или распределения задач в командах.
Собеседование на стажера
Примерно после 8–9 лекции меня пригласили на собеседование по результатам оценок. Интриги не будет, я его благополучно провалил.
По своей вине, это раз. Также считаю мне просто немного не повезло, это два. Я изначально представил себе совсем другой формат и почти не готовился.
Когда пришел мне уже рассказали, что буду в течение часа решать задачи онлайн на ноутбуке Lenovo (уже лет 6 Windows не видел и все вот это) и за мной будут смотреть через телемост из Москвы. Все это ощутимо добавило напряжения)
На самом деле задачи были не сложные. Подробно описывать их не буду, считаю это моветоном. В первой нужно было читать из файлов и писать в файл построчно на Swift. В этот момент все 5 лет моей работы на Objective-C пролетели перед глазами и я вспомнил только как примерно по chunk’ам читать видео файлы чтобы затем загружать в Facebook. Представил что нужно еще читать до переноса строки и вспомнить синтаксис... Появилось желание резко переключиться на C++, но и там я не помнил как точно называется библиотека работы с файловыми потоками и прочий синтаксис. И появились серьезные сомнения в отведенных временных рамках. Очень серьезные)
Этого оказалось достаточно, чтобы выбить меня из равновесия. В первой задаче я немного ошибся в решении, а потом еще и неверно оценил сложность. Решение второй задачи успел рассказать только на словах.
Когда я уже вышел из офиса я довольно быстро проанализировал все произошедшее и нашел свои ошибки, и конечно трезво оценил свои шансы на успех. На мой взгляд я больше проиграл в моральной подготовке)
Результаты
В целом я тратил довольно много времени на выполнение домашних заданий так как ставил перед собой задачу углубленно разобраться с языком Swift и понять различные тонкости на практике.
По результатам всех оценок максимальные баллы получили трое: я и еще 2 девушки) Хм, а я раньше не верил знакомому, который рассказывал что девушек программистов все больше и больше.
По окончанию школы давали сертификаты в рамке. Можно было окончить с отличием при определенных балах. Также небольшим бонусом я получил ручку за экономию времени преподавателей) Часто сдавал с первых попыток. Я бы все ручки на собеседованиях сделал такими, чтобы не расслаблялись. Почувствуй нашу любовь)
Выводы
Какие выводы я сделал для себя?
- Всегда есть чему учиться, не важно сколько у вас лет опыта. К тому же все очень быстро развивается и иногда для работы приходится изучать важные вещи поверхностно за ограниченное время. Мне нравится идея: Учись учиться. Чем сложнее вещи мы изучаем, тем проще дается что-то новое, сложное;
- Язык Swift очень интересный, легкий и удобный. Если вы перешли на него, у вас скорее всего не будет особого желания поддерживать Legacy проекты на Objective-C. Билет в один конец, пожалуйста;
- По собеседованиям можно сделать массу выводов, но в целом к ним нужно серьезно готовиться. Немного пугает, что на деле собеседования и работа чаще всего это два совершенно разных мира;
- Девушек-программисток больше чем вы думаете! Точно больше 5)
Конец
Презентации 8 лекций в открытом доступе, забирайте. Я хотел также выложить свою практическую часть, но решил что возможно в следующей школе будет что-то похожее и будет не интересно)
Кроме знаний я получил еще небольшой бонус. Мне предложили пройти курс Алгоритмы и структуры данных в Школе Анализа Данных (ШАД) в Екатеринбурге вольнослушателем. Похоже я снова школьник)
На этом пока все. Подписывайтесь в Twitter, статьи еще будут.