Елена Булыгина предлагает Вам запомнить сайт «Ленусик»
Вы хотите запомнить сайт «Ленусик»?
Да Нет
×
Прогноз погоды

Основная статья: Ios-разработка

«Шесть сезонов „Игры престолов“ за две недели на работе...»

За свою жизнь я перебрал немало профессий — в продажах, финансах. Одно время даже работал поваром. Потом оказался в нефтетрейдинговой компании, стал оценивать сторонние проекты, в которые нашим учредителям предлагали вложиться. Например, сеть АЗС в Киргизии.

Эта работа мне не очень нравилась, поскольку я был занят только одну половину дня, а вторую — предоставлен самому себе. «Свободного» времени было столько, что я просмотрел шесть сезонов «Игры престолов» всего за пару недель — и не дома, а на работе.

Я не хотел терять время, и сама работа была совсем не по душе. Каждый день я буквально заставлял себя вставать и ехать в офис.

Так пришло понимание, что нужно уходить. Но у меня не было чёткой цели — я не знал, чем заниматься. Уходить в продажи не хотелось. Уволиться, чтобы снова пойти работать менеджером, — точно нет. Поэтому некоторое время размышлял, что делать дальше.

Программирование — то, что доктор прописал

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

Уговорил и меня попробовать. Правда, я решил оценить возможности Java — прошёл сначала короткое онлайн-обучение по этому языку. После этого решил проработать вопрос серьёзнее: поискал в сети курсы и нашёл GeekBrains. Помню, понравилось то, что они связаны с Mail.Ru Group, поэтому остановился на этом варианте.

Выбрал iOS-разработку. Я большой поклонник продукции Apple и думаю, что её мобильные устройства будут востребованы ещё долго. А значит, и на специалистов будет спрос. Apple — компания, которая двигает технологии вперёд. Конечно, уже не так, как при Джобсе, но всё же она находится на переднем крае hi-tech.

Этап обучения 

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

Но мне было проще, чем многим коллегам, которые тоже учились и работали. Совсем небольшая нагрузка позволяла учиться прямо в офисе, практически по восемь часов в день. С другой стороны, у меня уже была семья — жена в декрете и двухлетняя дочка. Поэтому менять профессию было тревожно. Забегая наперед, скажу, что переживал напрасно — закончилось всё хорошо.

Ещё один нюанс: уже заканчивая карьеру менеджера, я делал приложение для работодателя. Это был калькулятор стоимости литра топлива на базе в Бишкеке с учётом всех издержек при покупке в разных местах. Например, компании предлагают купить 92-й бензин на границе Киргизии и России по 400 долларов за тонну. Мы эту сумму забиваем в калькулятор и видим результат: литр этого бензина на нашей базе будет стоить 30 сом (местная валюта). В то же время мы знаем, что прямо сейчас можем купить в Бишкеке рядом с базой такое же топливо, а его финальная стоимость будет 25 сом за литр. Так можно быстро сравнивать варианты и принимать решения.

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

Так я применил свой опыт на практике — и это пригодилось впоследствии.

Трудоустройство

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

Несколько раз мне отказали — ведь в резюме я честно писал, что опыта работы нет. Но после очередного собеседования HR посоветовала его всё же указать — она узнала, что на предыдущем рабочем месте я разрабатывал приложение.

Это сработало: на собеседования меня стали приглашать гораздо чаще. В итоге я устроился в «Альфа-Банк» разработчиком. Возможно, помогло и то, что на курсах мы изучали вопросы, которые обычно задают на собеседованиях, и мои ответы понравились интервьюеру.

Что касается работы, то сначала меня оценили как «начинающего middle», и эти было очень неожиданно. Со временем я дорос до старшего разработчика.

Доходы, дорога на работу и другие нюансы

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

