Традиционный changelog что изменилось за неделю в ноушене и комьюнити.
Когда я проходил курсы менторства в авито, то нас учили о главном ресурсе, за которым приходит менти. Это коммьюнити. Менти приходит не только за твоими знаниями, но и за твоими социальными связями. А их дают только навыки и опыт.
Какой смысл всяких закрытых ноушенов, ресурсов, роадмапов, если этим никто не пользуется и работает в вакууме? Главное люди и фидбэк, кто использует их и дает корректировки. Важна среда обитания. Материал, который ее наполняет, служит пищей и упражнениями.
Все это создает крепкую систему эффективного культурного и информационного обмена, где каждый чему-то учит и дает точки роста. Такую роль и выполняет закрытое комьюнити. Поэтому я и решил создать то комьюнити, которое будет максимально полезное для профессионального и личночностного (упасигосподь) роста.
Когда ты ментор, то можешь посмотреть на свой путь вначале со стороны. Найти ошибки, которые допустил и помочь другому.
Когда ты менти, ты платишь символический взнос за то, что готов обучаться и идти вместе с единомышлениками. Учеба — это сложный путь и без любви к ней все терабайты в интернете не принесут пользы.
Чувство жертвенности подталкивает к поиску навыков и импакта, а твой фидбэк более значимый.
Самая главная валюта — это кол-во хороших отзывов. Многие в чате пишут, что это единственный чат, который читают. А кто-то и пишет в личку слова благодарности, тк помогло пройти собес или починить багу.
Чувство значимости растет и это мотивирует создавать и придумывать новые инструменты. Например, тот же роадмап или так я добавил раздел онбординга.
Я с уверенностью могу сказать, что мы самое первое, быстрорастущее и большое закрытое иос-сообщество.
Please open Telegram to view this post
VIEW IN TELEGRAM
Короче. По поводу созвонов комьюнити
Я понял, что выбирать тему для доклада, которую я не хочу, но хочет аудитория пока не мое. Типичный конфликт автора и зрителя.
Контент становится пресным, в нем чувствуется работа для галочки и нет страсти, которая помогает углубиться туда, куда мало кто смотрел. Хочется наполнить созвон уникальностью, а не пересказами слухов и популярных статей.
Поэтому как докладчик я буду выбирать темы, которые будут нравится мне. Если кому-то же захочется высказаться и он считает тему интересной для аудитории, то welcome. Канал может стать твоей трибуной.
Следующая тема про которую я буду делать доклад — это собесы. За много лет у меня есть большой опыт прохождения и проведения. Я собесился на джуна и тимлида. Я собесил джунов и тимлидов. От стартапов до бигтехов. Где-то удачно, где-то нет. У меня набухло и есть что сказать.
Через призму субъективно-обьективного разберем как работают собесы и что от них ожидать. Собираем опыт лидов, рекрутеров, хэдов и СТО. Вынесем универсальные советы и соберем гайды по любым секциям
Анонс позже.
Я понял, что выбирать тему для доклада, которую я не хочу, но хочет аудитория пока не мое. Типичный конфликт автора и зрителя.
Контент становится пресным, в нем чувствуется работа для галочки и нет страсти, которая помогает углубиться туда, куда мало кто смотрел. Хочется наполнить созвон уникальностью, а не пересказами слухов и популярных статей.
Поэтому как докладчик я буду выбирать темы, которые будут нравится мне. Если кому-то же захочется высказаться и он считает тему интересной для аудитории, то welcome. Канал может стать твоей трибуной.
Следующая тема про которую я буду делать доклад — это собесы. За много лет у меня есть большой опыт прохождения и проведения. Я собесился на джуна и тимлида. Я собесил джунов и тимлидов. От стартапов до бигтехов. Где-то удачно, где-то нет. У меня набухло и есть что сказать.
Через призму субъективно-обьективного разберем как работают собесы и что от них ожидать. Собираем опыт лидов, рекрутеров, хэдов и СТО. Вынесем универсальные советы и соберем гайды по любым секциям
Анонс позже.
День неслыханной щедрости!
Мне тут подсказали, что в связи с сезоном собеседований самое время сделать небольшую скидку на middle уровень. Так как конкуренция весной и осенью самая высокая.
На ней вы получите:
С помощью этих инструментов ты сможешь лучше подготовиться, чем конкуренты
UPD: Добавил еще 10 подписок
Please open Telegram to view this post
VIEW IN TELEGRAM
Тем самым став самым большим закрытым сообществом чисто иос-разработчиков с самой большой конверсией. Почти 80%
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведется в консоль?
Anonymous Quiz
14%
1, deadlock
19%
deadlock сразу
18%
2, 1, 3
35%
1, 2, 3
9%
2, 3, 1
5%
Будет ошибка компиляции
Решил написать серию постов про оптимизацию UI. Пару лет назад я уже писал статью на эту тему, но затрагивал по верхам общие советы. Зависания интерфейса заставляет пользователя задуматься, правильно ли работает приложение. В постах же мы углубимся и освежим древние советы, а также добавим новые.
Начнем с Offscreen rendering.
Off-screen рендеринг это часть отрисовки, которая не может быть выполнена на GPU и должны быть выполнена на CPU.
Низкоуровнево это выглядит так:
при рендеринге layer'a который требует off-screen рендеринг, GPU останавливает процесс рендеринга и передает управление CPU, который выполняет все необходимые операции и возвращает контроль обратно GPU, который затем продолжает процесс рендеринга.
В дополнение к оверхеду по смене контекста, off-screen рендеринг также требует выделения дополнительной памяти.
Кейсы которые приводят к off-screen рендерингу:
Как найти проблему с off-screen rendering?
В случае с corner radius, проблему можно решить отрисовав контент с округленными углами заранее. К примеру, если мы хотим показать аватарку с округленными углами, вместо того чтобы выставлять cornerRadius у UIImageView, мы можем отрисовать аватарку с округленными углами и соотвествущим фоном за ними. Таким образом сделав сделав округленные углы частью bitmap'a.
В случае с тенями, мы можем заранее посчитать и выставить shadowPath у layer'a, либо использовать картику теней для достижения нужного эффекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
🧵 Thread в Swift
В 95% случаев современные разработчики используют GCD как инструмент для многопоточности. Но иногда, нам требуется создать отдельный тред для дополнительных задач. В Swift мы легко сделаем это с помощью Thread.
Собрал подборку статей про:
- Основные советы по Thread: создание, синхронизация, завершение
- Исследование потоков в Swift
- Жизненный цикл Thread'ов
🌿 Еще больше задач и примеров про них тут
В 95% случаев современные разработчики используют GCD как инструмент для многопоточности. Но иногда, нам требуется создать отдельный тред для дополнительных задач. В Swift мы легко сделаем это с помощью Thread.
Собрал подборку статей про:
- Основные советы по Thread: создание, синхронизация, завершение
- Исследование потоков в Swift
- Жизненный цикл Thread'ов
Please open Telegram to view this post
VIEW IN TELEGRAM
Лучший процесс собеседования для поиска универсальных инженеров под любой стэк
Anonymous Poll
7%
Теория по методичке
35%
Только задачи из практики
16%
Алгоритмы
33%
Архитектуру
43%
Теория и задачи
38%
Проектирование
27%
Вопросы про жили были
18%
Собесы это зло
4%
Другое
Протокол Sequence
Мы часто используем готовые коллекции языка, такие как Array, Set, Dictionary. Но что, если я захочу сделать свою? Swift легко позволяет это сделать с помощью протокола Sequence.
Дока эйпл говорит:
Примеры работы в скриншотах.
Полезные ссылки:
- Sequence
- Use Sequence & IteratorProtocol Protocols in Swift
🌿 Еще больше вопросов и задач в самой большой базе для собесов
Мы часто используем готовые коллекции языка, такие как Array, Set, Dictionary. Но что, если я захочу сделать свою? Swift легко позволяет это сделать с помощью протокола Sequence.
Дока эйпл говорит:
Тип, обеспечивающий последовательный итерационный доступ к своим элементам.
Примеры работы в скриншотах.
Полезные ссылки:
- Sequence
- Use Sequence & IteratorProtocol Protocols in Swift
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Жить надо так, чтобы про тебя сняли такой видос
Продолжаю рубрику улучшения производительности наших кнопок. В прошлом посте мы поговорили про Offscreen Rendering и чем он мешает. В этом мы поговорим про главный поток.
Как мы знаем, избыточная загрузка главного потока сильно влияет на зависания. Работа, что выполняется в основном потоке, влияет как на задержку между входящим пользовательским событием и его обновлением экрана. А также влияет и на максимальную частоту обновлений экрана.
Если задержка взаимодействия с пользователем становится больше 100 мс, она начинает становиться заметной и приводит к зависанию. Для плавного и непрерывного движения новый кадр должен быть готов при каждом обновлении экрана.
- Избегайте задач, которые не должны выполняться в основного потоке, даже асинхронно.
- Убедитесь, что ваше приложение использует основной поток только для взаимодействия с пользовательским интерфейсом
Используйте Main Thread Checker или Watchdog
Иногда системного механизма не хватает и можно написать свой, который будет следить за временем ответа главного потока.
Please open Telegram to view this post
VIEW IN TELEGRAM
Никогда не идите работать в большую компанию или почему студенты чаще выигрывают телеграм конкурсы
Вышло интервью Дурова, где он рассказал про штат разрабов. Всего 30 человек делают лучший мессенджер в мире.
Многие разрабы думают это большая компания и такой продукт нужно делать минимум 200 человек на каждую платформу. Но я решил вспомнить почему небольшие компании лучше, чем огромные и что говорил Дуров.
Вы знали, что почти все первые места в телеграм конкурсах это либо студенты, либо фрилансеры, стартаперы? А разрабы из корпораций занимают чаще 3 или 4 места?
На мой взгляд, размер команды телеграм как раз и связан с той самой фразой Дурова. Ведь большие компании убивают рутиной и спамят ненужными задачами талантливых разрабов, которые в итоге уступают обычным студентам, которые еще не успели погибнуть в безжалостной бюрократичной машине. Раздувают штат и придумывают локальные, ошибочные и неэффективные метрики, которые чаще нужны только для промо руководителей.
Помер ли твиттер, когда сократили надутый штат на 80%?
Не потеряем огонь и будем всегда молоды сердцем! Не подменяем ценности субкультурами и чужими идеями!
Вступаем в сообщество и челенджим себя!
Вышло интервью Дурова, где он рассказал про штат разрабов. Всего 30 человек делают лучший мессенджер в мире.
Многие разрабы думают это большая компания и такой продукт нужно делать минимум 200 человек на каждую платформу. Но я решил вспомнить почему небольшие компании лучше, чем огромные и что говорил Дуров.
Вы знали, что почти все первые места в телеграм конкурсах это либо студенты, либо фрилансеры, стартаперы? А разрабы из корпораций занимают чаще 3 или 4 места?
На мой взгляд, размер команды телеграм как раз и связан с той самой фразой Дурова. Ведь большие компании убивают рутиной и спамят ненужными задачами талантливых разрабов, которые в итоге уступают обычным студентам, которые еще не успели погибнуть в безжалостной бюрократичной машине. Раздувают штат и придумывают локальные, ошибочные и неэффективные метрики, которые чаще нужны только для промо руководителей.
Помер ли твиттер, когда сократили надутый штат на 80%?
Не потеряем огонь и будем всегда молоды сердцем! Не подменяем ценности субкультурами и чужими идеями!
Вступаем в сообщество и челенджим себя!
Как менторство умерло или чему учат менторы
Все чаще приходят с запросом на менторство и все чаще я отказываю.
На это есть две причины:
1. Мне и самому нужно развиваться. Есть много вещей, в которых я слаб или хочу изучить.
2. Благодаря тому, что каждый второй называет себя "ментор" это слово опошлилось. Слишком много их стало, а качество услуг упало ниже пола.
Недавно я перестал заниматься с несколькими ребятами, тк устал и нет времени. Они ушли к другим менторам и поделились фидбэком. На четкий запрос "подскажи как развиваться мне как специалисту" многие не могут ответить. Даже опытные менторы говорят "Я и не знаю. Я либо помогу тебе опыт накрутить, либо резюме нарисовать. А развиваться я не знаю как". При этом уже взяв деньги и не маленькие.
Таких менторов раслодилось почкованием. Их задача дать мотивационный пинок за 50к и не дать качественную услугу, которая поможет апнуться как специалисту. Многие уходят разочарованными и злыми. Если я плачу денег за очевидные советы, то почему с меня берут деньги?
Я также общался с опытными ребятами, по-настоящему крутыми инженерами, они отказываются быть менторами потому что уже из каждого утюга любой человек после курсов учит вкатываться в ит. Также и в нашем чате замечают, что найти качественного ментора стало в разы сложнее. Эта ниша прогнила и нужно кровопускание.
С этого момента я отказываюсь называть себя ментором. Называйте репетитор, терминатор, трансформатор, инкубатор, инструктор. Но не ментор. Это слово опошлилось и стало в однин ряд с "коуч" и "инфоцыган". Это ниша наполняется мошенниками и самозванцами, а ранее благородное дело стало уже отдавать легким пренебрежением "а, ты очередной ментор..."
А мы пока подумаем как уйти от этой модели "менторов".
Все чаще приходят с запросом на менторство и все чаще я отказываю.
На это есть две причины:
1. Мне и самому нужно развиваться. Есть много вещей, в которых я слаб или хочу изучить.
2. Благодаря тому, что каждый второй называет себя "ментор" это слово опошлилось. Слишком много их стало, а качество услуг упало ниже пола.
Недавно я перестал заниматься с несколькими ребятами, тк устал и нет времени. Они ушли к другим менторам и поделились фидбэком. На четкий запрос "подскажи как развиваться мне как специалисту" многие не могут ответить. Даже опытные менторы говорят "Я и не знаю. Я либо помогу тебе опыт накрутить, либо резюме нарисовать. А развиваться я не знаю как". При этом уже взяв деньги и не маленькие.
Таких менторов раслодилось почкованием. Их задача дать мотивационный пинок за 50к и не дать качественную услугу, которая поможет апнуться как специалисту. Многие уходят разочарованными и злыми. Если я плачу денег за очевидные советы, то почему с меня берут деньги?
Я также общался с опытными ребятами, по-настоящему крутыми инженерами, они отказываются быть менторами потому что уже из каждого утюга любой человек после курсов учит вкатываться в ит. Также и в нашем чате замечают, что найти качественного ментора стало в разы сложнее. Эта ниша прогнила и нужно кровопускание.
С этого момента я отказываюсь называть себя ментором. Называйте репетитор, терминатор, трансформатор, инкубатор, инструктор. Но не ментор. Это слово опошлилось и стало в однин ряд с "коуч" и "инфоцыган". Это ниша наполняется мошенниками и самозванцами, а ранее благородное дело стало уже отдавать легким пренебрежением "а, ты очередной ментор..."
А мы пока подумаем как уйти от этой модели "менторов".
Backtracking — это метод решения задачи перебора всех возможных вариантов с последующим выбором оптимального решения.
Подход часто юзается в решении задач, где требуется найти наилучшее решение из множества возможных комбинаций.
Основная идея — это перебор всех возможных решений путем выбора вариантов и проверки их на соответствие заданным условиям.
На примере разобрана частая задача генерации скобочной последовательности с помощью бэктрекинга. А также добавлю раздел бэктрекинга в литкоде
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаю рубрику улучшения производительности наших кнопок. В прошлом посте мы поговорили про разгрузку главного потока. В этом мы поговорим про Color Blending.
Blending это стадия в процессе рендеринга фрейма, когда вычисляется финальный цвет пикселя. Каждый UIView в иерархии (а если быть точнее каждый CALayer) аффектит цвет финального пикселя, который будет отрисован на экране, так как нужно учесть все пересекающиеся views, их alpha, backgroundColor, opaque и тд.
UIView.opaque сообщает системе, что данный view является полностью непрозрачным. Это позволяет улучшить перформанс отрисовки. Опция UIView.opaque позволяет системе скипать отрисовку нижележащих views, а также blending при вычислении финального цвета.
Обнаружить проблему color blending'a можно выбрав опцию "Color Blended Layers" в in Xcode или в Debug меню iOS Simulator'a.
Если layer всегда показывается поверх другого монотонного layer'a, то можно просто присвоить layer'y background такого же цвета, эффект будет таким же, как если бы layer имел прозрачный background, но не будет проблемы blending'а.
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопросы для собесов на память | Junior | часть 2
В этой подборке были собраны вопросы про:
🟣 Что такое delayed deallocation
🟣 Какие участки памяти могут быть кроме кучи и стэка
🟣 Сколько живет Global и Value память
🟣 Виды утечек памяти
🟣 Инструменты для поиска утечек
🟣 многие другие вопросы.
🌿 Этот и другие сборники можно найти тут
🧬 Ознакомиться с другими сборниками тут
В этой подборке были собраны вопросы про:
Please open Telegram to view this post
VIEW IN TELEGRAM
Лучшее мобильное приложение в мире
Anonymous Poll
9%
Instagram
3%
iMessage
73%
Telegram
23%
Тинькоф
1%
Todoist
2%
Uber
0%
Facebook
24%
Youtube
3%
X
13%
Другое
Инженерная культура в FAANGA'ах
Одна из целей моего сообщества это не только взаимообмен технической экспертизы, но и обмен культурой из разных компаний.
Для меня не существует метрик, которые влияют на экспертов высоких грейдов. Какие бы санкции за их нарушение не вводили, какой бы код не писали, какие бы требования не просились их будут нарушать или использовать для бюрократии или отчетности. Чем экпертней человек, тем он чаще отказывается от чужих установок и требует свободы. Ну, и промо как-то надо получать. А на чужом далеко не уедешь.
Да и чем больше система, тем больше нужно ресурсов для контроля этих метрик.
Единственный способ создать порядок в такой системе — это культура. В по-настоящему развитых странах людей не нужно заставлять к порядку, они сами его наводят. Не во всем, не всегда, но культурное и здоровое общество готово само самоорганизовываться.
В этом выпуске ведущие поговорили с staff-инженером из нетфликса:
🟣 почему бигтехи очень разные
🟣 что такое культура
🟣 почему в ит бесконечные реорги и нет постоянства
🟣 почему литкод лучший инструмент для собесов
🟣 как и зачем бигтехи насаживают на культуру
В чате мы уже не один день ведем дискуссию про важность культуры и (без)полезность метрик.
Одна из целей моего сообщества это не только взаимообмен технической экспертизы, но и обмен культурой из разных компаний.
Для меня не существует метрик, которые влияют на экспертов высоких грейдов. Какие бы санкции за их нарушение не вводили, какой бы код не писали, какие бы требования не просились их будут нарушать или использовать для бюрократии или отчетности. Чем экпертней человек, тем он чаще отказывается от чужих установок и требует свободы. Ну, и промо как-то надо получать. А на чужом далеко не уедешь.
Да и чем больше система, тем больше нужно ресурсов для контроля этих метрик.
Единственный способ создать порядок в такой системе — это культура. В по-настоящему развитых странах людей не нужно заставлять к порядку, они сами его наводят. Не во всем, не всегда, но культурное и здоровое общество готово само самоорганизовываться.
В этом выпуске ведущие поговорили с staff-инженером из нетфликса:
В чате мы уже не один день ведем дискуссию про важность культуры и (без)полезность метрик.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Инженерная культура BigTech: работа мечты или испытание на прочность?
❓ Хочешь обсудить выпуск или задать вопрос эксперту? Вступай в наш tg-чат: https://t.iss.one/+QE7Frg-mBCFkODEy
📰 Не любишь чаты, но хочешь оставаться в курсе дел и прокачивать свой ИТ кругозор? Подписывайся на наш tg-канал: там публикуются анонсы новых выпусков…
📰 Не любишь чаты, но хочешь оставаться в курсе дел и прокачивать свой ИТ кругозор? Подписывайся на наш tg-канал: там публикуются анонсы новых выпусков…