В прошлой публикации я писала о том, что ожидаются Стэнфордские курсы cs193p 2015.
И вот они стартовали. Вернее в Стэнфорде они стартовали давно, 5 января 2015 года. Но только сейчас их выкладывают в iTunes Developing iOS 8 Apps with Swift
В первой же лекции Пол Хегэрти (Paul Hegarty) четко сказал, что в курсе будет использоваться только Swift. Стэнфорд окончательно переключился на Swift не только потому, что многие компании в Силиконовой долине проводят интервью с выпусниками на позиции разработчиков iOS приложений на Swift, но и потому, что с благословления Apple свободное распространение такого качественного контента c 1.2 миллионами скачиваний откроет для многих разработчиков по всему миру язык разработки iOS приложений Swift.
Для того, чтобы воспользоваться этим контентом, вам нужно иметь только Mac — Macbook Pro, MacBook Air, iMac. Все программное обеспечение — бесплатное.
Уже выложены 4 лекции и одно домашнее задание.
Если кто-то чувствует себя не совсем уверенно с английским или просто хотите почитать материал на русском языке, предлагаю свой неавторизованный конспект лекций на русском языке. Выложена Лекция 1 CS193P Winter 2015 — Логистика курса, обзор iOS 8. В ближайшее время будет выложены остальные.
Блестящие лекции профессора Пола Хегэрти (Paul Hegarty) будут полезны как начинающим, так и опытным программистам.
Пол Хегэрти не только высвечивает множество нюансов операционной системы iOS и языка программирования, в данном случае Swift, которые не так-то легко найти в документации, но и снабжает вас приемами программирования на iOS, которые вы не найдете ни в одной книге (может быть, на WWDC 2011, 2012, 2013, 2014). Он многократно сократит ваш путь изучения. Реально, он — гений в преподавании программирования на iOS.
Хочу поделиться первыми впечатлениями о первых 4-х лекциях.
Как всегда, ежегодная Лекция №1 — это общее введение в курс и обзор iOS, MVC и на этот раз Swift. И опять Paul Hegarty подчеркивает важность знакомства с объектно-ориентированным программированием как обязательное требование к курсу, и что этот курс — не для начинающих.
После обзора структуры программного обеспечения iOS, профессор Paul Hegarty погружается в демонстрационный пример, это старый пример, который был представлен 3 года назад на Objective-C. Я прошла почти все курсы профессора Пола Хэгарти — от iOS 5 до iOS 7 — до самого конца (решения домашних заданий представлены на Github ). Мне знаком этот демонстрационный пример, но для iOS 5 и Objective-C. Это RPN калькулятор. На примере этого калькулятора профессор на протяжении 3-х лекций рассказывает все тонкости Swift как объектно-ориентированного языка. На основе RPN калькулятора построены первые домашние задания, в результате выполнения которых вы разработаете очень качественные и красивые iOS приложения. Надо сказать, что графический RPN калькулятор на iPad ( по-видимому третье или четвертое домашнее задание) — это самое удачное, трудоемкое и красивое приложение из всех, представленных за последние 3 года.
Вначале профессор очень подробно рассказывает о синтаксисе Swift и о возможностях Xcode 6. Буквально объясняет каждый символ. И может возникнуть обманчивое впечатление, что это курс для начинающих. Но он умышленно это делает, чтобы дальше, при объяснении протоколов, замыканий, анимации, многопоточности, Autolayout (разметки), объектно-ориентированной базы данных Core Data, Dynamic Animation и т.д., не вернуться к этому никогда, и начать говорить только о сложных вещах. Поэтому первые 3-4 лекции — просто находка для тех, кто только начинает разрабатывать iOS приложения. Сейчас мы все немного в таком положении, потому что Swift — новый язык.
Но что меня поразило на этот раз, это то, что буквально с первой лекции начинается работа с адаптивным интерфейсом, с применения такой сложной и запутанной системы, как Autolayout. Кстати Пол Хэгарти на этой, а также на 2-ой лекции, представил ускоренный мини курс обучения системе Autolayout (Разметки). Дальше еще круче. Он рассматривает тип implicitly unwrapped optional
(неявно развернутого Optional), семантика которого менялась по мере продвижения бэта — версий ( то мы ставим! на UI объектах, то нет).
Я — большой фанат профессора Пола Хэгарти, потому что даже если вы прочитали множество книг и сделали несколько приложений, он выстроит ваши знания в строгую логическую концепцию. Но для этого недостаточно просмотреть видео мимолетом — нужно вслушиваться в каждое слово.
В курсе обычно бывает 6 домашних заданий. Первое — очень легкое, нужно в основном повторить то, что профессор показывал на лекции. И это также создает иллюзию, что курс для начинающих. Далее сложность заданий возрастает по экспоненте. Все эти задания необходимо выполнять. Они, как правило, очень интересные, и вы несомненно получите от этого удовольствие.
Я собираюсь выкладывать решения домашних заданий на своем сайте «Разработка iOS приложений».
Хотелось бы организовать в Рунете форум на подобие Piazza, который сопровождает обучение студентов в Стэнфорде. На нашем форуме мы могли бы обмениваться решениями (язык Swift — новый, и могут быть очень интересные решения в зависимости от опыта), а также помогать продвинуться по курсу тем, кто по каким-то причинам застрял.
Откликнитесь те, у кого есть какие-то идеи на этот счет.
Автор: WildGreyPlus