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
Техника разворота связанного списка

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

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

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


Разберем задачи в скриншотах
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
квиз