Перечитываю книгу Фаулера "Рефакторинг". В ней он демонизирует плохой код, дает советы как продать бизнесу рефакторинг и жить проще. Ну, всё как мы любим.
В большинстве команд рефакторинг воспринимается как украшение или избыточный перфекционизм. Ну, сначала пилите фичи, а потом можно и техдолгом заняться… когда-нибудь… ну если останется время…
Спойлер: оно не останется. Хороший код быстрее понимается. В нём проще искать баги. В него безопаснее добавлять новое. Его можно передавать другим — и жопа команды не сгорит.
Когда же грязный код это не про красоту, а про выживание. Где ты добавил фичу и сломал что-то старое. Хотел пофиксить баг и зарылся на часы. А любая правка — это мини-экспедиция с риском не вернуться.
Окей, мы все знаем проблемы херового кода, но как его подчищать и какие процессы существуют? Давайте разберем методики рефакторинга кода в продуктовых командах:
Когда добавляешь фичу или чинишь баг — вначале подчисти кусок кода, с которым работаешь. Позволяет улучшать код постоянно, не дожидаясь «идеального времени». Не увлекайся — цель не улучшить весь мир, а упростить конкретную задачу.
Прежде чем что-то менять — напиши или обнови тесты. Рефакторинг должен быть безопасным.
Обнаружил «запах» — отреагируй. Например: длинный метод; слишком много параметров; дублирование;
Команда включает рефакторинг в определение готовности задачи.
Пример: «Фича считается готовой, если код покрыт тестами и улучшен в рамках контекста задачи».
Формализует это как норму, а не "инициативу отдельного разработчика".
В целом, есть еще и разные инструменты как линтер и сонары, а также правила бойскаутов. О них может быть поговорим позже
Please open Telegram to view this post
VIEW IN TELEGRAM
App Store в США потерял монополию на оплату,
но во всём остальном мире 30% комиссия, а также контроль над пейволами, A/B тестами, трекингом всё ещё сохраняется.
Web2App - решение, которое возвращает контроль уже сегодня.
🍏 Простыми словами:
Вместо того чтобы сразу вести пользователей в App Store, вы направляете их на веб-воронку, где они:
— понимают, зачем им ваш продукт
— оплачивают подписку на вебе без ограничений и контроля со стороны Apple или Google
— устанавливают приложение через диплинк с уже активной подпиской
👌 Это выгодно:
Вы не просто экономите на комиссиях сторов (платите всего 2-5% вместо 30%), но и получаете:
— точную атрибуцию и аналитику через webhooks даже на iOS
— прогретых пользователей которые понимают ценность продукта, что повышает LTV и снижает CAC
— собранную email-базу для повторного маркетинга
Запустить за 2 дня:
web2wave это готовый топовый конструктор веб воронок, где вам не нужно ничего программировать. Просто подключаете к своему приложению и запускаете.
👀 Хотите потестить? Зарегистрируйтесь на web2wave.com
P.S. Кстати, ребята из web2wave также предлагают интеграцию внешних оплат прямо в iOS приложения для рынка США (благодаря решению суда Epic vs. Apple). Сейчас ищут 3 приложения для бесплатной интеграции. Интересно? Напишите @igor_lyu
но во всём остальном мире 30% комиссия, а также контроль над пейволами, A/B тестами, трекингом всё ещё сохраняется.
Web2App - решение, которое возвращает контроль уже сегодня.
🍏 Простыми словами:
Вместо того чтобы сразу вести пользователей в App Store, вы направляете их на веб-воронку, где они:
— понимают, зачем им ваш продукт
— оплачивают подписку на вебе без ограничений и контроля со стороны Apple или Google
— устанавливают приложение через диплинк с уже активной подпиской
👌 Это выгодно:
Вы не просто экономите на комиссиях сторов (платите всего 2-5% вместо 30%), но и получаете:
— точную атрибуцию и аналитику через webhooks даже на iOS
— прогретых пользователей которые понимают ценность продукта, что повышает LTV и снижает CAC
— собранную email-базу для повторного маркетинга
Запустить за 2 дня:
web2wave это готовый топовый конструктор веб воронок, где вам не нужно ничего программировать. Просто подключаете к своему приложению и запускаете.
👀 Хотите потестить? Зарегистрируйтесь на web2wave.com
P.S. Кстати, ребята из web2wave также предлагают интеграцию внешних оплат прямо в iOS приложения для рынка США (благодаря решению суда Epic vs. Apple). Сейчас ищут 3 приложения для бесплатной интеграции. Интересно? Напишите @igor_lyu
Как АИ заменяет карьерных менторов и коучей. И заменит ли?
Перед тем как уходить с Авито, я обновил свое резюме с помощью чатгпт. Не накручивал опыт (в моем случае его уже надо скручивать), а попросил упаковать в емкую и четкую формулировку все что там написано. Это уже давно все делают на перфоманс ревью.
Сделать текст, так скажем, продающим. И конверсия на довольно хорошие позиции сильно увеличилась. Получается, не нужно платить процент от зп или кучу бабок тем, кто учит писать продающие резюме?
Я уже писал много раз, что большинство услуг менторов и других карьерных коучей — скам и это заменит чагпт. У меня было 3 года опыта менторства до того, как это стало мейнстримом. И я ушел тупо потому, что мне надоела рутина. Запросы в 80% одни и те же. И как бы вам не говорили про индивидуальные подходы, но в 2/3 случаях их нет.
Из интересного и относительного благородного дела это становится рутиной, где ты повторяешь одно и то же. Как персональный тренер в фитнес зале, его помощь нужна только на первых этапах. А дальше, если он сам не достиг хороших высот и результатов, то он быстро становится бесполезным. Поэтому фуллтайм менторством лучше заниматься, когда решил отказаться от профессионального забега и ушел на пенсию.
В отличие от спортзала it-физруков ИИ идельно заменяет. В ит не требуется стоять рядом и следить за каждым движением. Или это не всегда так? Тех, кто поверхностно обучает одной и той же методичкой. Но не все так гладко. В вопросе серьезного карьерного развития роль менеджера или высоко-квалифицированного наставника остается все также важной.
Вот и в статье пишется:
- зумеры уже доверяют чат ботам и АИ больше, чем менеджерам
- эффективное карьерное развитие все также требует вовлечение менеджеров
- ИИ может предоставить обобщённую информацию и помочь в саморазвити. Однако он не способен заменить персонализированную поддержку и контекстуальные советы, которые может дать опытный наставник или менеджер.
Перед тем как уходить с Авито, я обновил свое резюме с помощью чатгпт. Не накручивал опыт (в моем случае его уже надо скручивать), а попросил упаковать в емкую и четкую формулировку все что там написано. Это уже давно все делают на перфоманс ревью.
Сделать текст, так скажем, продающим. И конверсия на довольно хорошие позиции сильно увеличилась. Получается, не нужно платить процент от зп или кучу бабок тем, кто учит писать продающие резюме?
Я уже писал много раз, что большинство услуг менторов и других карьерных коучей — скам и это заменит чагпт. У меня было 3 года опыта менторства до того, как это стало мейнстримом. И я ушел тупо потому, что мне надоела рутина. Запросы в 80% одни и те же. И как бы вам не говорили про индивидуальные подходы, но в 2/3 случаях их нет.
Из интересного и относительного благородного дела это становится рутиной, где ты повторяешь одно и то же. Как персональный тренер в фитнес зале, его помощь нужна только на первых этапах. А дальше, если он сам не достиг хороших высот и результатов, то он быстро становится бесполезным. Поэтому фуллтайм менторством лучше заниматься, когда решил отказаться от профессионального забега и ушел на пенсию.
В отличие от спортзала it-физруков ИИ идельно заменяет. В ит не требуется стоять рядом и следить за каждым движением. Или это не всегда так? Тех, кто поверхностно обучает одной и той же методичкой. Но не все так гладко. В вопросе серьезного карьерного развития роль менеджера или высоко-квалифицированного наставника остается все также важной.
Вот и в статье пишется:
- зумеры уже доверяют чат ботам и АИ больше, чем менеджерам
- эффективное карьерное развитие все также требует вовлечение менеджеров
- ИИ может предоставить обобщённую информацию и помочь в саморазвити. Однако он не способен заменить персонализированную поддержку и контекстуальные советы, которые может дать опытный наставник или менеджер.
Business Insider
Some Gen Z workers are turning to AI for career advice and it's actually not a bad idea
Many Gen Zers are turning to AI for career advice but managers still have a key role to play in guiding workers.
Goodbye Code Reviews, Hello Harmonize
В прошлом посте мы поговорили про рефакторинг и закинули удочку на возможное обсуждение разных инструментов для улучшение кода.
Начнем с самых современных :) стартер пак любого проекта — это линтеры, которые задают принятую стилистику проекта. Думаю объяснять что это не сильно нужно.
С развитием же AI начинают развиваться более интересные инструменты.
Вместо того чтобы полагаться на ручные код-ревью для проверки соблюдения архитектурных соглашений, Harmonize позволяет автоматизировать эти проверки, превращая их в юнит-тесты.
Например:
1 Проверка наследования ViewModel
Убедиться, что все классы, заканчивающиеся на ViewModel, наследуются от BaseViewMod
2. Проверка захвата self в замыканиях
Убедиться, что self захватывается слабо в замыканиях внутри ViewModel
И многие другие штуки
Возможно, когда-нибудь я напишу как проводят код ревью с помощью AI в крупных компаниях. Но если мне это разрешат🥲
В прошлом посте мы поговорили про рефакторинг и закинули удочку на возможное обсуждение разных инструментов для улучшение кода.
Начнем с самых современных :) стартер пак любого проекта — это линтеры, которые задают принятую стилистику проекта. Думаю объяснять что это не сильно нужно.
С развитием же AI начинают развиваться более интересные инструменты.
Вместо того чтобы полагаться на ручные код-ревью для проверки соблюдения архитектурных соглашений, Harmonize позволяет автоматизировать эти проверки, превращая их в юнит-тесты.
Например:
1 Проверка наследования ViewModel
Убедиться, что все классы, заканчивающиеся на ViewModel, наследуются от BaseViewMod
2. Проверка захвата self в замыканиях
Убедиться, что self захватывается слабо в замыканиях внутри ViewModel
И многие другие штуки
Возможно, когда-нибудь я напишу как проводят код ревью с помощью AI в крупных компаниях. Но если мне это разрешат
Please open Telegram to view this post
VIEW IN TELEGRAM
Medium
Goodbye Code Reviews, Hello Harmonize: Enforce Your Architecture in Swift
Enforce architecture and best practices in your iOS apps as unit tests, with a modern, open-source linter for Swift.
На очереди у нас еще много контента по SwiftUI (пара мок собесов по систем дизайну и лайфкодингу, разбор кишков и тп). Поэтому чуть отвлекемся.
Один из частых запросов сделать подборку вопросов и задач для UIKit. А именно по производительности. По SwiftUI мы уже сделали парочку, а по UIKit ни одного. Нас за это справедливо пнули.
Такие вопросы любят задавать на сеньорные уровни в Авито, Яндексе, Сбере. А еще эти знания помогли мне занять призовое место в конкурсе телеграма. Без них никуда.
Удивлен, что толком не говорил об этом раньше. Многим часто дают такие задачи на собесах. Они помогают определить степень экспертности кандидата и насколько он может сделать плавным UI. Это логично и адекватно, ведь мобильный разработчик чаще всего работает с UI, а здесь знание кишков максимально оправдано.
Еще более удивлен, как много кандидатов валит эту секцию.
Я люблю копать в эту тему. Сейчас объясню почему) В одной из команд нам пришлось оптимизировать чат. Это сложная задача с которой не справлялось множество прошлых разрабов. Во-первых, никто не хотел копаться в легаси 10летней давности, а во-вторых код был очень запутанный и сложный. Но мы справились и улучшили перфоманс чата. Для директоров это было супер важно и так мы получили хорошую надбавку по зп.
Что мы сделали? Много чего, но одна из сложных задач была переход с Auto Layout на Frame Based, что увеличило перфоманс в 2,5 раза. Я уже кстати раньше делал материал и гайд. Ставь лайк, если нужно больше постов про производительность в UIKit.
Собрал все важные вопросы, которые помогут вам выстроить план и найти нужные акценты по производительности. В общем, крутая подборка, одна из моих самых любимых.
Будет несколько частей.
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой платформой для закрепления практики и самообучения вы пользуетесь/пользовались?
Anonymous Poll
72%
Leetcode
5%
essential developer
5%
Neetcode
6%
Coderun
6%
HackerRank
7%
Яндекс.Контест
1%
ByteByByte
1%
InterviewBit
24%
CodeWars
18%
Другое
Продвинутые техники UIKit: CADisplayLink
Проходя по техникам работы с высоконагруженными экранами нельзя не затронуть CADisplayLink. С помощью него я делал одну из самых красивых анимаций за свой опыт, когда был в конкурсе телеграм.
Например, если у устройства 60 Гц — CADisplayLink вызывает твой метод 60 раз в секунду, т.е. примерно каждые 16.67 мс. На 120 Гц — 120 вызовов в секунду.
CADisplayLink особенно полезен когда мы делаем игры, сложные анимации, работаем с OpenGL, Metal.
В отличие от обычного таймера DisplayLink работает более плавнее. Это как если бы ты записывал видео, а твоя камера сама делала снимок строго в момент, когда экран обновляется. Каждый кадр — точный, выровненный, идеально синхронный с дисплеем.
Полезные ссылки:
- How to synchronize code to drawing using CADisplayLink
- CADisplayLink
- CADisplayLink and its applications
Проходя по техникам работы с высоконагруженными экранами нельзя не затронуть CADisplayLink. С помощью него я делал одну из самых красивых анимаций за свой опыт, когда был в конкурсе телеграм.
CADisplayLink — это специальный класс таймера в iOS, который позволяет синхронизировать выполнение кода с частотой обновления экрана устройства. В отличие от обычного NSTimer, CADisplayLink гарантирует, что ваш код будет выполняться точно в момент обновления кадра дисплея.
Например, если у устройства 60 Гц — CADisplayLink вызывает твой метод 60 раз в секунду, т.е. примерно каждые 16.67 мс. На 120 Гц — 120 вызовов в секунду.
CADisplayLink особенно полезен когда мы делаем игры, сложные анимации, работаем с OpenGL, Metal.
В отличие от обычного таймера DisplayLink работает более плавнее. Это как если бы ты записывал видео, а твоя камера сама делала снимок строго в момент, когда экран обновляется. Каждый кадр — точный, выровненный, идеально синхронный с дисплеем.
Полезные ссылки:
- How to synchronize code to drawing using CADisplayLink
- CADisplayLink
- CADisplayLink and its applications
1 13 3
Я переобулся. Раньше я говорил что эти ваши тиктоки — рак. Нужны либо для деградации, либо для продаж. Но сейчас мою ленту заполнили талантливые ребята.
Их творческий вайб мотивирует. Даже делая с минимальным бюджетом чувствуется стиль, скилл и труд. Меня всегда цепляли истории искренних любителей своего дела. Кто с любовью и завидной преданностью делает свою работу.
Они говорят о кино, музыке, работе или учебе. Это не brainrot и не отупление. Это гармония с делом и развитием. Где есть легкость и забота о зрителе.
В общем, в эпоху коротких видосов нужно уметь легко и емко выражать свои мысли в минутный формат.
Я должен был бороться со злом, а не примкнуть к нему.
Подобрал небольшую коллекцию на мой взгляд очень качественных рилсов. Где отлично балансирует содержание и форма.
Возможно, ждите контент когда-нибудь что-нибудь. Хз.
Их творческий вайб мотивирует. Даже делая с минимальным бюджетом чувствуется стиль, скилл и труд. Меня всегда цепляли истории искренних любителей своего дела. Кто с любовью и завидной преданностью делает свою работу.
Они говорят о кино, музыке, работе или учебе. Это не brainrot и не отупление. Это гармония с делом и развитием. Где есть легкость и забота о зрителе.
В общем, в эпоху коротких видосов нужно уметь легко и емко выражать свои мысли в минутный формат.
Я должен был бороться со злом, а не примкнуть к нему.
Подобрал небольшую коллекцию на мой взгляд очень качественных рилсов. Где отлично балансирует содержание и форма.
Возможно, ждите контент когда-нибудь что-нибудь. Хз.
Обмен культурой через социальные сети
Побыв минимально без социальных сетей прошлый месяц я понял их минусы, а главное плюсы.
Выключая этот источник информации ты выпадешь из контекста. Не сечешь в мемах как дед. Как не понимать почему среди разрабов правильно ЭйАрСи, а не АРК.
Ты далек от той практикующей среды, которая наполнена своими шутками и деталями. Ведь ее неидеальность и устройство возможно понять только находясь в ней, варясь. А не наблюдая сбоку через переводчики.
Ты слышишь, как человек говорит, какие мемы он юзает, и уже понимаешь «свой» или «чужой». Кто в тренде, а кто устарел.
Мне самому было сложно находить себя в профессии. Я не знал, у кого спросить, что нормально, а что странно. Именно поэтому мне захотелось собрать вокруг этого канала людей, у которых можно поучиться, дружески посоперничать, по-доброму позавидовать.
Профессиональная культура — это заразительно. Если работа — твой дом, то соцсети — улицы, где можно встретить единомышленников, вдохновиться витриной чужого опыта и самому стать ориентиром. Это все становится родным городом, политика которого тебе не безразлична.
Важно только стараться не задерживаться в черных районах дольше рекомендованного.
В век асинхронных коммуникаций в мессенджере и удаленных созвонов в зуме мы начали строить свои цифровые общества. Заполнять одиночество, созданным ковидом, через чаты и аватары.
Как бы мы не доказывали, что все мы работаем исключительно ради денег, но это не так.
Мы ищем атмосферу, ценности, подходы. Иначе бы конференции и блоги имели только одну тему. В сухую цифру и мертвые метрики дохода.
Культура — не только о «офис с едой по бейджу» и офферы, а про уважение, рост, поддержку, процессы. Публичность создает доверие.
Культура не живёт в вакууме. Формируется коллективная мудрость. Кто-то делится кейсом, а кто-то добавляет контрпример — рождается новое понимание.
Формулируя и делясь лучше понимаешь свои и чужие ценности и подходы.
Делитесь не только результатами, но и процессом. Не бойтесь быть уязвимыми ведь культура создается живыми людьми.
Каждый пост или коммент это не хвастовство, а вклад в общее развитие системы.
Побыв минимально без социальных сетей прошлый месяц я понял их минусы, а главное плюсы.
Выключая этот источник информации ты выпадешь из контекста. Не сечешь в мемах как дед. Как не понимать почему среди разрабов правильно ЭйАрСи, а не АРК.
Ты далек от той практикующей среды, которая наполнена своими шутками и деталями. Ведь ее неидеальность и устройство возможно понять только находясь в ней, варясь. А не наблюдая сбоку через переводчики.
Ты слышишь, как человек говорит, какие мемы он юзает, и уже понимаешь «свой» или «чужой». Кто в тренде, а кто устарел.
Мне самому было сложно находить себя в профессии. Я не знал, у кого спросить, что нормально, а что странно. Именно поэтому мне захотелось собрать вокруг этого канала людей, у которых можно поучиться, дружески посоперничать, по-доброму позавидовать.
Профессиональная культура — это заразительно. Если работа — твой дом, то соцсети — улицы, где можно встретить единомышленников, вдохновиться витриной чужого опыта и самому стать ориентиром. Это все становится родным городом, политика которого тебе не безразлична.
Важно только стараться не задерживаться в черных районах дольше рекомендованного.
В век асинхронных коммуникаций в мессенджере и удаленных созвонов в зуме мы начали строить свои цифровые общества. Заполнять одиночество, созданным ковидом, через чаты и аватары.
Как бы мы не доказывали, что все мы работаем исключительно ради денег, но это не так.
Мы ищем атмосферу, ценности, подходы. Иначе бы конференции и блоги имели только одну тему. В сухую цифру и мертвые метрики дохода.
Культура — не только о «офис с едой по бейджу» и офферы, а про уважение, рост, поддержку, процессы. Публичность создает доверие.
Культура не живёт в вакууме. Формируется коллективная мудрость. Кто-то делится кейсом, а кто-то добавляет контрпример — рождается новое понимание.
Формулируя и делясь лучше понимаешь свои и чужие ценности и подходы.
Делитесь не только результатами, но и процессом. Не бойтесь быть уязвимыми ведь культура создается живыми людьми.
Каждый пост или коммент это не хвастовство, а вклад в общее развитие системы.
CognitiveComplexity.pdf
547.6 KB
Cognitive Complexity: A New Way of Measuring Understandability
Продолжаем тему рефакторинга. На очереди разбор других инструментов, кроме знакомого всем линтера.
На очереди книга от Sonar.
Традиционная метрика Cyclomatic Complexity (1976 г.) хорошо показывает, сколько тестов нужно, чтобы покрыть код. Но она не показывает, насколько сложно человеку понять этот код.
Два метода могут иметь одинаковую цикломатическую сложность, но один из них будет понятен с первого взгляда, а другой — как клубок спагетти.
Книга предлагает когнитивную сложность — метрику, которая:
🟣 Не основывается на математических моделях, а ориентируется на интуицию разработчиков.
🟣 Учитывает, насколько код сложно читать и понимать.
🟣 Подходит для современных языков (с try/catch, лямбдами, switch и т.д.).
🟣 Дает оценку сложности не только метода, но и целого класса или приложения.
Кому и зачем читать эту книгу:
🔘 Разработчикам, кто хочет писать понятный, поддерживаемый код.
🔘 Лид-инженерам, кто ищет более точные метрики качества.
🔘 Тем, кто внедряет SonarQube или аналитику кода.
Всем, кто хочет уйти от «искусственного» счёта Cyclomatic Complexity к более реальной оценке.
Продолжаем тему рефакторинга. На очереди разбор других инструментов, кроме знакомого всем линтера.
На очереди книга от Sonar.
Книга «Cognitive Complexity: A New Way of Measuring Understandability» от SonarSource описывает новую метрику оценки сложности кода — когнитивную сложность (Cognitive Complexity), как альтернативу классической цикломатической сложности (Cyclomatic Complexity).
Традиционная метрика Cyclomatic Complexity (1976 г.) хорошо показывает, сколько тестов нужно, чтобы покрыть код. Но она не показывает, насколько сложно человеку понять этот код.
Два метода могут иметь одинаковую цикломатическую сложность, но один из них будет понятен с первого взгляда, а другой — как клубок спагетти.
Книга предлагает когнитивную сложность — метрику, которая:
Кому и зачем читать эту книгу:
Всем, кто хочет уйти от «искусственного» счёта Cyclomatic Complexity к более реальной оценке.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
В прошлом посте канала мы разбирали немного CADisplayLink. Зачем он и где мне помогал на работе или в конкурсах телеграма.
Наш подписчик решил поделиться из своей личной базы подборкой задач на CADisplayLink. Какие-то придумал сам, какие-то похожие давали на собесах.
В них узнаете:
Please open Telegram to view this post
VIEW IN TELEGRAM
На днях в лс мне написали с вопросом:
Привет! Подскажи, пожалуйста, у тебя был пост или какая-либо информация по работе с метриками? Я сейчас стараюсь выстроить флоу работы с метриками в iOS приле (имею ввиду техническими). Как настроить мониторинг и алертинг, как это все к бизнес процессам привязать, итд )
Для меня это отдельная большая тема, которую можно и поштормить, и в канале написать. Поэтому сказал я технично ушел от ответа, сказав что напишу посты в канале на эту тему
В целом вопрос отличный и всегда актуальный: Как привязать технические метрики к бизнес значениям? Мы коммерческие разработчики, и каждый наш шаг и секунду нужно защищать перед бизнесом. Метрики без бизнес value — бесполезные.
Пока в плане таких метрик лучше всего на моем опыте был Авито. Да и опрашивая других не могу найти решений лучше на рынке.
Например:
Почему это важно для бизнеса? Любой баг — это потерянные деньги. На инцидент анализе, очень нехорошем процессе при разборе бага, могут выявить, что ваш баг можно было отловить покрыв код тестами.
А есть сын маминой подруги. Оценка его модуля 8 из 10. Все чисто, круто, новый шмот и аккуратность. Приятная и современная архитектура. Вероятно, когда ты будешь работать с ним, проблем никаких не будет.
В общем, я поделился лишь малой частью метрик. В будущем мб детально распишу это все. Как раз и для меня это актуально.
А вы можете помочь нашему подписчику и поделиться своим опытом.
Please open Telegram to view this post
VIEW IN TELEGRAM
Deploying Machine Learning Models with Vapor and Core ML
Сейчас будет абсолютно непродающий пост.
Еще немного про советы коллегам. Всем молодым ребятам, которые спрашивают нужно ли изучать iOS разработку в 16 лет я говорю — не нужно:)
Будь это знакомые, дети знакомых, родственники. На мой взгляд, популярность мобильной разработки и в целом фронтенда, особенно с развитием ИИ, сильно падает. Прошли те времена, когда за покрашенную кнопку дают кучу бабок. Сейчас мобилка становится сложнее и конкурентнее.
А вот ИИ бабки гребет и следующее десятилетие точно за ней. В среднем, я и мои знакомые только за подписки на курсоры и чатгпт отдают от 100$. Где- пользуются от силы этим всем 20% времени. Что это значит? Что в ии сейчас много пузыря и скама, как когда-то было в мобилках, фронте и бэке. А может быть и больше всех вместе взятых. Каждый ИИ плагин или обертка над чатгпт стоит от 20$ за месяц. Очевидно там много оверпрайса.
Ну в общем статья для тех, кто хочет аккуратно свитчнуться в ML и начинает с внедрения в мобилку
Стоит ли идти в иос разработку в 16 лет? Зависит от цели. Если вам нравится программирование и айфоны - да. Если нужны легкие деньги, то кмк лучше в мл:)
Сейчас будет абсолютно непродающий пост.
Еще немного про советы коллегам. Всем молодым ребятам, которые спрашивают нужно ли изучать iOS разработку в 16 лет я говорю — не нужно:)
Будь это знакомые, дети знакомых, родственники. На мой взгляд, популярность мобильной разработки и в целом фронтенда, особенно с развитием ИИ, сильно падает. Прошли те времена, когда за покрашенную кнопку дают кучу бабок. Сейчас мобилка становится сложнее и конкурентнее.
А вот ИИ бабки гребет и следующее десятилетие точно за ней. В среднем, я и мои знакомые только за подписки на курсоры и чатгпт отдают от 100$. Где- пользуются от силы этим всем 20% времени. Что это значит? Что в ии сейчас много пузыря и скама, как когда-то было в мобилках, фронте и бэке. А может быть и больше всех вместе взятых. Каждый ИИ плагин или обертка над чатгпт стоит от 20$ за месяц. Очевидно там много оверпрайса.
Ну в общем статья для тех, кто хочет аккуратно свитчнуться в ML и начинает с внедрения в мобилку
Стоит ли идти в иос разработку в 16 лет? Зависит от цели. Если вам нравится программирование и айфоны - да. Если нужны легкие деньги, то кмк лучше в мл:)
Teachable
Deploying Machine Learning Models with Vapor and Core ML
Глупый вопрос лучше глупой ошибки
Недавно я опрашивал сообщество и решил узнать какой самый главный навык выделяет джуна от сеньора.
Многие выделили навык умение задавать правильные вопросы.
На дейлике джун молчит — боится показаться глупым. Сеньор не замолкает — боится не понять.
Джун боится показаться глупым. Сеньор знает, что если не спросишь — сделаешь хуже. Джун не уверен, что имеет право на голос. Сеньор чувствует ответственность за результат.
Многие отметили, что спрашивать — это не значит быть глупым. Это значит быть честным, внимательным и готовым учиться.
Такую же проблему я замечал, когда занимался менторством. Новички часто боятся осуждений за вопрос. Не понимают можно ли его задать. Но чаще чем больше вопросов, тем больше пользы приносит процесс изучения.
Недавно я опрашивал сообщество и решил узнать какой самый главный навык выделяет джуна от сеньора.
Многие выделили навык умение задавать правильные вопросы.
Молчание джуна — это не скромность, а упущенная возможность учиться. Настойчивые вопросы сеньора — не самоуверенность, а способ глубже понимать и делать лучше. Учиться — значит задавать вопросы.
На дейлике джун молчит — боится показаться глупым. Сеньор не замолкает — боится не понять.
Джун боится показаться глупым. Сеньор знает, что если не спросишь — сделаешь хуже. Джун не уверен, что имеет право на голос. Сеньор чувствует ответственность за результат.
Многие отметили, что спрашивать — это не значит быть глупым. Это значит быть честным, внимательным и готовым учиться.
Такую же проблему я замечал, когда занимался менторством. Новички часто боятся осуждений за вопрос. Не понимают можно ли его задать. Но чаще чем больше вопросов, тем больше пользы приносит процесс изучения.
Ты не знаешь как делать задачу. Что будешь делать?
Anonymous Poll
29%
Начну делать как понял, потом разберусь
58%
Поищу решение сам
40%
Спрошу у коллег
64%
Спрошу у чатгпт
11%
Пойду в профильные чаты
35%
Вспомню как гуглить
37%
Обсужу с коллегами
4%
Другое
iOS Makes Me Hate
Ты не знаешь как делать задачу. Что будешь делать?
Кстати, заметьте как почти умерли «профильные чаты». Когда раньше форумы и сообщества были источником обмена инфы и поддержки, то с приходом чатгпт начался их закат.