На дорогу до офиса трачу примерно столько же времени, но зато появилось много других плюсов. Это корпоративные «плюшки» и бонусы, ДМС, фитнес. Удобный и просторный офис, а также возможность работать удалённо — этой зимой попробую из Испании. Компания оплачивает поездки на конференции. Ещё «Альфа-Банк» сейчас развивает мерч-направление, так что как сотрудник я всегда могу купить свитшот с хорошей скидкой :)

Свободного времени стало гораздо меньше — я реально занят работой, причём такой, которая приносит удовольствие мне и пользу компании. Это имеет для меня большое значение.

Есть у меня и pet-проекты, которыми только начинаю заниматься. Возможно, вскоре расскажу, что они собой представляют, но пока это секрет.

Планы на будущее

Мне хочется двигаться дальше, совершенствоваться как разработчику. Для этого планирую изучить Ruby и Go. Причём не только для себя, но и в интересах компании — есть несколько проектов, где нужны эти технологии. Учиться на работе сейчас уже нет времени, но не теряю надежды обязательно освоить всё, что запланировал.

Хочу стать тимлидом и делаю всё для этого — такой план на ближайшее будущее. В долгосрочной перспективе хочу начать бизнес в сфере разработки: может, открыть собственную студию и сфокусироваться на мобильных приложениях.

Советы начинающим

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

Главное — уделять как можно больше времени практике. Именно это мне помогло больше всего помимо обучения. Нужно садиться за компьютер и писать, писать, писать код, чтобы довести навык до автоматизма.

Как можно раньше познакомиться с продакшен-кодом. И понять, чего недостаёт в вашем, чтобы он стал таким же качественным. Так можно найти и идеи по реализации функции в своём проекте.

Просто делать свою работу, если она нравится, и верить в успех. В большинстве случаев именно так всё и получается.

Хотите узнать больше о выпускниках факультета iOS-разработки и других факультетов программирования GeekBrains? Вот их истории:

Пройти обучение

20 дек 19, 11:46
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

«Сходил на два-три собеседования и нашёл работу»

Университет готовил Евгения Кириллова к градообразующему химзаводу Нижнекамска, но наш герой спустя год в Geek University стал iOS-разработчиком на удалёнке. Теперь он делится советами и вдохновением!

Я живу в Нижнекамске. У меня два высших образования: по специальностям «автоматизация» и «экономика и управление». Получал их практически одновременно — через год после первого получил второе. Когда поступал, то думал, что выучусь на разработчика, но вышло совсем не так. Программирования было мало, нас учили на сотрудников местного завода — градообразующего предприятия в химической отрасли.

Вид на Нижнекамск со стороны Елабуги

На заводе я проработал немного. Мне не понравилось, и я устроился в строительную фирму. Там я, конечно, сидел за компьютером, но к программированию моя деятельность никак не относилась — я вёл документацию. Заниматься этим всю жизнь не хотел, а вот разработчиком мечтал стать, ещё когда школу заканчивал. 

Почему iOS

Незадолго до поступления на факультет iOS-разработки я поменял телефон. У меня была Nokia Lumia на Windows, а потом я купил iPhone — мне в нём всё так понравилось, что появилась симпатия к Apple. Затем на работе вместо компьютера с Windows поставили iMac, и тут опять всё оказалось очень здорово. Экосистема Apple впечатлила! Потом я открыл для себя язык программирования Swift. Так постепенно из разных предпосылок сформировалось желание стать iOS-разработчиком. И как раз GeekBrains подвернулся очень удачно. Я долго думал и всё-таки решился, когда появилась не просто профессия, а факультет.

О трудностях и мотивации

Начинать было трудно! Первая четверть была самой сложной. Я продолжал работать, поэтому иногда учиться приходилось по ночам. Бывало, и до утра засиживался, чтобы задание выполнить. 

Процесс обучения GeekBrains был для меня в новинку. В институте преподаватели дают студентам всё то, что им нужно, чтобы выполнить задание и сдать экзамен: берёшь книгу и конспекты, готовишься, и всё в порядке. Здесь же нужно было очень много информации самим искать в интернете. Это как раз то, что на работе теперь постоянно происходит. 

