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
"Поток" Михай Чиксентмихайи

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

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

"Поток" — первая законченная книга в этом году. Решил перечитать в более осознанном возрасте. Раньше мне ее советовали руководители, коллеги и даже успешные бизнесмены. В 20 лет я посчитал её банальщиной и скукой. Если ты молод и юн тебе скорее блогер в тиктоте покажется самым глубоким человеком в мире... Книги же всегда раскрываются по-другому с возрастом.

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

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

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


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

Оценка книги: 8/10
Оценка концепции: 10/10

Кому подойдет: всем, кто постоянно идет к результатам.

#рецензии_на_книги
19
Шпаргалки для подготовки к System Design

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

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

Ну и немного кринжа. Твой накрученный опыт или скиллы будут бросаться в глаза как паленные вещи абибас. А выдуманная "сеньорность" легко палится. О чем говорить, если даже можно банально зайти в ютуб с накрученным мок-собесом. Где зритель жалуется, что "данные знания не соответствуют сеньорным". Как же тогда у вас получится обмануть интервьюера, если даже не получается аудиторию?

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

Мы за регулярный рост. Я собрал уже две статьи:
🟣Как и какие собирать требования к задаче
🟣Что такое DI и как его выбирать
В будущем буду обновлять темы (масштабирование, архитектура, модуляризация, тесты и тп)

💎 Поддержать или получить доступ к материалам можно в бусти
🧬 И в боте трибьюта если вы не из СНГ (рекомендовано)
Please open Telegram to view this post
VIEW IN TELEGRAM
75
Техника разворота связанного списка

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

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

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


Разберем задачи в скриншотах
5
Why You Should Leave Your FAANG Job

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

Беседа Далтона Колдуэлла и Майкла Сейбела также поднимает тему почему в большинстве FAANG компаний вы можете встретить разочарование и быть не таким счастливым, если бы работали в стартапе или вообще в другой сфере.
This media is not supported in your browser
VIEW IN TELEGRAM
Бесславные ублюдки — настольная книга вычислять накрутчиков
123
💎 Почему на собеседованиях в FAANG не спрашивают про технологии?

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

Если вы когда-либо проходили интервью в крупных IT-компаниях (Google, Facebook, Amazon и другие), то наверняка заметили, что вместо вопросов о языках программирования и фреймворках кандидаты получают задачи на алгоритмы. Нужно, например, найти кратчайший путь между точками, развернуть бинарное дерево или удалить нули из массива. Но почему именно так?

Компании стремятся к беспристрастной оценке кандидатов. Они считают, что умный инженер сможет освоить любой язык или технологию при необходимости. Опыт, конечно, играет важную роль, но он оценивается в вопросах по проектированию систем (system design) и поведенческому интервью (behavioral interview).

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

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

Молодые разработчики находятся в идеальном положении для подготовки к таким собеседованиям. Они активно изучают алгоритмы, решают задачи на платформах вроде LeetCode и Codeforces, участвуют в олимпиадах по программированию и глубоко погружаются в структуры данных. Многие мечтают попасть в Google и готовы днями и ночами разбирать книги Таненбаума и Кнута. В этом возрасте проще выделить время на подготовку, а с годами сделать это становится сложнее.

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

Поэтому и мы на канале стараемся разбирать не только знание фреймворков и особенностей платформы, но и базу.
Please open Telegram to view this post
VIEW IN TELEGRAM
103
Разбор читаемости

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

Один из них читаемость. Считается, что лаконичный код — признак сеньора. Давайте проведем опрос какой код более вам приятен на примере задачи:

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

📌 Если после удаления образовались новые соседние дубликаты, их тоже нужно удалить – процесс повторяется до тех пор, пока в строке
не останется повторяющихся символов.

Вход: s = "abbaca"
Выход: "ca"

Вход: s = "azxxzy"
Выход: "ay"


Сравним два решения

Ссылка на задачу в литкоде
Есть ли в структурах deinit?

Это один из старых вопросов на собесах. Он показывал насколько кандидат разбирается в памяти. Ответ на этот вопрос был: нет. В структурах нет deinit.

Пропозал SE-0390 вводит концепцию структур и enum'ов, которые нельзя скопировать. А вместо этого позволяет использовать один экземпляр во многих местах.

Появляется новый синтаксис ~Copyable, который означает, что тип не может быть скопирован. Все это, вкупе с borrowing & consuming довольно мощные концепции и сильно помогут в работе. Позже разберем детально.

Есть ли в структурах deinit? Бывает.

Подробнее тут:
- WWDC24: Consume noncopyable types in Swift | Apple
- Noncopyable types in documentation
- Copyable

💰 В ноушене сделал обзор на borrowing, consuming и ~Copyable. А также разобрал частые задачи. Они правда топовые.
Please open Telegram to view this post
VIEW IN TELEGRAM
1032
This media is not supported in your browser
VIEW IN TELEGRAM
Ваш главный канал демотивации идти в ит
6
Выгрузил все задачи, которые встречаются в литкоде, что похожие на яндексоидные
295
Media is too big
VIEW IN TELEGRAM
🧬 100 задач по управлению памятью

Составив 100 вопросов по управлении памятью я понял, что теория < практики. Она полезна для оценки понимания, но всегда важнее практика. Так я начал амбициозную задачу составить 100 задач по каждой теме (память, многопоточка и тп).

В этом сборнике первые 10 задач из цикла. Это новый формат, где я вдохновился литкодом и методичками крупных компаний, шаблонам яндекс.практикума (где я был автором нескольких тем). И в компаниях, где помогал улучшению процессов собеседований.

Формат включает себя:
🟣Условие задачи
🟣Уточняющие вопросы
🟣Ожидаемый ответ

Так понятнее не только кандидату для подготовки, но и интервьюеру для прохождения. Со временем дойдем и до 100 задач.

А я потихоньку практикуюсь для будущего видеоконтента. Музон для задротов конференций Apple.

💰 Поддержать или получить доступ к материалам можно в бусти
⭐️ Или в боте трибьюта если вы не из СНГ (рекомендовано, так дешевле)
Please open Telegram to view this post
VIEW IN TELEGRAM
183
Сборка задач с собеседований в Apple
12
🧬 Flow: выход из цикла. Конструктивная жизненная система

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

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

Представьте мальчика. Рожденный в этот мир он полон наивности и веры. Но сталкиваясь с трудностями он становится циником.

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

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

В таких целях мы не найдем счастья. И единственное, что нас накроет — волна хаоса и энтропии. Которая затянет на дно. Ложь на ложь. Месть на месть. Кровь за кровь. Зуб за зуб приводят к бесконечной петли саморазрушения.

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

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

В этом и есть ключевое отличие потока от цикла.
Please open Telegram to view this post
VIEW IN TELEGRAM
12
Тебе не дадут дополнительную ответственность, если ты не выполняешь хорошо основную

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

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

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

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

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

Если проводить опрос у iOS разработчиков "какой ютуб канал они считают лучшим для технического роста", то большинство ответит про Essential Developer. Пару человек из нашего чата даже купили на их курсы годовую подписку за 2.5к$.

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

Собрал подборку лучших открытых роликов:
1. Рефакторинг большого проекта. Очень похожая секция, которую дают сейчас на рынке.

2. Clean iOS Architecture: UI Design Patterns. Серия роликов с разбором архитектурных паттернов.

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

Тема вката всех заебала. Для своего контента я точно много идей заберу себе.
221