Привет 👋
На связи iOS Team из Surf.
Запилили канал, чтобы регулярно делиться с вами полезностями. Тут будут:
• тренды разработки под iOS;
• наши материалы и статьи по теме;
• мероприятия — от лекций до хакатонов;
• актуальные вакансии и стажировки в Surf.
Ждём тебя в подписчиках! Уже скоро начнём выпускать контент для iOS Dev разного грейда и опыта 💪
#surf_team #surf_ios
На связи 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
🔹Лекция про АЦП
Начало интригующее? Илья, 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-разработчик
Сохраняйте и делитесь с друзьями 😉
Александр, наш iOS TechLead, собрал для новичков подробный FAQ о пути iOS-разработчика. Многие рекомендации универсальны и подойдут не только любителям Swift и Apple.
Вот все его советы:
1️⃣ С чего начать путь iOS-разработчика
2️⃣ Что и как изучить
3️⃣ Первое собеседование
4️⃣ Навыки командной работы
5️⃣ Чем занимается iOS-разработчик
Сохраняйте и делитесь с друзьями 😉
👍7
1️⃣ С чего начать путь iOS-разработчика?
Почему именно iOS?
Ответа на вопрос нет — надо идти туда, где тебе больше интересно. Это может быть мобильная разработка, фронтенд, бэкенд, тестирование, да что угодно! Главное, чтобы тебе нравилось. Лучше пробовать еще во время учёбы в университете, и на выходе поймёшь, к чему лежит душа.
Онлайн-курсы/стажировка/самостоятельное обучение — что выбрать?
Есть разные мнения. Кто-то искренне верит, что онлайн-курсы — отличная точка старта, особенно, если правильно их выбрать. Есть курсы, где дают не только базу знаний, но и помощь с трудоустройством.
Думаю, это подойдет не для всех. Надо понимать, что некоторые действуют из корыстных побуждений, а не из желания развивать спецов. Если решились на курсы — внимательно изучите отзывы, поговорите с реальными людьми, проходивших там обучение, почитайте профильные сообщества.
Стажировки — тоже хорошая возможность для старта. Особенно, если они проводятся на безвозмездной основе. Особенно, если это коллективный курс, и самых успешных обещают нанять впоследствие на работу.
Чтобы стать на стажировке лучшим, надо подойти к ней с некой «базой». Если у вас есть реальное желание устроиться на работу именно к этому работодателю — стоит заранее самостоятельно получить некоторые знания, чтобы на старте быть на голову выше других. В любом случае, стажировка учит взаимодействовать с другими людьми, и после её прохождения вы точно станете опытнее.
Я бы выбрал путь самостоятельного обучения. Да, его тяжело построить, придётся искать информацию самому, но это тоже важный навык. В интернете можно найти roadmap-ы разработчика, и оттолкнуться от них. Для получения практических навыков я бы советовал придумать/найти pet-проект, и начать набивать себе «шишки».
Почему именно iOS?
Ответа на вопрос нет — надо идти туда, где тебе больше интересно. Это может быть мобильная разработка, фронтенд, бэкенд, тестирование, да что угодно! Главное, чтобы тебе нравилось. Лучше пробовать еще во время учёбы в университете, и на выходе поймёшь, к чему лежит душа.
Онлайн-курсы/стажировка/самостоятельное обучение — что выбрать?
Есть разные мнения. Кто-то искренне верит, что онлайн-курсы — отличная точка старта, особенно, если правильно их выбрать. Есть курсы, где дают не только базу знаний, но и помощь с трудоустройством.
Думаю, это подойдет не для всех. Надо понимать, что некоторые действуют из корыстных побуждений, а не из желания развивать спецов. Если решились на курсы — внимательно изучите отзывы, поговорите с реальными людьми, проходивших там обучение, почитайте профильные сообщества.
Стажировки — тоже хорошая возможность для старта. Особенно, если они проводятся на безвозмездной основе. Особенно, если это коллективный курс, и самых успешных обещают нанять впоследствие на работу.
Чтобы стать на стажировке лучшим, надо подойти к ней с некой «базой». Если у вас есть реальное желание устроиться на работу именно к этому работодателю — стоит заранее самостоятельно получить некоторые знания, чтобы на старте быть на голову выше других. В любом случае, стажировка учит взаимодействовать с другими людьми, и после её прохождения вы точно станете опытнее.
Я бы выбрал путь самостоятельного обучения. Да, его тяжело построить, придётся искать информацию самому, но это тоже важный навык. В интернете можно найти roadmap-ы разработчика, и оттолкнуться от них. Для получения практических навыков я бы советовал придумать/найти pet-проект, и начать набивать себе «шишки».
👍6
2️⃣ Что и как изучить?
Нужна ли математика?
На старте — нет. Но для специфичных областей, либо на более высоких позициях — пригодится. Хотя бы для обоснования путей решений проблем, сложности решений, оптимизации времени выполнения и т.д.
От себя добавлю: математика — точная наука, которая не терпит двоякого толкования и требует четкого обоснования. Любое доказательство теоремы — это всегда выверенная последовательность действий, последовательность фактов. В этом она во многом сходна с программированием.
У всех были случаи, когда: «Ну не может оно так работать! Да как так-то»?!
А потом находите баг в коде, и такие: «Ага, ну ладно, понял».
Математика позволяет выстроить логическое мышление — и это сильно пригодится вам, в любой деятельности, не только в разработке.
Нужно ли знание алгоритмов?
Здесь я бы дал ответ схожий с предыдущим — на ранних этапах нет, позднее — пригодится. Когда обычных инструментов для решения задач вам не будет хватать — паттерны и алгоритмы станут вашими друзьями.
Как построить обучение наиболее эффективно?
Продолжу тему с самостоятельным обучением: pet-проект, собственные «шишки», Google. И roadmap-ы разработчика как указатель.
Важно: наверняка вы будете сталкиваться с проблемами, которые можно обойти, если сделать немного другой дизайн, немного по- другому поставить требования...
Не надо так делать. В жизни такое возможно, но не всегда.
Ещё, не все найденные в процессе решения могут быть адекватными и оптимальными. Лучше будет найти команду, например, чтобы совместно разрабатывать pet-проект. Или же ментора, для этого есть специальные платформы. Найти сообщество, где вам готовы будут дать ответы. То есть, поискать людей с немного другим опытом.
Только контактируя с другими разработчиками можно стать опытным специалистом.
Нужна ли математика?
На старте — нет. Но для специфичных областей, либо на более высоких позициях — пригодится. Хотя бы для обоснования путей решений проблем, сложности решений, оптимизации времени выполнения и т.д.
От себя добавлю: математика — точная наука, которая не терпит двоякого толкования и требует четкого обоснования. Любое доказательство теоремы — это всегда выверенная последовательность действий, последовательность фактов. В этом она во многом сходна с программированием.
У всех были случаи, когда: «Ну не может оно так работать! Да как так-то»?!
А потом находите баг в коде, и такие: «Ага, ну ладно, понял».
Математика позволяет выстроить логическое мышление — и это сильно пригодится вам, в любой деятельности, не только в разработке.
Нужно ли знание алгоритмов?
Здесь я бы дал ответ схожий с предыдущим — на ранних этапах нет, позднее — пригодится. Когда обычных инструментов для решения задач вам не будет хватать — паттерны и алгоритмы станут вашими друзьями.
Как построить обучение наиболее эффективно?
Продолжу тему с самостоятельным обучением: pet-проект, собственные «шишки», Google. И roadmap-ы разработчика как указатель.
Важно: наверняка вы будете сталкиваться с проблемами, которые можно обойти, если сделать немного другой дизайн, немного по- другому поставить требования...
Не надо так делать. В жизни такое возможно, но не всегда.
Ещё, не все найденные в процессе решения могут быть адекватными и оптимальными. Лучше будет найти команду, например, чтобы совместно разрабатывать pet-проект. Или же ментора, для этого есть специальные платформы. Найти сообщество, где вам готовы будут дать ответы. То есть, поискать людей с немного другим опытом.
Только контактируя с другими разработчиками можно стать опытным специалистом.
👍4
3️⃣ Первое собеседование
Что учить перед собеседованием и как?
Универсального ответа нет, внимание по-разному уделяют:
• навыкам программирования в целом;
• конкретно вашим знаниям по iOS- разработке;
• софт-скиллам — коммуникация, умение мыслить и не теряться в критических ситуациях.
Но, всё-таки, стоит посмотреть общие темы в разрезе любого языка программирования:
‣ принципы программирования;
‣ паттерны, подходы;
‣ компьютерные сети, git.
И по основам iOS:
- управление памятью;
- жизненный цикл;
- хранение данных;
- основные структуры и как они работают;
- основные UI-компоненты и как они работают.
Не заучивайте точные формулировки из интернета, это не экзамен в университете. Гораздо важнее — понимаете ли вы их сами.
Что вас ждет на собеседовании?
Опять же — универсального ответа нет. Везде по-разному. Общий совет — не теряться и не думать, что вас съедят на собеседовании. Все когда-то там были.
Ещё совет: походите по собеседованиям в разные компании, старайтесь запомнить, что спрашивают. Если не знаете ответа — отметьте себе это и изучите вопрос позднее. Так, со временем, вы накопите базу знаний и опыт собеседований.
И не стесняйтесь говорить, что чего-то не знаете. Можете и предположить правильный ответ. Умение находить решение, мыслить, а не только знать — это тоже пункт, на который обращают внимание.
Что учить перед собеседованием и как?
Универсального ответа нет, внимание по-разному уделяют:
• навыкам программирования в целом;
• конкретно вашим знаниям по iOS- разработке;
• софт-скиллам — коммуникация, умение мыслить и не теряться в критических ситуациях.
Но, всё-таки, стоит посмотреть общие темы в разрезе любого языка программирования:
‣ принципы программирования;
‣ паттерны, подходы;
‣ компьютерные сети, git.
И по основам iOS:
- управление памятью;
- жизненный цикл;
- хранение данных;
- основные структуры и как они работают;
- основные UI-компоненты и как они работают.
Не заучивайте точные формулировки из интернета, это не экзамен в университете. Гораздо важнее — понимаете ли вы их сами.
Что вас ждет на собеседовании?
Опять же — универсального ответа нет. Везде по-разному. Общий совет — не теряться и не думать, что вас съедят на собеседовании. Все когда-то там были.
Ещё совет: походите по собеседованиям в разные компании, старайтесь запомнить, что спрашивают. Если не знаете ответа — отметьте себе это и изучите вопрос позднее. Так, со временем, вы накопите базу знаний и опыт собеседований.
И не стесняйтесь говорить, что чего-то не знаете. Можете и предположить правильный ответ. Умение находить решение, мыслить, а не только знать — это тоже пункт, на который обращают внимание.
👍4
4️⃣ Навыки командной работы
Что это за навыки?
Софт-скиллы, навыки командной работы — названий много, суть одна: они позволят успешно работать в команде.
На мой взгляд, самые важные для начинающего разработчика:
1) Ответственность.
2) Дисциплинированность.
3) Умение изучать новое и работать с информацией.
4) Умение задавать вопросы.
Насколько важны эти навыки для разработчика?
Разработчик — это не только человек, весь день пишущий код. Он ещё и способен:
• донести свое мнение до других;
• дать обратную связь по работе своему коллеге;
• принимать верные решения в критических ситуациях.
Такие скиллы не менее важны, чем технические навыки, потому что все мы работаем в команде.
Ваше развитие может пойти не по технической ветке, а в сторону управления людьми. Например, на позицию TeamLead. И вот тут ваши soft-skills сыграют решающую роль.
Что это за навыки?
Софт-скиллы, навыки командной работы — названий много, суть одна: они позволят успешно работать в команде.
На мой взгляд, самые важные для начинающего разработчика:
1) Ответственность.
2) Дисциплинированность.
3) Умение изучать новое и работать с информацией.
4) Умение задавать вопросы.
Насколько важны эти навыки для разработчика?
Разработчик — это не только человек, весь день пишущий код. Он ещё и способен:
• донести свое мнение до других;
• дать обратную связь по работе своему коллеге;
• принимать верные решения в критических ситуациях.
Такие скиллы не менее важны, чем технические навыки, потому что все мы работаем в команде.
Ваше развитие может пойти не по технической ветке, а в сторону управления людьми. Например, на позицию TeamLead. И вот тут ваши soft-skills сыграют решающую роль.
👍4
5️⃣ Чем занимается iOS-разработчик?
Чем занимаются iOS-разработчики помимо написания кода?
Разговаривают, много разговаривают — обсуждают решения, советуются по реализации тех или иных фичей, митинги, ретроспективы, различные синки по рабочим вопросам. Разговаривать и участвовать в переписках придется часто.
Проектируют, много проектируют — «семь раз отмерь, один раз отрежь» здесь показательно работает. Всегда лучше грамотно спроектировать решение, чтобы получить точную оценку его реализации и полную картину необходимых действий, чем править бесконечно появляющиеся баги.
Ограничен ли iOS-разработчик лишь платформой iOS?
Написание различных автоматизаций, а также тесное сотрудничество с backend-командой позволяют получить знания в смежных областях.
Есть шанс покодить не только на Swift, но и на Python, Groovy, познакомиться с KMM или Flutter. Можно получить знания в области работы сетевых протоколов, безопасности информационных систем, тестировании или дизайне.
Ограничением здесь служит только ваше свободное время, которое надо будет умело распределять между изучением профильных и смежных направлений.
Чем занимаются iOS-разработчики помимо написания кода?
Разговаривают, много разговаривают — обсуждают решения, советуются по реализации тех или иных фичей, митинги, ретроспективы, различные синки по рабочим вопросам. Разговаривать и участвовать в переписках придется часто.
Проектируют, много проектируют — «семь раз отмерь, один раз отрежь» здесь показательно работает. Всегда лучше грамотно спроектировать решение, чтобы получить точную оценку его реализации и полную картину необходимых действий, чем править бесконечно появляющиеся баги.
Ограничен ли iOS-разработчик лишь платформой iOS?
Написание различных автоматизаций, а также тесное сотрудничество с backend-командой позволяют получить знания в смежных областях.
Есть шанс покодить не только на Swift, но и на Python, Groovy, познакомиться с KMM или Flutter. Можно получить знания в области работы сетевых протоколов, безопасности информационных систем, тестировании или дизайне.
Ограничением здесь служит только ваше свободное время, которое надо будет умело распределять между изучением профильных и смежных направлений.
👍7
Как вам формат лонгридов? Делать ещё подобные посты?
Anonymous Poll
91%
Нравится, давайте ещё 👍
9%
Не удобно, давайте по-другому 👎
⚡1
Делимся с вами крутым Live Coding от нашего разработчика!
В нём Владислав обозревает новинки с WWDC 2022 и показывает, как Surf внедряют новые фишки. Раскладываем всё не по полочкам, а по строчкам 💪
Смотри видео на нашем YouTube-канале.
В нём Владислав обозревает новинки с WWDC 2022 и показывает, как Surf внедряют новые фишки. Раскладываем всё не по полочкам, а по строчкам 💪
Смотри видео на нашем YouTube-канале.
🔥7
Отобрали для вас инсайты из ежегодного исследования DevCrowd 📊
Что нужно знать о нём:
• Проводил Егор Толстой из JetBrains вместе с партнёрами.
• Опросили 900 iOS разработчиков.
• Информация полезная и «недушная».
Смотрите наши карточки, а за полным ресёрчем переходите по ссылке в заголовке.
Что нужно знать о нём:
• Проводил Егор Толстой из JetBrains вместе с партнёрами.
• Опросили 900 iOS разработчиков.
• Информация полезная и «недушная».
Смотрите наши карточки, а за полным ресёрчем переходите по ссылке в заголовке.
👍3🔥3