Конечно, один из аспектов, который меня привлекал в будущей работе — значительное увеличение зарплаты. Ну и засиживался я до утра потому, что мне интересно программирование. Оно настолько увлекало, что я не замечал, как летит время. Я даже не зевал и не пил кофе, чтобы не воткнуться головой в клавиатуру. Я просто сидел и решал поставленные задачи!

Трудоустройство и ценность GeekBrains

Уже после первой четверти нам рекомендовали начинать ходить по собеседованиям, чтобы найти хотя бы низкооплачиваемую работу или стажировку. Но я себе этого позволить не мог, так как у меня семья и дети. Начал ходить на собеседования во время третьей четверти. Написал резюме, отправил его и принялся за поиски работы. Было приятно, что один из моих любимых преподавателей Евгений Елчев, который на момент обучения был деканом факультета, позволил указать себя в резюме в разделе «Кто может вас порекомендовать». Мы, кстати, до сих пор иногда с ним общаемся.

Начал я ходить по собеседованиям. Для меня это всегда эмоциональный момент. По итогам либо воодушевление чувствуется, либо сильная подавленность. И тут важно не падать духом, искать поддержки, хладнокровно во всём разбираться. Я после неудачных собеседований писал в нашу группу в Telegram о том, какие вопросы задавали. Сообщество всегда помогало и заряжало мотивацией!

Работу нашёл быстро, сходил всего на два или три собеседования. Третья четверть у нас заканчивалась с 2018-м календарным годом, как раз тогда я договорился с работодателем. И в первый день 2019 года подписал трудовой договор.

Устроился тогда в компанию «Технократия», которая занимается аутсорсом в сфере IT. Съездил как-то раз к ним на митап в Казань. Меня, кстати, на мероприятие позвал одногруппник, который там тогда жил. А потом, когда я уже решил, что пора трудоустраиваться, то к ним и обратился. Они узнали, что я был на их митапе, это их обрадовало, и в итоге меня взяли.

Зимний отдых «технократов», тут есть и я :)

В «Технократии» я был чуть ли не единственным удалённым сотрудником, что оказалось не совсем удобно. А переезжать в Казань я не хотел. Поэтому через четыре месяца я без особых усилий перешёл в компанию Work-zilla, где все на удалёнке — сотрудники распределены и по России, и по другим странам. До сих пор работаю здесь!

Честно скажу, что обучение на факультете iOS не то что помогло в трудоустройстве, оно стало определяющим фактором. В нижнекамском институте мы изучали технологии и языки, которые уже не используются. Разве что совсем немного C++. Знания оттуда мне если и помогли, то только на время подготовительных курсов, которые длились месяц. А всё остальное — это GeekBrains и то, что я сам где-то изучал. Но GB — 90%, если не больше.

Из программы пригодилось вообще всё. Но наиболее полезным и интересным мне показалось содержание третьей четверти, в которой был курс «Профессиональное программирование». Там рассматривались вопросы, которые в первую очередь задают на собеседованиях. Если раньше нас учили просто написать программу как-нибудь, то здесь — делать это правильно, с применением лучших практик, чтобы код хорошо поддерживался. Очень часто на собеседованиях спрашивают про SOLID, и как раз там мы проходили эти принципы. Действительно всё пригодилось! Был даже курс, который сначала казался скучным, а потом в работе я возвращался к нашим методичкам и применял те знания. 

И насчёт зарплаты: GeekBrains, когда указывал её размер, не обманул! :)

Как выглядит мой рабочий день

Я работаю дома, обустроил себе кабинет. Открываю с утра компьютер, запускаю наш таймер, отслеживающий время работы для дальнейшей оплаты. Потом пишу письмо с небольшим отчётом: что делал вчера, что буду делать сегодня, какие есть проблемы. Так как мы работаем удалённо, не встречаемся, то просто пишем такие письма. Потом я беру задачу из специальной программы и начинаю её выполнять. Параллельно у меня открыт Skype, в котором мы с коллегами переписываемся. Так примерно и выглядит мой типичный день.

