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
Топ 2022

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

📚 Лучшие книги:
1. «думай как математик». Потому что нет лучше книги о ресурс менеджменте для программиста
2. «Идеальная работа». Потому что работа не только бабки должна давать, иначе была бы одна страница в этой книге
3. «Атомные привычки». Потому что черепаха обгоняет зайца

🎬 Топ фильмов:
1. «Баньши Инишира». Потому что лаконично и просто
2. «Все везде и сразу». Потому что весело и интересно

🗿Топ сериалов:
1. «Дом драконов». Потому что идеальная шахматная партия
2. «шантарам». Потому что интересная история
3. «Доктор-призрак». Потому что просто и на коленке, но с душой
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍3🔥3😁2
Влияние ChatGPT на индустрию

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

Поделитесь в комментариях, как, по вашему мнению, развитие LLM (Large Language Models) повлияет на индустрию!
🗿4👍1
Forwarded from Код Воробья для iOS разработчиков
Apple выкатила курс по разработке для начинающих. Изучение займет 14 часов.

Для SwiftUI разобрали вьюхи и работу с данными. Для UIKit - коллекции. Есть туториалы по сетевому слою, декодированию JSON и кэшированию данных.
👍11
Технические тренды iOS разработки

Очень странно, что многие иосеры встречают Unidirectional flow архитектуры как очередную хайповую архитектуру. Скорее недоразумение в виде VIPER'а была случайной ошибкой невнятной доки Apple о MVC и инфоцыганством на конфах.

Я пришел из веба и еще тогда в 2016 все было однонаправленным. В андроиде, в вебе, в кроссплатформах. iOS как всегда улавливает тренды с опозданием.

Будущее unidirectional flow архитектур — это неизбежность.
👍7💯2🗿1
О менторстве. Чеклист как выбрать ментора

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

За тебя. Никто. Ничего. Не должен. Делать.

Переваривать опыт и знания только на ответственности того, кого обучают. Еще раз. Запомним это.

Но отойдем в сторону. Достаточен ли мой опыт, чтобы я ушел только в менторство? Я сторонник здравого смысла. А здравый смысл говорит так:

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

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

3. Найди с ним коннект. Быть может с ментором идеями вы очень близки, но никак не близки эмоционально. Это тоже очень важно. Просмотри найдешь ли общий вайб или компромисс. Если нет — ищи дальше.

4. Сначала определите цели. Что тебе нужно? Ментор не даст ответ на этот вопрос пока ты сам к нему не обратишься. 50% ответа зависит от 100% твоего вопроса

Буду дальше делиться заметками менторства. Ведь буквально сейчас я осознал, что могу считаться экспертом
🔥13👍3
А я напоминаю, что еще год назад делал такой вот роадмап, который я советую, когда не готов помочь разработчикам только входящим в ит. Он пригодится для ориентации в технических скиллах.

Одна из задач симулятор иос-ника — это улучшенная версия роадмапа, но более иммерсивная. Автоматизирует рутину, лучше разжевывает. Избавляет меня от повторения базовой инфы + дает практику

А пока мы до сих пор ждем апрува от эйпла — можете почитать это
🔥12👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Рубрика "Мотивационные советы"

Знаю. Кому-то нравится контент, когда уровень стресса уменьшается слушая об успешном успехе.

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

Ну или я передумаю, ведь если мы будем зависимы от успешной истории и мотивирующей речи какого-то чела, то точно ли мы на своем месте?

Первым у нас выступит русский босс мафии со своими советами. В лаконичной и харизматичной форме расскажет как быть "success".
😁7
🔥Уникальный контент на канале

После прошлого треда про год решения алгоритмов наш подписчик вдохновился и сделал свой тред.

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

iOS makes me cry — это не про мок собесы и пересказы статей джунами
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍1🌚1
Unit-тестирование здорового человека ч.1

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

1️⃣Зачем нужны тесты?
2️⃣Свойства хороших тестов
3️⃣Антипаттерны
4️⃣Почему хороший разработчик не только пишет код
5️⃣Когда не нужны юнит-тесты
6️⃣Почему хороший код не напишешь без тестов

