Как правильно проходить этот курс

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

Структура курса

Курс разделен на три части: основы разработки, регулярные знания, тайные знания

Основы разработки

Данный раздел рассчитан на людей которые не имеют никакого опыта в программировании. Но тем не менее разбираться в компьютере на уровне пользователя необходимо.

В первой половине модуля, я даю не столько знания iOS разработки, сколько разработки в целом. Ты познакомишься с базовыми концепциями программирования: переменными, коллекциями, операторами, управлением потоком, функциями и классами. Разберешься с тем что это такое, зачем оно может понадобиться и как этим пользоваться. Так же ты ознакомимся с основными инструментами iOS разработчика. Xcode, git, отладчик, консоль.

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

Регулярные знания.

Этот блок будет идти больше года и состоять из отдельных кусочков. Каждый такой кусочек будет посвящен одному из аспектов разработки, например языку, UIKit (Библиотека для создания графического интерфейса), GCD (Библиотека для организации паралельных вычеслений) и так далее. В рамках этих кусочков, будут как простые так и сложные материалы.

Тайные знания

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

Пометки

Каждый урок будет иметь приблизительную маркировку сложности:

Важно — маркировка приблизительная, то есть расставляется на основе моих субъективных ощущений. Не надо переживать если не понял что то помеченное как “Джун” и наоборот радоваться если все понятно в уровне “Синьор”.

Кривая сложности

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

Типичные контрольные точки:

Основные советы

По порядку

Просматривать уроки лучше всего по порядку.

Не паниковать

Во время обучения, часто будут возникать ситуации когда ничего не понятно. Не нужно думать что дело в тебе. С этим сталкиваются все. Кому то обучение дается проще, кому то сложнее, но никто не понимает все с первого раза.

Уделять практике и теории одинаковое количество времени

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

Не стоит бежать вперед

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

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

Повторение мать учения

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

Нужно учится искать информацию самостоятельно

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

Очень рекомендую читать документацию, научиться пользоваться встроенной справкой в xcode и подружиться со stackoverflow. Все это можно использовать и как справочник если что то вылетело из головы и как учебник и даже как источник решения конкретной проблемы.