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
Об ИПР и карьерном росте

Опять же читаю книгу "the software engineer's guidebook" и дошел до советов по карьерному росту. Я как раз делал недавно новый ИПР и хочу тоже прокомментировать некоторые советы из книги, вперемешку со своими личными.

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

Иногда рост по карьере может сильно отличаться от профессионального развития, это писали при чтении книге "Growing As a Mobile Engineer". Поэтому есть много важных действий, которые необходимы к ускорению

Эти комменты могут быть полезны и вам:

🟣Иди по лестнице последовательно

Одна из моих ошибок, что смотря на следующий грейд, я думал так: "Ага, для след. грейда нужно написать статью или выступить с докладом. Слишком легко. Сделаю конференцию и там будет три доклада" или "Нужно улучшить компоненты компании. Ага, я создам новый стрим с юнит-тестами". Но этот подход не очень помогает оценить твой дифф между текущим уровнем и следующим. А также требует хорошей защиты. Для карьерного роста гораздо лучше идти последовательно к целям 1, 2, 3, 4, 5. А не пытаться прыгать 1, 3, 2, 5, 4. Лучше делать небольшие иттеративные шаги, чем прыгая вперед на два шага, а потом назад один. Это как качаться в качалке с разными весами каждый день и не иметь четкую последовательность, режим.

🟣Не игнорируй маленькие задачи

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

Маленькие задачи могут приносить большой эффект.

🟣Планируй outcome'ы на старте

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

Например, внедрение технологии BDUI помогло нам повысить метрики по качеству или выручки на 3-4%. А благодаря КМП мы ускорили разработки фичи на 30% сторипоинтов.

Иначе, без метрик или четких доказательств, все задачи будут busywork'ами.

🟣Веди логи все время

Очень многое зависит от того, как ты оформишь свой лист с перфоманс ревью. Почти как с резюме. У меня часто бывало, что когда я только начинал писать, то почти все забыл. И думал, что толком ничего не сделал, даже листа не наберу. Потом я тратил много времени собирая все свои output'ы и outcome'ы. Где в итоге, на последнем перфревью, вышло аж 15 листов (конечно, с комментами и другими артефактами)

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

А так хоть самому потом проще собирать для ревью информацию

Делитесь своими советами.
Please open Telegram to view this post
VIEW IN TELEGRAM
12
Короче, вдохновившись "the software engineer's guidebook" у меня появилась гениальная (бредовая) идея НАПИСАТЬ СВОЮ КНИГУ.

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

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

Впереди новый цикл развития контента.
524410
Ну и кстати про важность окружения.

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

О чем это говорит? Как минимум одна из версий правильная:
- Люди делятся знаниями только для членов своего сообщества
- Связи и среда обитания решают больше чем талант и трудолюбие
- Награды дарят только своим
- Умные люди учат умных
- Сильные наставники взращивают сильных инженеров

Окружаем себя только реальными экспертами, а не накрученными?
12
iOS-разработчикам, которые хотят прокачать свои навыки работы с многопоточностью – совсем скоро стартует Podlodka iOS Crew!

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

В программе:

🔹 Александр Андрюхин проведёт нас через особенности Swift Concurrency, которых ты точно не знал
🔹 Swift 6 глазами Александра Априамашвили – как переход на новую версию поможет в повседневной работе.
🔹 Антон Марченко расскажет, как async в алгоритмах делает их быстрее.
🔹 Александр Сычев раскроет механизмы работы Thread и объяснит, как это важно для работы с многопоточностью.

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

Присоединяйтесь 👉 https://podlodka.io/ioscrew

А промокод ios_crew_14_MwdnTN сообщества даёт скидку в 500 руб🥳
2
База знаний по Swift Concurrency

В закрытом канале мы уже поделились полезными ссылками и задачами по Swift Concurrency от Сергея. В этом списке мне понравился один авторский репозиторий.

Здесь собраны интересные материалы, где можно узнать всю базу и не только, по теме. Я как раз собираюсь углубленно изучать Swift Concurrency, так как Сергей поделился как ускорил производительность синхронизации чата своего приложения из 15 минут в 3 секунды. Но тут главное быть осторожным, а то можно наоборот все ухудшить.

Я как раз помогаю с чатом и тоже собираюсь перевести на SC, чтобы улучшить перфоманс и буду в будущем писать свои впечатления
13
Для чего нужна своя FIFO очередь

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

Например, в коде выше, до Swift 5.10 не гарантируется упорядоченность.

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

