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
This media is not supported in your browser
VIEW IN TELEGRAM
Найди 10 отличий
Скоро у нас будет подкаст с разработчицей из Apple, кто разрабатывает апи SwiftUI, контрбьютит в Swift и написала пара пропозалов.

У вас есть возможность накидать свои вопросы. Пишите в комменты или мне @lvbond
5245
Product Minded engineers

Продолжаю читать на отпуске лучшую книгу про карьерный рост «the software engineer’s guidebook». В ней поднимается тема опыта работы в продуктовых командах. О продуктовом мышлении говорят многие, но лучше формулировки, чем в этой книге, я пока не встречал.

Успешный оффер давно перестал быть только требованиям к техническим скиллам

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

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

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

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

Почему product minded engineers становятся более привлекательными специалистами?

🟣проактивность

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

🟣понимание бизнеса

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

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

🟣любопытство

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

🟣сильные коммуникативные навыки.

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

🟣находит компромиссы.

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

🟣находит конструктивные корнеркейсы.

Продуктовый инженер ищет реалистичные корнер-кейсы, а не те, что возникнут с ничтожно малой вероятностью

🟣быстрые циклы разработки.

Продуктовый инженер впервую очередь доносит полезные фичи пользователю и умеет быстро понимать и находить фидбэки от них

🟣комплексные навыки в решении проблем.

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

Если вы еще не начали ее читать, то очень советую.
Please open Telegram to view this post
VIEW IN TELEGRAM
91
А я напоминаю, что сейчас последние дни скидок и скоро выйдет много уникального контента:
🟣 подкаст про систем дизайн глазами руководителей и инженеров
🟣 воркшоп по Swift Concurrency
🟣 интервью с крутой иос разработчицей из Apple
🟣и много других полезных подборок

Успевай взять по-настоящему уникальный и полезный контент, чтобы потом не жалеть. На бусти и в телеграмм.
Please open Telegram to view this post
VIEW IN TELEGRAM
52
Media is too big
VIEW IN TELEGRAM
Лучший ответ на вопрос «да зачем мне ваши алгоритмы?». Как минимум виза и неплохой доход.

Делаем свой бесплатный марафон по алгоримам?
33114
Умная подготовка к решению алгоритмических задач

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

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

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

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

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

В статье подробно расписаны основные техники, которые могут встретить в реальности
7
Важный опрос

Вы решили пойти учиться на итшника. Перед вами выбор пойти в лучшие факультеты страны. Какой вы бы выбрали?
Anonymous Poll
20%
Гриффиндор
5%
Пуффендуй
13%
Когтевран
22%
Слизерин
29%
Куда прошел бы на бюджет
10%
Там, где меньше всего учатся
Какие книги формируют мышление тру инженеров

Я, наконец, снова начал регулярно читать. За месяц плюс 2 книги. Это очень важное упражнение для концентрации и тонизировании своего ума. Следующий год у меня будет еще более насыщенный. Лайтовые прогулки мне не дают буста и приходится повышать нагрузки.

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

Так я формирую полезный список книг. В догонку про мышление тру инженеров делюсь интересными подборками книг:
- какие книги формируют мышление тру инженера
- Топ-10 книг, которые помогут айтишнику прокачать инженерное мышление
- Booking on developing a programmers/engineers mindset
- 10 Books Every Engineer Should Read

Вы же можете покидать свои любимые книги для инженеров
110
Можно ли «пройти итшечку» или почему в it нет потолка

Иногда встречаю фразы в интернете «прошел итшку», «дошел до потолка рынка». Обычно это пишут 22 зим от роду менторы, которые утомились от разработки и ушли из найма обучать доверчивых новичков. Я считаю такой путь тупиковый.

Я никогда не видел тех, кто ушел из IT, и потом не вернулся. Мы все здесь навсегда. В одном тесном котле. Просто меняется род деятельности.

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

На лицо эффект Данинга-Крюгера. Тут есть две причины, почему человек говорит о потолках в it, сразу после окончания универа.

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

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

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

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

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

Мы уже выяснили, что быть хорошим инженером — это не только классно красить кнопки, но и целый лист требований, которые расширяются. Мы уже писали про Product Minded Engineers.

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

В статье дал такие определения:

🟣Хороший инженер хорошо общается письмено и устно. Его работа напрямую зависит от сотрудничества.

