Рекомендации книг для программистов
Ого, смотрите, кто читает наш блог. Только недавно писал, что нуждаюсь в подборках по книгам для разрабов и вот один из любимых сайтов решил поделиться своей подборкой. Когда канал предугадывает тренды.
В ней много уже знакомой литературы, но есть и новые книги. Большинство не читал, но уже надо. Теперь осталось только найти время.
Кстати, может реанимировать книжный клуб? А еще по активностям, эту неделю мы в чате уже начали решать задачи по рекомендациям алгоритмов от Яндекса. С комментами и необычными разборами.
Подборку обязательных задач уже создал.
Ого, смотрите, кто читает наш блог. Только недавно писал, что нуждаюсь в подборках по книгам для разрабов и вот один из любимых сайтов решил поделиться своей подборкой. Когда канал предугадывает тренды.
В ней много уже знакомой литературы, но есть и новые книги. Большинство не читал, но уже надо. Теперь осталось только найти время.
Кстати, может реанимировать книжный клуб? А еще по активностям, эту неделю мы в чате уже начали решать задачи по рекомендациям алгоритмов от Яндекса. С комментами и необычными разборами.
Подборку обязательных задач уже создал.
Swiftrocks
Software engineering book recommendations
Bruno's personal list of recommended books about software engineering and iOS development.
Старт тренировок алгоритмов 5.0
У яндекса вышел новый сезон тренировок по алгоритмам. Мы, как почти единственный канал в иос (а может даже мобильный), кто активно изучает алгоритмы, решили сразу поучавствовать в нем.
Теперь ежедневно будем решать не просто абстрактные задачи с литкода, а из тренировок яндекса и коллективно их разбирать, писать констпекты и делиться знаниями. Отличный и прикольный эвент, особенно с качеством их лекций и площадок.
Если ты думал как войти в изучение алгосов, то это отличный шанс. Ведь начинается все почти с основ, а еще и обучение не в одиночку, а коллективно с единомышленниками.
Вступай
У яндекса вышел новый сезон тренировок по алгоритмам. Мы, как почти единственный канал в иос (а может даже мобильный), кто активно изучает алгоритмы, решили сразу поучавствовать в нем.
Теперь ежедневно будем решать не просто абстрактные задачи с литкода, а из тренировок яндекса и коллективно их разбирать, писать констпекты и делиться знаниями. Отличный и прикольный эвент, особенно с качеством их лекций и площадок.
Если ты думал как войти в изучение алгосов, то это отличный шанс. Ведь начинается все почти с основ, а еще и обучение не в одиночку, а коллективно с единомышленниками.
Вступай
YouTube
Тренировки по алгоритмам 5.0 Открытие Тренировок Лекция 1: Сложность, тестирование, особые случаи
Видите ошибки? А они есть! Стресса от этого не будет у тех, кто умеет писать стресс-тестирование. А сложностей — у тех, кто умеет использовать оценку сложности алгоритмов на практике. Всему этому научимся на этой лекции.
Подробнее о тренировках по ссылке:…
Подробнее о тренировках по ссылке:…
Дрейфусовская модель приобретения навыков
Как развиваться? Какие скиллы важны в бигтехах? Как сформулировать грейды? Начальник попросил сделать матрицу компетенций, помогите.
Я часто встречаю ребят, которые пишут такие вопросы. Они ищут рекомендации, которые помогут сформулировать честные грейды. Сам такое делал и в чате регулярно появляется такой запрос.
На первом созвоне коммьюнити я также немного попытался разобрать этот вопрос. В своем докладе хотел разобрать тему оценки спецов. В этом мне помог доклад Саши Сычева, head of mobile Тинькофф Страхования. Здесь можете почитать расшифровку. Почти все компании, сознательно или без, приходят к такому уравнению.
Подборборка интересных ресурсов по теме:
- Как построить матрицу компетенций с нуля
- Матрица компетенций в авито для инженеров
- iOS skills matrix
💎 Ну и я выложил обещанные материалы и инструменты для построения матрицы в ноушен, вместе с моим докладом и презентацией.
Как развиваться? Какие скиллы важны в бигтехах? Как сформулировать грейды? Начальник попросил сделать матрицу компетенций, помогите.
Я часто встречаю ребят, которые пишут такие вопросы. Они ищут рекомендации, которые помогут сформулировать честные грейды. Сам такое делал и в чате регулярно появляется такой запрос.
На первом созвоне коммьюнити я также немного попытался разобрать этот вопрос. В своем докладе хотел разобрать тему оценки спецов. В этом мне помог доклад Саши Сычева, head of mobile Тинькофф Страхования. Здесь можете почитать расшифровку. Почти все компании, сознательно или без, приходят к такому уравнению.
Подборборка интересных ресурсов по теме:
- Как построить матрицу компетенций с нуля
- Матрица компетенций в авито для инженеров
- iOS skills matrix
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Дрейфусовская модель приобретения навыков
Итак, этот пост будет немного «поспешным», что неудивительно для субботнего утра ( оригинальная статья была опубликована 18-ого августа 2007-ого года. прим.пер. ), но я хочу сослаться на этот топик в...
System Design: Сбор требований
Напомню для чего нужен этап проектирования. Впервую очередь этот навык во многих компаниях определяет сеньорность. Реальный навык, который помогает определить ширину и глубину знаний любого инженера. Ты можешь не знать нюансы библиотек, но зато отлично проектировать сложные системы, что лучше ценится.
В реальных задачах писать код чаще это 30-40% рабочего времени. Все остальное большая роскошь. В крупных бигтехах создаваемые инструменты будут надолго. Ими будут пользоваться множество других разработчиков. Поэтому уделять этому этапу необходимо много времени.
Почему?
🔘 Хороший дизайн вашего апи будет удобен клиентам
🔘 Чистый код и логичные конструкции избавят от проклятий других разработчиков
🔘 Умение замечать функциональные и нефункциональные требования перед дорогой реализацией.
Сам по себе этот экран может показаться простым на первый взгляд, но имеет некоторые не столь очевидные функции, необходимые для работы.
Основные этапы проектирования:
🔘 Сбор требований
🔘 Оценка нагрузки
🔘 Высокоуровневый дизайн
🔘 Компонентный дизайн
🔘 Повышение отзывчивости и отказоустойчивости
🔘 Мониторинг и алертинг
🔘 Безопасность
В этой статье мы расмотрим этап проектирования — это сбор требований. Есть два красных флага, когда кандидат не справляется с задачей на этом этапе:
1️⃣ Сдается и отпускает руки
2️⃣ Сразу преступает молча к реализации
При сдаче кандидата все понятно. Но почему красный флаг, если кандидат сразу начал реализацию? Есть высокий риск, что кандидат не учел множество условий, которые сильно повлияют на конечный результат и не приведут к желаемой функциональности. Огромной ошибкой будет сразу верстать экран без проработки.
Вы получаете дизайн экранов от дизайнеров или менеджеров и сразу должны задать вопрос:
*️⃣ Все ли состояния экрана проработанные
*️⃣ Что будет при ошибках?
*️⃣ Что будет, если данных не будет хватать?
*️⃣ Что будет, если нет интернета?
*️⃣ Будет ли поддержка планшетов, макОС?
*️⃣ Откуда берутся данные?
*️⃣ Кэширование или локальное хранилище?
И это только то, что приходит в голову сразу. А есть еще много неизвестных, которые нужно уточнить или собрать.
📌 С чего же начать? Правильней всего будет выдержать баланс и не закопаться в деталях. Уметь быстро выявить важные требования и отсеять второстепенные. На этом этапе нужно забыть об архитектурах или выборе SwiftUI или UIKit
Лучшее решение на первом этапе - это лучше понять проблему.
Лучшее понимание проблемы даст нам лучшую отправную точку, потому что это поможет нам выявить неверные предположения и недостающие функции. Нужно начать с рисования схемы, которая поможет выбрать архитектуру.
Об этом в следующих постах.
Полная и расширенная статья с ресурсами уже доступна в ноушене
Напомню для чего нужен этап проектирования. Впервую очередь этот навык во многих компаниях определяет сеньорность. Реальный навык, который помогает определить ширину и глубину знаний любого инженера. Ты можешь не знать нюансы библиотек, но зато отлично проектировать сложные системы, что лучше ценится.
В реальных задачах писать код чаще это 30-40% рабочего времени. Все остальное большая роскошь. В крупных бигтехах создаваемые инструменты будут надолго. Ими будут пользоваться множество других разработчиков. Поэтому уделять этому этапу необходимо много времени.
Почему?
Сам по себе этот экран может показаться простым на первый взгляд, но имеет некоторые не столь очевидные функции, необходимые для работы.
Основные этапы проектирования:
В этой статье мы расмотрим этап проектирования — это сбор требований. Есть два красных флага, когда кандидат не справляется с задачей на этом этапе:
При сдаче кандидата все понятно. Но почему красный флаг, если кандидат сразу начал реализацию? Есть высокий риск, что кандидат не учел множество условий, которые сильно повлияют на конечный результат и не приведут к желаемой функциональности. Огромной ошибкой будет сразу верстать экран без проработки.
***Уточнение:** На интервью не стоит тратить много времени на сбор требований. Но на реальном проекте это один из важнейших этапов.*
Вы получаете дизайн экранов от дизайнеров или менеджеров и сразу должны задать вопрос:
И это только то, что приходит в голову сразу. А есть еще много неизвестных, которые нужно уточнить или собрать.
Лучшее решение на первом этапе - это лучше понять проблему.
Лучшее понимание проблемы даст нам лучшую отправную точку, потому что это поможет нам выявить неверные предположения и недостающие функции. Нужно начать с рисования схемы, которая поможет выбрать архитектуру.
Об этом в следующих постах.
Полная и расширенная статья с ресурсами уже доступна в ноушене
Please open Telegram to view this post
VIEW IN TELEGRAM
Неписанные правила: как вести переговоры с Meta*
Для меня вопрос переговоров по зп всегда был черным ящиком. Я долго не знал как вести их и вообще необходимость, пока не понял, что лучше выторговать себе хорошие условия на старте, чем ждать год или два повышения.
Мало вероятно, что многие мои читатели пойдут устраиваться в мету, но советы можно масштабировать и на многие другие компании.
Прежде чем вести переговоры:
1️⃣ Не говорите, что вы будете торговаться или собеседуетесь. Если вы сообщите заранее, то торги начнутся преждевременно
2️⃣ Убедитесь, что у вас есть несколько других офферов перед торгами. И не просто офферы от обычных компаний, а по статусу не меньше, с кем намечается торг
3️⃣ Если вы метите торг в крупную компанию, то подготовьте офферы заранее.
4️⃣ Будьте френдли. Налаживайте отношения с рекрутерами. Задача рекрутеров — закрыть ставку. Но это не значит что нужно на них давить и примерять роль избалованного хамла.
*Запрещенная в РФ
Для меня вопрос переговоров по зп всегда был черным ящиком. Я долго не знал как вести их и вообще необходимость, пока не понял, что лучше выторговать себе хорошие условия на старте, чем ждать год или два повышения.
Мало вероятно, что многие мои читатели пойдут устраиваться в мету, но советы можно масштабировать и на многие другие компании.
Прежде чем вести переговоры:
*Запрещенная в РФ
Please open Telegram to view this post
VIEW IN TELEGRAM
interviewing.io
The unwritten rules (till now) of negotiating with Meta
Meta runs an aggressive process. If you don't know the rules, you will fail.
Решил все же разделять опросники на доп. темы, излюбленные на собесах. Вроде это относится и к блоку Swift, но так будет легче навигироваться.
Вместе с чатом начали собирать кучу вопросов, задач и статей по диспетчеризации. Все будет с комментами и объемно. Уже есть около 10 задач и 10 статей. Закинул туда и свои старые посты с трекингом перфоманса.
Доступ можно получить все там же
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы думаете, что в iOS только три типа коллекций (Array, Set, Dictionary), то вы ошибаетесь.
Вчера в чате мы разобрали еще около 20 видов. Из которых многие очень экзотичные. А какие-то популярные:
Уже сформировали вопросы на мидла для ноушена по Swift.
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - apple/swift-collections: Commonly used data structures for Swift
Commonly used data structures for Swift. Contribute to apple/swift-collections development by creating an account on GitHub.
Продолжаю цикл постов про техники, которые упрощают написание алгоритмов.
Техника скользящего окна по реализации и сложности похожа на технику двух указателей, о которой я писал ранее.
Она используется для решения некоторых типов проблем:
Условия для понимания, что проблема может быть решена с помощью этой техники:
Когда использовать метод скользящего окна?
Please open Telegram to view this post
VIEW IN TELEGRAM
Сейчас я работаю над проектом финтеха и мне эта доменная область очень нравится.
Говорят, финтех это скучно. Я сам так считал, но сейчас не соглашусь. Здесь повышенное внимание к задачам, к каждой детали трепетно относятся. Лучше чувствуешь продуктовый вес задач, тк вы генерируете бабки.
Хочу собрать подборку ключевых навыков для таких проектов. Например, работу с числами, строками, архитектура.
Те, кто с опытом, поделитесь еще чем нибудь что стоит учитывать.
Говорят, финтех это скучно. Я сам так считал, но сейчас не соглашусь. Здесь повышенное внимание к задачам, к каждой детали трепетно относятся. Лучше чувствуешь продуктовый вес задач, тк вы генерируете бабки.
Хочу собрать подборку ключевых навыков для таких проектов. Например, работу с числами, строками, архитектура.
Те, кто с опытом, поделитесь еще чем нибудь что стоит учитывать.
Ролики WWDC очень информативные. В них тонны ценой инфы. Но далеко не у всех есть время их смотреть, а еще важно обсудить и понять. Часто бывает, что одного просмотра мало и непонятно.
Мы в комьюнити решили собрать подборку обязательных видосов (включая удаленные). Список будет пополняться, а также в будущем появятся конспекты.
Получить доступ можно тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
Одна из самых запутанных тем для новичков в теме property wrappers.
В SwiftUI мы не управляем вьюхами напрямую, а вместо этого изменяем состояние или источники истины, которые влияют на результат.
SwiftUI дает нам несколько способов хранения состояний, но важно понимать их отличия:
Еще больше отличий написал в ноушене. А также добавил статьи про жизненный цикл SwiftUI.
Также там внес поправки с учетом iOS 17
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Новый инструмент в AppMetrica: Предикты lifetime value и оттока
С помощью Предиктов можно находить наиболее эффективные рекламные каналы и работать с оттоком пользователей. Причем строится предиктивная модель на основе machine learning с использованием данных десятков тысяч приложений, поэтому наличие или отсутствие монетизации не влияет на результат.
Фича определяет пользователей, которые скорее всего перестанут пользоваться приложением, уже с момента установки. Это дает время для того, чтобы обдумать варианты удержания аудитории.
Потестить можно бесплатно
С помощью Предиктов можно находить наиболее эффективные рекламные каналы и работать с оттоком пользователей. Причем строится предиктивная модель на основе machine learning с использованием данных десятков тысяч приложений, поэтому наличие или отсутствие монетизации не влияет на результат.
Фича определяет пользователей, которые скорее всего перестанут пользоваться приложением, уже с момента установки. Это дает время для того, чтобы обдумать варианты удержания аудитории.
Потестить можно бесплатно
Делаем проект вместе на SwiftUI
Есть главное правило любого развития. Будь это бизнес, страны или обычная жизнь — если хочешь быстрого роста, то развивайся в группе. Так ты сохраняешь темп и дружескую конкуренцию.
Давно доказано, что изоляция или самообучение далеко не всегда помогают развиваться быстро, а где-то может направить не туда и сбить с пути. Собственно, с такой целью работают санкции на разные страны или отмены корпораций.
🪴 Поэтому цель моего комьюнити не просто собрать базу знаний, а сформировать ресурс из людей, который помогает развитию и улучшает навыки для достижения целей. Экономических, социальных и профессиональных. Где важно быть, а не казаться.
📕 Если хочешь хорошо играть в теннис, то тебе нужна хорошая команда и опозиция. Тебе быстро надоест играть в игру с пятилетним ребенком. Я не хочу вести очередной канал, который делится чужими статьями. Я хочу создать что-то большее. В нашем сообществе уже больше 200 человек и чат является главным генератором идей. Каждый день там сотни полезных сообщений и обуждений. И уж лучше быть в первых рядах, чем на задней парте.
Этот проект одна из песочниц. Где снова я придумал нам полезное занятие на выходные в легкой и игровой форме.
Внутри комьюнити мы решили, что лучший вариант изучать новую технологию — это делать пет-проект вместе. Нет ни дня, когда бы в чат не упала инфа, которая чему-то меня не научила.
Голосованием выбрали онлайн-кинотеатр, нарезали задачи, почти нарисовали дизайн и будем экспериментировать. Цель масштабная.
В рамках этого проекта мы попробуем сделать все на SUI:
1️⃣ VIPER, TCA, MVI
2️⃣ Напишем свои архитектурные паттерны
3️⃣ Сделаем метрики для перфоманса
4️⃣ Слои для нетворка и кжширования
5️⃣ Сложные анимации, метал и шейдеры
6️⃣ Подготовка инфраструктуры
7️⃣ Тесты
8️⃣ DI
Любой желающий может взять задачу из бэклога, скачать проект и начать контрибьютить туда. Но если пройдет ревью.
Так этот опыт похож на реальную практику, мы делимся знания, экспериментируем и даем комменты по коду.
Вступить к нам ты можешь тут
Есть главное правило любого развития. Будь это бизнес, страны или обычная жизнь — если хочешь быстрого роста, то развивайся в группе. Так ты сохраняешь темп и дружескую конкуренцию.
Давно доказано, что изоляция или самообучение далеко не всегда помогают развиваться быстро, а где-то может направить не туда и сбить с пути. Собственно, с такой целью работают санкции на разные страны или отмены корпораций.
Этот проект одна из песочниц. Где снова я придумал нам полезное занятие на выходные в легкой и игровой форме.
Внутри комьюнити мы решили, что лучший вариант изучать новую технологию — это делать пет-проект вместе. Нет ни дня, когда бы в чат не упала инфа, которая чему-то меня не научила.
Голосованием выбрали онлайн-кинотеатр, нарезали задачи, почти нарисовали дизайн и будем экспериментировать. Цель масштабная.
В рамках этого проекта мы попробуем сделать все на SUI:
Любой желающий может взять задачу из бэклога, скачать проект и начать контрибьютить туда. Но если пройдет ревью.
Так этот опыт похож на реальную практику, мы делимся знания, экспериментируем и даем комменты по коду.
Вступить к нам ты можешь тут
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
С праздником милых дам 🌷
Пусть моя аудитория на 90% мужская, но этот весенний праздник праздную как свой🤣
Пусть у вас будет быстрый билд. Всегда последняя модель девайса. Четкий тимейт в семье.
Пусть моя аудитория на 90% мужская, но этот весенний праздник праздную как свой
Пусть у вас будет быстрый билд. Всегда последняя модель девайса. Четкий тимейт в семье.
Please open Telegram to view this post
VIEW IN TELEGRAM