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
Почему слитые ответы или собесы никому не помогут. Или формула качественного материала.

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

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

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

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

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

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

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

Сейчас слишком много инфы. Много криков о секретных рецептах, сливах. Но по факту, во многих сборниках нет ничего такого, что давала бы открытая сессия WWDC. Недавно ко мне пришел в лс парень, который делал сайт со сборниками вопросов для собеседований и хотел купить рекламу.

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

Эта ситуация заставила меня лучше взглянуть на свою работу. Чем она отличается по качеству? Что я могу улучшить? Так я пересмотрел свою формулу контента.

💎 По каким критериям стоит отбирать материалы?

1️⃣ Актуальность информации. То, что было пару лет назад, уже может быть устаревшим.
2️⃣ Репутация автора. Если человек, с минимальным опытом в сфере, накрученным опытом или проработал в компаниях с сомнительной технической культурой, то его знания могут не подходить к тебе. А может быть никому
3️⃣ Релевантность. Если человек собрал ответы и материалы, никогда не трогав иос, то большой вопрос к точности. Более того, два эксперта из разных областей могут по-разному решать проблемы. Человек из крупного банка работает совсем по-другому, чем из стартапа. У всех разные требования к качеству и безопасности.
4️⃣ Точность информации. Проверил ли автор на практике свои слова? Пересказ ли это публичных статей с документация или глубокая аналитика с экспертизой пройденного ревью в уникальных компаний? Показала ли она себя жизнеспособно и не закрылась ли компания после таких решений? Использует ли предвзятость в своих словах?
5️⃣ Назначение контента. Контент, который помогает пройти собесы никак не связан с экспертностью человека. Процессы собесов всегда меняются, каждый по-разному их проводит. А задачи и знания для роста как эксперта плюс/минус остаются одинаковыми.
Please open Telegram to view this post
VIEW IN TELEGRAM
1442
💎 Вопросы для подготовки к собеседованиям | Управление пакетами | ч. 1

Продолжаю идти в сторону около mob.dev.ops. На очереди поборка, которая все чаще встречается на практике. Тема модуляризации очень актуальная, тк настоящий сеньор на изи может порезать проект и ускорить всем работу.

Для этого ему нужно знать:
🟣Какие менеджеры для установки пакетов существуют
🟣Чем отличается CocoaPods от SPM?
🟣Расскажи о плюсах модуляризации
🟣И многое другое

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

Также напоминаю о последних сборниках:
🔴Управление зависимостями
🔴задачи на UIGestureRecognizer
🔴задачи на hitTest

🌄 Больше подборок можно получить тут через бусти или бота
Please open Telegram to view this post
VIEW IN TELEGRAM
12
This media is not supported in the widget
VIEW IN TELEGRAM
12
🌄 Анонс марафона по проектированию

Мы снова задаем новый формат иос-индустрии. Первый групповой боевой пропуск. Тема, в которой и я сам хочу хорошо прокачаться.

Ориентировочный старт 01.07.2024

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

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

🌄 Билеты можно взять здесь. Чисто символическая цена на призовые.
Please open Telegram to view this post
VIEW IN TELEGRAM
1842
Как решать задачи на литкод

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

Разобрав такие острые вопросы:
🟣чем отличаются problem solving skills от заучивания алгоритмов
🟣какие алгоритмы нужны и как начать понимать их пользу
🟣почему большинство ошибается насчет бесполезности алгоритмов
🟣работа с когнитивными искажениями и ментальными барьерами
🟣ментальная гигиена и как не выгореть от неудач

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

Пожелайте счастья таким людям, кто просто делает крутой контент для себя. Очень вайбовый видос, который смотришь на одном дыхании.
Please open Telegram to view this post
VIEW IN TELEGRAM
2213
🌄 Динамическая высота ячейки в коллекции: Frame Based

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

Самый частый запрос при работе с коллекциями "А как сделать динамическую высоту в ячейках?".

Есть множество путей сделать эту задачу. Но самый "сеньорный" это сверстать с помощью фреймов и UICollectionViewDelegateFlowLayout

Верстка фреймами в некоторых компаниях даже считается требование от сеньора. А, например, в проектах авито и яндекса, почти вся верстка с помощью фреймов.

Чем экспертнее разраб, тем меньше он нуждает в других инструментах. Часто многие проекты отказывались от SnapKit, PinLayout и других DSL для верстки.

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

🌿Сделал полный пример в гитхабе. Я всегда использую это решение в проде. Можете комментить что бы улучшили
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
155
🧬 Техники решения алгоритмов: поиск анаграмм

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

Да даже если просто хотите эффективней решать литкод или улучшить навыки программирования. Насмотренность в программирование очень важная вещь. Она формирует экспертность и инженерность.

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

🔴 Потренироваться можно тут

🌄 Более подробные решения с комментариями, а также больше подборок техник можно получить тут через бусти или бота
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
8
Проектирование декларативного API

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

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

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

В статье автор разбирает одну из удобных и модных практик — декларативный стиль на примере валидатора. Как написать удобный и простой механизм проверки наших полей ввода.
141
Вычислительные мощи и процессы нашего мозга

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

Насколько быстро ты понимаешь информацию? Как долго держишь в голове прочитанное? Как хорошо строишь комплексные картины в голове?

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

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

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

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