Мой кабинет, обустроенный на балконе

Начало и конец рабочего дня не регламентированы, есть лишь рекомендация, чтоб пересечения времени с другими сотрудниками было как можно больше. Я начинаю свой день в 8 или даже немного пораньше. Отвожу детей в садик, прихожу домой и начинаю работать. Заканчиваю в 17, так как опять нужно идти в садик :)

У меня рабочий день получается 8 часов, может, чуть-чуть больше. В офисе, насколько я представляю, люди работают меньше, чем на удалёнке. Так как можно поболтать с коллегами или опоздать на работу из-за проблем с общественным транспортом. А у меня такого нет — я просто пошёл в свою комнату и работаю. 

Чтобы мы не только работали, но и общались, друг друга знали, у нас организованы клубы. Например, есть книжный клуб: мы выбираем книгу, читаем её, а потом собираемся в Skype и обсуждаем. Время таких клубов тоже считается рабочим.

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

Пара советов абитуриентам и студентам

Перед поступлением определитесь, нравится вам вообще программирование или нет. Им может заниматься каждый или почти каждый, но нужно очень сильно этого хотеть. Без огромного желания у меня точно ничего бы не получилось.

Учите английский — это наиболее важная из общих рекомендаций! Он пригодится везде. Читать статьи, книги (пожалуй, высший пилотаж), смотреть конференции, устроиться на работу в любой точке мира.

На GeekBrains удобно, что можно не «присутствовать» на занятии, а посмотреть запись. Но это значит у самого себя украсть время на выполнение практического задания. Лучше смотрите всё в прямом эфире, чтобы иметь возможность задать вопрос преподавателю на месте. Помню, было здорово, когда в четвёртой четверти на занятии могло присутствовать всего два-три студента и мы прямо голосом общались. 

Не ограничивайтесь учёбой в GeekBrains — пользуйтесь другими ресурсами. Но выбирайте их тщательно. Например, я раньше следил за множеством источников, но потом обнаружил, что они часто публикуют статьи людей, которые перефразируют сказанное Apple. Компания каждый год проводит конференцию для разработчиков WWDC. Там показывают и рассказывают, что есть нового в их среде разработки, технологиях. Если есть хотя бы среднее знание английского, то очень рекомендую следить. Можно смотреть и читать на их сайте. Можно в приложении для iOS или Apple TV. 

Можно почитать перевод учебника Apple. Но из-за частых обновлений я всё же рекомендую его в оригинале. Советую ещё интересный блог про язык Swift — Swift by Sundell. И, конечно, тематические разделы Хабра, Medium. Рекомендую также подкаст «Подлодка» — еженедельное аудиошоу про IT и всё, что с ним связано.

А вот несколько полезных Telegram-каналов, на которые я успел подписаться:

Чуть не забыл совет для абитуриентов — поступайте под Новый год, я так большую скидку получил.

О важности непрерывного обучения и немного о планах

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

Я сейчас поднимаю фундаментальные знания, которые пригодятся в любой области профессии. Насколько мне известно, когда программист устраивается, например, в Google, его там не считают разработчиком сайтов или специалистом по какому-то языку. Это просто инженеры, которые могут делать по большому счёту всё. Не важно, на каком языке ты пишешь, — если у тебя есть фундаментальные знания, то ты новый язык изучишь за неделю и будешь делать на нём то, что требуется.

Если заглядывать дальше, лет на 5–10, то я не хочу ограничиваться iOS. Сейчас на острие прогресса машинное обучение, было бы здорово в эту область заглянуть — и, возможно, стать в ней специалистом. Сейчас эти профессионалы как раз самые востребованные и высокооплачиваемые, там интересные вещи происходят. И технологии машинного обучения применяются всё больше: хоть в самоуправляемых машинах, хоть в поисковой выдаче. Может, даже когда-нибудь получится сделать робота, который будет ходить по Марсу и сам всё делать, а не ждать команд с Земли.

