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

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

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
😘 Вакансия part-time

Мои друзья ищут хорошего разработчика на парт-тайм, от мидла и выше. Ориентировочно на 1-2 квартала. Главное требование SwiftUI/Combine и ответственность.

Если ты такой, то скидывай резюме мне @lvbond
Please open Telegram to view this post
VIEW IN TELEGRAM
🍨 Проектирование систем и знание архитектур

Пусть знание VIPER, MVVM, делегатов и часть проектирования, но это не одно и то же.

Проектирование (system design) — это более масштабная вещь. Это практики и методы, которые помогают создать программу, которая удовлетворяет потребности бизнеса.

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

Когда нам строят дом, то мы требуем качественной реализации. Приходим в частную школу, то ожидаем обучения лучше, чем в доступных ресурсах. Идем в ресторан, то ожидаем еду лучше, чем готовит жена (но жене этого не скажем). У нас есть свои потребности. Они могут противоречить нормам, которые пишут в книгах или законам логики, но эти потребности надо выполнять. Также и у бизнеса.

Главная услуга хорошего разработчика — решать проблемы. А главное требование хорошо запроектированной системы — удовлетворить бизнес-требования. ИТ — мир невероятно глубокий и обширный. На каждую проблему можно найти десятки решений. Часто, чтобы найти оптимальное решение, нужно изучить и применить сотни других. Учесть возможные недочеты и сделать максимально качественно под имеющиеся ресурсы. А где-то перевыполнить.

Проектирование необязательно в небольших командах или экспериментальных продуктах. Цена стоимости слишком высокая, а профиты сомнительные. Оно чаще обязательно для хай-грейдов в крупных компаниях, где мастабы команд слишком высокие и многое нужно держать в голове, чтобы не сломалось. Когда человек получил 3-4 года опыта и начал в чем-то разбираться. Простое заучивание материалов и кирпичей не поможет сделать архитектурное чудо света.

🟢 Почему проектирование важно для мобильных систем?

Все программирование развивается слишком быстро. Особенно мобильные устройства. Вчера нужно было знать только один язык и одну технологию. Сегодня уже 3 и по 2 технологии на каждый. Конкуренция по доставке фичи для клиента очень высокая. Иногда, от нее зависит жизнь проекта.

🟡 Для чего нужно проектирование?

- Создать качественную программу
- Сократить разработку и поддержку системы бизнес
- Иметь возможность адаптироваться к измененным требованиям
Please open Telegram to view this post
VIEW IN TELEGRAM
115
Mobile system design interview guide

В СНГ не так много компаний проводят проектирование: Авито, Яндекс, дзен и еще парочка. Хотя на западе почти все.

В авито я успел провести собес систем дизайна только как ученик. Хотя постоянно просился и требовал, потому что самому интересно и для повышения полезно 😂 Уж очень редкие кандидаты доходили до него. Так более того. За 50 кандидатов за пару лет там было очень мало тех, кто прошел его выше грейда мидл+ по этой секции. Так что не верьте тем, кто с пару лет опыта говорит, что он эксперт в проектировании. Такой опыт можно получить только работая в очень крупных командах.

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

Мы же в следующих постах разберем каждую деталь, а начнем с главного навыка — это коммуникация, формулировка, сбор требований и ограничений.
Please open Telegram to view this post
VIEW IN TELEGRAM
1822💔1
Forwarded from Кодированный Воробей (Ivan Vorobei)
💔241
Мой бусти

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

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

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

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

Также теперь вся инфа о менторстве через бусти. Ноушен там же будет.

P.S. Все это пока как эксперимент. Я хз как работать с бусти и могу что-то не так настроить. Быть может в будущем от него откажусь
18💔85
iOS Makes Me Hate
старенькие, кому интересно вернуться, напишите плиз в лс. Ну и тем, кто со мной до 500 подписчиков в канале тоже бесплатно
шок-контент. остальные владельцы бусти, инфоцыгане накинулись на меня и пытаются задудосить. Заходи быстрее, пока нас не заблокировали трусливые конкуренты!

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

Уважайте свой труд и если на него есть органичный спрос. Отличайте качественный труд от надутого маркетингом и накрученного дерьмом.

* Инфоцыган — это тот, у кого основная деятельность только продажа сомнительного контента и ничего более. Частичная монетизация или ощутимый результат не делает тебя таковым.

