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
🫂 Как общаться с дизайнерами

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

Цели общения с дизайнерами:
🔘 Убедиться, что мы хорошо понимаем приложение
🔘 Убедиться, что дизайнер понимает приложение
🔘 Найти корнер-кейсы и выставить приоритеты функциям

Конструктинвый разговор должен привести к улучшению дизайна и лучшему пониманию функции в команде


Дизайнер — наш союзник. Мы вместе улучшаем продукт. Часто нужно лучше объяснять им нашу работу, а некоторые детали вы обязательно поправите, если они приоритетные.

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

Какие вопросы помогут для улучшения дизайна:
🔵 Найти возможности для упрощения разработки, но не потери функции. Например, если дизайнер придумал свой компонент, но есть хорошая системная альтернатива, которая привычна юзеру и проще разрабатывать, то лучше ему об этом сообщить.
🟢 Напомните о разных устройствах и их размерах. Бывают темные режимы и светлые. Выбор темы внутри приложения. Телефоны и планшеты. Далеко не все дизайнеры запоминают это.
🟡 Ошибки и состояния загрузки. Дизайнеры не всегда знают какую ошибку может отдавать бэкенд или системное устройство. Лучше подсветить, что пользователь может заспамить поддержку вопросами и мы потратим деньги или упустим клиента, если правильно не сообщим ему нужную информацию
🟣 Что такое пиксель-перфект? В мобильной разработке почти нельзя достичь пиксель-перфект состояния. Есть множество устройств с разным размером экрана, ориентациями и пропорциями. Разными размерами шрифта и цветопередачей. Это все означается, что понятие “идеальный пиксель” является понятием приблизительным. Даже отрисовка теней иногда может по-разному влиять на работу приложения

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


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

Я веду заметки еще с 2013 года, когда был популярен Evernote. Царство ему небесное.

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

Кто в нем работает поделитесь впечатлениями

https://habr.com/ru/articles/710508/
11
Как чувак свой симулятор писал

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

Ничего непонятно, но очень интересно
1
Задачи на собеседовании System Design

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

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

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


👀 Какие задачи встречаются?

🔘 Junior:
Джунам обычно дают что-то очень доступное и понятное. Это может быть экран товаров, который я люблю задавать как пет-проект своим менти:
- товары должны сохраняться в избранное, а избранное должно синхронизироваться с бэком при авторизации.
- Корзина заказов, которая держит в себе товары и следит за наличием в складе, просрочкой и акциями

🔘Middle:
Мидлам дают чуть сложнее. Например экран статистики:
- Экран должен быть максимально расширяемым и гибким. Хотим управлять количеством вкладок и набором данных, которые он отображает с бэка.
- Данные, которые отображаются на вкладке, относятся к выбранному месяцу на графике. При переключении месяца, данные должны изменяться. Ситуации когда месяц не выбрал быть не может.
- Стоит подумать про уменьшение сетевого взаимодействия, тк интернет может быть нестабильным

🔘Senior:
Cледующая задача может встретиться на любой грейд, но ее гибкость и учитывание всех корнер-кейсов может решиться только сеньорами. Тут и архитектуры понадобятся, и алгоритмы, и софты:
- Спроектировать апи для работы с бэкендом. В событиях могут быть дополнительные поля
- События не должны терять данные при крэше или выгрузке приложения из памяти
- Модуль должен быть самостоятельный и максимально переиспользуемый
- Логировать события должно быть безопасно с любого потока
- Хотим отправлять в несколько аналитик сразу. Список может меняться со временем.
- У события есть приоритет: высокий, нормальный, низкий. Высокий отправляем сразу. Остальные выставляем в очередь. Низкий отправляем только когда телефон на WIFI с зарядкой

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

В своем сборнике вопросов для собесов по памяти я старался собрать не только вопросы, но и описываю ответы, которые ожидаются от джуна. Дальше соберу для мидла и сеньора, и не только по памяти. Вопросы могут слить, а навыки и ответы для них даже если сольешь, то ни одного текста не хватит сформулировать ожидаемые требования. Это только нарабатывать.

Как-нибудь разберу одну из задач и запишу воркшоп на час,полтора. Но доступен он будет сами знаете кому. Расширенная и общая статья, со всеми ресурсами, уже давно доступна подписчикам ноушена.

