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

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

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
Почему увольняют людей?

Пост немного безжалостный, но честный.

Вы удивитесь. Одна из главных причин увольнения людей это не отсутствие результата. Это недостаточный результат.

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

Особенно это касается джунов и мидлов. Было много случаев, когда стажеров, джуниоров и мидлов просили уволиться или увольняли из-за отсутствия результата. Вроде бы и с задачами для своего грейда справляется, но стоит на одном месте. Зачем такой нужен, если на улице стоят много голодных и горящих?

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

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

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

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

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

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

Здесь мы не строим ложных надежд и веру в быстрые и легкие пути.
2554
Какой цвет будет у вью? Какой цвет будет в дебаг иерархии?

Почему?
💎 Вопросы на собеседованиях: 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