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

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

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
Какой цвет будет у вью? Какой цвет будет в дебаг иерархии?

Почему?
💎 Вопросы на собеседованиях: Swift | Junior

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

Скорее всего, это будет самый объемный блок.

Начал добавлять вопросы к собесам на Swift:
- Теория
- Практика
- Ресурсы
- Квизы

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

Весь контент с вопросами по памяти, UIKit и многопоточки тут
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
18
Добавление метода GroupBy в Sequence

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

Поэтому вот подборка всяких реализаций и вопросов:
- Group elements of an array by some property
- Swift’s Dictionary grouping and how underrated it is

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

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

Задача была прикольная, потому что:
1. Проявлял разные подходы и инструменты продуктовой аналитики. Собирал какие плюсы и минусы есть у сканеров. Как вообще они влияют на бизнес метрики
2. Пытался запроектировать универсальный модуль сканера, который бы использовался в разных продуктовых флоу.

Мне все больше начали нравятся продуктовые задачи, тк в них есть много понимания «а точно ли это нужно кому-то»
132
21 пара по сложности алгоритмам

Нашел какой-то дикий по объему материал про сложности алгоритмов. 21 пара по полтора часа. Нет ни одного похожего по объемам и после просмотра этих лекций можно стать экспертом по алгосам. Теориком*

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

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

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

Доступ все там же
14
какой порядок принтов будет?

ответ разобрали уже в чате
🚘🚘 Анонс первого созвона сообщества «я потерялся. Как расти инженером?»

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

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

Разберем множество открытых вопросов и попробуем сформировать советы, ресурсы и практики, которые улучшат качество развития

🌿Дата: 03.03.2024 в 11:00 по мск
Please open Telegram to view this post
VIEW IN TELEGRAM
2832
че выведется в консоли?
Какой инструмент или опыт вам не хватает для разработки под iOS?

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

Например, библиотека для краски кнопок, архитектура, сниферы, достойную альтернативу XCode 🤡, кодогенерации? DI, Network, DSL и многое то, что я мог упустить.

Поделитесь в комментариях от чего у вас горит жопа или наоборот вызывает кайф. На какую либу или технологию стоит обратить внимание
Please open Telegram to view this post
VIEW IN TELEGRAM
GCD: Основная и глобальная очереди, Async vs Sync, обновление UI, частые ошибки

По следам прошлых задач набросал в ноушене разбор, решения + причины.

Также дописал связав с прошлыми статьями:
- Что такое очереди
- Обновление UI
- Исправление частых ошибок

Доступ все там же
93
💀 10 советов по выживанию инженеров в бигтехах

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

Автор статьи дает советы по выживанию:

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

2. Научитесь приоритезации. Задач будет много, но важнее всего уметь пожертвовать ненужными и сфокусироваться на важных.

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

4. Принять Agile и гибкие методики развития. Scrum/Kanban это подходы, которые используются в 99% компаниях. Понимание и принятие подходов позволит лучше понимать устройство бигтехов.

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

6. Адаптивность. Все меняется, а ит меняется быстрее всего.

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

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

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

10. Развивай софт-скиллы. Лидерство, эмпатия, оптимизм. Это все необходимые навыки независимо от формальной ответственности.

А какой совет вы бы добавили? Я бы добавил "Для бизнеса важнее выгода, а не сложность твоих задач". Очень часто денежные задачи гораздо лучше влияют на рост и понимание ценности разработчика и даже целой команды, чем сложные и убыточные. Многие разработчики могут зарываться в создании убыточных технологий, затаскивать непонятную технологию и даже разрабатывать инструменты в вакууме, ожидая что все вокруг должны понять их импакт без дополнительных слов. Но чаще это приводит к недопониманию и сокращению ресурсов.
Please open Telegram to view this post
VIEW IN TELEGRAM
162
Реализация с нуля SerialQueue

🔘 Внимание, статья уровня сеньор 🔘

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

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

Если вы до сих пор задаетесь вопросом чем async на последовательной очереди отличается от sync, то вам лучше поможет код.

Также можете сразу ознакомиться с кодом сразу на гитхабе.

Позже в ноушене напишу упрощенную версию этой статьи с объяснениями, комментами, кодом работу очередей. А может даже видео.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
13
Идея ничего не стоит

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

1. Скопировать можно все, что угодно. А вот что не получится скопировать, так это конкретно тебя — твой ход мыслей, идеи, видение будущего, взгляды, отношение с другими людьми и все то, что тебя делает тобой. Решения, которые видят конкуренты, — сильно на поверхности, но самое важное происходит «под капотом», самое важное — это то, что происходит у вас внутри команды, то, как вы осмысляете новый опыт. Это то, что сегодня пока никто не видит, а увидит через определённый отрезок времени. Вот этот отрезок и есть то, что невозможно скопировать, потому что он состоит из твоих уникальных особенностей и идентичности твоей команды.

2. А вообще, все вокруг — это копия чего-то. Только некоторые копируют 1:1, поумнее компилируют идеи между собой, и рождается что-то новое. В пустоте ничего не родится. Мы, как вид, потребляем гигабайты контента ежедневно. Современный человек получает за месяц информации больше, чем человек в 17 веке за всю свою жизнь. Так есть ли эта уникальность на самом деле? Уверен, что о том, что я пишу, кто-то уже писал неоднократно, но моё отношение к этому вопросу помогает посмотреть на него под другим углом и даст ход другим идеям, у других людей.

3. Мне нравится мысленный эксперимент: представь, ты делишься всеми текущими идеями/наработками, выкладываешь их в соцсети, максимально делаешь открытой информацию о том, над чем работаешь и с кем работаешь. Страшновато, не так ли?) Если после этого есть ощущение, что у тебя ничего нет, значит, мы по пути потеряли самое главное — знания о том, что ты будешь делать с этой идеей завтра и послезавтра, а без этого знания идея ничего не стоит.

P.S. Есть статистика Global Entrepreneurship Monitor (GEM), в которой подводят итог, что лишь малый процент людей переходит от идеи к действию, например, это хорошо видно по статистике желания людей войти в предпринимательство и фактические данные. В общем, по итогу из всех желающих предпринимателями становятся не более 5%. Бояться не стоит, а наоборот стараться зашерить что-то кайф, главное конечно правильно выбрать с кем)
83