iOS Makes Me Hate
3.94K subscribers
1.16K photos
167 videos
15 files
1.33K links
Авторский канал про iOS разработку. Путь продуктовых самураев в MAANG.

Самое больше iOS сообщество практиков: https://boosty.to/lionbond/

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
🧬 Mobile Podcast: "Идеальный процесс system design"

Продолжаем препарировать процесс собесов с ребятами из крупного калибра.

Позвал Серегу — тимлид Авито, Google Android Expert, ex-директор ПК Podlodka Android Crew, организатор Android Academy.

Серега — фуллстэк. Он пишет и под иос, и под андроид, и чуть бэк. А также лидит команду. У него большой опыт в разработке.

Я уже немного писал о созвоне тут. Попробовали экспериментальный формат: я был обычным интервьюером, а Серега обучал меня как и зачем нужно проводить систем дизайн.

В формате дискуссии разобрали такие темы:
🟣какие главные навыки проверяются с помощью сис.диза для найма
🟣в чем отличие мидла от сеньора
🟣что, как и зачем должно проверяться на собесе
🟣чем отличаются снг собесы от западных
🟣какие материалы помогли ему получать офферы на западе > 10к$ сеньором
🟣какие есть недостатки в текущем процесс
🟣как изменится процесс в будущем
🟣много других вопросов на полтора часа

Канал Сереги: @se_development

💎 Поддержать или получить доступ к материалам можно в бусти
🧬 И в боте трибьюта если вы не из СНГ (рекомендовано)
Please open Telegram to view this post
VIEW IN TELEGRAM
7
Об ИПР и карьерном росте часть 2: выбор руководителя

В первой части я делился выжимкой советов из главной книги прошлого года. В комментариях Саша Сычев дал отличный совет про выбор руководителя. Начало года — самое время подойти с ИПР.

Выбирайте руководителя максимально осознанно. Вырастите вы в карьере или нет - очень сильно зависит от него. Нет вайба - нет роста.
И рядом мысль. Вдохновение для ИПР надо брать в том числе из ответа на вопрос своему руководителю: "А с чем я тебе могу помочь?"


С опытом я все четче понимаю, что бОльшая часть успеха в карьерном развитии зависит от выбора руководителя:
- его авторитета внутри компании
- его амбициях в росте
- его отношении к работе
- его технической экспертизы
- его мотивации нас защищать и развивать
- его скилла презентации и многим другим

Тема становится острее с массовым внедрением процессов performance review, завязанных на output и outcome’ах, где на калибровках многие лиды конкурируют за квоты повышений для своих сотрудников.

Тимлид не только собесит себя, но и берет эстафету собеситься за вас перед другими. Каждый рост сотрудника — это большая работа руководителя. Поэтому я не удивляюсь, когда за сильным руководителем уходит из компании следом и вся его команда. Во многом, каким помидором ты станешь, зависит от садовника.

Но это не значит, что мы должны отдавать полную ответственность за наш рост ему и потом расстраиваться. От нас тоже многое зависит. Без доверия между вами не будет результата.

Делюсь собранными советами по выбору и взаимоотношениям руководителей из книги "the software engineer's guidebook":

🟣 Выясните, насколько руководитель поддерживает развитие сотрудников. Важны прозрачность, открытость и вовлечённость менеджера в карьерный рост команды.

🟣Ценности и культура. Совпадают ли его ценности с вашими. Руководитель должен быть заинтересован в создании команды с сильной культурой сотрудничества.

🟣Репутация и опыт. Поговорите с коллегами, которые работали с ним раньше, чтобы понять, как он управляет командой.

Советы по построению отношений:

🔘Установите ясные ожидания. На первых встречах обсудите, какие ожидания есть у вас и вашего руководителя. Проговорите, как вы будете получать обратную связь и строить планы развития.

🔘Демонстрация успехов. Рассказывайте о своих достижениях, но делайте это естественно. Подчеркивайте, как ваша работа способствует успеху команды и компании.

🔘Запрашивайте обратную связь. Спрашивайте, где вы можете улучшиться, и что ожидать в будущем. Используйте обратную связь для коррекции своего подхода и достижения целей.