В таком, глобальном смысле iOS-разработка немного ограничена. Да, я пишу под телефоны, это здорово: их миллионы, можно написать очень много разных программ… Но в машинном обучении потенциал гораздо шире.

Пока предпочтений в этом направлении нет — просто хочется делать то, что принесёт как можно большую пользу людям на нашей планете. Что-то масштабное — как SpaceX, например. Поэтому и подтягиваю фундаментальные знания. Читаю книгу «Совершенный код» — она очень большая, её ещё называют библией программиста. Хочу прочитать «Приёмы объектно-ориентированного проектирования. Паттерны проектирования» от «Банды четырёх», а также «Алгоритмы. Построение и анализ», авторы — Томас Х. Кормен, Чарльз И. Лейзерсон. Пожалуй, это мой заключительный совет — на случай, если кому-нибудь тоже хочется стать универсальным солдатом в программировании.

Советуем прислушаться к совету Евгения о поступлении под Новый Год — с 1 декабре вас ждут ещё большие скидки на все наши учебные программы!

Пройти обучение

29 ноя 19, 12:45
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

12 вопросов об iOS-разработке: интервью с деканом

На вопросы отвечает декан факультета iOS-разработки Андрей Антропов.

— Андрей, приветствую! Сколько вы уже в iOS-разработке?

— Здравствуйте. В iOS-разработке я три года. Перешел из бэкенд-сферы и до сих пор не жалею: получаю сплошное удовольствие от связки Swift-iOS. Успел поработать и фрилансером, и в команде. Сейчас разрабатываю приложения в замечательной студии Morizo-Digital.

— Чем вас привлекла сфера iOS? И какие она предлагает пути развития? Особенно интересны самые перспективные, на ваш взгляд, направления iOS-разработки.

— Когда я переходил в iOS, ориентировался на цветущие и довольные лица друзей — они уже давно занимались разработкой под эту ОС. Теперь же я могу сказать, что их положительные отзывы не были преувеличенными. Сфера у нас одновременно интересная (на передовом рубеже развития техники), высокооплачиваемая, и что самое удивительное — хороших специалистов в ней до сих пор не хватает.

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

  • Разработка приложений для умных часов (watchOS), которые все плотнее входят в нашу жизнь.
  • Серверная Swift-разработка. Еще пару лет назад она была причудой энтузиастов, а сейчас вовлекает все больше людей. Я говорю не только о фреймворках Vapor, Kitura, но и о системной библиотеке SwiftNIO от Apple, которая позволяет использовать вышеперечисленные библиотеки в серверных решениях. Появление SwiftNIO показывает, что Apple заинтересована развивать серверное Linux-направление.
  • MacOS-разработка. Она все ближе и доступнее с выходом Marzipan — фреймворка, который позволит создавать macOS-приложения при помощи основной iOS-библиотеки UIKit. Знания, полученные при изучении iOS, становятся еще универсальнее.
  • Всеми любимая разработка игр. Их можно создавать не только при помощи Unity (привет факультету разработки игр), но и посредством встроенных системных инструментов SpriteKit и SceneKit.
  • Многое другое. Что говорить, если уже сейчас можно запускать Swift на Raspberry Pi и создавать умные устройства, управляемые с телефона.

Конкретно в iOS-разработке наибольший ажиотаж за последний год — вокруг приложений, использующих машинное обучение (ML) и дополненную реальность (AR).

Для обеих этих сфер Apple создала очень удобные системные библиотеки MLKit и ARKit соответственно. Они позволяют интегрировать последние достижения ML и AR при помощи нескольких строк кода.

В дальнейшем предложение будет диктовать спрос: ждем заявок от интернет-магазинов на AR-примерочные или, например, анализ и обработку отзывов средствами Machine Learning.

— Что интересного сейчас происходит с самим языком Swift — как он развивается и меняется в последние несколько лет?

