(ч.1) Яндекс Школа iOS
Это первая часть моей самой первой статьи. У меня в планах написать несколько статей, в которых я хочу поделиться своими впечатлениями о Школе мобильной разработки iOS. Я постараюсь описать все от начала и до самого конца. Также расскажу о своих выводах и планах.
Для кого эта статья?
Скорее для начинающих программистов, или для тех кто уже пишет, но имеет слабую базу. Не все учились в хороших местах, а некоторым это просто тяжело давалось, к примеру в силу возраста или унылых занятий. В любом случае обучение очень важно для любого. Я не рассчитываю, что смогу заинтересовать опытных программистов.
Немного о себе для первой статьи
В 2011 году я окончил УрФУ на безызвестном факультете по специальности Информационные Системы и Технологии при кафедре Мультимедиа технологий. Обучением своим не горжусь, но в рамках дипломной работы я успел натаскаться в ActionScript 3.0. Этого мне хватило, чтобы получить интересную работу. А чуть позже изучить Objective-C по лекциям Paul Hegarty Stanford CS193, чтобы начать писать под iOS. После этого я умудрился поработать в 5 компаниях за 4 года, и в 4 из них просто кончились проекты, и прекратилось финансирование. В последней компании я занимался стримингом и загрузкой 360 видео и фото на YouTube и Facebook video & photo.
Итак, возвращаюсь к школе
Она была организованна сотрудниками компании Яндекс в Екатеринбурге с апреля по июнь 2017 года. И моя история началась 4 февраля 2017 года, когда я шел в мороз поздно домой после работы и получил забавное сообщение в Telegram от своего друга, который в это время путешествовал по Европе:
Тогда я шел и думал, а зачем мне идти в школу если я уже 4 года разрабатываю мобильные приложения для iOS? Что я похож на школьника? Вот была бы у меня такая возможность в годы обучения в университете! Эх. С другой стороны это же Яндекс.
Предыдущие контакты с Яндекс
Ранее я уже проходил несколько собеседований в эту компанию. До этого у меня не было проблем. Здесь меня просили написать компилятор Objective-C и объяснить тонкости его Runtime. Как бы я реализовал self и super, категории и прочее. Когда я предположил, что NSArray это кольцевой буфер попросили его нарисовать и подробно объяснить работу. Релокация массива, когда, как и на сколько. Я решал проблему неудачной хэш функции, которая все складывала в одну корзину. Перевод из одних систем счисления в другие. Построение базовых структур с помощью указателей. И многое, многое другое.
Было ощущение, что за время подготовки к таким собеседованиям я выучил больше чем за время обучения в университете. И про это можно написать еще целую статью.
Также Яндекс проводит iOS Party. Интересные доклады, приятная атмосфера. Встречи с коллегами, общение в кругу единомышленников. Стараюсь их не пропускать.
Что же дальше?
Дома я решил, что может моему младшему брату это будет интересно. Я переправил ссылку ему, а сам продолжил подрабатывать на индуса с Upwork. Ближе к концу месяца брат поделился со мной впечатлениями:
Он рассказал мне о платформе Яндекс.Контест, о том какие сложные и интересные там были задачи, о системе отправки заданий и о тестах за которые начисляли балы. И тут мне стало интересно...
Школьная олимпиада
Последний раз я решал похожие задачи по программированию в 10–11 классе на Pascal у себя дома, для того чтобы попасть на олимпиаду внутри школы. Я тогда жил в небольшом городке Артемовский. Помню интересную задачу о нахождении пути для каравана. Я потратил много времени на все задачи, бессонные ночи, разрисованные тетради. Я думаю программисты сейчас меня прекрасно понимают. Закинул все это на флешку, но учитель не хотел её брать. Там же вирусы?! В итоге я все равно сдал на проверку и...
Но я прекрасно помню как это было интересно и не жалею потраченного времени. После этого я в серьез задумался об обучении в школе. Вступительные испытания обещали быть не такими простыми, как я представлял. Просмотрев информацию о школе по ссылке я подумал, что некоторые темы мне стоило бы повторить. А в некоторые темы стоит углубиться, например CoreData или профилирование в Xcode.
Кроме того, компания Apple каждый год проводит WWDC, на которых регулярно появляется не только много нового, но и меняется/расширяется то что уже было. Все просто не реально выучить за отведенный год. Не верите мне? Давайте просто спросим у Siri:
А также я еще почти не писал на Swift. Давно, когда он только появился, я начинал читать книжку от Apple. Но на работе кругом старый добрый Objective-C и много других тем для обучения, а в последний год я и вовсе не работал с UIKit, CoreData и прочими основными фреймворками. И явно отстал от яблочной жизни.
Начал я с создания mp4 видео из изображений в галерее iPhone. Затем писал на Objective-С++. Потом работал над получением картинки из OpenGL ES средствами CoreVideo без glReadPixels. Кодированием видео с помощью нативной библиотеки VideoToolbox. Разбирался с созданием динамических фреймворков из Qt проектов вместо создания и распространения статических библиотек и массы заголовочных файлов. И так далее. И все это тоже iOS и немного macOS.
В итоге
Конечно я решился и заполнил анкету, иначе эту историю можно было закончить прямо тут. В ней было необходимо заполнить обычные поля ФИО, дата, где учился и так далее. А также было несколько полей для развернутого ответа. Просили описать свой опыт программирования и цель обучения в школе. Я отнес себя к специалистам, желающим сменить привычную область разработки. Не все коллеги меня поняли, а некоторые даже посмеялись. Что_О? Зачем тебе это?
В целом я очень рад что все так сложилось. Уже в этой части хочу сказать спасибо компании Яндекс! Постоянно мотивирует меня учиться и развиваться. Разными способами, если вы понимаете о чем я.
Если вы хотите учиться и развиваться, то я рекомендую прямо сейчас найти все возможные запланированные школы, курсы, олимпиады, конференции и так далее. И держать руку на пульсе.
В следующей части
Это была предыстория. Скоро я расскажу о вступительных испытаниях, что мне попалось и о том как я проходил, поделюсь впечатлениями. На этом пока все, если статья была интересной для вас, подписывайтесь в Twitter. С помощью подписки вы узнаете о следующей части.