P.S. если бот не отправил ссылку на чат или ноушен, то напиши мне в лс
9💔32
iOS Makes Me Hate pinned «Мой бусти В общем, у меня уже был бусти, и чат, и роадмап. Раньше я не видел в этом необходимости. Пока не появились те, кто просто перепродавал бесплатные материалы в своих бусти. Капитализм вынудил развиваться через него. Чат многие просили вернуть. Некоторые…»
И еще.

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

Сейчас я буду много писать про system design. Может быть даже сниму видео-скринкаст. Это больше уровень для сеньоров
Дальше я буду делать контент по SwiftUI. Там и сам хочу развиться наконец-то. Ну и фидбэк получить от топ спецов. Будет роадмап и тоже скринкасты
Дальше алгоритмы. У меня есть большой опыт прохождения и проведения алгосекций. Основы и то, как они помогают на работе или как оценивают разные компании на собесах
На днях я сделаю в ноушене подборку ресурсов и книг по программированию, софтам и жизни. Тут будет топ от библиотек крупных компаний, крутых спецов и бизнесменов
Как проходить интервью в FAANG
VR
Мнение экспертов как создавать окупаемые продукты. Бизнес-мышление в ит
Аналитика от СЕО, хэдов и диров как повышать свою зарплату
Нейросети
Please open Telegram to view this post
VIEW IN TELEGRAM
3117
Книги как оружие

Первое дополнение в закрытом ноушене.

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

Величайшие умы и богатейшие люди почти никогда не советуют что-то кроме книг. Где вы видели, чтобы Илон Макс советовал топ 10 любимых ютуб каналов? Или Бил Гейтс топ роликов в тиктоке? Джеф Безос любимый твиттер аккаунт или инстаграм блогера?

Не стоит симулировать развитие, смотря ютуб бесконечно. Это как смотреть телеканал BBC и называть себя экспертом в истории. Любые знание — это результат огромного труда и нет легких путей. Запретный плод сладок. Книги — для богатых внутри. Навык чтения тренируем. Каждый по-разному смотрит на одну книгу.

В детстве у моей бабушки была огромная библиотека. В силу своей профессии она обладала навыком сторитейлинга, острым и живым умом. Я любил приходить в детстве и чувствовать масштабы прочитанной литературы. Большой шкаф книг, заливающий всю стену, будто огромная стена из тысяч историй. На фоне этого чувствовал себя еще меньше и ничтожней. Эта библиотека — память о моей бабушке, чья часть души живет внутри вместе со мной.

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

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

Получить доступ к ноушену можно тут

p.s: тем, кому забыл выслать доступ по подписке, напишите
281
Для тех, кому интересно как компилятор промоутит reference типы в стэк

Излюбленный многими вопрос для споров

https://github.com/apple/swift/blob/main/lib/SILOptimizer/Transforms/AllocBoxToStack.cpp
101
Продолжаю генерировать контент для владельцев ноушена.

Написал примерный план для iOS.

Чем мне понравился ноушен? А тем, что любой зритель может видеть не сразу конечный и готовый материал. А его обновления и черновики. Это как видеть обрезанные и удаленные сцены в кино или книге. Всем же интересно какой был изначальный концепт.

где получить ноушен? тут
7💔2
Умер ли MVVM в SwiftUI?

Начало конца MVVM в SwiftUI началось. Его предрекали его в этом обсуждении, с призывами перестать использовать этот шаблон.

В статье автор ссылается на твит другого эксперта, который легко использует SwiftUI вьюшки без моделей.

Ну что, хороним?
5💔32
Опрос про менторов

Сделал анонимный опрос про менторство:
- По каким критериям оцениваете ментора и менти
- Сколько раз пользовались
- Какие навыки хотелось бы прокачать
- Готовы ли быть в роли ментора или менти

Плюс в карму за прохождение опроса. Все для улучшения качества.
Цели и уровни интервью System Design

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

Основная задача на секциях по проектированию понять навыки и понимание построения архитектуры клиент-сервера или чисто клиентского приложения. Обычно в компаниях есть согласованные методички для интервьюеров и отсутствует свободный формат интервью. Хотя, как бы не старались формализировать процесс, каждый все равно по-разному оценивает кандидата.