Первое рабочее название iOS Engineer Story.

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

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

Я настроен крайне воинственно. Это будет мой опус магнум, после которой я почувствую себя свободнее
23555
🌟 Подборка задач на Swift Concurrency

Ну и заканчиваем эту неделю разборами Swift Concurrency подборкой задач.

В них собрал все задачи, которые мы разбирали в комьюнити за последнюю неделю, а также что встречались на созвоне:
- Задача на понимание работы async/await
- Задача на группировку тасок
- Задача на отмену тасок
- И другие

💎 Бонусом сделал скидки в честь черной пятницы
Please open Telegram to view this post
VIEW IN TELEGRAM
Управление памятью в ассемблере для Apple Silicon

Все знают насколько тема об управлении памятью популярная. Вокруг нее много холливаров насколько глубоко и широко рядовой разраб должен ее знать. Как часто, кроме собесов и споров в чатах, нужно рассказать чем отличается unownend(safe) от unowned(unsafe)? Насколько детально нужно помнить про жизненный цикл RefObject и этапы создания SideTable? Как правильно считать байты с помощью MemoryLayout?

Если ваше дыхание становится чаще, а пульс ускоряется от предвкушения часовой беседы, то эта статья вам точно будет интересна

Автор залез еще глубже и разобрал управление памятью в iOS с помощью ассемблера. Мем стал реальностью
4
Рецензия на любимую книгу Илона Маска

Дочитал книгу «от нуля к единице: как создать стартап, который изменит мир». Мне о ней многие говорили: пара бывших руководителей считали ее одной из любимых. Ребята из сообщества ее также рекомендовали. И не без основательно. Ее автор создатель PayPall и близкий друг Илона Маска, с которым они вместе делали одни из лучших продуктов.

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

Я разберу несколько острых глав:

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

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

3. Рекрутинг — важнейший навык компании. Есть много заблуждений в интернете, что ИИ убьет рекрутинг или хантинг. Что это вредная профессия или абсолютно ненужная. Чаще это пишут люди уже очень далекие от реальности. Смотря сейчас что происходит с рынком США, где хороший рекрутер может получать 20к$, то мы можем понять что эта профессия только стоит перед активным развитием.

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

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

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

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

Кстати, следующие месяцы будут активными на разные разборы. Так как я все лучше понимаю, что нет ничего лучше для образования, чем хорошие книги, написанные профессиональными писателями
12102
Media is too big
VIEW IN TELEGRAM
Как использовать ChatGPT для самообучения

Крутой пример как чатбот держит контекст. Подписчик из чата показал как юзает чатгпт. Он загрузил книги по iOS AI, где попросил:
- перевести книги
- подробнее раскрыть что имелось ввиду в какой-то главе
- попросить дать четкий пересказ по страницам

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

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

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

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

Как говорится, Youtube detected — opinion rejected. Я верю, что скоро придумают новое молодожное слово для тех, кто образовывается только по видео из ютуба и тиктока, кто застрял в сериалах и играх.

Искажения, пересказы, домыслы.

Образование только по интернету — тупиковый путь. Буквально на начальных этапах оно дает множество побочных эффектов. Слишком много фрагментов и слухов. Клиповое мышление и эпидемия "СДВГ". Хотя еще в одной из самых крутых книг года говорится, что главный навык программиста — это фокусировка и усидчивость.

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

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

Теперь структура такая:
🟣Для кого статья: начальный, средний, продвинутый
🟣Вводная информация
🟣Краткие выводы
🟣Практические задачи
🟣Квиз

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

Получить доступ к статье по скидкам черной пятницы можно на бусти и в телеграмм.
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Как опыт спортивного программирования помогает в работе

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

Я уже решал 365(280) дней алгоритмов и кидал видос про как изменилось мышление у инженера с решением регулярных задач. Разбирали крутой канал, который стал открытием года, а теперь время небольшой практики.

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

Плюс, из своей практики, что я заметил: регулярное решение задач дает хорошее умение отдебажить код в голове. Это сильно помогает найти ошибки до написания кода и нахождения их в мастере.
Forwarded from Код Дурова
🦴 RuStore появится на iPhone!

Так считает депутат Госдумы Антон Горелкин. По его словам, Apple сама заинтересована в появлении российского магазина приложений в iOS.

RuStore на гаджетах Apple быть! — заявил депутат.


Ранее Госдума приняла в I чтении законопроект об обязательной установке RuStore в гаджеты, включая iPhone.

💻 Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM