Forwarded from Тимур Тибеев | BigTechDream (Timur Tibeyev)
🍫Читеры, синьоры, AI
Предлагаю интересное обсуждение, которое уже какое-то время у меня в голове.
Я все больше убеждаюсь, что 2025 это год кардинальных изменений. Дело не только в том, что все используют AI. А в том, что сам фундамент разработки, который строился годами пошатнулся.
🔸Титулы
Если еще вчера, мы все более или менее четко понимали разницу между синьором и джуном (даже с учетом инфляции). То сегодня граница стала еще более размытой.
В статье “The 70% problem: Hard truths about AI-assisted coding” приводится гипотеза 70% / 30%. Инженеры, которые используют AI для решения рабочих проблем проходят 70% очень быстро. Оставшиеся 30% это исправление кривого кода, написание тестов, переписывание и тд. Так вот, эти 30% как раз и будут отличать синьора от мидла.
➡️ https://addyo.substack.com/p/the-70-problem-hard-truths-about
🔸Хард скиллы
Предыдущий пункт подталкивает нас к мысли, что уже не так важно уметь писать хороший код. Умение писать код будет обесцениваться.
Но как говорил Мэтт Мёрдок “когда теряешь одно чувство, другие усиливаются”.
Увеличится важность следующих навыков:
- Умение правильно промпить и находить нужные ответы быстрее
- Быть более эффективным в работе, используя разные AI тулзы
- Быстро понимать концепции, не углубляясь в имплементацию
🔸Читеры
Следующий момент это читерство на собеседованиях. Сервисы подобные https://www.parakeet-ai.com/ и различные браузерные расширения становятся реальной угрозой качеству найма.
Плохой найм имеет запоздалый эффект. Кандидат-читер выявится не сразу, а спустя как минимум 6 месяцев испытательного срока.
Компании придумывают разные способы: кто-то возвращает офисные собеседования, кто-то маскирует задачи, что их не распознали AI инструменты, кто-то наоборот поощряет.
➡️ https://news.ycombinator.com/item?id=42909166
Интересная получается ситуация, нужно усидеть на трех стульях:
- Как проверить, что кандидат имеет базовые навыки?
- Как проверить, что кандидат умеет пользоваться разными LLMs для работы?
- Как понять, что кандидат не читерит?
О да, господа, интересное время мы проживаем, когда компании будут стараться найти баланс в этих вопросах.
Выскажу осторожную мысль, то что MAANG компании пока не изменили свой формат интервью, отчасти говорит о том, что они не считают AI читерство такой масштабной проблемой. Ну или просто не придумали как с ним бороться.
🔸Что это все значит, Тимур?
У меня одна мысль в голове, на 1-2 недели постарайтесь внедрить в свою работу AI инструменты. Заставьте себя их использовать, сделайте себя адептом LLM моделей.
Станьте более эффективным. Используйте AI для своего повышения уже сегодня, пока другие только размышляют. Выполняйте больше за то же время что и раньше.
Посвятите 2025 год личной и командной эффективности при помощи AI.
✔️ Вроде бы ничего нового, но свои мысли привел в порядок, спасибо 🙂
Предлагаю интересное обсуждение, которое уже какое-то время у меня в голове.
Я все больше убеждаюсь, что 2025 это год кардинальных изменений. Дело не только в том, что все используют AI. А в том, что сам фундамент разработки, который строился годами пошатнулся.
🔸Титулы
Если еще вчера, мы все более или менее четко понимали разницу между синьором и джуном (даже с учетом инфляции). То сегодня граница стала еще более размытой.
В статье “The 70% problem: Hard truths about AI-assisted coding” приводится гипотеза 70% / 30%. Инженеры, которые используют AI для решения рабочих проблем проходят 70% очень быстро. Оставшиеся 30% это исправление кривого кода, написание тестов, переписывание и тд. Так вот, эти 30% как раз и будут отличать синьора от мидла.
🔸Хард скиллы
Предыдущий пункт подталкивает нас к мысли, что уже не так важно уметь писать хороший код. Умение писать код будет обесцениваться.
Но как говорил Мэтт Мёрдок “когда теряешь одно чувство, другие усиливаются”.
Увеличится важность следующих навыков:
- Умение правильно промпить и находить нужные ответы быстрее
- Быть более эффективным в работе, используя разные AI тулзы
- Быстро понимать концепции, не углубляясь в имплементацию
🔸Читеры
Следующий момент это читерство на собеседованиях. Сервисы подобные https://www.parakeet-ai.com/ и различные браузерные расширения становятся реальной угрозой качеству найма.
Плохой найм имеет запоздалый эффект. Кандидат-читер выявится не сразу, а спустя как минимум 6 месяцев испытательного срока.
Компании придумывают разные способы: кто-то возвращает офисные собеседования, кто-то маскирует задачи, что их не распознали AI инструменты, кто-то наоборот поощряет.
Интересная получается ситуация, нужно усидеть на трех стульях:
- Как проверить, что кандидат имеет базовые навыки?
- Как проверить, что кандидат умеет пользоваться разными LLMs для работы?
- Как понять, что кандидат не читерит?
О да, господа, интересное время мы проживаем, когда компании будут стараться найти баланс в этих вопросах.
Выскажу осторожную мысль, то что MAANG компании пока не изменили свой формат интервью, отчасти говорит о том, что они не считают AI читерство такой масштабной проблемой. Ну или просто не придумали как с ним бороться.
🔸Что это все значит, Тимур?
У меня одна мысль в голове, на 1-2 недели постарайтесь внедрить в свою работу AI инструменты. Заставьте себя их использовать, сделайте себя адептом LLM моделей.
Станьте более эффективным. Используйте AI для своего повышения уже сегодня, пока другие только размышляют. Выполняйте больше за то же время что и раньше.
Посвятите 2025 год личной и командной эффективности при помощи AI.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведется в консоли?
Anonymous Quiz
71%
"I dont have a car"
17%
"My car is BMW"
7%
"My car is nil"
1%
"My car is"
2%
Будет ошибка компиляции
1%
Другое
Как с помощью Cursor была ускорена работа приложения в 2 раза
Краткая история как слить всю кодовую базу банка.
UPD: там есть privacy mode
Но вообще, тема AI инструментов становится всё интереснее. Присылайте свои кейсы. Сделаем потом детальный анализ
Краткая история как слить всю кодовую базу банка.
UPD: там есть privacy mode
Но вообще, тема AI инструментов становится всё интереснее. Присылайте свои кейсы. Сделаем потом детальный анализ
Medium
Как я ускорил iOS-разработку в 2 раза с помощью Cursor
Подробное руководство по ускорению iOS-разработки с помощью Cursor: настройка, возможности ИИ и реальный опыт повышения продуктивности
Коллекции с слабыми ссылками
По умолчанию все базовые (Array, Set, Dictionary) коллекции Swift'а хранят элементы как сильные ссылки. И если мы хотим использовать слабые ссылки, то обычно применяли обертки Weak<T>.
Для каких задач это полезно? Например, года два назад я писал фичу с мультипрофилем. Где у наблюдателя (observer'а) есть множество подписчиков (subscriber'ов). Похожую задачу мы разбирали, когда писали свой NotificationCenter.
Но можно не писать дополнительную обертку и использовать готовые коллекции:
🟣 NSPointerArray. Позволяет создавать массивы, которые хранят элементы как слабые ссылки (например, с помощью NSPointerArray.weakObjects()).
🟣 NSHashTable. Эта коллекция представляет собой хэш-таблицу, которая может быть настроена на хранение слабых (или неуправляемых) ссылок. В отличие от NSPointerArray, NSHashTable не гарантирует порядок элементов
🟣 NSMapTable. Словарь, позволяет использовать слабые ссылки как для ключей, так и для значений. Он полезен, когда нужно создавать ассоциативные структуры данных с особым управлением памятью (например, кеши или реализации обратных связей между объектами).
Разберем примеры в картинка.
По умолчанию все базовые (Array, Set, Dictionary) коллекции Swift'а хранят элементы как сильные ссылки. И если мы хотим использовать слабые ссылки, то обычно применяли обертки Weak<T>.
Для каких задач это полезно? Например, года два назад я писал фичу с мультипрофилем. Где у наблюдателя (observer'а) есть множество подписчиков (subscriber'ов). Похожую задачу мы разбирали, когда писали свой NotificationCenter.
Но можно не писать дополнительную обертку и использовать готовые коллекции:
Разберем примеры в картинка.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Можно ли запилить свой Xcode?
На днях Apple открыла исходный код swift-build. Движка, используемого для билда Xcode.
Многие каналы побежали дезинформировать людей, что теперь ЛЮБОЙ может написать свой Xcode.
Забавно, что эти каналы называют себя практиками… на деле же 99% их контента просто копипасты или редиректы чужих статей.
Наш любимый БРАТ Астемир сделал углубленный ресерч и прочитал исходники.
И спойлер, нет. Вы не можете сделать свой Xcode.
Как там говорится, формируйте свое мнение?
На днях Apple открыла исходный код swift-build. Движка, используемого для билда Xcode.
Многие каналы побежали дезинформировать людей, что теперь ЛЮБОЙ может написать свой Xcode.
Забавно, что эти каналы называют себя практиками… на деле же 99% их контента просто копипасты или редиректы чужих статей.
Наш любимый БРАТ Астемир сделал углубленный ресерч и прочитал исходники.
И спойлер, нет. Вы не можете сделать свой Xcode.
Как там говорится, формируйте свое мнение?
GitHub
GitHub - swiftlang/swift-build: A high-level build system based on llbuild, used by Xcode, Swift Playground, and the Swift Package…
A high-level build system based on llbuild, used by Xcode, Swift Playground, and the Swift Package Manager - swiftlang/swift-build
334 16 4
Модульная архитектура с SPM
Доклад Либранера Сантоса, автора популярных книг, рассказал:
🟣 Какие проблемы они решали
🟣 Как модульная архитектура помогла с тестированием и переиспользованием
🟣 Почему выбрали SPM
Отдельный кайф про упоминание выбранных принципов и критериев "хорошой модуляризации". А также, что не стали избирать избыточных UI архитектурных паттернов как VIPER/TCA.
Доклад Либранера Сантоса, автора популярных книг, рассказал:
Отдельный кайф про упоминание выбранных принципов и критериев "хорошой модуляризации". А также, что не стали избирать избыточных UI архитектурных паттернов как VIPER/TCA.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
A Tale of Modular Architecture with SPM Swift Package Manager | Swift Heroes 2024 Talk
🎟️ 2025 Edition 8-9 April, Turin: https://swiftheroes.com/2025/tickets/
⏩ Chapter:
00:00 Intro
02:54 Initial Effort
05:32 Visibility
06:04 Standarization
08:52 Swift Package manager
15:16 Modular Architecture
16:56 things to consider from DAY ONE
19:52 Modules…
⏩ Chapter:
00:00 Intro
02:54 Initial Effort
05:32 Visibility
06:04 Standarization
08:52 Swift Package manager
15:16 Modular Architecture
16:56 things to consider from DAY ONE
19:52 Modules…
BDUI-инженеры
Помните я проводил опрос на канале по первому авторскому ролику в ютубе? Там выиграла тема роадмапа для iOS 2025.
Я даже начал делать видос, но почти забросил по двум причинам:
- слишком большой объем для первого ролика
- мой звук и голос заговнили в чате, когда я скинул демку
Но я напишу статью. Надеюсь скоро. И в ней не будет тупых сравнений SUI vs UIKit, GCD vs SC. Забудьте сразу что коммерческий иос инженер это просто кнопкокрас.
Мы разберем множество ветвей развития.
Одна из них — это будущая новая профессия. И называется она BDUI-разработчик.
Уже во многих компаниях открываются такие вакансии. А некоторые даже полностью переобучили своих инженеров.
Они почти не трогают нативный код и верстают с помощью других абстракций для всех платформа сразу. А также растут в изучения бэка.
Берут полный цикл разработки фичи. Собственно поэтому ору когда какой-то канал пишет «решайте сложные задачи» и учит как делать анимашки на SUI. Ща бы анимашки поделать в 2к25🙂 🙂 🙂
Инженер будет оцениваться не по анимашкам. А по импакту.
Мобильный инженер это не тот, кто знает только одну платформу.
Помните я проводил опрос на канале по первому авторскому ролику в ютубе? Там выиграла тема роадмапа для iOS 2025.
Я даже начал делать видос, но почти забросил по двум причинам:
- слишком большой объем для первого ролика
- мой звук и голос заговнили в чате, когда я скинул демку
Но я напишу статью. Надеюсь скоро. И в ней не будет тупых сравнений SUI vs UIKit, GCD vs SC. Забудьте сразу что коммерческий иос инженер это просто кнопкокрас.
Мы разберем множество ветвей развития.
Одна из них — это будущая новая профессия. И называется она BDUI-разработчик.
Уже во многих компаниях открываются такие вакансии. А некоторые даже полностью переобучили своих инженеров.
Они почти не трогают нативный код и верстают с помощью других абстракций для всех платформа сразу. А также растут в изучения бэка.
Берут полный цикл разработки фичи. Собственно поэтому ору когда какой-то канал пишет «решайте сложные задачи» и учит как делать анимашки на SUI. Ща бы анимашки поделать в 2к25
Инженер будет оцениваться не по анимашкам. А по импакту.
Мобильный инженер это не тот, кто знает только одну платформу.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как реализовать потокобезопасную коллекцию с слабыми ссылками
В прошлом посте мы разобрали коллекции, которые позволяют удерживать объект по слабым ссылкам. Но в них есть недостатки:
🟣 отсутствие потокобезопасности
🟣 нельзя ограничить тип с помощью дженериков
🟣 Если объект освобождается (deinit), то его указатель в NSPointerArray не удаляется автоматически
🟣 Нет поддержки индексации (subscript)
Сейчас же мы сделаем свой кастомную потокобезопасную коллекцию, которая решаетвсе проблемы.
В прошлом посте мы разобрали коллекции, которые позволяют удерживать объект по слабым ссылкам. Но в них есть недостатки:
Сейчас же мы сделаем свой кастомную потокобезопасную коллекцию, которая решает
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
iOS Makes Me Hate
Как реализовать потокобезопасную коллекцию с слабыми ссылками В прошлом посте мы разобрали коллекции, которые позволяют удерживать объект по слабым ссылкам. Но в них есть недостатки: 🟣 отсутствие потокобезопасности 🟣 нельзя ограничить тип с помощью дженериков…
Как реализовать потокобезопасную коллекцию с слабыми ссылками 2
Недостатки прошлой коллекции понятны:
🟣 1. Барьеры и отдельные конкурентные очереди — зло. Это хорошо разбирают здесь, но мы еще пройдемся отдельным постом.
🟣 2. Здесь есть корнер-кейс, который мы разбирали тут. При чтении и последующей записи будет гонка.
Улучшим наше решение и сделаем его более качественным.
Комментируйте, чего мог еще упустить?
UPD: в общем, будет третья и четвертая версия. Тут Астемир накинул какой должна быть сеньорская коллекция и есть че разобрать ни на один пост
Недостатки прошлой коллекции понятны:
Улучшим наше решение и сделаем его более качественным.
Комментируйте, чего мог еще упустить?
UPD: в общем, будет третья и четвертая версия. Тут Астемир накинул какой должна быть сеньорская коллекция и есть че разобрать ни на один пост
Please open Telegram to view this post
VIEW IN TELEGRAM
Делаем разбор на систему госпроверки айтишников?
Anonymous Poll
45%
да
3%
нет
20%
похер
32%
там разве есть иос?
iOS Makes Me Hate
Как реализовать потокобезопасную коллекцию с слабыми ссылками 2 Недостатки прошлой коллекции понятны: 🟣 1. Барьеры и отдельные конкурентные очереди — зло. Это хорошо разбирают здесь, но мы еще пройдемся отдельным постом. 🟣 2. Здесь есть корнер-кейс, который…
Реализация кастомной коллекции: добавление Sequence
Решил, что все же будет цикл постов, где мы иттеративно пишем хорошую коллекцию. Такое упражнение поможет лучше понять многие вещи и мне, и вам.
В прошлом посте мы добавили потокобезопасность, сделали subscript и научились очищать дырявые ссылки.
В этом мы чуть улучшим unfair_lock и добавим Sequence. Этот протокол помогает использовать нашу коллекцию в циклах в формате:
В Swift Sequence и IteratorProtocol используются для создания и работы с последовательностями элементов.
Предлагайте свои улучшения.
Решил, что все же будет цикл постов, где мы иттеративно пишем хорошую коллекцию. Такое упражнение поможет лучше понять многие вещи и мне, и вам.
В прошлом посте мы добавили потокобезопасность, сделали subscript и научились очищать дырявые ссылки.
В этом мы чуть улучшим unfair_lock и добавим Sequence. Этот протокол помогает использовать нашу коллекцию в циклах в формате:
let oneTwoThree = 1...3
for number in oneTwoThree {
print(number)
}
В Swift Sequence и IteratorProtocol используются для создания и работы с последовательностями элементов.
Предлагайте свои улучшения.