Но всегда есть основная цель — выявить как кандидат думает и находит компромиссы в условиях тотальной неопределенности, а также доступно и понятно объяснять свое решение, проверка определённых умений, а не получение готового решения. В реальной жизни никогда не будет готовых задач и понятных требований. Ни у кого не спросишь как сделать, а если кто-то и делал когда-то что-то, то уже давно забыл. Такой скилл по видосам на ютубе или книгам не раскачешь. Тут нужен реальный опыт взаимодействия с бэком, qa, бизнесом и другими важными составляющими.

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

🟢Джуниор
- Не может аргументировать выбор архитектуры/фреймворка
- Не собирает требования и работает с тем, что дали
- Кандидат может написать систему в лоб по готовым шаблонам.
- Не видит потенциальные проблемы и риски или видит, но не может дасть решения

🟠Миддл
- Может спроектировать среднюю по масшабированию системы
- Задумывается о тестировании и логировании ошибок
- Думает о перфомансе и оптимизации
- На каждое свое решение может найти как плюсы, так и минусы
- Может заложить основу для будущих доработок

🔴Сеньор
- Все требования, что у предыдущего
- Видит проблемы своих решений и оценивает риски
- Организовывает диалоги с бизнесом, по своей инициативе и узнает требования. Если бизнес чего-то не знает, то делает разумные допущения
- Думает про корнер-кейсы
- Знает особенности и слабые места архитектур или фреймворков

Позже мы расмотрим задачи, инструменты и артефакты. Для подписчиков ноушена уже доступа полная статья.

Полезные ссылки:
- Как подготовиться к собеседованию по System Design мобильному разработчику
- System Design for mobile interview
- A Simple Framework For Mobile System Design Interviews
- Step by Step Guide to Succeed in Mobile System Design Interviews
Please open Telegram to view this post
VIEW IN TELEGRAM
12💔33
Стандарты iOS-проекта компании Bottle Rocket

Очень крутой гит-репозиторий с лучшими практикам и рекомендациями. Ее сделала одна из компаний для разработки мобильных приложений. Каждые рекомендации разделены на секции:
Accessibility
Архитектура
Управление ветками гита
Управление зависимостями
Структура проекта и многое другое

Такой репо очень полезен как начинающим спецам, у которых мало опыта или не хватает сильных экспертов рядом. Так и опытным, которые наконец хотят собрать набор рекомендованных и проверенных практик, которые упрощают жизнь.
Please open Telegram to view this post
VIEW IN TELEGRAM
17
Решил, что буду делиться обновлениями ноушена для подписчиков и не только. Потому что бусти говно как платформа.

1. Добавил новые книги в библиотеку
2. Добавил роадмап по мобильному систем дизайну
3. Решил реабилитировать книжный клуб в рамках сообщества
4. Добавил пару частых задач для систем дизайна

Закрытый ноушен дает больше сил для творчества.

В общем, всем, кто поддерживает — спасибо. Это правда ценно и хочется делать еще больше. Самое сложное — это было перебороть себя и решиться на этот шаг.

Еще думаю все же периодически публиковать что-то годное из ноушена сюда. Так как канал все же был чем-то личным и абсолютной случайностью, но вырос в что-то творческое и полезное
255💔1
😵 Какие навыки проверяют на интервью систем дизайна?

Цель интервью - проверка определённых умений, а не получение готового решения, т.к. на проектирование нормального решения нужно гораздо больше времени. Интервью проводится в формате диалога, во время беседы важно понять ход мыслей кандидата и обращать внимание на сигналы.

Какие навыки проверяют:
🟠Собирать и уточнять требования и ограничения
🟠Строить разумные предположения в условиях неопределённости
🟠Предлагать варианты решений и компромиссы
🟠Проектировать решение задачи и визуализировать его
🟠Объяснять решение другому человеку так, чтобы он понял

*️⃣ Ход интервью
Часто бывает, что кандидат забывает про отсутствие общего контекста и про какие-то вещи не рассказывает, как будто это и так понятно. За это часто снижают оценку. Нужно не забывать рассказать про общую картину приложения подробнее и добавить это на схему. На секции почти никогда не дают спроектировать огромную систему. Скорее это будет пара экранов или какой-то отдельный модуль.

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

*️⃣ Какие инструменты используют?
- Draw.io
- Miro
- Whimsical
- Excalidraw

Позже мы расмотрим основные задачи и артефакты. Для подписчиков ноушена уже доступа полная статья. Также ждите там первый скринкаст с проектирование задачи по систем дизайну.

*️⃣ Полезные ссылки:
- Goals and Objectives of System Design
Please open Telegram to view this post
VIEW IN TELEGRAM
94💔1