🟣Хороший инженер понимает процессы. Не сабботирует их, а помогают улучшить, либо нарушить.

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

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

🟣Хорошие инженеры упрощают. Они занимаются модульностью, стратегии для тестирования и адаптируются под сложность.

🟣Хороший инженер постоянно учится. Он не боится публично признать свои ошибки и знает, что в следующий раз сделает лучше.

🟣Хорошие инженеры командные игроки. Они распознают проблему и предлагают решение. Они не бросают проблему за ограду и не просят других ее исправить.
Please open Telegram to view this post
VIEW IN TELEGRAM
9
☕️ Как я баг исправил, который не могли найти два года

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

Я всегда ищу интересные задачи: помогаю коллегам на работе; менти; беру небольшие подработки, если мне интересен проект. Так я улучшаю карму, повышаю навыки, выходя за границы привычных задач и, конечно, зарабатываю 🤡

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

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

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

🌟 Добавить логи. Зачем мне стараться воспроизвести редкий баг, если я сделаю систему трекинга, которая при воспроизведении у кого-то, даст мне полезную информацию самым быстрым способом.

Окей. С логами понятно, но что будем трекать?

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

Так. Мы научились понимать когда main thread завис. Теперь нам нужно как-то понимать что стало причиной его зависания.

Тут тоже все тривиально. Мы берем Stack Trace и записываем его в файл и отправляем в Firebase. Стандартный
Thread.callStackSymbols
мне не подходил, так как не давал понятной информации. Да и мне хотелось сделать универсальный механизм, который может принимать любой поток и получать его колстэк.

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

Дополнительно сделал экран в дебаг меню, который записывает в формате "Date -> Thread.callstack" логи. Чтобы можно было сразу мне отправить лог, как только получили зависание.

После релиза, спустя десяток минут, я получил первый лог. В нем сразу была показана причина зависания. Это был мертвый код, давно ушедшего разраба. Связан он был с расширения кэша картинок для либы SDWebImage

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

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

Делитесь своими метриками, которые помогли решить редкие баги
Please open Telegram to view this post
VIEW IN TELEGRAM
466
Сегодня 01.11 у меня др

Завтра я этот пост удалю, не хотел его писать, но вдохновился постом Дурова на свой др.

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

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

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

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

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

В нем всегда одна философия — быть полезным себе и другим.

Мы сделали первыми:
- выигрывали телеграм конкурс. Интересно кста перечитывать посты того времени
- Решали алгоритмы 365 дней
- Создавали апку "Симулятор иосника"
- Создали комьюнити
- устроили марафон по проектированию
- Сделали ютуб
- И кучу всего другого

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

Мне есть куда расти и нельзя расслабляться. Особенно смотря на экспертов и разрабов в чате, на работе. Есть много людей лучше меня. Профессионально, карьерно, ментально, софтово. Этот путь я воспринимаю как интересный приключенческий фильм. Где мы с вами его проходим вместе. С каждым годом ставки все увеличиваются и я верю, что мы сделаем еще кучу всего крутого.

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

Поддержать вы его можете конечно же тут 🤡
Please open Telegram to view this post
VIEW IN TELEGRAM
25720
повтор чужого опыта — это скучно

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

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

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

Сгенерированный текст от чатгпт сразу видно. Накрученный опыт легко раскусить. Сворованный дизайн вызывает отвращение.

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

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

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

Не будем жалкими пародиями, а станем неповторимыми оригиналами. Наполним себя уникальной экспертизой и творческой энергией
18
💎 БУМ! Воркшоп по собеседованию на тему Swift Concurrency

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

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

Сергей делает сложный мессенджер, где на практике использовал всю мощь Swift Concurrency.

За целый час мы узнали:
🟣Какие задачи нужно давать для оценки навыков
🟣Дает ли буст Swift Councurrency в сложных приложения?
🟣Какие знания он ждет от сеньора?
🟣Как ускорил приложение с помощью SC?
🟣Какие баги были и есть в SC?
🟣А также многое другое

Выпуск получился супер техническим и с кодом. Дополнительные ссылки и полезные ресурсы прилагаются

🧬 Получить доступ к этому видео можно тут
Please open Telegram to view this post
VIEW IN TELEGRAM
8
Об ИПР и карьерном росте

Опять же читаю книгу "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