— Swift очень вырос, окреп за последние годы и де-факто стал основным языком iOS-разработки. Думаю, не сильно ошибусь, если скажу, что 95 % новых iOS-приложений создаются на Swift. Кроме того, как я уже сказал, продолжается экспансия языка Swift на платформу Linux.

Реализованный в 2014 году Swift 4.2 LSP (Language Server Protocol) позволяет удобно работать с языком не только в заточенной под macOS среде Xcode, но и в других IDE, которые можно запускать и на Linux. Например, в Visual Studio Code. Количество системных приложений, которые Apple переписали с Objective-C на Swift, в iOS версий 10, 11 и 12 растет экспоненциально.

— Чтобы начать писать для iOS, нужно иметь Apple-устройство под рукой. Каков минимальный набор начинающего разработчика? Я слышала, надо еще платить какие-то отчисления...

— К сожалению, входной барьер в iOS-разработку высок, но это связано со стоимостью оборудования. Для начала вам потребуется MacBook, желательно не очень древней модели. На него вы установите среду разработки Xcode, после чего сможете начать писать первую программу. Больше на старте ничего платить не придется: достаточно бесплатного сертификата, привязанного к вашему Apple ID.

А вот чтобы загрузить свое приложение в магазин, понадобится оплатить distribution-лицензию. Она стоит 99 $ в год, но обычно эти деньги вносит не разработчик, а заказчик приложения.

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

— iOS-разработка — это не только Swift, но и Objective-C. Для каких задач предпочтительнее каждый из этих языков? И зачем студенты факультета еще учат основы C?

— Надо понимать, что Objective-C долгие годы был единственным языком разработки для macOS и iOS. За это время программисты написали на нем множество библиотек и модулей, которые до сих пор повсеместно используются, и заменить их в один миг нельзя. Да и, скорее всего, не нужно. Так что Swift и Obj-C — это спайка двух родственных технологий.

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

Кроме того, спрос на программистов Obj-C до сих пор высок. Особенно в компаниях с богатой историей разработки и массой так называемого legacy-кода, который нужно поддерживать и оптимизировать.

Если мы копнем еще глубже, то увидим, что некоторые iOS-проекты требуют библиотек на C/C++. В отдельных случаях это позволяет достичь большого прироста производительности. Чтобы не ходить далеко за примером: на C/C++ реализована популярная библиотека Realm для хранения данных в мобильных приложениях.

Поэтому мы считаем, что знание основ языка С (например, указателей и memory layout) сегодня пригодится любому разработчику.

— Главный вопрос, который я задаю всем деканам: какие проекты делают ваши студенты?

— Приложения для работы с VK, для интернет-магазина и системы поиска билетов. Полученного в итоге опыта оказывается достаточно для трудоустройства. Многие наши выпускники работают в крупных компаниях, таких как Сбербанк, «Мамба», «Везёт».

— Что можно рассказать о факультативах от партнеров?

— Факультативы — это видеоуроки и вебинары от экспертов, которые обучают студентов продвинутым технологиям. Например, в прошлом году мы записали факультатив по Core Data от «Тинькофф Банка». Сейчас записываем факультатив по архитектурам приложений со старшим разработчиком браузера Mail.ru Group. Также готовим факультатив «Реактивное программирование» от AGIMA.

— Вы начали писать для iOS, уже имея опыт в Python. Был ли этот переход легким и насколько отличается процесс изучения этих языков?

— Кривая обучения у обоих языков довольно пологая — они очень дружелюбны к новичкам. Это здорово, ведь программирование должно привлекать, а не отталкивать. Безусловно, если вы знаете один из популярных языков, будь то С/C++, Java, Python, Go или Ruby — освоить Swift вам гораздо легче, чем тому, что учит его с нуля. Все перечисленные языки реализуют объектно-ориентированный подход, а значит у них много общего.

— В обращении к студентам вы упомянули о сходстве Swift и Python в плане интуитивной семантики. А было что-то, что поначалу удивило в Swift?