Суммарно эти советы и техники я юзал почти во всех компаниях. Материала много и везде юнит-тесты были очень полезны, вопреки мнению, что клиентам они не нужны
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍3
365 дней богу Алгоритмов

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

Для меня уже не первый вызов себе. С 2018 по 2019 устраивал «365 дней Хемингуэю». Тогда у меня был литературный запой. Я прочитал за год около 100 книг и ежедневно писал небольшие рассказы, качая навык сторитейлинга.

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

Такие челленджи дают уверенность, что побеждает не сильнейший. Побеждает самый стойкий. Проверю же свою
🔥245👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Copilot для Xcode — расширение для редактора

Это расширение Xcode Source Editor с помощью которого, можно настроить Github Copilot для Xcode. CopilotForXcode использует LSP, предоставляемого через Copilot.vim для генерации предложений и отображения их в виде комментариев.

Репозиторий: https://github.com/intitni/CopilotForXcode

#ios
Как решать алгоритмы?

Точного ответа никто не может дать. Изучая советы по подготовке к изучению алгоритмов выявил для себя такую стратегию:

Не стоит сразу брать и решать литкод. Эту тактику я взял у создателя комьюнити фаанг-интервью, который попал вроде в гугл. Эти стратегии транслируют в книге “cracking the coding interview”.

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

Этому меня научил и Стивен Кинг. Нет, он не решал алгоритмы. Он написал книгу «как писать книги». Ее я брал за основу к своему прошлому челенджц. Где для написания хороших книг нужно уметь много читать и уметь много писать.

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

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

Для меня важно получить навыки, а не пройти интенсив молодого бойца к собесу
👍1
Бинарный поиск

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

В чем его идея?

Мы делим пополам заранее отсортированный массив, чтобы обнаружить нужный элемент. Вот и всё.

Алгоритм такой:
1. Сортируем массив данных
2. Делим его пополам и находим середину.
3. Сравниваем средний элемент с заданным искомым элементом.
4. Если искомое число больше среднего — продолжаем поиск в правой части массива (если он отсортирован по возрастанию): делим ее пополам, повторяя пункт 3. Если же заданное число меньше — алгоритм продолжит поиск в левой части массива, снова возвращаясь к пункту 3.

Задача в литкоде

сложность: logn (без сортировки)

#365_дней_богу_Алгоритмов #1
👍18
Swift Learning Roadmap 2023

Снова роадмапы. Но тут очень лаконично и хорошо. Очень нравится, что емко раставлены акценты на базовых вещах:

- Знание языка
- IDE
- GIT
- UI

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

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

Тут я взялся за дейли контест.

Алгоритм такой:
1. Ищем родительскую ноду
2. Идем по левой
3. Доходим до конца
4. Идем вправо

- Литкод задача

- Хорошее объяснение бинарных деревьев

#365_дней_богу_алгоритмов #2
Мода на решение задач в литкоде становится все популярнее.

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

В статье автор высказывает мнение о пользе.

Я же считаю, что ежедневное нарешевание задач равно улучшению общих физических показателей.

Как в спорте. Спортсмены 70-80% бегают, прыгают, развивают тело. Увеличивая базовые показатели скорости, силы и выносливости. А потом остальные 20-30% тренируют в зале технику: играют в игры, борятся, спарингуют.

Условно алгоритмическая секция — это что-то вроде оценки твоих базовых показателей.

https://habr.com/ru/post/709550/
👍5
Сравнение дерева

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

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

Подумав можно заюзать рекурсию, где код лаконичней и правильнее

Задача на литкоде

#365_дней_богу_алгоритмов #3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2👍21
Паттерн: Фабричный метод

lvl: jun

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

Что это значит? Допустим, мы создали фабрику по созданию машин, но привязаны к конкретному типу определенной марки. Когда нам придется добавлять новые машины, то привязанность к конкретным маркам (классам) будет проблемной

Тут мы скрываем инициализацию нашей марки за абстракцию (протокол) и определяем метод, который будет создавать нужный класс.

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

В книге банды четерых этот паттерн описывается так:

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

Создание фабричного метода упростит расширение и поддержку новых типов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9