Интересные статьи:
- Как мы убрали секцию алгоритмов и к чему это привело
- System Design. Общие принцип прохождения интервью
Please open Telegram to view this post
VIEW IN TELEGRAM
104
Как писать юнит-тесты для проверки перфоманса кода

Писать код может каждый. А писать быстрый и стабильный код — единицы. Чтобы доказать производительность своего кода есть множество инструментов, но самый простой это юнит тестовый.

Сохраняем и идем спорить в рабочий чат
74
Вакансия

Мои знакомые ищут тестировщика в штат. Знаю, что среди вас есть бывшие и нынешние тестеры. Если вам интересно, то пишите

* Middle-Middle+
* Крепкие знания по теории тестирования
* Опыт тестирования мобильных платформ: iOS/Android
* Опыт работы с базовым набором инструментов мобильного тестирования: Android Studio, Xcode, Charles/Fiddler/Proxyman
* Опыт бэкенд тестирования: API, DB
* Опыт работы с базовым набором инструментов для тестирования backend: Postman/SOAP UI/DBeaver/PGAdmin
* Опыт SQL: CRUD
* Опыт тестирования WEB (UI). DevTools, Figma
* Базовые знания Java core
* Опыт с инструментами (фреймворками) для автоматизации API/Mobile/WEB тестов (Appium/RestAssured, Selenium/Selenide), фреймворков-сборщиков Maven/Gradle
* Опыт с Git

Плюсом будет:
Опыт администрирования Linux
Опыт с Doker, Kubernetes, Jenkins
Вопросы на собеседованиях: Junior

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

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

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

Чтобы получить доступ к ноушену вы знаете что сделать
13
Forwarded from iOS Dev
‼️ Альтернативные магазины приложений уже доступны!

Apple анонсировала долгожданные изменения в политике распространения приложений для Европейского Союза

Для нас это значит новые возможности распространения приложений и создания своих сторов. Обещают более 600 новых API и расширенную аналитику, сниженную комиссию и новые возможности оплаты внутри приложений.

Уже в бете 17.4 сегодня.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
💔77
Forwarded from Воробей
Как выглядит установка альтернативного магазина
💔121
Степени прожарки задач

Очень часто бывает, что задачи непонятно сформулированы или результат их работы не удовлетворяет всех. Это супер актуальная вещь.

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

Definition of Ready — инструмент, который помогает понять насколько задача была проработана и готова для взатия в спринт

Definition of Done — чеклист помогает понять что было сделано, чтобы понять что работа была выполнена в необходимом объеме и полезна всем.

Каждый список скорее не набор жестких требований, а рекомендации, которые помогают синхронизации.

Подробнее можно почитать посты моего бывшего лида из авито:
- ​Определение готовности задачи
- ​​Definition Of Ready
12
Forwarded from My Ego Things (Askar)
Прокрастинация - часто это результат усталости. Нашему мозгу абсолютно все равно, каким образом отдыхать. Если вы ему не даете качественно отдохнуть, он возьмет это прокрастинацией. Поэтому нужно дать ему качественно отдохнуть.
25💔1
🟢 Вопросы для собеседований: Многопоточка | Junior

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

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

Собрал с первой попытке даже больше, чем по управлении памяти. А впереди еще поле непаханое. Уж слишком много где можно развернуться тут:
- 26 вопросов
- 6 задач
- ~ 10 ссылок

Ноушен будет обновляться неделю и еще допом сообщу о финальном варианте.

Кстати, допом обновил вопросы и добавил ссылки на модуль про память.

Получить его можно все там же
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1221
iOS Makes Me Hate
🟢 Вопросы для собеседований: Многопоточка | Junior Начал работу для сборника вопросов и задач с ответами по многопоточке. Основной упор сделать методичку не только для кандидатов, но и интервьюеров. Это одна из самых сложных тем, понять которую можно только…
Когда я писал контент в канал мне палили похожие базы знаний, еще до того, как они продавали мои бесплатные посты с канала, за которые я бы сам не решился просить деньги из-за его качества проработки. Многие свои посты в канале я пишу за 5 минут, просто выкладывая мысли в их первоначальной форме.

В целом, я не понимал, почему кто-то покупал такие материалы, которые по факту просто сборник чужих бесплатных постов, на которые тратили минимум времени.

В вопросе образования качество материала зависит от многих вещей:
- Экспертиза и опыт автора
- Его навыки педагогики
- Факт-чекинга
- Наложение практики и теории

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

Есть множество книг по программированию и они сильно друг от друга отличаются. Все зависит качество ответов, актуальности задач и комментариев на все. Во многих статьях есть неточности и их нужно фильтровать. А не только интуитивно собирать список вопросов, которые собрали на Хабре и укомплектовали в одну статью. Даже свои статьи я бы раза 3 переписал, потому что тогда только тренировался их писать.

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

У себя я стараюсь собирать ответы и вопросы заапрувленные исходя из своего опыта и мнений экспертов, которые генерируют уникальный контент. А не только статьи поверхностно пересказывать. Даже доку прочитают 2 человека и по-разному поймут.

Вопросы могут быть одинаковые. Они даже на джуна и сеньора одинаковые. Но качество ответов, комментарий и задач разные.
136
Подборка научных методов сбора и обработки информации

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

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

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

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

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

Мало получить инфу. Нужные необходимые скиллы ее уметь правильно обрабатывать
Please open Telegram to view this post
VIEW IN TELEGRAM
8
git-tips

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

А правильное владение гитом сокращает время или даже спасает проект с огромной фичей. Вот небольшой список обязательных знаний:
- как восстановить удаленную ветку
- решение конфликтов разной сложности
- чем отличается rebase от merge
- Откат изменений и черипики
- Сквошинг коммитов
- Удаление всех лишних файлов

И это лишь очень очень маленькая часть. Как раз есть мотивация структурировать и взяться за это наконец-то.
1411
Шпаргалка по проектированию System Design 101

Если вам говорят, что проектирование это только про архитектуры и паттерны, то человек ошибается. Проектирование затрагивает гораздо глубже и шире, чем только мобильная разработка. Она про сеть, CI/CD, базы данных и многое многое другое.

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

Есть хороший репозиторий для тех, кто хочется прокачаться в system design.

Полезный ресурс, чтобы понять основные принципы высоконагруженных приложений и не только.
14
Forwarded from 🔥Full-Time Trading
🇷🇺 Типичный пользователь iPhone, наши дни

#FTT_мемы

👉 FTT - подписаться
28
Почему новым сотрудникам платят больше, чем старым

👉Компания может хотеть, чтобы вы в перспективе уволились сами.
👉Повышения зарплат сотрудникам часто облагаются огромным количеством правил и привязываются к дополнительным ограничивающим параметрам. Выбить большое повышение для менеджера часто в разы сложнее, чем зарплату побольше для новичка.
👉Часто бонус HR завязан на эффективность найма. Поэтому HR выгодно предлагать сомневающимся кандидатам зарплаты побольше, не слишком волнуясь о сохранении баланса с текущими нанятыми людьми. Часто это даже не их проблема. А непрямые затраты из-за увольнений вообще считать не любят и не умеют.
👉Опыт, полученный где-то еще, многими руководителями ценится значительно выше, чем в рамках текущей компании.
👉Удерживать людей – сложно. Да к тому же эта задача размывается между разными ролями в компании. За плохой уровень удержания никого не уволят, и премию не снизят, так что мотивации решать проблему нет.
💔71
Гайд по behavioral Interview

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

Список советов с примерами ответов на частые вопросы и таблица для подготовки.

🟣 Изучите метод STAR
Структура STAR помогает четко и кратко рассказать свою историю. Situation - ситуация или контекст истории. Task - задание, которое вы должны были выполнить. Actions - ваши действия. Result - что в итоге получилось.

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

🔵 Краткость - сестра таланта
Давайте целенаправленные и краткие ответы. Не стоит предоставлять слишком много деталей, которые не имеют отношения к делу.

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

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

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

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

🟢 Если нет истории - ничего страшного
Если на вопрос интервьюера у вас нет подходящей ситуации, то стоит прямо сказать “У меня не было такого опыта, но я могу рассказать, как бы я поступил в данной ситуации”.

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

🟢 Учитесь, учитесь, учитесь
Тщательно готовьтесь к собеседованию, чтобы в нужный момент вспомнить лучшую историю из своего арсенала. Попробуйте пройтись по возможным вопросам и подумать, как бы вы на них ответили.
Please open Telegram to view this post
VIEW IN TELEGRAM
113
This media is not supported in your browser
VIEW IN TELEGRAM
Серия статей про многопоточность

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

Выложил в ноушен как запускается приложение: шаги, код, за что отвечает куча и стэк, как это связано с многопоточкой, что такое процесс, поток, конкурекция и параллелизм
12721