После выпуска с Серегой я вдохновился и решил сделать огромную подборку задач, курсов, книг и всего разного для помощи с System Design'ом.
В итоге вышло около 50 материлов, которые я решил опубликовать в базе знаний. Может в будущем частично буду ими делиться тут.
Но пока в планах допройти курс от литкода по алгоритмам и перейти к наиболее интересному курсу по систем дизайну. Там и прайс выше, но и контента говорят, что больше.
Что в неё вошло:
Подборка будет обновляться
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой первый авторский ролик залить в ютуб? (не мок-собесы и интервью)
Final Results
26%
Топ книг для iOS разраба
39%
iOS Роадмап 2025
26%
О System Design
17%
О problem solving
17%
Методики обучения
30%
SwiftUI и SwiftUI Concurrency
28%
AI в iOS
25%
Архитектуры
21%
Че нибудь низкоуровневое
3%
Другое
Пришел вопрос в лс. Решил, что хороший повод для поста, тк формируются некоторые мысли с прочтением разной литературы, общением с студентами и другими ребятами, кто ищут свой путь.
Попробую дать советы, как если бы дал себе в 19 лет.
1) нужен ли диплом? Сам по себе диплом не дает ценности для знаний, но обучение в университете (именно обучение, а не отсидка), дает базу для дальнейшего самообучения. Только сегодня прочитал и сохранил цитату:
Цели универа:
1) получение навыков обучения
2) формирование окружения
3) образование
Какую ценность дает диплом? Сейчас он уже дает отсрочку и баллы для получения визы, места для релокации. А также и потенциальную защиту на будущее, если вход в ит будет по диплому. Многие и так уже стараются нанимать только ребят с дипломом.
2) пропадут ли самоучки? Я не знаю, но скорее всего останутся те, кто правда заинтересован в ит.
3) что изучать на начальных курсах? Изучать базу и фундаментальные вещи. Знание фреймворков или платформ легче изучить зная основы. Почти все вокруг строится на одних концептах и зная тот же Computer Sience легче понять вечно изменяющийся мир. Это лучшая инвестиция на долгосрочное будущее, где меньше будешь переживать, что очередная революция что-то порешает или изменит индустрию.
4) как искать работу будучи студентом? Уже со вторых курсов можно находить работу. Пока твои одногруппники думают как бухнуть и повеселиться ты уже сможешь выделиться, если будешь чуть больше уделять время учебе. Из моей группы в итоге по профессии работаю только я. Никто никогда бы в это не поверил.
5) не в Яндексе нереально не расти, а везде. Вся суть моего канала — это сопротивление, развитие и движение вперед. Мы стареем, мир меняется, знания обесцениваются. Нужно находить то, что любишь, тогда легче находить силы постоянно развиваться
Попробую дать советы, как если бы дал себе в 19 лет.
1) нужен ли диплом? Сам по себе диплом не дает ценности для знаний, но обучение в университете (именно обучение, а не отсидка), дает базу для дальнейшего самообучения. Только сегодня прочитал и сохранил цитату:
Многие люди прекращают учиться, как только заканчивают школу, потому что тринадцать или даже двадцать лет принуждения к знаниям несут для них слишком много отрицательных эмоций.
Их вниманием слишком долго управляли учителя и учебники, поэтому окончание образования они воспринимают как освобождение.
Однако человек, пренебрегающий использованием своих мыслительных способностей, никогда не достигнет подлинной свободы. На его мыш-ление будет влиять мнение соседей, информация из газет и с экрана телевизора. Он будет жить во власти «экспертов». В идеале, окончание насаждаемого извне образования должно стать началом обучения, замотивированного изнутри
Цели универа:
1) получение навыков обучения
2) формирование окружения
3) образование
Какую ценность дает диплом? Сейчас он уже дает отсрочку и баллы для получения визы, места для релокации. А также и потенциальную защиту на будущее, если вход в ит будет по диплому. Многие и так уже стараются нанимать только ребят с дипломом.
2) пропадут ли самоучки? Я не знаю, но скорее всего останутся те, кто правда заинтересован в ит.
3) что изучать на начальных курсах? Изучать базу и фундаментальные вещи. Знание фреймворков или платформ легче изучить зная основы. Почти все вокруг строится на одних концептах и зная тот же Computer Sience легче понять вечно изменяющийся мир. Это лучшая инвестиция на долгосрочное будущее, где меньше будешь переживать, что очередная революция что-то порешает или изменит индустрию.
4) как искать работу будучи студентом? Уже со вторых курсов можно находить работу. Пока твои одногруппники думают как бухнуть и повеселиться ты уже сможешь выделиться, если будешь чуть больше уделять время учебе. Из моей группы в итоге по профессии работаю только я. Никто никогда бы в это не поверил.
5) не в Яндексе нереально не расти, а везде. Вся суть моего канала — это сопротивление, развитие и движение вперед. Мы стареем, мир меняется, знания обесцениваются. Нужно находить то, что любишь, тогда легче находить силы постоянно развиваться
This media is not supported in your browser
VIEW IN TELEGRAM
С джунами закончили. Настало время заменять мидлов
Стратегия выживания
Спорт научил меня главному: "неважно как ты ударишь, важно какой удар держишь"😏
В своем весе я никогда не выделялся высокой скоростью и силой. Был ниже своих соперников, медленней и проигрывал в габаритах. Отличала меня только одна черта — выносливость.
Мне нужно было только пережить первые удары или навязать высокий прессинг, чтобы выносливость соперника быстро закончилась. Такая стратегия танка и игра в "у кого больше хп и выносливости". Нужно дожить до лейта.
Когда наших ресурсов становится меньше, то статы и резисты сильно занижаются. Противник уже не такой сильный, чаще ошибается, начинает паниковать. Его плюсы становятся минусами. Его страхи и слабости всплывают и обнажаются.
Мне кажется, в игре с ИИ такие же правила. Всегда нужно оставаться хладнокровным и не допускать паники, искать варианты, когда он начнет ошибаться. Пользоваться этим.
В крайнем случае эту бездушную машину можно тупо выключить из розетки. Или вернуться в прошлое. Камбэкнуть.
Спорт научил меня главному: "неважно как ты ударишь, важно какой удар держишь"
В своем весе я никогда не выделялся высокой скоростью и силой. Был ниже своих соперников, медленней и проигрывал в габаритах. Отличала меня только одна черта — выносливость.
Мне нужно было только пережить первые удары или навязать высокий прессинг, чтобы выносливость соперника быстро закончилась. Такая стратегия танка и игра в "у кого больше хп и выносливости". Нужно дожить до лейта.
Когда наших ресурсов становится меньше, то статы и резисты сильно занижаются. Противник уже не такой сильный, чаще ошибается, начинает паниковать. Его плюсы становятся минусами. Его страхи и слабости всплывают и обнажаются.
Мне кажется, в игре с ИИ такие же правила. Всегда нужно оставаться хладнокровным и не допускать паники, искать варианты, когда он начнет ошибаться. Пользоваться этим.
В крайнем случае эту бездушную машину можно тупо выключить из розетки. Или вернуться в прошлое. Камбэкнуть.
Please open Telegram to view this post
VIEW IN TELEGRAM
1 20
Непопулярные инструменты в управлении памятью: withExtedndedLifetime
Вы ведь помните про цикл статей про управление памятью, которые я пишу уже месяц? Я написал 50 страниц, и это только 1/3 из запланированного. Кажется, будто по этому блоку можно написать отдельную мини-книгу.
В одной из глав я хочу пройтись по непопулярным и неизвестным инструментам языка. Например, withExtedndedLifetime.
withExtendedLifetime нужен для того, чтобы явно продлить время жизни объекта в ситуациях, где Swift может освободить объект раньше, чем вы ожидаете:
🟣 Работой с временными объектами.
🟣 Асинхронными операциями.
🟣 Небезопасным кодом (UnsafePointer, UnsafeBufferPointer и др.).
В скринах подробные примеры когда нам этот метод поможет
Вы ведь помните про цикл статей про управление памятью, которые я пишу уже месяц? Я написал 50 страниц, и это только 1/3 из запланированного. Кажется, будто по этому блоку можно написать отдельную мини-книгу.
В одной из глав я хочу пройтись по непопулярным и неизвестным инструментам языка. Например, withExtedndedLifetime.
withExtendedLifetime нужен для того, чтобы явно продлить время жизни объекта в ситуациях, где Swift может освободить объект раньше, чем вы ожидаете:
В скринах подробные примеры когда нам этот метод поможет
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня небольшой праздник.
Год, как я решил продолжить себя мотивировать и делать контент. В прошлом году я уже хотел бросить медийку и этот канал, сфокусироваться на другом, уйти в затворничество. Но решил попробовать монетизироваться и стимулировать свой интерес. В итоге, это стало одним из лучших решений, что дало всему новую жизнь и продолжает генерировать идеи на годы вперед. Материальная мотивация все же работает
Ваша поддержка замотивировала меня. С ней мы:
Этот год мы находили себя. Боялись, что удалят и запретят. Заменят нейросети, кроссплатформы и bdui.
Впереди обновление контента и новые иттерации, новые категории: наконец придем в SwiftUI и Swift Concurrency. Будем больше внедрять AI. Станем чуть медийнее, смелее, а формата контента будет еще больше. Мы расширимся и углубимся.
К этой годовщине я опубликовал отрывок из 50 страниц книги, где все об управлении памятью. Я не видел нигде, где вся информация о ней была собрана в одном месте и не разделена на фрагменты.
Это первый драфт и впереди еще много работы. Написание книги процесс намного сложнее, чем я думал. Требует совсем других навыков. Но так лишь интереснее. Теперь буду каждый месяц 14 числа делиться прогрессом по книге.
Всем спасибо за вдохновение и поддержку. Вместе мы формулируем свой стиль и свой вижен. Вместе мы заходим туда и обсуждаем то, куда другие не идут.
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаю делиться выдержкой из платного курса по алгоритмам.
Fast and Slow Pointers — это техника работы с двумя указателями, которая:
Эта техника позволяет эффективно решать задачи за O(n) времени и O(1) памяти.
Разберем на примере задач в скриншотах.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Я не случайно выбрал 2025 аркой самураев и начал с книги потока. Ведь эти две темы имеют очень много точек пересечений. Да и вообще вся эстетика японских самураев очень часто находит реинкарнации в массовой культуре: от корней киберпанка до проработки главного супергероя комиксов — бэтмена.
Но это не только эстетичная обертка, но и крутой сборник упражнений для развития. Давайте общими мазками разберем сравнения и как я вижу эти концепции, которые помогут как в жизни, так и в учебе:
Основные характеристики Потока:
Пример: художник настолько увлечён рисованием, что забывает про всё вокруг.
Основные принципы:
Пример: воин, упражняясь в фехтовании, полностью сосредоточен на движении, как на медитации.
Выбрав любой из путей можно прокачивать навыки:
- Глубокой концентрации
- Удовольствие от процесса
- Улучшение памяти и понимания
- Развитие навыков решения проблем
- Экономия временем
Please open Telegram to view this post
VIEW IN TELEGRAM
Карьерный фреймворк от Dropbox
Еще одна матрица компетенций, которая поможет определить разные ожидания от инженеров.
Для многих разработчиков это актуально. Кто-то строит свои матрицы, кто-то хочет узнать лучше рынок. В чатах это регулярный вопрос.
Интересные особенности фреймворка:
🔘 описывает не только технические ожидания, но и лидерские и командные
🔘 фреймворк помогает также оценивать и горизонтальный рост
🔘 универсальность помогает развиваться абсолютно любой роли (дизайнер, менеджер, разраб)
🔘 фреймворк сфокусирован на результатах и навыках, а не на стаже
Еще одна матрица компетенций, которая поможет определить разные ожидания от инженеров.
Для многих разработчиков это актуально. Кто-то строит свои матрицы, кто-то хочет узнать лучше рынок. В чатах это регулярный вопрос.
Интересные особенности фреймворка:
Please open Telegram to view this post
VIEW IN TELEGRAM
Непопулярные инструменты в управлении памятью: Unmanaged
Продолжаю рубрику непопулярных решений в управлении памятью. В прошлом посте мы изучали метод withExtedndedLifetime. Сегодня поиграемся с кое-чем интересным. С MRC в Swift.
Какие задачи решает?
🟣 Старые C/Objective-C API: Например, работа с CoreFoundation, где ARC не применяется.
🟣 Низкоуровневый код: Если нужно добиться максимальной производительности или работы с памятью.
🟣 Тонкая настройка времени жизни объектов: Например, если объект создается в одном потоке, а освобождается в другом.
Полезные статьи:
- How to use Swift's Unmanaged
- Unmanaged by nshipster
Продолжаю рубрику непопулярных решений в управлении памятью. В прошлом посте мы изучали метод withExtedndedLifetime. Сегодня поиграемся с кое-чем интересным. С MRC в Swift.
Unmanaged — это специальный тип в Swift, который позволяет работать с объектами, не управляемыми ARC (Automatic Reference Counting). Его задача — вручную управлять временем жизни объектов (увеличивать или уменьшать их счетчик ссылок), особенно при взаимодействии с кодом на C или Objective-C, где автоматическое управление памятью отсутствует.
Какие задачи решает?
Полезные статьи:
- How to use Swift's Unmanaged
- Unmanaged by nshipster
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой формат контента вы чаще всего используете для образования?
Final Results
36%
Книги
56%
Видео
59%
Статьи
15%
Курсы
26%
Посты в телеграме
38%
Документация
27%
Код
8%
Контент индусов
20%
Сигналы из космоса
4%
Другое
Я короче психанул и сделал огромную подборку в одном месте. Мне так и легче для книги материал сшивать в одну структуру, и рефрешить знания перед любым форматом собеса.
В текущей подборке:
P.S. С комментариями от Глеба Лукьянеца
Это большая подборка вопросов без ответов. Можно использовать ее для подготовки к проведению и прохождению собеседований
Где вы такое видели? Я нигде. Впереди еще больше.
Please open Telegram to view this post
VIEW IN TELEGRAM
Инженер ли ты? Или какой главный навык оценивают на собесе
Даже правильный ответ на собесе не гарантирует успех.
На днях я проводил очередной собес и уже немного устал писать очередной отрицательный фидбэк кандидату. Ребята все приятные, неконфликтные. Часто даже выдают правильные ответы, но с совершенно пустыми глазами или без понимания своих же сказанных слов. Даже немного грустно. Это подвело сформулировать меня какой ключевой навык учат оценивать интервьюеров.
Правило, отказывать или не давать оценку выше начального за отсутствие осознанности, в разной форме написано почти в каждой методичке. Не важно рабочий ли код или правильные ответы на теорию. Интервьюер оценивает наличие навыков, а не их успешную демонстрацию. Правильные же ответы можно найти, а вот какими навыками и базой ты обладаешь для их поиска — гораздо важнее.
Например, гораздо лучше, если кандидат знает какую-то базу и с помощью этой базы может дать пусть и ошибочный ответ, но осознанный. А не выдать правильный и зазубренный, но абсолютно не понимать о чем речь. Ведь так мне сказали в интернетах, менторы или в документации. Я запомнил информацию, но совершенно не понимаю как ей владеть.
Интервьюеры оценивают инженерное мышление. Если кандидат имеет соображалку, то он может скомбинировать из кусков осознанной информации — уникальную. А если это просто набор пустых фрагментов, то непонятно куда это класть и всовывать.
Инженер может проанализировать A, B, C, D решения. Оценить их самостоятельно. Вычленить, разбить на атомы и собрать заново. Ему интересен процесс. В этом его разница от нейросети. Он может понимать контекс и делать ВЫБОР. А также нести ответственность за свое решение.
Ключевые черты инженера:
🟣 Любопытство и желание постоянно учиться. Способность анализировать проблемы и находить эффективные решения. Готовность адаптироваться к изменениям и новым условиям.
🟣 Стремление к созданию новых решений, которые упрощают сложные задачи или улучшают существующие системы. Любой код можно улучшить и сделать вторую версию, привести к редизайну.
🟣 Умение задавать вопросы, проверять предположения и рассматривать проблему с разных точек зрения.
🟣 Теоретические знания должны всегда быть связаны с реальными задачами и их решениями. Если большинство знаний кандидата основано на чужом опыте, то это плохие навыки. Подробнее можно изучить в таксономии Блума
🟣 Постоянное совершенствование. Развитие навыков, поиск новых инструментов и методов для повышения своей эффективности.
Именно это — ядро той самой мифической "инженерности". Без которого все наши навыки и знания сильно упадут в цене.
Даже правильный ответ на собесе не гарантирует успех.
На днях я проводил очередной собес и уже немного устал писать очередной отрицательный фидбэк кандидату. Ребята все приятные, неконфликтные. Часто даже выдают правильные ответы, но с совершенно пустыми глазами или без понимания своих же сказанных слов. Даже немного грустно. Это подвело сформулировать меня какой ключевой навык учат оценивать интервьюеров.
Правило, отказывать или не давать оценку выше начального за отсутствие осознанности, в разной форме написано почти в каждой методичке. Не важно рабочий ли код или правильные ответы на теорию. Интервьюер оценивает наличие навыков, а не их успешную демонстрацию. Правильные же ответы можно найти, а вот какими навыками и базой ты обладаешь для их поиска — гораздо важнее.
Например, гораздо лучше, если кандидат знает какую-то базу и с помощью этой базы может дать пусть и ошибочный ответ, но осознанный. А не выдать правильный и зазубренный, но абсолютно не понимать о чем речь. Ведь так мне сказали в интернетах, менторы или в документации. Я запомнил информацию, но совершенно не понимаю как ей владеть.
Интервьюеры оценивают инженерное мышление. Если кандидат имеет соображалку, то он может скомбинировать из кусков осознанной информации — уникальную. А если это просто набор пустых фрагментов, то непонятно куда это класть и всовывать.
Инженер может проанализировать A, B, C, D решения. Оценить их самостоятельно. Вычленить, разбить на атомы и собрать заново. Ему интересен процесс. В этом его разница от нейросети. Он может понимать контекс и делать ВЫБОР. А также нести ответственность за свое решение.
Ключевые черты инженера:
Именно это — ядро той самой мифической "инженерности". Без которого все наши навыки и знания сильно упадут в цене.
Please open Telegram to view this post
VIEW IN TELEGRAM
Набросали с @itsoveragain прототипы новой аватарки через нейросеть и получилось такое…. Промт был «если бы Apple дизайнили самурая». Понравилась фраза в одном из каналов:
Будем рисовать вручную
скоро контент, созданный
человеком, станет таким же
редким явлением, как сейчас
собранный вручную автомобиль.
Его будут ценить за уникальность,
за страсть создателя, будут
демонстрировать отдельно и
продавать дороже.
Будем рисовать вручную