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
че выведется в консоли?
Какой инструмент или опыт вам не хватает для разработки под 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
Обновление ноушена за неделю:

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

Я не просто лучше структурирую свои мысли, но и обсуждаю и дабл-чекаю их с практикующими спецами в чате и не только. Комьюнити из практиков это немаловажная вещь для формирования собственной базы знаний. Оно не просто не дает тебе изолированно жить, отфильтровывая ненужное, но дополнительно обучает тебя, помогает обмениваться практиками и создает среду обитания. Это win-win стратегия. Темп развития коллективно увеличивается в разы, а мотивация выше. Также появляется ответственность и уделяешь больше времени изучению разных вопросов.

Что же обновилось за неделю?
- Добавил блок с вопросами для собеседований по UIKit (закончен на 75%) и Swift (закончен на 50%). Их можно использовать не только для прохождения, но и для проведения. Тем самым почти закончив блок для джунов
- Начал закидывать вопросы многопоточность для мидлов.
- В алгоритмах добавил раздел об оценки по памяти
- В алгоритмах раздел "как вести себя на собеседованиях" или почему это также оценка софт скиллов.
- Добавил раздел "Частые задачи на собеседованиях" с их решениями
- Обновил оценки алгоритмов: добавил примеры на Swift факториал и 2^n
- Запланировал встречу “Я потерялся. Как развиваться?”. Уже накидываю туда материалы
- Набросал статью "GCD: Основная и глобальная очереди, Async vs Sync, обновление UI, частые ошибки" где разбирали задачи с async/sync

Также допом начали ежедневно решать алго задачи в чате и делиться своими решениями.

🌿 Доступ к ноушену
Please open Telegram to view this post
VIEW IN TELEGRAM
73
Culture Fit собесы

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

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

Конечно, об этом мало кто скажет после интервью. Оценка софтов очень сложная вещь, а еще сложнее дать обратную связь по ним, чтобы никто не обиделся. Но какие задачи решает этот этап?

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

По каким критериям оценивают кандидата:
1. Какой опыт работы у кандидата уже есть
2. Самостоятельность инженера
3. Конфликтные ситуации и их решения
4. Инициативность
5. Коммуникация
6. По каким критериям выбираете новое место
7. Есть ли риски что вы быстро уволитесь
8. Стоите ли вы столько, сколько запрашиваете

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

Интересные материалы:
- 49 лучших вопросов для culture fit интервью
- Гайд от Яндекс Практикума

Больше гайдов в закрытой базе знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
82
This media is not supported in your browser
VIEW IN TELEGRAM
Наше сообщество стремительно растет.

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

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

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

Вступай в наше сообщество, если ты единомышленник.
11331
🧬 Some and Any

Ключевые слова some и any не новы в Swift. слово Some было введено в Swift 5.1, тогда как any было введено в Swift 5.6.

Если вкратце, то:

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

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

Попробовал показать пользу и решение проблем этих слов в изображениях.

Больше разборов some и any с комментариями и какие проблемы он решает в закрытой базе
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
216
Как джуны романтизируют сеньоров

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

Главная разница между опытным разрабом и начинающим это:
1. Уметь работать с неопределенностью
2. Задавать правильные вопросы
3. Знать как найти решение

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

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

Это все великая ложь.
9
В России обяжут apple сделать сторонние сторы

Как и следовало ожидать, уступки ЕС цепной реакцией будут требоваться и у нас.

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

Зато у банков вакансий больше станет.
12