Признаки продуктивного менеджера
🔘Менеджер помогает устранить препятствия в вашей работе.
🔘Он активно интересуется вашим профессиональным развитием.
🔘Даёт конструктивную обратную связь.
🔘Вовлекает в интересные и значимые проекты.
Please open Telegram to view this post
VIEW IN TELEGRAM
161
The connection between mindfulness and flow.pdf
337 KB
🧬Flow: осознанность и борьба с психической энтропией

Продолжаем тему ресурс менеджмента. В прошлом посте про состояние потока мы определили, что это — лекарство для зумеров и сдвгшников. Тему осознанности подняли в комментах поста. Мне бы хотелось сделать акценты ярче.

Я часто вижу, как много кто жалуется "я не могу читать книги или решать алгоритмы, потому что сложно усидеть на месте". Такое состояние — большая проблема в обучаемости. Все знают, что дисциплина > мотивации. Но дисциплина также это умение делать нелюбимые вещи немножко привлекательными.

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

Концепция потока помогает натренировать и достигнуть ту самую осознанность, что защищает от мусора. Она берет лучшее из занятий, которые нам нравятся: искусство, наука, игры, спорт, секс, еда и даже религия. Учит наполнять радостью и обогащать рутинные задачи, превращая в приятный процесс.

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


Я нашел исследование с участием 10,102 человек. Анализ включал, что осознанность сильно помогает для потока студентам.

Исследование указывает на двусторонний характер связи: поток может способствовать развитию осознанности, а осознанность — достижению состояния потока.
Please open Telegram to view this post
VIEW IN TELEGRAM
15
🧬Большая подборка контента для подготовки к System Design

После выпуска с Серегой я вдохновился и решил сделать огромную подборку задач, курсов, книг и всего разного для помощи с System Design'ом.

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

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

Что в неё вошло:
🟣около 10 полезных проектов
🟣подборка курсов
🟣книг и статей
🟣моих авторских статей, где я разбираю разные типовые задачи с собесов
🟣и другое

Подборка будет обновляться

💎 Поддержать или получить доступ к материалам можно в бусти
🧬 И в боте трибьюта если вы не из СНГ (рекомендовано)
Please open Telegram to view this post
VIEW IN TELEGRAM
9
Пришел вопрос в лс. Решил, что хороший повод для поста, тк формируются некоторые мысли с прочтением разной литературы, общением с студентами и другими ребятами, кто ищут свой путь.

Попробую дать советы, как если бы дал себе в 19 лет.

1) нужен ли диплом? Сам по себе диплом не дает ценности для знаний, но обучение в университете (именно обучение, а не отсидка), дает базу для дальнейшего самообучения. Только сегодня прочитал и сохранил цитату:

Многие люди прекращают учиться, как только заканчивают школу, потому что тринадцать или даже двадцать лет принуждения к знаниям несут для них слишком много отрицательных эмоций.
Их вниманием слишком долго управляли учителя и учебники, поэтому окончание образования они воспринимают как освобождение.
Однако человек, пренебрегающий использованием своих мыслительных способностей, никогда не достигнет подлинной свободы. На его мыш-ление будет влиять мнение соседей, информация из газет и с экрана телевизора. Он будет жить во власти «экспертов». В идеале, окончание насаждаемого извне образования должно стать началом обучения, замотивированного изнутри


Цели универа:
1) получение навыков обучения
2) формирование окружения
3) образование

Какую ценность дает диплом? Сейчас он уже дает отсрочку и баллы для получения визы, места для релокации. А также и потенциальную защиту на будущее, если вход в ит будет по диплому. Многие и так уже стараются нанимать только ребят с дипломом.

2) пропадут ли самоучки? Я не знаю, но скорее всего останутся те, кто правда заинтересован в ит.

3) что изучать на начальных курсах? Изучать базу и фундаментальные вещи. Знание фреймворков или платформ легче изучить зная основы. Почти все вокруг строится на одних концептах и зная тот же Computer Sience легче понять вечно изменяющийся мир. Это лучшая инвестиция на долгосрочное будущее, где меньше будешь переживать, что очередная революция что-то порешает или изменит индустрию.

