Как стать iOS разработчиком в 2022 году бесплатно. Кирилл Дутов, ноябрь 2021 годКак стать iosразработчиком в 2022 годуПошаговый план с разбором популярных решений
Скачать 0.5 Mb.
|
Кирилл Дутов, ноябрь 2021 год Как стать iOS-разработчиком в 2022 году Пошаговый план с разбором популярных решений Кто такие iOS-разработчики • Программисты, которые занимаются нативной мобильной разработкой под системы iOS и iPadOS и создают мобильные приложения • В основном занимаются фронтендом приложений, но некоторые создают и «толстые клиенты» • Во время работы сильно завязаны на технику и инфраструктуру Apple • В России зарплаты начинаются от 50к для джунов и до 400к gross в месяц для синьоров (Москва, Санкт-Петербург), в регионах платят меньше • На западе средняя зарплата iOS-разработчика $99 000 gross в год. Можно найти удаленку на запад и получать в России $5000-6000 gross в месяц Сколько времени нужно для обучения • У каждого индивидуальная ситуация. Общего решения не бывает • Минимальный срок 2 месяца (для людей уже умеющих программировать на хорошем уровне в другом стеке), максимальный не ограничен • В среднем уходит около 700-1000 часов чистого времени, чтобы освоить знания на уровне Junior • Лучше всего последние несколько месяцев заниматься полный день и уволиться по возможности (нужна подушка на 6 месяцев минимум) + мотивация не сдохнуть от голода • Я учился два месяца и работал, а потом еще полгода дома в режиме фулл-тайм (4-5 часов в день), потому что меня сократили с прошлой работы и у меня была хорошая подушка и мотивация С чего начать обучение? • С планирования и систематизации полученных знаний • Я разбивал каждый блок на задачи в трелло, оценивал их, а потом ранжировал по важности и заполнял выполненные шаги в чекбоксах • Планировать нужно не только обучение, но и отдых. В реальности придется спланировать все, чтобы найти время на обучение (минимум 1,5 часа в день в будни и 3-4 в выходные) • Предварительно советую посмотреть курс «Learn how to learn» или почитать книгу «Думай, как математик» 🔥 • Нужно подготовить технику. Как минимум нужен макбук. Без айфона в первое время можно обойтись, но фунционал симулятора ограничен Изучаем основы программирования • Можно посмотреть вводный бесплатный курс «Основы программирования» 😐 • Можно посмотреть Гарвардский курс CS50 🔥 • Почитать книгу Код. Тайный язык информатики, чтобы понять как именно работает компьютер простым и понятным языком 🔥 • Почитать серию книг про программирование от А.В. Столярова 💪 • Советую проходить все небольшими итерациями от легкого к сложному, потому что некоторые вещи сразу вы не будете понимать • Важно хорошо понять основы и с каждой итерацией все глубже разбирать что и как работает Изучаем Swift на базовом уровне • Курс Алексея Скутаренко по Swift + все домашние задания + разбор заданий других ребят 🔥 • Документация Apple 🔥 и ее неофициальный перевод • Основы SWIFT на swiftbook + курс The Swift Developers 😐 • Задачник по программированию на Swift – Владислав Самойлов • Решай задачи на leetcode уровня easy 💪 и прорешиваем тесты в приложении Swifty 🔥 пока не доведем до автоматизма • Сочетайте так, как вам удобно и понятно. Разные курсы заходят разным людям по разному. Я смотрел сразу 3 подряд, чтобы что-то понять. Особое внимание на изучение документации Изучаем Xcode • Учимся работать с playground (в курсах Скутаренко) • Изучаем основные модули программы и знакомимся со списком горячих клавиш. Хороший туториал на английском • Учимся создавать сниппеты 🔥 для более быстрой работы с кодогенерацией • Учимся работать с дебаггером , отлаживать приложения, работать с симулятором и view debugger • Учимся работать с Interface builder • Выполняем этот план постепенно, по мере того, как вы будете продвигаться в обучении разработки Изучаем основы UIKit • Смотрим курс по UIKit от swiftbook и курс от The Swift Developer 🔥 • Разбираемся как работает жизненный цикл ViewController. Вот отличное подробное видео в котором разобраны еще и переходы 🔥 • Пробуем создать несколько простых приложений с помощью курсов Swiftbook «Мои первые приложения» и «Приложения на основе коллекций» 😐 • Учимся верстать с помощью кода нативным способом и с помощью любого фреймворка на выбор. Мне нравится SnapKit 🔥, но есть еще BoxView, TinyConstraints и т.д. • Изучаем, как работает AutoLayout по этой статье и читаем книгу Modern Autolayout 💪 Изучаем основы UIKit • Изучаем из каких слоев состоит иерархия view и что такое layer по книге iOS Core Animation 💪 • Пробуем самостоятельно комбинировать разные элементы UIKit и соединяем их друг с другом (кнопка + лейбл, слайдер + лейбл и т.д) 🔥 • Читаем официальную документацию по UIKit 🔥 • Пробуем делать кастомные элементы из стандартных. Хороший курс по созданию приложений на UIKit 🔥 • Работаем так же. От простого к более сложному. Пробуем повторить уже существующие интерфейсы приложений 🔥 Учимся работать с дизайном • Учимся работать с Figma, Sketch, Zeplin 🔥 • Изучаем Apple Human Interface Guidelines for iOS. Вот неофициальный перевод на русский язык • Пробуем сверстать экраны в pixel-perfect, когда все размеры точно соответствуют макету. Сравнить можно наложив два скриншота друг на друга и настроив прозрачность на скрине макета. Макеты брать здесь • Интересные макеты проектов для мобильных приложений можно брать на Behance Учимся работать c консолью • Проходим бесплатный курс по работе с консолью на Хекслет 🔥 • Подборка разных игр для изучения bash 🇺🇸 • При желании настраиваем оболочку iTerm2 • Bashcrawl – игра во время которой вы будете изучать bash 🇺🇸 • Хороший ресурс про программирование на Shell 💪 • Еще одна игра, чтобы онлайн проверить свои скиллы на Shell Учимся работать c git • Проходим бесплатный курс по работе с git на Хекслет 🔥 • Проходим тренажер Learngitbranching 🔥 • Читаем официальную документацию • Учимся работать с гит в Xcode и Sourcetree / Fork • Учимся работать с github / gitlab / bitbucket • Практикуемся в размещении своих проектов на удаленном репозитории с разных клиентов, консоли в разные сервисы 🔥 • Выбираем что-нибудь одно и красиво оформляем профиль Учимся работать c архитектурами • Учимся работать с MVC 🔥 • Учимся работать с MVP 🔥 • Учимся работать с MVVM 🔥 • Учимся работать с VIPER. Можно почитать книгу от Rambler 💪 • Учимся работать с Clean Swift • Делаем небольшие тестовые проекты, чтобы закрепить понимание чем отличаются архитектуры от друг друга 🔥 • Общий разбор архитектурных паттернов 🇺🇸 Учимся работать c многопоточностью • Проходим курс The Swift Developers – Multithreading в swift с нуля 🔥 • Можно дополнительно посмотреть курс от Авито • Интересное видео с вопросами по многопоточности и разбором • Хорошая статья с основами многопоточности и GCD • Практикуемся в многопоточности повторяя примеры из статей и видео спустя несколько дней после просмотра 🔥 • Разбираем все возможные проблемы, которые могут возникнуть при неправильной работе потоков Учимся работать с сетью • Можно пройти курсы на swiftbook «Курс 36: Работа С API» и «Курс: Networking» 💰 • Почитайте про REST, JSON, XML • Изучите как работает Codable (статья и документация) • Учимся работать с URLSession и Alamofire. Пробуйте создавать простые приложения, которые будут выводить данные из API в tableview/ collectionview. 🔥 Публичные апишки смотрите здесь • Почитайте, что такое WebSocket • Изучите сервисы-помощники для создания моделей для парсинга Изучаем ООП и принципы программирования • Изучаем основы ООП по видео The Swift developers и проходим его курс по паттернам 🔥 • Внимательно изучаем портал по паттернам refactoring.guru 🔥💪 • Хорошая книга про паттерны проектирования от O’Reilly • Проходим курс по ООП у Тимофея Хирьянова 💪💪💪 • Изучаем, что такое SOLID. Пробуем написать примеры, которые нарушают принципы, а потом поправить 🔥 • Изучаем, что такое DRY, KISS, YAGNI, BDUF, APO Изучаем правила оформления кода • Учимся устанавливать и работать с линтером. Например swiftlint 🔥 • Читаем книгу Чистый код и Совершенный код 💪 • Изучаем что такое запахи кода 🔥 • Изучаем как проводить рефакторинг 🔥💪 • Пробуем писать грязный код, а потом проводим его рефакторинг 🔥 Изучаем алгоритмы и структуры данных • Читаем книгу Грокаем алгоритмы 🔥 • Читаем и выполняем примеры из книги Data Structures & Algorithms in Swift 🔥 • Учимся оценивать сложность задач на практике при решении задач на leetcode 🔥 • Читаем книгу Алгоритмы. Построение и анализ | Кормен 💪💪💪 • Смотрим курс про алгоритмы и структуры данных у Тимофея Хирьянова и пытаемся повторить все на Swift 💪🔥 • Пытаемся написать по памяти простые структуры данных в Playground 🔥 Изучаем менеджеры зависимостей • Учимся добавлять библиотеки через pods • Учимся добавлять библиотеки через carthage • Учимся добавлять библиотеки через swift packet manager Изучаем работу с хранением данных • Учимся работать с UserDefaults • Учимся работать с Core Data (смотрим и следующий урок) 🔥 • Читаем книгу 7 баз данных за 7 недель 🔥💪 • Учимся работать с Realm • Учимся работать с Firebase • Осваиваем основы SQL 💪🔥 • Пробуем делать свои тестовые приложения, которые будут хранить данные на устройстве 🔥 Изучаем работу с UI/UNIT тестами • Туториал от swiftbook и их курс по TDD 💰 • Читаем книгу iOS Test-Driven Development by Tutorials 🇺🇸 • Смотрим Занятие 15: Unit/UI тесты Swift 🔥 • Смотрим Зачем и как писать качественные Unit-тесты (Алексей Солодкий / Badoo) 🔥 • Учимся работать с UI тестами 🇺🇸 • Смотрим UI-тесты в iOS-проекте / Михаил Домрачев (Improve Digital) Какие курсы можно проходить? • Курс iOS-разработчик с нуля за 20 недель на swiftbook 💰😐 • iOS developer. Basic курс на OTUS 💰😐 • Курсы от ЦФТ, Тинькофф, Сбер 💰 • Курсы дают очень сжатый узкий материал. Придется очень много читать помимо курсов. Качество курсов низкое • Лучший вариант по моему мнению: самообучению + стажировка + ментор 🔥 Как сохранить мотивацию • Волшебной таблетки нет. Ты либо делаешь, либо нет • Мотивация много зарабатывать хорошая. Потому что много платят востребованным специалистам, а востребованным может стать только образованный и эффективный. Бездельникам платят мало • Переключайтесь на разные модули обучения, если застряли на чем-то • Подоприте себя деньгами. Если у вас нет запасного пути, то и выбора особо нет • Не нравится, не интересно, скучно – не заставляй себя, не твое • Лучшая схема: дисциплина и постоянство усилий на длительном промежутке времени Как найти единомышленников • Присоединиться к моему чату для iOS-разработчиков ✅ • Неплохой чат для мобильных разработчиков у iOSNick’a 🔥 • Ходить на встречи Coffee&Code, если вы в Москве, Санкт-Петербурге. Присоединиться к их чатику 🔥 • Чатик для подготовки к собеседования в FAANG • Чат о литературе про мобильную разработку • В чатах получаем пользу и помогает советами, а не болтаем 24/7. • Разбираем уже существующие вопросы и ответы на них Как найти ментора? • Спрашивать в профильных чатах и писать спикерам с докладов на ютубе (стоит от 2000 час в среднем) 💰 • Бесплатного ментора найти почти невозможно, но у вас могут быть знания, которые вы сможете «обменять» • Есть хорошая база данных ребят, которые готовы менторить в клубе у Вастрика (готовьте долор для оплаты членства) 🔥💰 • Выложите свой код и напишите, что это лучший код в мире. Гарантирую самое внимательное ревью • Объединятесь в группы с другими новичками и делайте ревью друг другу Как сформировать базу по CS • Изучить этот список «Как выучить Computer Science самостоятельно?» • Получить высшее образование в профильном ВУЗе в России или заграницей (пригодится при эмиграции) • Найти профильных репетиторов под профильные предметы и с ними углубленно разобрать базу по СS • Самостоятельно найти интересную программу у хорошего ВУЗа и освоить ее • Проходить профильные курсы на Coursera и подобных площадках Изучаем полезные каналы на YouTube • Podlodka – семинары и интервью • CocoaHeads – доклады и круглые столы 🔥 • Mad Brains – доклады и обсуждения 🔥 • iOS Academy – практические уроки 🇺🇸 • Sean Allen – практические уроки 🇺🇸 • Swiftbook – уроки и переводы • Ray Wenderlich – уроки 🇺🇸 Изучаем полезные источники • Много туториалов и книг по iOS – Ray Wenderlich 🇺🇸🔥 • Хороший марафон по Swift для начинающих – Swift for 100 days 🇺🇸🔥 • Читаем хаб по iOS-разработке на Habr • Полезный сайт с новостями и статьями – Apptractor • Группа в телеграме с новостями iOS Good Reads 🔥 • Смотрим конференции по мобильной разработке Podlodka 🔥💰 • Смотрим список полезных источников в конце презентации Дополнительная литература • Книга 7 языков программирования за 7 недель 🇷🇺 • Книга Advanced Swift 🇺🇸 и Swift. Подробно 🇷🇺 • Книга Optimizing Collections 🇺🇸 • Книга Swift algorithms and data structures - Wayne Bishop 🇺🇸 • Книга Pro iOS Testing - Avi Tsadok 🇺🇸 • Книга Погружение в паттерны проектирования - Александр Швец 🇷🇺 • Книга Growing as a mobile engineer - Gergely Orosz 🇺🇸 • Книга Programming iOS 14 - Matt Neuburg 🇺🇸 Мои контакты Канал в тг: https://t.me/dutovkirill Чат для джунчиков: Ссылка на вступление Телеграм: @dutov_kirill Твиттер: @iosgad Почта: dutov.kb@yandex.ru |