Сёрф iOS-разработка
1.34K subscribers
384 photos
25 videos
95 links
Download Telegram
Привет 👋

На связи iOS Team из Surf.

Запилили канал, чтобы регулярно делиться с вами полезностями. Тут будут:

• тренды разработки под iOS;
• наши материалы и статьи по теме;
• мероприятия — от лекций до хакатонов;
• актуальные вакансии и стажировки в Surf.

Ждём тебя в подписчиках! Уже скоро начнём выпускать контент для iOS Dev разного грейда и опыта 💪

#surf_team #surf_ios
4🔥3👍1
Светлана, iOS-разработчик, в новой статье на Хабр показала изменения одного из самых проблемных мест в SwiftUI — навигации. iOS 16 обзавёлся совершенно новым API для работы с ней!

Самое основное собрали в посте. Подробности и примеры с кодингом ждут тебя в статье 😌
👍4🤩2
«В один прекрасный день на встрече отдела product manager приносит весть, что пора бы в чат добавить поддержку голосовых сообщений…»

Начало интригующее? Илья, iOS-разработчик Surf, написал подробную статью о нативной визуализизации голос в iOS для блога на Хабр.

Материал логически поделён на две части — физический аспект и программный уровень.

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

Для тех, кто хочет погрузиться в тему детальнее, Илья собрал материалы, которыми пользовался:

🔹Глоссарий
🔹Статья Apple про визуализацию звука
🔹Swift imports fixed-size C arrays as tuples
🔹О преобразовании Фурье
🔹Про задержку звукового сигнала
🔹Спектральный анализ
🔹​​CMBlockBuffer
🔹Запись с помощью AVAssetWriter
🔹О PCM
🔹Ещё немного об AVFoundation
🔹Лекция про АЦП
👍9
Стартовать в IT сложно: курсы, стажировки, первые собесы — это 🤯

Александр, наш iOS TechLead, собрал для новичков подробный FAQ о пути iOS-разработчика. Многие рекомендации универсальны и подойдут не только любителям Swift и Apple.

Вот все его советы:

1️⃣ С чего начать путь iOS-разработчика
2️⃣ Что и как изучить
3️⃣ Первое собеседование
4️⃣ Навыки командной работы
5️⃣ Чем занимается iOS-разработчик

Сохраняйте и делитесь с друзьями 😉
👍7
1️⃣ С чего начать путь iOS-разработчика?

Почему именно iOS?

Ответа на вопрос нет — надо идти туда, где тебе больше интересно. Это может быть мобильная разработка, фронтенд, бэкенд, тестирование, да что угодно! Главное, чтобы тебе нравилось. Лучше пробовать еще во время учёбы в университете, и на выходе поймёшь, к чему лежит душа.

Онлайн-курсы/стажировка/самостоятельное обучение — что выбрать?

Есть разные мнения. Кто-то искренне верит, что онлайн-курсы — отличная точка старта, особенно, если правильно их выбрать. Есть курсы, где дают не только базу знаний, но и помощь с трудоустройством.

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

Стажировки — тоже хорошая возможность для старта. Особенно, если они проводятся на безвозмездной основе. Особенно, если это коллективный курс, и самых успешных обещают нанять впоследствие на работу.

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

Я бы выбрал путь самостоятельного обучения. Да, его тяжело построить, придётся искать информацию самому, но это тоже важный навык. В интернете можно найти roadmap-ы разработчика, и оттолкнуться от них. Для получения практических навыков я бы советовал придумать/найти pet-проект, и начать набивать себе «шишки».
👍6
2️⃣ Что и как изучить?

Нужна ли математика?

На старте — нет. Но для специфичных областей, либо на более высоких позициях — пригодится. Хотя бы для обоснования путей решений проблем, сложности решений, оптимизации времени выполнения и т.д.

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

У всех были случаи, когда: «Ну не может оно так работать! Да как так-то»?!
А потом находите баг в коде, и такие: «Ага, ну ладно, понял».

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

Нужно ли знание алгоритмов?

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

Как построить обучение наиболее эффективно?

Продолжу тему с самостоятельным обучением: pet-проект, собственные «шишки», Google. И roadmap-ы разработчика как указатель.

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

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

Только контактируя с другими разработчиками можно стать опытным специалистом.
👍4
3️⃣ Первое собеседование

Что учить перед собеседованием и как?

Универсального ответа нет, внимание по-разному уделяют:

• навыкам программирования в целом;
• конкретно вашим знаниям по iOS- разработке;
• софт-скиллам — коммуникация, умение мыслить и не теряться в критических ситуациях.

Но, всё-таки, стоит посмотреть общие темы в разрезе любого языка программирования:

‣ принципы программирования;
‣ паттерны, подходы;
‣ компьютерные сети, git.

И по основам iOS:

- управление памятью;
- жизненный цикл;
- хранение данных;
- основные структуры и как они работают;
- основные UI-компоненты и как они работают.

Не заучивайте точные формулировки из интернета, это не экзамен в университете. Гораздо важнее — понимаете ли вы их сами.

Что вас ждет на собеседовании?

Опять же — универсального ответа нет. Везде по-разному. Общий совет — не теряться и не думать, что вас съедят на собеседовании. Все когда-то там были.

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

И не стесняйтесь говорить, что чего-то не знаете. Можете и предположить правильный ответ. Умение находить решение, мыслить, а не только знать — это тоже пункт, на который обращают внимание.
👍4
4️⃣ Навыки командной работы

Что это за навыки?

Софт-скиллы, навыки командной работы — названий много, суть одна: они позволят успешно работать в команде.

На мой взгляд, самые важные для начинающего разработчика:

1) Ответственность.
2) Дисциплинированность.
3) Умение изучать новое и работать с информацией.
4) Умение задавать вопросы.

Насколько важны эти навыки для разработчика?

Разработчик — это не только человек, весь день пишущий код. Он ещё и способен:

• донести свое мнение до других;
• дать обратную связь по работе своему коллеге;
• принимать верные решения в критических ситуациях.

Такие скиллы не менее важны, чем технические навыки, потому что все мы работаем в команде.

Ваше развитие может пойти не по технической ветке, а в сторону управления людьми. Например, на позицию TeamLead. И вот тут ваши soft-skills сыграют решающую роль.
👍4
5️⃣ Чем занимается iOS-разработчик?

Чем занимаются iOS-разработчики помимо написания кода?

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

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

Ограничен ли iOS-разработчик лишь платформой iOS?

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

Есть шанс покодить не только на Swift, но и на Python, Groovy, познакомиться с KMM или Flutter. Можно получить знания в области работы сетевых протоколов, безопасности информационных систем, тестировании или дизайне.

Ограничением здесь служит только ваше свободное время, которое надо будет умело распределять между изучением профильных и смежных направлений.
👍7
Как вам формат лонгридов? Делать ещё подобные посты?
Anonymous Poll
91%
Нравится, давайте ещё 👍
9%
Не удобно, давайте по-другому 👎
1