4) как искать работу будучи студентом? Уже со вторых курсов можно находить работу. Пока твои одногруппники думают как бухнуть и повеселиться ты уже сможешь выделиться, если будешь чуть больше уделять время учебе. Из моей группы в итоге по профессии работаю только я. Никто никогда бы в это не поверил.

5) не в Яндексе нереально не расти, а везде. Вся суть моего канала — это сопротивление, развитие и движение вперед. Мы стареем, мир меняется, знания обесцениваются. Нужно находить то, что любишь, тогда легче находить силы постоянно развиваться
203
This media is not supported in your browser
VIEW IN TELEGRAM
С джунами закончили. Настало время заменять мидлов
Стратегия выживания

Спорт научил меня главному: "неважно как ты ударишь, важно какой удар держишь" 😏

В своем весе я никогда не выделялся высокой скоростью и силой. Был ниже своих соперников, медленней и проигрывал в габаритах. Отличала меня только одна черта — выносливость.

Мне нужно было только пережить первые удары или навязать высокий прессинг, чтобы выносливость соперника быстро закончилась. Такая стратегия танка и игра в "у кого больше хп и выносливости". Нужно дожить до лейта.

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

Мне кажется, в игре с ИИ такие же правила. Всегда нужно оставаться хладнокровным и не допускать паники, искать варианты, когда он начнет ошибаться. Пользоваться этим.

В крайнем случае эту бездушную машину можно тупо выключить из розетки. Или вернуться в прошлое. Камбэкнуть.
Please open Telegram to view this post
VIEW IN TELEGRAM
120
Непопулярные инструменты в управлении памятью: withExtedndedLifetime

Вы ведь помните про цикл статей про управление памятью, которые я пишу уже месяц? Я написал 50 страниц, и это только 1/3 из запланированного. Кажется, будто по этому блоку можно написать отдельную мини-книгу.

В одной из глав я хочу пройтись по непопулярным и неизвестным инструментам языка. Например, withExtedndedLifetime.

withExtendedLifetime нужен для того, чтобы явно продлить время жизни объекта в ситуациях, где Swift может освободить объект раньше, чем вы ожидаете:
🟣Работой с временными объектами.
🟣Асинхронными операциями.
🟣Небезопасным кодом (UnsafePointer, UnsafeBufferPointer и др.).

В скринах подробные примеры когда нам этот метод поможет
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
15
🧬 Год сообществу на бусти

Сегодня небольшой праздник.

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

Ваша поддержка замотивировала меня. С ней мы:
🔘создали базу знаний на 10к гб текста
🔘собрал 300 качественных вопросов для подготовки проведения и прохождения интервью
🔘написал десятки уникальных статей
🔘сделал почти 10 уникальных видео
🔘решили 150 популярных на собесах алгоритмических задач
🔘разобрали system design так, как никто в iOS
🔘А также решился на написание книги и многое другое

Этот год мы находили себя. Боялись, что удалят и запретят. Заменят нейросети, кроссплатформы и bdui.

Впереди обновление контента и новые иттерации, новые категории: наконец придем в SwiftUI и Swift Concurrency. Будем больше внедрять AI. Станем чуть медийнее, смелее, а формата контента будет еще больше. Мы расширимся и углубимся.

К этой годовщине я опубликовал отрывок из 50 страниц книги, где все об управлении памятью. Я не видел нигде, где вся информация о ней была собрана в одном месте и не разделена на фрагменты.

Это первый драфт и впереди еще много работы. Написание книги процесс намного сложнее, чем я думал. Требует совсем других навыков. Но так лишь интереснее. Теперь буду каждый месяц 14 числа делиться прогрессом по книге.

Всем спасибо за вдохновение и поддержку. Вместе мы формулируем свой стиль и свой вижен. Вместе мы заходим туда и обсуждаем то, куда другие не идут.
Please open Telegram to view this post
VIEW IN TELEGRAM
257
🧬 Техники решения задач: Fast and slow pointers