Это, как никогда не бывая в зале, сразу пытаться брать нагрузку в разы за пределами нормы. Или учить первоклашку базе 11 класса, пропуская остальные 10 классов. Мозг не выдержит. Он выплюнет знания как только мы раслабимся. Или заставит взять долгий период на восстановления, где все труды и работа пойдут под откос. В добавок все ресурсы тратятся на поддержку легенды, а побочный эффект этого — синдром самозванца. С таким грузом легкость не обретешь.

Любое развитие — это повторение с предельной искренностью к себе. Иттерации. Дробление огромной работы на маленькие части. Логированием и фиксом своих ошибок.

Иметь гибкость быстро перестроиться и жить не в истощенном режиме, где при этом успевать ускоряться. А где-то и мобилизироваться. При этом без нагрузки на здоровье.

Собрал подборку статей для развития мозга и здоровья:
- Mind Training for Programmers
- A Daily Workout For The Software Developer's Brain
- Why Regular Exercise is Important for Software Developers
1231
Starscream vs Socket.IO

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

Самые популярные на мой взгляд это две:
- Socket.IO
- Starscream

При выборе либ я использую разные критерии:
🟣репутация автора
🟣Кол-во открытых ишью
🟣последний коммит
🟣отзывы комьюнити

А по каким критериям вы выбираете либы?
Please open Telegram to view this post
VIEW IN TELEGRAM
102
🚘🚘 Работа с строками в Swift

🌸 Новая статья в ноушене, а также скидка на бусти в честь предстоящего марафона по проектированию 🌸

Строки — одна из непонятных и холиварных тем в Swift. Чаще, решая задачи на литкод, разработчики не запариваются с внутренностями строк и кастят строки в массивы Array(string). Ведь работать с массивом символов гораздо приятнее.

Я давно хотел разобрать эту тему, ведь мы не идем в эту сторону упрощения, а хотим разобраться как же правильно работать со строками. Ведь настоящий эксперт iOS изучает каждую деталь языка, а не уходит в костыли:

🟣Строки в Swift. Почему мы не можем использовать индекс?
🟣Зачем нужны startIndex, endIndex и тп
🟣Манипуляция индексами (префиксы, суфиксы и тп)
🟣Решение задач из литкода
🟣Сравнение перфоманса

💎 Получить доступ к материалам можно по ссылке в бусти

Ограничение до 01.07
Please open Telegram to view this post
VIEW IN TELEGRAM
93
Тренды мобильных приложений 2024

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

Делюсь интересной сборкой трендов, которые не так поверхностны, как могут казаться:

🟣Low, Zero Code. Упрощение кодинга или его отсутствие становится популярным. Можно легко собрать сайт или приложение через специальные сервисы. Где-то даже заменить страницу Notion'ом. Крупные компании идут к конструкторам страниц или к BDUI. Разрабы никуда не деваются, но тренд становится более заметным

🟣Фокус на камеры. Видеозвонки, медиа-контент, Youtube, Instagram. Мобильное устройство уходит в сторону развлечений. Даже с учетом кучи социальных сетей людям все равно мало приложений для знакомств и нетворкинга.

🟣Премиум апки и контент. Раньше бесплатное было в моде, но из-за перенасыщенности контентом люди готовы платить деньги за более лучшие сервисы или информацию.

🟣Новые медиа платформы. Интерес к аудиокнигам растет. Я сам уже год не читаю, а слушаю.

🟣Западный банкинг наконец проснулся. Раньше считалось, что западный банкинг неудобный и устаревший. Но сейчас он проснулся и идет в сторону трендов и современности. Мобильные банки на западе начали активно развиваться.
Please open Telegram to view this post
VIEW IN TELEGRAM
871
Фильтров опытов стало больше или проверенный временем

Время — главная метрика в ит. Сколько у тебя опыта? За сколько времени ты сделаешь задачу? Какая скорость интернета? Как быстро идет билд в пайплайне? Как можно оптимизировать работу кода? Почему Xcode такой медленный? Сколько лет эта библиотека объездилась в комьюнити? Какой у вас последний таргет? Привязка ко времени будет всегда. Бороться с этим — не понимать индустрию.

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

На самом деле на них смотрят все:
- технический спец, с первых вопросов на интервью, поднимает тему о ваших самых сложных задачах. Это понимание уже на 50% оценило и выстроило дальнейшее интервью, а где-то даже и закончило. Имея хоть небольшой опыт, он легко поймет сколько времени понадобится сделать хорошо задачу.
- нанимающий менеджер, имея фидбэк от технического и hr, смотрит на оценку опыта. Многие не знают, но часто менеджеры могут не поверить в оценку технического интервью. Пообщавшись о вашем опыте уже в живую, дать либо ниже, ниже выше оценки от теха.
- и только потом, рекрутер, зная весь фидбэк и мнения от техспецов, зная все недовольства менеджеров, ставит свои фильтры.

Став опытным ты сам будешь лучше понимать метрику. Оценивать коньяк по его выдержке. Шашлык не маринуется за секунду. А ребенок не рождается за час. У всего есть свой инкубационный период и возраст совершеннолетия
1272
Таксономия Блума или как учиться эффективней

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

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

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

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

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