Вопрос как реализован системный опциональный тип уже перестал кого-то удивлять. Все прекрасно знают, что это enum с двумя значениями. Мы уже разбирали его раньше.
Поэтому попробуем погрузиться вглубь и разобрать непопулярные детали.
Если вы хотите хорошо понимать как устроен Optional, то это статья для вас. Разобрал для вас некоторые детали исходников.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Deep Focus или кому нет дороги в IT
Самый главный навык для инженера — усидчивость. Мой опыт менторства показал, что не всем можно вкатиться в ит. Достаточно задать вопрос "А сколько ты готов сидеть на одном месте?". Те, кто не может глубоко погружаться в задачи, разбираться в легаси, изучать новый апдейт и искать с микроскопом баг — всегда сливаются. Нужно сохранять сосредоточенность и инфогигиену.
Среди моих знакомых даже есть один тамада, который все нервы вытрепал каждому ментору. Он не хотел делать домашки, читать материал, фиксить свои пробелы. Он хотел быстрых и легких путей. Денег, что обещали ему фейк-сообщества и курсы. Его мозг не готов был к новой нагрузке. Ведь есть главное правило: чем дольше погружаешься, тем больше надо впитывать. Нельзя пытаться найти тех, кто за него сделает упражнения. Они встанут на твое место. В итоге, он обманывал сам себя, ушел в убытки и вернулся обратно проводить свадьбы. Потратив свое и чужое время.
Но есть еще одна проблема — это удержание. Если многие думают, что самый сложный этап — это войти в ИТ, то есть еще проблема как в нем остаться на долго. Так еще и продолжать развиваться. Риск быть устаревшим или автоматизированным каждый день все выше.
Сейчас читаю книгу Deep Focus. В ней автор объясняет важность глубокого погружения в ит профессиях и насколько сильно интернет убивает в нас этот важнейший навык. Он пророчески, даже того не подозревая, предрек огромную проблему 7 лет назад.
Фрагментарное мышление сейчас называют по-разному. СДВГ, "работа 4 часа в день", тиктоки, твитеры, ютубы. Легкий дофамин прожигает нашу ментальную систему. Мы становимся слабыми, а нашей слабостью пользуются другие. Как наркобарыги, которые подсаживают на героин своих клиентов.
Как сопротивляться этому наркотику, отравляющему душу и разум?
🟣 минимизировать потребление социальных сетей. Большинство информации в интернете — мусор. Нас обманывают, когда говорят, что мы упускаем выгоду, если не промониторим тысячу чатов и каналов. Соцсети — это товар для бедных.
🟣 читать книги. Книги приучают наш мозг к сложной работе. Позволяют держать крупную картину в голове и погружаться в одну мысль постепенно.
🟣 решать больше задач. Алгоритмы — это хороший тренажер для тренировки той самой усидчивости. Борьба с ленью, менталкой, неудачами. Формирование аналитического мышления
Нет никаких секретных успехов. Нет никаких секретных знаний. Есть только время и скорость, с которыми мы изучаем необходимое. А что нас будет отвлекать и тратить наше время — уже наш выбор.
Наша информационная экономика зависит от комплексных систем, которые быстро изменяются.
Наша цель развиваться быстрее, чем развиваются системы, которые нас заменят.
Самый главный навык для инженера — усидчивость. Мой опыт менторства показал, что не всем можно вкатиться в ит. Достаточно задать вопрос "А сколько ты готов сидеть на одном месте?". Те, кто не может глубоко погружаться в задачи, разбираться в легаси, изучать новый апдейт и искать с микроскопом баг — всегда сливаются. Нужно сохранять сосредоточенность и инфогигиену.
Среди моих знакомых даже есть один тамада, который все нервы вытрепал каждому ментору. Он не хотел делать домашки, читать материал, фиксить свои пробелы. Он хотел быстрых и легких путей. Денег, что обещали ему фейк-сообщества и курсы. Его мозг не готов был к новой нагрузке. Ведь есть главное правило: чем дольше погружаешься, тем больше надо впитывать. Нельзя пытаться найти тех, кто за него сделает упражнения. Они встанут на твое место. В итоге, он обманывал сам себя, ушел в убытки и вернулся обратно проводить свадьбы. Потратив свое и чужое время.
Но есть еще одна проблема — это удержание. Если многие думают, что самый сложный этап — это войти в ИТ, то есть еще проблема как в нем остаться на долго. Так еще и продолжать развиваться. Риск быть устаревшим или автоматизированным каждый день все выше.
Сейчас читаю книгу Deep Focus. В ней автор объясняет важность глубокого погружения в ит профессиях и насколько сильно интернет убивает в нас этот важнейший навык. Он пророчески, даже того не подозревая, предрек огромную проблему 7 лет назад.
Фрагментарное мышление сейчас называют по-разному. СДВГ, "работа 4 часа в день", тиктоки, твитеры, ютубы. Легкий дофамин прожигает нашу ментальную систему. Мы становимся слабыми, а нашей слабостью пользуются другие. Как наркобарыги, которые подсаживают на героин своих клиентов.
Как сопротивляться этому наркотику, отравляющему душу и разум?
Нет никаких секретных успехов. Нет никаких секретных знаний. Есть только время и скорость, с которыми мы изучаем необходимое. А что нас будет отвлекать и тратить наше время — уже наш выбор.
Наша информационная экономика зависит от комплексных систем, которые быстро изменяются.
Наша цель развиваться быстрее, чем развиваются системы, которые нас заменят.
Please open Telegram to view this post
VIEW IN TELEGRAM
Я продолжаю собирать вопросы для подготовки и проведения интервью. Сейчас я сделал акцент на качестве материала. Очень много есть вопросов в сети, но мало качественных ответов. Кто-то не стесняется генерировать ответы с помощью чатгпт и получается кринж.
В этой подборке я сфокусировался на опционале с кодом:
Please open Telegram to view this post
VIEW IN TELEGRAM
Как узнать выделяется ли Value Type на куче
Автор треда рассказывает, что его понимание работы с памятью было очень упрощенным. Раньше он думал, что любой value type выделяется на стэке, а reference type — на куче.
Но тут есть много нюансов. Например, все коллекции с COW работают с кучей, а также все структуры с свойствами ссылочного типа
Автор треда рассказывает, что его понимание работы с памятью было очень упрощенным. Раньше он думал, что любой value type выделяется на стэке, а reference type — на куче.
Но тут есть много нюансов. Например, все коллекции с COW работают с кучей, а также все структуры с свойствами ссылочного типа
Swift Forums
How to know if a value type includes heap allocations and ref counting
I've been trying to improve my understanding Swift's performance characteristics. John McCall's WWDC talk, Exploring Swift Performance, from this year's WWDC is an excellent resource, and I highly recommend it for anyone who is interested in optimizing their…
На что вы смотрите при выборе автора контента?
Final Results
28%
Компании в которых он работал
18%
Его должность/грейд
18%
Годы опыта
61%
Экспертиза: глубина
37%
Экспертиза: ширина
32%
Жизненная философия
47%
Уникальный контент
24%
Слог
8%
Другое
Как писать регулярные выражения
Сейчас я пишу небольшую работу на бэкенде. В этой задаче нужно было придумать валидацию введенных строк. Чаще, в мобилке, мы пользуемся какими-то готовыми решениями.
Здесь же мне потребовалось освежить знания как писать с нуля. Говорят, чатгпт уже на изи справляется с такой работой. Но мы же не какие-то лохи, чтобы отдавать работу бездушной тупой машине?
Сейчас я пишу небольшую работу на бэкенде. В этой задаче нужно было придумать валидацию введенных строк. Чаще, в мобилке, мы пользуемся какими-то готовыми решениями.
Здесь же мне потребовалось освежить знания как писать с нуля. Говорят, чатгпт уже на изи справляется с такой работой. Но мы же не какие-то лохи, чтобы отдавать работу бездушной тупой машине?
GeeksforGeeks
Regex Tutorial - How to write Regular Expressions? - GeeksforGeeks
Your All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more.
Детальный разбор Hashable & Equatable
Когда-то обычные работяги сами высчитывали хэш-значение у структур. Тогда приходилось быть математиком и писать свои хэш-функции. Но эпл сжалился над нами и дал инструмент, который существенно упрощает жизнь.
Протокол Hashable сильно помог. Он упростил жизнь и дал работать с коллекциями почти без коллизий, дав hasher, который легко сгенерирует уникальный хэш. Но что же сделать, если все же коллизии образовались? Тут есть еще одно решение как Equatable
Equatable помогает нам дополнительно проверить наши свойства эквивалентность. Тем самым дополнительно защищая нас от коллизии
Как он работает разберем в скриншотах, а недавно я писал детальную статью
Ссылки для чтения:
- Organize data using arrays, sets, and dictionaries.
- Hashable withe equtable
- Equatable docs
Когда-то обычные работяги сами высчитывали хэш-значение у структур. Тогда приходилось быть математиком и писать свои хэш-функции. Но эпл сжалился над нами и дал инструмент, который существенно упрощает жизнь.
Протокол Hashable сильно помог. Он упростил жизнь и дал работать с коллекциями почти без коллизий, дав hasher, который легко сгенерирует уникальный хэш. Но что же сделать, если все же коллизии образовались? Тут есть еще одно решение как Equatable
Equatable помогает нам дополнительно проверить наши свойства эквивалентность. Тем самым дополнительно защищая нас от коллизии
Как он работает разберем в скриншотах, а недавно я писал детальную статью
Ссылки для чтения:
- Organize data using arrays, sets, and dictionaries.
- Hashable withe equtable
- Equatable docs
Приходите на вечеринку Yandex Summer Mobile Party!
Яндекс устраивает летнюю вечеринку для мобильных разработчиков. Встречаемся в Санкт-Петербурге 19 июля, чтобы познакомиться и обсудить последние новости!
В этот раз обойдёмся без хардовых докладов и долгих обсуждений работы. В программе — короткие лайтнинги о жизни в мобильной разработке, много нетворкинга, вечеринка, музыка и коктейли.
А ещё вас ждёт PeerLab от команд Яндекс Такси, Про, Маркета, Еды и Доставки — камерная активность, где можно предложить свой кейс для обсуждения с топ-экспертами.
Регистрируйтесь уже сейчас. Мы рассмотрим вашу заявку и пришлём приглашение 16–17 июля.
Повеселимся на Yandex Summer Mobile Party! 🎉
Яндекс устраивает летнюю вечеринку для мобильных разработчиков. Встречаемся в Санкт-Петербурге 19 июля, чтобы познакомиться и обсудить последние новости!
В этот раз обойдёмся без хардовых докладов и долгих обсуждений работы. В программе — короткие лайтнинги о жизни в мобильной разработке, много нетворкинга, вечеринка, музыка и коктейли.
А ещё вас ждёт PeerLab от команд Яндекс Такси, Про, Маркета, Еды и Доставки — камерная активность, где можно предложить свой кейс для обсуждения с топ-экспертами.
Регистрируйтесь уже сейчас. Мы рассмотрим вашу заявку и пришлём приглашение 16–17 июля.
Повеселимся на Yandex Summer Mobile Party! 🎉
База честных отзывов о компаниях
Эту базу просили многие в комьюнити. Институт репутации должен кто-то создавать.
Врут не только кандидаты на собесах, но и компании. Я против лжи в любой форме и много раз ошибался, когда мне навешали хорошей лапши на финалке. После этого я подробно спрашиваю у всех работяг, кто там работал, прежде чем принять оффер.
Многие компании, мягко говоря, преувеличивают свои условия труда. Рассказывая на собесах, докладах, вечеринках много приукрашенной информации. Вместо честной работы над собой, внутри и своими процессами, они много инвестируют на образ снаружи.
А самая ценная и честная часто узнается на неофициальных встречах или любительских сходках. Так, например, я узнал о честных условиях только после одного из трудойстройств, где на условном кофе и коде много раз приходили разрабы этой компании и давали честные отзывы. Знал бы я их фидбэк раньше, то так бы не обжегся.
Поэтому хочу создать свою базу честных отзывов. В этом опросе мы в комьюнити хотим собрать базу честных отзывов о компаниях. Сколько твой опыт работы. Что понравилось, а что нет. Какие обещания сдерживают, а какие нет.
Пройдите его, пожалуйста. Опрос анонимный
Эту базу просили многие в комьюнити. Институт репутации должен кто-то создавать.
Врут не только кандидаты на собесах, но и компании. Я против лжи в любой форме и много раз ошибался, когда мне навешали хорошей лапши на финалке. После этого я подробно спрашиваю у всех работяг, кто там работал, прежде чем принять оффер.
Многие компании, мягко говоря, преувеличивают свои условия труда. Рассказывая на собесах, докладах, вечеринках много приукрашенной информации. Вместо честной работы над собой, внутри и своими процессами, они много инвестируют на образ снаружи.
А самая ценная и честная часто узнается на неофициальных встречах или любительских сходках. Так, например, я узнал о честных условиях только после одного из трудойстройств, где на условном кофе и коде много раз приходили разрабы этой компании и давали честные отзывы. Знал бы я их фидбэк раньше, то так бы не обжегся.
Поэтому хочу создать свою базу честных отзывов. В этом опросе мы в комьюнити хотим собрать базу честных отзывов о компаниях. Сколько твой опыт работы. Что понравилось, а что нет. Какие обещания сдерживают, а какие нет.
Пройдите его, пожалуйста. Опрос анонимный
Google Docs
Опрос для базы честных отзывов
Многие компании мягко преувеличивают свои условия труда. Рассказывая на собесах, докладах, вечеринках много приукрашенной информации. А самая ценная и честная часто узнается на неофициальных встречах или любительских сходках
В этом опросе мы в комьюнити…
В этом опросе мы в комьюнити…
Advanced Core Image
Пока лучший материал за неделю. Автор статьи погружает вглубь работы CImage и учит как делать прикольные фильтры для изображений.
В этой статье хорошо структурировано:
🟣 как работают цветовые фильтры
🟣 деформации
🟣 текстуры
Одним из моих рабочих проектов был видеоредактор. Сейчас он уже умер как проект, но его исходники ядра, которое управляет видео и аудио, я иногда изучаю и освежаю знания, чтобы глубже разобрать работу с низкоуровневой графикой. Это отличная статья для рефреша знаний
Ставь лайк, если устал от алгосов и проектирования, и хочешь чего-то с краской кнопок
Пока лучший материал за неделю. Автор статьи погружает вглубь работы CImage и учит как делать прикольные фильтры для изображений.
В этой статье хорошо структурировано:
Одним из моих рабочих проектов был видеоредактор. Сейчас он уже умер как проект, но его исходники ядра, которое управляет видео и аудио, я иногда изучаю и освежаю знания, чтобы глубже разобрать работу с низкоуровневой графикой. Это отличная статья для рефреша знаний
Ставь лайк, если устал от алгосов и проектирования, и хочешь чего-то с краской кнопок
Please open Telegram to view this post
VIEW IN TELEGRAM
Jacob’s Tech Tavern
Advanced Core Image
Use Metal to create custom Core Image kernels
Как переоценивают важность архитектурных паттернов UI
На одном собесе мне задали такой вопрос, ответ на который я так и не успел спросить что от меня ожидали, но я часто встречаю его в финтехах. Вопрос звучал как-то так:
Мой первый вопрос был "Что скрывается под словом архитектура?". Ведь странно было, если бы на сроки влиял такой вопрос как MVP или VIPER. За годы моего опыта в аутсорсах и запусков мвп в бигтехах, вопрос каким паттерном разделять UI слой никогда не стоял остро. Сроки срывали другие проблемы. Архитектура это все же гораздо более сложный вопрос чем разница VIPER vs MVC, SOLID и в чем отличия между фреймворками DI. О нем основательно задумываются на гораздо более зрелой стадии.
Но интервьюер все же сказал про MVP или VIPER. Честно, я не считаю, что это главная проблема в вопросах инвестиций проекта. Мой ответ был, что архитектура это чуть другое, а не выбор на какие слои я буду делить экран. Есть и другие слои, которые уходят в сторону нетворка, кэширования, пушей, стейт менеджмента, управление зависимостями и других модулей. В каком файле лежат мои кнопки — не самый сложный и острый вопрос.
Самым верным и дешевым решением, которое нужно для проверки гипотез, это сокращение сроков. А на сроки влияет релиз. Поэтому я бы сделал максимально простое приложение на MVC и со сторибордами. Или вообще бы ограничился webview. Потому что оно помогает нам обойти сложный процесс релизов и апрувов AppStore. Например, корни BDUI идут оттуда. А недавно Озон Банк рассказал почему сделали на вебвью. Такое решение точно бы помогло нам решить проблему раскатки быстрых гипотез и посмотреть как быстро мы получаем рост и адопшен наших фич.
Как в этом во всем нам помогают такие вопросы выбора MVP или MVC я, честно, не понимаю. Я много раз задумывался над этим вопросом и наблюдал разницу, как ребята из iOS на VIPER быстрее делали простые фичи и релизы, чем ребята из андроида на MVC, который более подходил к такому проекту. Повлияло ли кол-во абстракций на скорость? Отчасти может повлиять, VIPER я бы точно не рисковал тащить в МВП проект. Но является ли этот вопрос ключевым? Нет
Делитесь своими ответами на такой вопрос
На одном собесе мне задали такой вопрос, ответ на который я так и не успел спросить что от меня ожидали, но я часто встречаю его в финтехах. Вопрос звучал как-то так:
"Вы приходите на новый проект где будете один. Нужно в быстрые сроки сделать МВП. Где по итогам запуска будет принято решение: либо проект выстреливает и понадобится расширение команды с быстрым Т2М, либо проект не выстреливает и закрывается. Какую архитектуру вы выберете и почему"
Мой первый вопрос был "Что скрывается под словом архитектура?". Ведь странно было, если бы на сроки влиял такой вопрос как MVP или VIPER. За годы моего опыта в аутсорсах и запусков мвп в бигтехах, вопрос каким паттерном разделять UI слой никогда не стоял остро. Сроки срывали другие проблемы. Архитектура это все же гораздо более сложный вопрос чем разница VIPER vs MVC, SOLID и в чем отличия между фреймворками DI. О нем основательно задумываются на гораздо более зрелой стадии.
Но интервьюер все же сказал про MVP или VIPER. Честно, я не считаю, что это главная проблема в вопросах инвестиций проекта. Мой ответ был, что архитектура это чуть другое, а не выбор на какие слои я буду делить экран. Есть и другие слои, которые уходят в сторону нетворка, кэширования, пушей, стейт менеджмента, управление зависимостями и других модулей. В каком файле лежат мои кнопки — не самый сложный и острый вопрос.
Самым верным и дешевым решением, которое нужно для проверки гипотез, это сокращение сроков. А на сроки влияет релиз. Поэтому я бы сделал максимально простое приложение на MVC и со сторибордами. Или вообще бы ограничился webview. Потому что оно помогает нам обойти сложный процесс релизов и апрувов AppStore. Например, корни BDUI идут оттуда. А недавно Озон Банк рассказал почему сделали на вебвью. Такое решение точно бы помогло нам решить проблему раскатки быстрых гипотез и посмотреть как быстро мы получаем рост и адопшен наших фич.
Как в этом во всем нам помогают такие вопросы выбора MVP или MVC я, честно, не понимаю. Я много раз задумывался над этим вопросом и наблюдал разницу, как ребята из iOS на VIPER быстрее делали простые фичи и релизы, чем ребята из андроида на MVC, который более подходил к такому проекту. Повлияло ли кол-во абстракций на скорость? Отчасти может повлиять, VIPER я бы точно не рисковал тащить в МВП проект. Но является ли этот вопрос ключевым? Нет
Делитесь своими ответами на такой вопрос
Какое поведение ожидаем?
Anonymous Quiz
18%
Будет утечка памяти: вызовется только Setup, text
40%
Утечки памяти не будет: Setup, text, Deinit A, Deinit B
14%
Утечка памяти будет только в классе A: Setup, text, Deinit B
11%
Учетка памяти будет только в классе B: Setup, text, Deinit A
5%
Будет ошибка компляции
12%
Другой ответ