Продолжаю делиться выдержкой из платного курса по алгоритмам.

Fast and Slow Pointers — это техника работы с двумя указателями, которая:
🟣 Могут начинать с разных позиций.
🟣Двигаться с разной скоростью (обычно один на 1 шаг, другой на 2 шага за итерацию).
🟣Используются для решения задач с линейными структурами данных (например, связанные списки).

Эта техника позволяет эффективно решать задачи за O(n) времени и O(1) памяти.

Разберем на примере задач в скриншотах.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
8
🧬 Поток и самурайская философия

Я не случайно выбрал 2025 аркой самураев и начал с книги потока. Ведь эти две темы имеют очень много точек пересечений. Да и вообще вся эстетика японских самураев очень часто находит реинкарнации в массовой культуре: от корней киберпанка до проработки главного супергероя комиксов — бэтмена.

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

🕐 Концепция потока была разработана психологом Михаем Чиксентмихайи. Это состояние, при котором человек полностью погружается в выполнение задачи, испытывая радость, эффективность и полное слияние с процессом.

Основные характеристики Потока:
🔘Полное сосредоточение на задаче.
🔘Исчезновение ощущения времени.
🔘Чувство контроля и уверенности.
🔘Гармония между сложностью задачи и уровнем навыков.
Пример: художник настолько увлечён рисованием, что забывает про всё вокруг.

⚔️ Самурайская философия, основанная на кодексе Бусидо, подчёркивает дисциплину, уважение, мастерство и осознанность. Самураи стремились не только к физическому совершенству, но и к внутреннему равновесию.

Основные принципы:
🔘Сосредоточенность: Полное присутствие в моменте.
🔘Осознанность: Понимание своих действий и их последствий.
🔘Мастерство: Постоянное стремление к улучшению.
🔘Гармония с окружающим миром: Действия с учётом природы и других людей.

Пример: воин, упражняясь в фехтовании, полностью сосредоточен на движении, как на медитации.

Выбрав любой из путей можно прокачивать навыки:
- Глубокой концентрации
- Удовольствие от процесса
- Улучшение памяти и понимания
- Развитие навыков решения проблем
- Экономия временем
Please open Telegram to view this post
VIEW IN TELEGRAM
97
Карьерный фреймворк от Dropbox

Еще одна матрица компетенций, которая поможет определить разные ожидания от инженеров.

Для многих разработчиков это актуально. Кто-то строит свои матрицы, кто-то хочет узнать лучше рынок. В чатах это регулярный вопрос.

Интересные особенности фреймворка:

🔘описывает не только технические ожидания, но и лидерские и командные
🔘фреймворк помогает также оценивать и горизонтальный рост
🔘универсальность помогает развиваться абсолютно любой роли (дизайнер, менеджер, разраб)
🔘фреймворк сфокусирован на результатах и навыках, а не на стаже
Please open Telegram to view this post
VIEW IN TELEGRAM
1132
Непопулярные инструменты в управлении памятью: Unmanaged

Продолжаю рубрику непопулярных решений в управлении памятью. В прошлом посте мы изучали метод withExtedndedLifetime. Сегодня поиграемся с кое-чем интересным. С MRC в Swift.

Unmanaged — это специальный тип в Swift, который позволяет работать с объектами, не управляемыми ARC (Automatic Reference Counting). Его задача — вручную управлять временем жизни объектов (увеличивать или уменьшать их счетчик ссылок), особенно при взаимодействии с кодом на C или Objective-C, где автоматическое управление памятью отсутствует.


Какие задачи решает?
🟣Старые C/Objective-C API: Например, работа с CoreFoundation, где ARC не применяется.
🟣Низкоуровневый код: Если нужно добиться максимальной производительности или работы с памятью.
🟣Тонкая настройка времени жизни объектов: Например, если объект создается в одном потоке, а освобождается в другом.

Полезные статьи:
- How to use Swift's Unmanaged
- Unmanaged by nshipster
Please open Telegram to view this post
VIEW IN TELEGRAM
7