— Меня очень удивила легкость, с которой в Swift мы можем отойти от ООП-парадигмы в сторону функциональной.

Как и многим техническим специалистам, в университете нам преподавали Lisp и Prolog. С тех пор к функциональному программированию я относился очень настороженно и поначалу сторонился функционального подхода в Swift. Но со временем понял, что FP на Swift и Lisp — это земля и небо, а работа с математическими вычислениями и функциями может быть лаконичной, логичной и приятной.

— Ваша основная работа в Morizo-Digital тоже связана с iOS-разработкой?

— Да. В нашей студии я отвечаю за iOS-разработку. Но уточню: 14 лет мы создавали в основном сайты и бэк. Мобильными приложениями занимаемся совсем недавно. У меня сейчас на попечении два проекта, которые готовятся к релизу. До окончания разработки я не могу раскрывать подробности.

— По вашему опыту, какие темы в Swift для студентов — самые трудные?

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

Если вам интересно, о чем я, можете посмотреть на opaque result types, которые появятся в Swift 5.1. Увидите, какие проблемы они решат.

— Какие материалы вы рекомендуете ученикам в дополнение к занятиям и методичкам?

— Я советую черпать знания изо всех проверенных источников. Условно их можно разделить на три типа:

1. Блоги, статьи, подкасты.

  • Обновленный блог Мэтта — автора популярнейших библиотек AFNetworking/Alamofire. Здесь можно почитать думы опытного программиста об iOS-делах насущных. Сложность материала: высокая.
  • Блог Джона Санделла — большого iOS-энтузиаста и участника всех возможных конференций. Он написал больше 100 статей о самых разных аспектах разработки и жизни программиста. Сложность материала: умеренная.
  • Шон Аллен — программист, который интересен искренностью и открытостью, с которой он рассказывает сообществу о своей работе. По понедельникам он делится с аудиторией новостями Swift.
  • Flawless App Stories — блог на Medium с подборкой статей по актуальным проблемам разработки от разных авторов. Замечателен тем, что позволяет взглянуть на процесс глазами сотен людей. Сложность материалов: очень разная.
  • Антуан Ван дер Ли — голландец, который в своем блоге сочетает множество тем: от разбора основ программирования до проблем выгорания и личности программиста.
  • iOS Dev Weekly — подборка самых актуальных новостей мира Swift. Уже несколько лет выходит каждую пятницу.
  • iOS Goodies — еще одна подборка новостей и обучающих статей, только выходит по вторникам.

2. Обучающие сайты.

  • RayWendelich — сайт №1 с обучающими материалами по iOS. Здесь много статей, видеоуроков и абсолютно замечательных книг, но в основном, конечно, платных.
  • ObjC.io — аналог предыдущего сайта, но с более глубокой академической подачей материала. Это для философов от Swift.
  • HackingWithSwift — сайт Ивана Урганта от Swift, Пола Хадсона (Paul Hudson) — мастера презентаций, Adobe After Effects и заготовленных шуток-каламбуров. В отличие от первых двух сайтов, здесь полно бесплатных статей и видео. Есть даже бесплатная обучающая программа.
  • Pointfree.co — мой любимый сайт, где двое дядек рассуждают о функциональном подходе в Swift. Их увлеченные лица как бы намекают, что они с удовольствием дискутировали бы и бесплатно. Но, к сожалению, для просмотра большинства видео нужна платная подписка.

3. Конференции разработчиков (записи выступлений, скорее всего, доступны на YouTube).

Русскоязычные:

Англоязычные:

И конечно, главное событие года для каждого iOS-программиста — конференция WWDC от Apple.

— Спасибо! Андрей, будем ждать вопросов от желающих изучать Swift и iOS-разработку. :)

Пройти обучение

4 июн 19, 13:04
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Показаны все темы: 3

Последние комментарии

нет комментариев
Читать

Поиск по блогу

Люди

7 пользователям нравится сайт lena2018.mirtesen.ru