Решил попробовать новый формат постов, где буду иногда делиться опытом решения интересных и нестандартных задач.
Я всегда ищу интересные задачи: помогаю коллегам на работе; менти; беру небольшие подработки, если мне интересен проект. Так я улучшаю карму, повышаю навыки, выходя за границы привычных задач и, конечно, зарабатываю
На одном из сложных проектов, который я помогаю делать, крайне неприятный редкий баг, которому уже несколько лет. Зависания главного потока, что воспроизводился раз в месяц у разработчиков. Но, по закону подлости, раз в день у директоров, что сильно пекло им пятую точку. Да и разрабы, которые воспроизводили проблему, не понимали в чем суть
Какие есть решения в этом случае? Предыдущие разработчики старались пойти решением в лоб: перебирали устройства и ждали пока у них воспроизведения проблемы на их окружении. Что, конечно же, приводило к критичному оттягиванию сроков исправления.
Я считаю такой подход немного неэффективным и долгим. К тому же это мессенджер. Его флоу нелинейные. Многое зависит от типа юзера, его активности, чатов и многих других эвентов. Одним перебором устройств не решишь эту проблему. Поэтому мне пришло очевидное решение, которое часто используется в крупных компаниях.
Окей. С логами понятно, но что будем трекать?
Если зависание главного потока, то здесь на помощь приходит Watchdog. О стандартном механизме мы уже когда-то писали, но я напомню. Watchdog — это механизм, который помогает отслеживать проблему блокировки потока. Я же написал свою реализацию, чем-то похожую на эту.
Так. Мы научились понимать когда main thread завис. Теперь нам нужно как-то понимать что стало причиной его зависания.
Тут тоже все тривиально. Мы берем Stack Trace и записываем его в файл и отправляем в Firebase. Стандартный
Thread.callStackSymbolsмне не подходил, так как не давал понятной информации. Да и мне хотелось сделать универсальный механизм, который может принимать любой поток и получать его колстэк.
Опять же для вдохновения я взял код из похожей библиотеки и переделал его под себя. Теперь мы легко можем видеть до какой точки исполнения мы дошли перед зависанием приложения.
Дополнительно сделал экран в дебаг меню, который записывает в формате "Date -> Thread.callstack" логи. Чтобы можно было сразу мне отправить лог, как только получили зависание.
После релиза, спустя десяток минут, я получил первый лог. В нем сразу была показана причина зависания. Это был мертвый код, давно ушедшего разраба. Связан он был с расширения кэша картинок для либы SDWebImage
Не имея этих базовых навыков можно очень сильно накопить раздражение у своих клиентов.
Делитесь своими метриками, которые помогли решить редкие баги
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня 01.11 у меня др
Завтра я этот пост удалю, не хотел его писать, но вдохновился постом Дурова на свой др.
Этому каналу уже чуть больше трех лет и здесь я хочу сказать спасибо всем вам. Мне всегда нравится вспоминать его историю создания, ведь она была случайной. А в случайностях есть уникальная ценность.
Когда этот канал создался я был преподом в одной онлайн школе и сделал его для того, чтобы поделиться интересными материалами со студентами. Вот первый пост. Потом я писал статьи на хабре и их опубликовывали в других крупных каналах. Дальше все органически шло через репосты и статьи.
Я ни разу не просил рекламу и делал только то, что нравится мне. Писал то, что думал. Старался задумываться о своих читателях. Банил хейтеров.
Наверное, я заметил, что все чаще меня вдохновляют люди. Мне нравится, как ребята сами приходят с просьбами менторства. Хотя я не рекламирую своих услуг, их доверие для меня важно. Также важно, что это уже опытные специалисты, а не новички, которым часто наивно ссут в уши недобросовестные люди, но они выбрали более качественный путь. Пришли на путь истинный😬 Где кидают респект за смелость быть собой и философию развития фундаментальных навыков, инженерного подхода и радикальной честности. Это все мотивируют идти дальше.
С каждым годом этот канал все лучше. Он стал не только площадкой для моих мыслей, но и связующим костром для других. Кто-то благодаря нему нашел работу, друзей, прокачал себя как специалист и человек. Как минимум это был я сам.
В нем всегда одна философия — быть полезным себе и другим.
Мы сделали первыми:
- выигрывали телеграм конкурс. Интересно кста перечитывать посты того времени
- Решали алгоритмы 365 дней
- Создавали апку "Симулятор иосника"
- Создали комьюнити
- устроили марафон по проектированию
- Сделали ютуб
- И кучу всего другого
Наш путь работает. Без побочных эффектов и гнилых движений. В этом есть элегантность, внутренняя сила и эстетизм.
Мне есть куда расти и нельзя расслабляться. Особенно смотря на экспертов и разрабов в чате, на работе. Есть много людей лучше меня. Профессионально, карьерно, ментально, софтово. Этот путь я воспринимаю как интересный приключенческий фильм. Где мы с вами его проходим вместе. С каждым годом ставки все увеличиваются и я верю, что мы сделаем еще кучу всего крутого.
Я все также буду топить за качественный контент и услуги для образования.
Поддержать вы его можете конечно же тут🤡
Завтра я этот пост удалю, не хотел его писать, но вдохновился постом Дурова на свой др.
Этому каналу уже чуть больше трех лет и здесь я хочу сказать спасибо всем вам. Мне всегда нравится вспоминать его историю создания, ведь она была случайной. А в случайностях есть уникальная ценность.
Когда этот канал создался я был преподом в одной онлайн школе и сделал его для того, чтобы поделиться интересными материалами со студентами. Вот первый пост. Потом я писал статьи на хабре и их опубликовывали в других крупных каналах. Дальше все органически шло через репосты и статьи.
Я ни разу не просил рекламу и делал только то, что нравится мне. Писал то, что думал. Старался задумываться о своих читателях. Банил хейтеров.
Наверное, я заметил, что все чаще меня вдохновляют люди. Мне нравится, как ребята сами приходят с просьбами менторства. Хотя я не рекламирую своих услуг, их доверие для меня важно. Также важно, что это уже опытные специалисты, а не новички, которым часто наивно ссут в уши недобросовестные люди, но они выбрали более качественный путь. Пришли на путь истинный
С каждым годом этот канал все лучше. Он стал не только площадкой для моих мыслей, но и связующим костром для других. Кто-то благодаря нему нашел работу, друзей, прокачал себя как специалист и человек. Как минимум это был я сам.
В нем всегда одна философия — быть полезным себе и другим.
Мы сделали первыми:
- выигрывали телеграм конкурс. Интересно кста перечитывать посты того времени
- Решали алгоритмы 365 дней
- Создавали апку "Симулятор иосника"
- Создали комьюнити
- устроили марафон по проектированию
- Сделали ютуб
- И кучу всего другого
Наш путь работает. Без побочных эффектов и гнилых движений. В этом есть элегантность, внутренняя сила и эстетизм.
Мне есть куда расти и нельзя расслабляться. Особенно смотря на экспертов и разрабов в чате, на работе. Есть много людей лучше меня. Профессионально, карьерно, ментально, софтово. Этот путь я воспринимаю как интересный приключенческий фильм. Где мы с вами его проходим вместе. С каждым годом ставки все увеличиваются и я верю, что мы сделаем еще кучу всего крутого.
Я все также буду топить за качественный контент и услуги для образования.
Поддержать вы его можете конечно же тут
Please open Telegram to view this post
VIEW IN TELEGRAM
2 57 20
повтор чужого опыта — это скучно
Последние два поста навеяли на одну интересную мысль, которая повторяется весь год в процессе подготовки разного материал. От работы, жизни и творчества.
Одно и то же слово, которое я повторяю всем людям. Будь я в программном комитете и слушаю доклад, или учу менти писать статью, или повторяю себе, снова удалив пост сомнительного качества. Или объясняю жене что я хочу захавать на день рождения.
Уникальность. Это слово создает нашу ценность. Пытаясь прожить чужую жизнь или накрутить чужой опыт мы сильно падаем в стоимости и наши знания, ценность падают вниз.
Сгенерированный текст от чатгпт сразу видно. Накрученный опыт легко раскусить. Сворованный дизайн вызывает отвращение.
В копирках вечное противоречие и двойные стандарты. Они на природном уровне не дают нам их принять, освоить. Это требует дополнительных ресурсов для поддержания.
Именно из-за желания собственного пути программисты строят бесконечные велосипеды. Только так мы можем по-настоящему вырасти, стать ценными и наполнить жизнь красками
Авторская картина. Уникальный дизайн. Собственный путь. Индекс цитирования. Это не всегда нужно, но гораздо веселее, чем повторять за другими.
Не будем жалкими пародиями, а станем неповторимыми оригиналами. Наполним себя уникальной экспертизой и творческой энергией
Последние два поста навеяли на одну интересную мысль, которая повторяется весь год в процессе подготовки разного материал. От работы, жизни и творчества.
Одно и то же слово, которое я повторяю всем людям. Будь я в программном комитете и слушаю доклад, или учу менти писать статью, или повторяю себе, снова удалив пост сомнительного качества. Или объясняю жене что я хочу захавать на день рождения.
Уникальность. Это слово создает нашу ценность. Пытаясь прожить чужую жизнь или накрутить чужой опыт мы сильно падаем в стоимости и наши знания, ценность падают вниз.
Сгенерированный текст от чатгпт сразу видно. Накрученный опыт легко раскусить. Сворованный дизайн вызывает отвращение.
В копирках вечное противоречие и двойные стандарты. Они на природном уровне не дают нам их принять, освоить. Это требует дополнительных ресурсов для поддержания.
Именно из-за желания собственного пути программисты строят бесконечные велосипеды. Только так мы можем по-настоящему вырасти, стать ценными и наполнить жизнь красками
Авторская картина. Уникальный дизайн. Собственный путь. Индекс цитирования. Это не всегда нужно, но гораздо веселее, чем повторять за другими.
Не будем жалкими пародиями, а станем неповторимыми оригиналами. Наполним себя уникальной экспертизой и творческой энергией
Принес вам праздничный подгон. В этом часовом видео будет жесткий собес, где я обкакался.
Меня немного прособесил Сергей, где он целый час делился задачами на мидла/сеньора, которые бы задавал разработчику.
Сергей делает сложный мессенджер, где на практике использовал всю мощь Swift Concurrency.
За целый час мы узнали:
Выпуск получился супер техническим и с кодом. Дополнительные ссылки и полезные ресурсы прилагаются
Please open Telegram to view this post
VIEW IN 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 листов (конечно, с комментами и другими артефактами)
Автор книги советуют, что нужно вести лог своей работы каждую неделю. Да и я сам уже к этому пришел. Никто, кроме вас, не сможет объяснить вашу работу. А надеяться, что все менеджеры следят за вашим шагом и сами должны контролировать вас — наивно, незрело и опасно.
А так хоть самому потом проще собирать для ревью информацию
Делитесь своими советами.
Опять же читаю книгу "the software engineer's guidebook" и дошел до советов по карьерному росту. Я как раз делал недавно новый ИПР и хочу тоже прокомментировать некоторые советы из книги, вперемешку со своими личными.
Расти по карьере — это такой же скилл, который нужно прокачивать отдельно, как и навык прохождения собеседований. Ты много можешь слушать и смотреть, но важнее всего практиковаться. Сейчас я понял, что засиделся на одном грейде слишком долго и нужно уже расти. Мне и так было раньше комфортно, но хочется новых задач и вызовов. Да и зона комфорта такая вещь, от которой веет забвением.
Иногда рост по карьере может сильно отличаться от профессионального развития, это писали при чтении книге "Growing As a Mobile Engineer". Поэтому есть много важных действий, которые необходимы к ускорению
Эти комменты могут быть полезны и вам:
Одна из моих ошибок, что смотря на следующий грейд, я думал так: "Ага, для след. грейда нужно написать статью или выступить с докладом. Слишком легко. Сделаю конференцию и там будет три доклада" или "Нужно улучшить компоненты компании. Ага, я создам новый стрим с юнит-тестами". Но этот подход не очень помогает оценить твой дифф между текущим уровнем и следующим. А также требует хорошей защиты. Для карьерного роста гораздо лучше идти последовательно к целям 1, 2, 3, 4, 5. А не пытаться прыгать 1, 3, 2, 5, 4. Лучше делать небольшие иттеративные шаги, чем прыгая вперед на два шага, а потом назад один. Это как качаться в качалке с разными весами каждый день и не иметь четкую последовательность, режим.
У меня, как и умногих инженеров, бывала критическая ошибка недооценивать важность маленьких, но полезных задач. Когда ты хочешь роста, то тратить время на маленькие и простые задачи не хочется. Почему это состояние вредно? Ты можешь остановиться на месте в ожидании сложных и больших задач. А также приносить нулевую, а иногда и отрицательную пользу.
Маленькие задачи могут приносить большой эффект.
Иногда бывает, что внутренний опыт или насмотренность говорит сделать важную задачу, начать рефакторить или приносить новую технологию. Но этот опыт должен принести ощутимую и понятную пользу. Например, ты вроде знаешь, что затащив BDUI или KMP ты можешь потенциально помочь в будущем. Но такой подход не сильно полезен, тк твой труд должен принести ощутимый импакт твоей команде. А чаще это какие-то бизнес метрики.
Например, внедрение технологии BDUI помогло нам повысить метрики по качеству или выручки на 3-4%. А благодаря КМП мы ускорили разработки фичи на 30% сторипоинтов.
Иначе, без метрик или четких доказательств, все задачи будут busywork'ами.
Очень многое зависит от того, как ты оформишь свой лист с перфоманс ревью. Почти как с резюме. У меня часто бывало, что когда я только начинал писать, то почти все забыл. И думал, что толком ничего не сделал, даже листа не наберу. Потом я тратил много времени собирая все свои output'ы и outcome'ы. Где в итоге, на последнем перфревью, вышло аж 15 листов (конечно, с комментами и другими артефактами)
Автор книги советуют, что нужно вести лог своей работы каждую неделю. Да и я сам уже к этому пришел. Никто, кроме вас, не сможет объяснить вашу работу. А надеяться, что все менеджеры следят за вашим шагом и сами должны контролировать вас — наивно, незрело и опасно.
А так хоть самому потом проще собирать для ревью информацию
Делитесь своими советами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Короче, вдохновившись "the software engineer's guidebook" у меня появилась гениальная (бредовая) идея НАПИСАТЬ СВОЮ КНИГУ.
База комьюнити так сильно разраслась, что ее самое время структурировать и укомплектовать в один источник правды. В ноушене уже 6 гб информации и просто сложно в такой системе идти последовательно и не заблудиться. Я сейчас утром хотел начать освежить все свои знания и понял, что в этой системе нет порядка. Пора собрать фрагменты в один пазл. Эта книга соберет в себе все знания, лайфхаки и советы, которые были накоплены мной и другими.
Путь будет долгий и книга будет писаться не один месяц. Мне придется много читать и изучать. Спрашивать и разговаривать. Идти в исходники, а может даже в офис Apple и других крупных компаний. Но я выложу все свои силы и попробую укомплектовать все в один материал, тем самым сделав картину полной. Попутно развивая себя, брав интервью и черпая знания у лучших практикующих разрабов и уходя всё глубже.
Впереди новый цикл развития контента.
База комьюнити так сильно разраслась, что ее самое время структурировать и укомплектовать в один источник правды. В ноушене уже 6 гб информации и просто сложно в такой системе идти последовательно и не заблудиться. Я сейчас утром хотел начать освежить все свои знания и понял, что в этой системе нет порядка. Пора собрать фрагменты в один пазл. Эта книга соберет в себе все знания, лайфхаки и советы, которые были накоплены мной и другими.
Путь будет долгий и книга будет писаться не один месяц. Мне придется много читать и изучать. Спрашивать и разговаривать. Идти в исходники, а может даже в офис Apple и других крупных компаний. Но я выложу все свои силы и попробую укомплектовать все в один материал, тем самым сделав картину полной. Попутно развивая себя, брав интервью и черпая знания у лучших практикующих разрабов и уходя всё глубже.
Впереди новый цикл развития контента.
52 44 10
Ну и кстати про важность окружения.
В завирусившийся статье про призеров Нобелевской премии были интересные анализы — 702 из 736 нобелиатов были в одной тусовке и знали друг друга. Они либо учились в одних университетах с другими лауреатами, либо были знакомы друг с другом.
О чем это говорит? Как минимум одна из версий правильная:
- Люди делятся знаниями только для членов своего сообщества
- Связи и среда обитания решают больше чем талант и трудолюбие
- Награды дарят только своим
- Умные люди учат умных
- Сильные наставники взращивают сильных инженеров
Окружаем себя только реальными экспертами, а не накрученными?
В завирусившийся статье про призеров Нобелевской премии были интересные анализы — 702 из 736 нобелиатов были в одной тусовке и знали друг друга. Они либо учились в одних университетах с другими лауреатами, либо были знакомы друг с другом.
О чем это говорит? Как минимум одна из версий правильная:
- Люди делятся знаниями только для членов своего сообщества
- Связи и среда обитания решают больше чем талант и трудолюбие
- Награды дарят только своим
- Умные люди учат умных
- Сильные наставники взращивают сильных инженеров
Окружаем себя только реальными экспертами, а не накрученными?
Nature
How to win a Nobel prize: what kind of scientist scoops medals?
What subjects have past winners studied? What age were they when they won? Where do they live? Nature crunched the data on every science prizewinner to find out.
iOS-разработчикам, которые хотят прокачать свои навыки работы с многопоточностью – совсем скоро стартует Podlodka iOS Crew!
С 11 по 15 ноября лучшие эксперты разберут многопоточность, Swift Concurrency и алгоритмы в формате удобных онлайн-сессий.
В программе:
🔹 Александр Андрюхин проведёт нас через особенности Swift Concurrency, которых ты точно не знал
🔹 Swift 6 глазами Александра Априамашвили – как переход на новую версию поможет в повседневной работе.
🔹 Антон Марченко расскажет, как async в алгоритмах делает их быстрее.
🔹 Александр Сычев раскроет механизмы работы Thread и объяснит, как это важно для работы с многопоточностью.
Здесь только прикладная польза, реальные примеры и свежий опыт.
Присоединяйтесь 👉 https://podlodka.io/ioscrew
А промокод
С 11 по 15 ноября лучшие эксперты разберут многопоточность, Swift Concurrency и алгоритмы в формате удобных онлайн-сессий.
В программе:
🔹 Александр Андрюхин проведёт нас через особенности Swift Concurrency, которых ты точно не знал
🔹 Swift 6 глазами Александра Априамашвили – как переход на новую версию поможет в повседневной работе.
🔹 Антон Марченко расскажет, как async в алгоритмах делает их быстрее.
🔹 Александр Сычев раскроет механизмы работы Thread и объяснит, как это важно для работы с многопоточностью.
Здесь только прикладная польза, реальные примеры и свежий опыт.
Присоединяйтесь 👉 https://podlodka.io/ioscrew
А промокод
ios_crew_14_MwdnTN
сообщества даёт скидку в 500 руб🥳База знаний по Swift Concurrency
В закрытом канале мы уже поделились полезными ссылками и задачами по Swift Concurrency от Сергея. В этом списке мне понравился один авторский репозиторий.
Здесь собраны интересные материалы, где можно узнать всю базу и не только, по теме. Я как раз собираюсь углубленно изучать Swift Concurrency, так как Сергей поделился как ускорил производительность синхронизации чата своего приложения из 15 минут в 3 секунды. Но тут главное быть осторожным, а то можно наоборот все ухудшить.
Я как раз помогаю с чатом и тоже собираюсь перевести на SC, чтобы улучшить перфоманс и буду в будущем писать свои впечатления
В закрытом канале мы уже поделились полезными ссылками и задачами по Swift Concurrency от Сергея. В этом списке мне понравился один авторский репозиторий.
Здесь собраны интересные материалы, где можно узнать всю базу и не только, по теме. Я как раз собираюсь углубленно изучать Swift Concurrency, так как Сергей поделился как ускорил производительность синхронизации чата своего приложения из 15 минут в 3 секунды. Но тут главное быть осторожным, а то можно наоборот все ухудшить.
Я как раз помогаю с чатом и тоже собираюсь перевести на SC, чтобы улучшить перфоманс и буду в будущем писать свои впечатления
GitHub
GitHub - artemnovichkov/awesome-swift-async-await: A hand-curated list of Swift async/await resources. Feel free to contribute!
A hand-curated list of Swift async/await resources. Feel free to contribute! - artemnovichkov/awesome-swift-async-await
Для чего нужна своя FIFO очередь
Интересный факт мы узнали с прошлого мок-собеса по Swift Concurrency. Оказывается, задачи, отправленные из синхронного контекста в ассинхронный, — неупорядоченное. В видео была задача, которую обычно задают на сеньора. Ожидается, что он расскажет об этом поведении и даст свое решение.
Например, в коде выше, до Swift 5.10 не гарантируется упорядоченность.
Для этого приходилось писать свои инструменты, которые помогали избежать это боль
Интересный факт мы узнали с прошлого мок-собеса по Swift Concurrency. Оказывается, задачи, отправленные из синхронного контекста в ассинхронный, — неупорядоченное. В видео была задача, которую обычно задают на сеньора. Ожидается, что он расскажет об этом поведении и даст свое решение.
Например, в коде выше, до Swift 5.10 не гарантируется упорядоченность.
Для этого приходилось писать свои инструменты, которые помогали избежать это боль
Кстати, делюсь первым драфтом по структуре книги. Она очень упрощенная и не все вместилось в скрин.
Первое рабочее название iOS Engineer Story.
Решил что это будет комплексный разбор от А до Я. Очень большая работа, где мы разберем вопросы от входа в профессию до карьерного роста. Затронем почти все самые важные темы
писать я ее точно буду где-то пол года. В будущем о процессе написания, сбора инфы, диалоги приглашенных экспертов буду опубликовывать закрытым подписчикам и изредко делиться тут
Я настроен крайне воинственно. Это будет мой опус магнум, после которой я почувствую себя свободнее
Первое рабочее название iOS Engineer Story.
Решил что это будет комплексный разбор от А до Я. Очень большая работа, где мы разберем вопросы от входа в профессию до карьерного роста. Затронем почти все самые важные темы
писать я ее точно буду где-то пол года. В будущем о процессе написания, сбора инфы, диалоги приглашенных экспертов буду опубликовывать закрытым подписчикам и изредко делиться тут
Я настроен крайне воинственно. Это будет мой опус магнум, после которой я почувствую себя свободнее
2 35 5 5
Ну и заканчиваем эту неделю разборами Swift Concurrency подборкой задач.
В них собрал все задачи, которые мы разбирали в комьюнити за последнюю неделю, а также что встречались на созвоне:
- Задача на понимание работы async/await
- Задача на группировку тасок
- Задача на отмену тасок
- И другие
Please open Telegram to view this post
VIEW IN TELEGRAM
Управление памятью в ассемблере для Apple Silicon
Все знают насколько тема об управлении памятью популярная. Вокруг нее много холливаров насколько глубоко и широко рядовой разраб должен ее знать. Как часто, кроме собесов и споров в чатах, нужно рассказать чем отличается unownend(safe) от unowned(unsafe)? Насколько детально нужно помнить про жизненный цикл RefObject и этапы создания SideTable? Как правильно считать байты с помощью MemoryLayout?
Если ваше дыхание становится чаще, а пульс ускоряется от предвкушения часовой беседы, то эта статья вам точно будет интересна
Автор залез еще глубже и разобрал управление памятью в iOS с помощью ассемблера. Мем стал реальностью
Все знают насколько тема об управлении памятью популярная. Вокруг нее много холливаров насколько глубоко и широко рядовой разраб должен ее знать. Как часто, кроме собесов и споров в чатах, нужно рассказать чем отличается unownend(safe) от unowned(unsafe)? Насколько детально нужно помнить про жизненный цикл RefObject и этапы создания SideTable? Как правильно считать байты с помощью MemoryLayout?
Если ваше дыхание становится чаще, а пульс ускоряется от предвкушения часовой беседы, то эта статья вам точно будет интересна
Автор залез еще глубже и разобрал управление памятью в iOS с помощью ассемблера. Мем стал реальностью
Хабр
Управление памятью в ассемблере для Apple Silicon
Зачем нам нужно обладать базовыми знаниями ассемблера? Ведь они крайне редко применяются в современных реалиях. Несмотря на это, если вы хотите больше узнать про скрытые аспекты вашего кода, то...
Рецензия на любимую книгу Илона Маска
Дочитал книгу «от нуля к единице: как создать стартап, который изменит мир». Мне о ней многие говорили: пара бывших руководителей считали ее одной из любимых. Ребята из сообщества ее также рекомендовали. И не без основательно. Ее автор создатель PayPall и близкий друг Илона Маска, с которым они вместе делали одни из лучших продуктов.
Почему я рекомендую эту книгу? Она объясняет многое поведение, процессы и ментальные модели. Особенно это полезно, если вы запутались и забрели не туда. Слишком много просидели в интернетах. Вы можете поспорить с автором или согласиться, но много мыслей, как минимум расширят наш кругозор.
Я разберу несколько острых глав:
1. Ваши сотрудники должны быть на полной занятости. Так ваше с ними сотрудничество и эффективность работы будет намного выше. Автор не только не любит вторые и третьи работы, но и не принимает удаленки, тк они снижают сплоченность.
2. Плати только за результат. Автор против высоких окладов, тк они расслабляют сотрудников и не мотивируют развиваться и развивать. Деньги важны, но только за отличный результат
3. Рекрутинг — важнейший навык компании. Есть много заблуждений в интернете, что ИИ убьет рекрутинг или хантинг. Что это вредная профессия или абсолютно ненужная. Чаще это пишут люди уже очень далекие от реальности. Смотря сейчас что происходит с рынком США, где хороший рекрутер может получать 20к$, то мы можем понять что эта профессия только стоит перед активным развитием.
4. Люди не должны заниматься на работе только работой. Если сотруднику не нравится взаимодействие с коллегами или другие неформальные коммуникации, то это плохая команда, на которую не стоит тратить время
5. Хороший эксперт хорош только в одном. Автор сравнивает как ему сложно общаться с очень умными людьми, которые достигнув знаний в физике или математике начинают учить его бизнесу. Не стоит быть таким.
6. Не забывайте о рекламе. Большая проблема инженеров — считать бессмыслицей рекламу и продажи. Ставя реальный труд руками выше грязного маркетинга. Обвиняя маркетологов в переоценке своего труда. Но чаще же работу инженеров и ученых переоценивают
В целом книга вызывает противоречивые мысли. Но определенно точно в ней есть много интересных и актуальных напутствий, объяснений и методов, которые могут привести к цели быстрее
Кстати, следующие месяцы будут активными на разные разборы. Так как я все лучше понимаю, что нет ничего лучше для образования, чем хорошие книги, написанные профессиональными писателями
Дочитал книгу «от нуля к единице: как создать стартап, который изменит мир». Мне о ней многие говорили: пара бывших руководителей считали ее одной из любимых. Ребята из сообщества ее также рекомендовали. И не без основательно. Ее автор создатель PayPall и близкий друг Илона Маска, с которым они вместе делали одни из лучших продуктов.
Почему я рекомендую эту книгу? Она объясняет многое поведение, процессы и ментальные модели. Особенно это полезно, если вы запутались и забрели не туда. Слишком много просидели в интернетах. Вы можете поспорить с автором или согласиться, но много мыслей, как минимум расширят наш кругозор.
Я разберу несколько острых глав:
1. Ваши сотрудники должны быть на полной занятости. Так ваше с ними сотрудничество и эффективность работы будет намного выше. Автор не только не любит вторые и третьи работы, но и не принимает удаленки, тк они снижают сплоченность.
2. Плати только за результат. Автор против высоких окладов, тк они расслабляют сотрудников и не мотивируют развиваться и развивать. Деньги важны, но только за отличный результат
3. Рекрутинг — важнейший навык компании. Есть много заблуждений в интернете, что ИИ убьет рекрутинг или хантинг. Что это вредная профессия или абсолютно ненужная. Чаще это пишут люди уже очень далекие от реальности. Смотря сейчас что происходит с рынком США, где хороший рекрутер может получать 20к$, то мы можем понять что эта профессия только стоит перед активным развитием.
4. Люди не должны заниматься на работе только работой. Если сотруднику не нравится взаимодействие с коллегами или другие неформальные коммуникации, то это плохая команда, на которую не стоит тратить время
5. Хороший эксперт хорош только в одном. Автор сравнивает как ему сложно общаться с очень умными людьми, которые достигнув знаний в физике или математике начинают учить его бизнесу. Не стоит быть таким.
6. Не забывайте о рекламе. Большая проблема инженеров — считать бессмыслицей рекламу и продажи. Ставя реальный труд руками выше грязного маркетинга. Обвиняя маркетологов в переоценке своего труда. Но чаще же работу инженеров и ученых переоценивают
В целом книга вызывает противоречивые мысли. Но определенно точно в ней есть много интересных и актуальных напутствий, объяснений и методов, которые могут привести к цели быстрее
Кстати, следующие месяцы будут активными на разные разборы. Так как я все лучше понимаю, что нет ничего лучше для образования, чем хорошие книги, написанные профессиональными писателями
Какое собеседование сложнее всего вам проходить?
Anonymous Poll
8%
Вопросы про платформу iOS
60%
Решение алгоритмов
33%
Лайфкодинг
15%
Архитектуры
24%
Проектирование систем
11%
Поведенческое интервью
6%
Друго
Media is too big
VIEW IN TELEGRAM
Как использовать ChatGPT для самообучения
Крутой пример как чатбот держит контекст. Подписчик из чата показал как юзает чатгпт. Он загрузил книги по iOS AI, где попросил:
- перевести книги
- подробнее раскрыть что имелось ввиду в какой-то главе
- попросить дать четкий пересказ по страницам
Тоже активно начал пользоваться АИ. Думаю, уже пора делать гайды как чпт помогает в реальной жизни. Может быть даже свой напишем
Крутой пример как чатбот держит контекст. Подписчик из чата показал как юзает чатгпт. Он загрузил книги по iOS AI, где попросил:
- перевести книги
- подробнее раскрыть что имелось ввиду в какой-то главе
- попросить дать четкий пересказ по страницам
Тоже активно начал пользоваться АИ. Думаю, уже пора делать гайды как чпт помогает в реальной жизни. Может быть даже свой напишем