Насколько необходимы основы программирования, та самая база?
📖 Бруно Роша, разработчик в Spotify, рассуждает в своей статье о необходимости алгоритмов, презирании этой темы в сообществе и проводит параллели с развитием музыканта.
Я постарался выделить основные моменты, и позволил себе добавить некоторые комментарии.
Проблема в том, что сообщество часто направляет ненависть к подобным собеседованиям не по назначению. Негатив вокруг этого формата интервью стал настолько велик, что теперь часто можно встретить людей, испытывающих неприязнь к самой теории, которая не имеет ничего общего с непонятными головомками в программировании.
Это мнение стало настолько популярным, что теперь практически невозможно упомянуть концепцию программирования на абстрактном уровне без того, чтобы кто-то немедленно не начал холивар о практике проведения интервью. А это вредит в том числе и индивидуальной карьере инженеров, которым говорят держаться подальше от этих знаний по причинам, не поддающимся логике.
Поднимаются важные вопросы
🔴 Теория не отражает того, что человек будет делать на самом деле в своей работе.
🔴 Знание теории не является показателем мастерства человека в данной практической роли.
🔴 Теория вообще бессмысленна. Зачем разработчику iOS знать, что такое граф?
Всё это создает у людей впечатление, что основы бесполезны, в то время как на самом деле они используют их постоянно!
Я не могу передать, сколько раз я слышал, как разработчик iOS говорил: "Я могу с уверенностью сказать, что никогда в своей работе мне не приходилось использовать граф", а затем радостно рассказывал о чем-то интересном, с чем они работали, используя иерархии UIView. Это одно и то же!
Объекты, которые могут соединяться друг с другом с целью создания единой связной карты элементов, - это буквальное определение графа, поэтому они не только знают, что такое граф, но и используют его с самого первого дня работы в качестве разработчика!
🟢 Графы/деревья: UIView.
🟢 Связные списки: UIResponder.
🟢 Хеш-таблицы: Dictionary<K,V> и протокол Hashable.
🟢 Побитовые операции: OptionSet.
Примечание: автор прав, говоря о том, что даже не зная формальных определений, разработчики с самого начала карьеры (или даже прохождения каких-то курсов), уже получают необходимые знания, пусть и не зная нужных терминов.
Так действительно ли нужно всё это знать. Попробуем провести параллель с профессиональным музыкантом?
Для этого можно ответить самому себе на следующие вопросы:
🔘 Хочу ли я изучать это как хобби и никогда не выходить за рамки игры на диване для развлечения?
🔘 Хочу ли я играть в группе и зарекомендовать себя как музыкальный исполнитель?
🔘 Стремлюсь ли я выйти за рамки простого звания «музыкальный артист», живя и дыша классической музыкой, становясь неотъемлемой частью Венского филармонического оркестра, путешествуя по миру и войдя в историю как легенда, которая буквально сформировала концепцию самой музыки?
Так почему же ведущие компании делают то, что делают?
Для такой компании, как Google, неинтересно нанимать кого-то, кто посвятил свою жизнь изучению всего, что касается UIKit в iOS — их проблема не в том, какие API UIKit использовать, а в том, что API, которые им нужны, не существуют вообще.
Эти проблемы решаются благодаря пониманию computer science и способности создавать новые и эффективные решения. Ваше понимание программирования как концепции доказывает, что вы тот самый тип программиста, который им нужен.
В сочетании с обычными заданиями альтернативные (как, например, код-ревью) могут дать вам действительно хорошее представление о практических знаниях кандидата, поскольку они имеют отношение к должности и задачам, которые нужно будет решать.
📖 Про сложность алгоритмов можно прочитать здесь.
📖 Про подход в Neflix и Tiktok.
@iOS Dev
📖 Бруно Роша, разработчик в Spotify, рассуждает в своей статье о необходимости алгоритмов, презирании этой темы в сообществе и проводит параллели с развитием музыканта.
Я постарался выделить основные моменты, и позволил себе добавить некоторые комментарии.
Проблема в том, что сообщество часто направляет ненависть к подобным собеседованиям не по назначению. Негатив вокруг этого формата интервью стал настолько велик, что теперь часто можно встретить людей, испытывающих неприязнь к самой теории, которая не имеет ничего общего с непонятными головомками в программировании.
Это мнение стало настолько популярным, что теперь практически невозможно упомянуть концепцию программирования на абстрактном уровне без того, чтобы кто-то немедленно не начал холивар о практике проведения интервью. А это вредит в том числе и индивидуальной карьере инженеров, которым говорят держаться подальше от этих знаний по причинам, не поддающимся логике.
Поднимаются важные вопросы
🔴 Теория не отражает того, что человек будет делать на самом деле в своей работе.
🔴 Знание теории не является показателем мастерства человека в данной практической роли.
🔴 Теория вообще бессмысленна. Зачем разработчику iOS знать, что такое граф?
Всё это создает у людей впечатление, что основы бесполезны, в то время как на самом деле они используют их постоянно!
Я не могу передать, сколько раз я слышал, как разработчик iOS говорил: "Я могу с уверенностью сказать, что никогда в своей работе мне не приходилось использовать граф", а затем радостно рассказывал о чем-то интересном, с чем они работали, используя иерархии UIView. Это одно и то же!
Объекты, которые могут соединяться друг с другом с целью создания единой связной карты элементов, - это буквальное определение графа, поэтому они не только знают, что такое граф, но и используют его с самого первого дня работы в качестве разработчика!
🟢 Графы/деревья: UIView.
🟢 Связные списки: UIResponder.
🟢 Хеш-таблицы: Dictionary<K,V> и протокол Hashable.
🟢 Побитовые операции: OptionSet.
Примечание: автор прав, говоря о том, что даже не зная формальных определений, разработчики с самого начала карьеры (или даже прохождения каких-то курсов), уже получают необходимые знания, пусть и не зная нужных терминов.
Так действительно ли нужно всё это знать. Попробуем провести параллель с профессиональным музыкантом?
Для этого можно ответить самому себе на следующие вопросы:
🔘 Хочу ли я изучать это как хобби и никогда не выходить за рамки игры на диване для развлечения?
🔘 Хочу ли я играть в группе и зарекомендовать себя как музыкальный исполнитель?
🔘 Стремлюсь ли я выйти за рамки простого звания «музыкальный артист», живя и дыша классической музыкой, становясь неотъемлемой частью Венского филармонического оркестра, путешествуя по миру и войдя в историю как легенда, которая буквально сформировала концепцию самой музыки?
Так почему же ведущие компании делают то, что делают?
Для такой компании, как Google, неинтересно нанимать кого-то, кто посвятил свою жизнь изучению всего, что касается UIKit в iOS — их проблема не в том, какие API UIKit использовать, а в том, что API, которые им нужны, не существуют вообще.
Эти проблемы решаются благодаря пониманию computer science и способности создавать новые и эффективные решения. Ваше понимание программирования как концепции доказывает, что вы тот самый тип программиста, который им нужен.
В сочетании с обычными заданиями альтернативные (как, например, код-ревью) могут дать вам действительно хорошее представление о практических знаниях кандидата, поскольку они имеют отношение к должности и задачам, которые нужно будет решать.
📖 Про сложность алгоритмов можно прочитать здесь.
📖 Про подход в Neflix и Tiktok.
@iOS Dev
🔥28👍16💯8👏3🤔2😁1
CreateML для iOS: создание настраиваемого фильтра изображений с использованием Style Transfer
Фреймворки машинного обучения Apple с годами становятся все более мощными.
Style Transfer или Neural Style Transfer — одна из техник, которую предоставляют фреймворки.
С помощью переноса стиля (Style Transfer) вы сможете превращать одно изображение в другое, стилизуя его под заданное.
📖 В этом руководстве вы узнаете, как использовать ML-фреймворки Apple для достижения этой цели прямо на вашем iOS-устройстве!
Машинное обучение (ML) в iOS и macOS опирается на два основных фреймворка Apple - CreateML и CoreML.
ℹ️ CreateML позволяет создавать и обучать ML-модели, а CoreML — запускать их.
Изначально CreateML был доступен только для macOS для создания моделей. Затем их можно было использовать в приложениях macOS, iOS или iPadOS.
В 2021 году Apple сделала этот фреймворк доступным для iOS 15 и iPadOS 15. Теперь фреймворк CreateML позволяет обучать и создавать модели на устройстве.
Прочитав статью, вы получите ответы на следующие вопросы:
⚪ Как создать ML-модель на устройстве.
⚪ Как использовать модель для создания стилизованного изображения.
⚪ Основные понятия в обучении и прогнозировании ML.
@iOS Dev
Фреймворки машинного обучения Apple с годами становятся все более мощными.
Style Transfer или Neural Style Transfer — одна из техник, которую предоставляют фреймворки.
С помощью переноса стиля (Style Transfer) вы сможете превращать одно изображение в другое, стилизуя его под заданное.
📖 В этом руководстве вы узнаете, как использовать ML-фреймворки Apple для достижения этой цели прямо на вашем iOS-устройстве!
Машинное обучение (ML) в iOS и macOS опирается на два основных фреймворка Apple - CreateML и CoreML.
ℹ️ CreateML позволяет создавать и обучать ML-модели, а CoreML — запускать их.
Изначально CreateML был доступен только для macOS для создания моделей. Затем их можно было использовать в приложениях macOS, iOS или iPadOS.
В 2021 году Apple сделала этот фреймворк доступным для iOS 15 и iPadOS 15. Теперь фреймворк CreateML позволяет обучать и создавать модели на устройстве.
Прочитав статью, вы получите ответы на следующие вопросы:
⚪ Как создать ML-модель на устройстве.
⚪ Как использовать модель для создания стилизованного изображения.
⚪ Основные понятия в обучении и прогнозировании ML.
@iOS Dev
👍17🔥6🤯2👏1💯1
Что нового в Swift 5.7?
Вспоминаем, резюмируем, ждём.
📱 Выход нового айфона уже совсем скоро, а вместе с ним и паблик-релиз новой оси. В новом Xcode версия Swift по дефолту будет 5.7, поэтому будет полезно вспомнить (или узнать), что теперь можно использовать.
В нашем канале я старался оперативно рассказывать о всех изменениях в формате кратких постов с примерами:
⚪ Новый синтаксис в Swift 5.7 для optional unwrapping.
⚪ Упрощаем написание и понимание кода в Swift 5.7 использованием some.
⚪ Улучшение работы с closures в Swift 5.7.
⚪ Новое API для взаимодействия со временем.
📖 В этой статье Пола Хадсона новшества перечисляются в разумном порядке с практическими объяснениями.
🛠 Также с ними можно познакомиться в формате Xcode Playground.
@iOS Dev
Вспоминаем, резюмируем, ждём.
📱 Выход нового айфона уже совсем скоро, а вместе с ним и паблик-релиз новой оси. В новом Xcode версия Swift по дефолту будет 5.7, поэтому будет полезно вспомнить (или узнать), что теперь можно использовать.
В нашем канале я старался оперативно рассказывать о всех изменениях в формате кратких постов с примерами:
⚪ Новый синтаксис в Swift 5.7 для optional unwrapping.
⚪ Упрощаем написание и понимание кода в Swift 5.7 использованием some.
⚪ Улучшение работы с closures в Swift 5.7.
⚪ Новое API для взаимодействия со временем.
📖 В этой статье Пола Хадсона новшества перечисляются в разумном порядке с практическими объяснениями.
🛠 Также с ними можно познакомиться в формате Xcode Playground.
@iOS Dev
🔥20👍8❤🔥4🤩3
5 сложных алгоритмов, упрощенных с помощью функций высшего порядка в Swift
Как разработчику, нам очень часто приходится иметь дело со сложными алгоритмами, на разработку которых уходят часы или даже дни.
Благодаря функциям высшего порядка Swift, таким как
📖 В этой статье автор рассказывает о пяти алгоритмах, реализацию которых можно упростить благодаря функциям высшего порядка в Swift.
@iOS Dev
Как разработчику, нам очень часто приходится иметь дело со сложными алгоритмами, на разработку которых уходят часы или даже дни.
Благодаря функциям высшего порядка Swift, таким как
map
, reduce
, filter
и т. д., некоторые из этих сложных алгоритмов теперь можно легко решить c помощью нескольких строк кода.📖 В этой статье автор рассказывает о пяти алгоритмах, реализацию которых можно упростить благодаря функциям высшего порядка в Swift.
@iOS Dev
🔥37👍9👏2💯1
Swift 30 Projects — подборка опенсорсных проектов на самые разные темы
Сделано разработчиками для разработчиков
🛠 Этот репозиторий содержит проекты, демонстрирующие следующие примеры:
🔘 Простые компоненты UIKit.
🔘 UIScrollView, UITableView, UICollectionView.
🔘 CAAnimations и UIView Animations.
🔘 Локальные уведомления.
🔘 Фреймворки MapKit, Contact и Core ML.
🔘 Core Data, Today Extension и 3D touch.
🔘 Популярные фреймворки с открытым исходным кодом.
🔘 Паттерны проектирования.
🔘 XCTest.
Для каждого проекта есть свой README и скриншоты, все подробности можно найти там.
#opensource
@iOS Dev
Сделано разработчиками для разработчиков
🛠 Этот репозиторий содержит проекты, демонстрирующие следующие примеры:
🔘 Простые компоненты UIKit.
🔘 UIScrollView, UITableView, UICollectionView.
🔘 CAAnimations и UIView Animations.
🔘 Локальные уведомления.
🔘 Фреймворки MapKit, Contact и Core ML.
🔘 Core Data, Today Extension и 3D touch.
🔘 Популярные фреймворки с открытым исходным кодом.
🔘 Паттерны проектирования.
🔘 XCTest.
Для каждого проекта есть свой README и скриншоты, все подробности можно найти там.
#opensource
@iOS Dev
🔥37👍9👏1🎉1🤩1
Появится Crash Detection
Автоматически уведомит экстренные службы в случае столкновения на авто.
Важное и полезное нововведение!
Обучили на 1 миллионе часов реального вождения и обнаружения аварий.
Юзают кучу данных с гироскопа и не только, что позволит наиболее точно определить степень повреждений.
@iOS Dev
Автоматически уведомит экстренные службы в случае столкновения на авто.
Важное и полезное нововведение!
Обучили на 1 миллионе часов реального вождения и обнаружения аварий.
Юзают кучу данных с гироскопа и не только, что позволит наиболее точно определить степень повреждений.
@iOS Dev
🔥19💯5👍3😁1😱1
Новые AirPods Pro
Более крутая начинка, новый чип.
Магия будет происходить с помощью Spatial Audio.
Можно будет настроить персональный профиль, специально для того, кто слушает. А как было раньше?!
А вот 2x-шумоподавление звучит очень достойно!
Adaptive Transparency позволит более качественно работать с окружением, включая, например, дорожные работы.
⏳6 часов без подзарядки и 30 суммарно.
😳А ещё новый сенсор на наушниках, можно будет регулировать звук?!
От $249 - ради сенсора можно и подумать!
@iOS Dev
Более крутая начинка, новый чип.
Магия будет происходить с помощью Spatial Audio.
Можно будет настроить персональный профиль, специально для того, кто слушает. А как было раньше?!
А вот 2x-шумоподавление звучит очень достойно!
Adaptive Transparency позволит более качественно работать с окружением, включая, например, дорожные работы.
⏳6 часов без подзарядки и 30 суммарно.
😳А ещё новый сенсор на наушниках, можно будет регулировать звук?!
От $249 - ради сенсора можно и подумать!
@iOS Dev
🔥21👏4👍2🤨1