По своему прогрессу вижу, как подход вдумчивого решения алгоритмов, гораздо более эффективный слепого решения задач в литкоде.
Так, прежде чем взяться за решение задачи, я сначала хочу определить ее паттерн. Какую технику лучше применить?
Их не очень много, но достаточно, чтобы потратить время. Одна из таких техник — это prefix sum.
Когда нужно работать с суммами элементов подмассивов.
Основная идея — создать массив prefix, где prefix[i] равно сумме всех элементов до i индекса включительно.
Статьи для изучения
Задачи для закрепления:
Please open Telegram to view this post
VIEW IN TELEGRAM
Что сложнее бэкэнд или фронт?
Я не делю людей по платформам, языкам программирования или количество синтаксиса в коде.
Все задачи сложные и требуют своих скиллсетов.
Бэкенд требует аналитического мышления и чаще работает с данными. Где нагрузка может положить сервак.
Фронтенд требует уметь видеть результат на многих устройствах, окружениях. Сверстать кнопку без потери качества на разных ОС, браузерах. Выжить среди кол-ва новых технологий.
Здесь нет единой метрики сложности. У всех задачи просто разные.
Хороший тред про frontend и backend
Я не делю людей по платформам, языкам программирования или количество синтаксиса в коде.
Все задачи сложные и требуют своих скиллсетов.
Бэкенд требует аналитического мышления и чаще работает с данными. Где нагрузка может положить сервак.
Фронтенд требует уметь видеть результат на многих устройствах, окружениях. Сверстать кнопку без потери качества на разных ОС, браузерах. Выжить среди кол-ва новых технологий.
Здесь нет единой метрики сложности. У всех задачи просто разные.
Хороший тред про frontend и backend
Reddit
ballisticbasil's comment on "Are iOS developers considered front end or back end developers?"
Explore this conversation and more from the iOSProgramming community
Сделал сборник вопросов для самопроверки.
В нем затронул:
Please open Telegram to view this post
VIEW IN TELEGRAM
Premium Book Club
Раньше я очень много читал. Книги, по сути, можно сказать, были моим главным источником образования. В 2018 году я прочитал около 100 книг. Тогда я назвал этот период "книжный запой".
Сейчас я грущу, что не могу заставить себя читать много. Либо занят работой, либо чем-то еще.
Книга — это лучший инструмент по сохранению нашей дофаминовой стабильности. Поэтому я хочу вернуть эту привычку и вытеснить все бесполезные просмотры рилсов и видосов полезной активностью.
Книга — это оружие, униформа и еда. Они дают нам связи как нейронные, так и социальные.
Я запускаю вторую версию книжного клуба. В нем мы будем по-новому внедрять эту привычку в жизнь и разбирать только самую важную и полезную литературу.
Первой книгой будет "Принципы". Очень популярная книга, которая является базой для ролевой моделью лидеров и великих людей. Недавно узнал, что это переосмысление другой великой книги "Тысячеликий герой", которая интегрирована в жизни.
Вступайте. Проведем эту жизнь с пользой. Все бесплатно и без подписок)
Раньше я очень много читал. Книги, по сути, можно сказать, были моим главным источником образования. В 2018 году я прочитал около 100 книг. Тогда я назвал этот период "книжный запой".
Сейчас я грущу, что не могу заставить себя читать много. Либо занят работой, либо чем-то еще.
Книга — это лучший инструмент по сохранению нашей дофаминовой стабильности. Поэтому я хочу вернуть эту привычку и вытеснить все бесполезные просмотры рилсов и видосов полезной активностью.
Книга — это оружие, униформа и еда. Они дают нам связи как нейронные, так и социальные.
Я запускаю вторую версию книжного клуба. В нем мы будем по-новому внедрять эту привычку в жизнь и разбирать только самую важную и полезную литературу.
Первой книгой будет "Принципы". Очень популярная книга, которая является базой для ролевой моделью лидеров и великих людей. Недавно узнал, что это переосмысление другой великой книги "Тысячеликий герой", которая интегрирована в жизни.
Вступайте. Проведем эту жизнь с пользой. Все бесплатно и без подписок)
Я понял, что всякие подборки вопросов для закрепления, почти бесполезны без большого и структурированного материала. Ничего на долго не сохраняется на вопросы и ответы. Поэтому решил писать большие и вдумчивые статьи, которые требуют глубокого погружения.
Первую статью я решил посвятить одному из самых труднопонимаемых принципов SOLID, на котором многие пробуксовывают.
В ней я постарался разобраться:
Много кода и примеров.
Please open Telegram to view this post
VIEW IN TELEGRAM
Hashable vs AnyHashable
Мы уже хорошо погружены в работу протокола Hashable. Но часто приходится слышать в чем же отличия Hashable от AnyHashable?
Можно легко разобраться, если мы знаем что такое приставка Any. В статье Type Erasure в Swift мы также детально разбирали как сделать свои контейнеры для протоколов.
🟣 Когда пригодится AnyHashable?
Представим кейс, когда нужно использовать Set с любыми типами, которые будут хэшебл.
Первое, что приходит в голову, написать код вот так:
Но мы получим ошибку компиляции. Поэтому на помощь приходит наш Type Erasure AnyHashable:
Так мы избавимся от ошибки компиляции и решим нашу задачу
Мы уже хорошо погружены в работу протокола Hashable. Но часто приходится слышать в чем же отличия Hashable от AnyHashable?
Можно легко разобраться, если мы знаем что такое приставка Any. В статье Type Erasure в Swift мы также детально разбирали как сделать свои контейнеры для протоколов.
Представим кейс, когда нужно использовать Set с любыми типами, которые будут хэшебл.
Первое, что приходит в голову, написать код вот так:
let collection = Set<Hashable>()
Но мы получим ошибку компиляции. Поэтому на помощь приходит наш Type Erasure AnyHashable:
let collection = Set<AnyHashable>()
Так мы избавимся от ошибки компиляции и решим нашу задачу
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Воробей
Сорри, одинаковые фотки скинули: разбираем новинки с презентации Galaxy Unpacked
🎧 Наушники у Samsung лучше — они двухдрайверные и Lossless поддерживают
⌚ Часы ярче и громче, чем Apple Watch. Это лайк
А вот систему One UI почти всю стыбзили у Apple. Дизлайк
А вот систему One UI почти всю стыбзили у Apple. Дизлайк
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой архитектурный паттерн лучше всего подходит под Clean Architecture
Anonymous Poll
25%
MVVM
32%
VIPER
30%
VIP
11%
MVP
8%
MVC
3%
RIBs
13%
REDUX
7%
Другое
Почему голосуете за VIPER? Если брать книгу Роберта Мартина, то там чистый VIP.
VIPER не придуман Мартином, он популярен только в платформе iOS. А когда писалась книга паттерна даже не было. Как и айфонов.
VIPER не придуман Мартином, он популярен только в платформе iOS. А когда писалась книга паттерна даже не было. Как и айфонов.
Мы уже выяснили, что VIPER не тот Clean, о котором писал Мартин в своей книге. Но у иос разрабов есть заблуждение, что именно о нем хотел сказать он. Знает ли Мартин о существовании VIPER’а, который популярен только у иос-разрабов, и что бы о нем он сказал, остается только догадываться.
Для пруфов я собрал статьи, которые помогут разобраться что же такое Clean и почему нельзя назвать «чище», только если в паттерне UI слоя больше букв:
Если у вас на собесах есть вопросы про архитектуры и паттерны, то очень советую дать четкие ответы в методичках или провести с интервьюерами диалог по выравниванию определений. Оценить адекватность вопросов и адекватность ответов на них. Распределить их вес по важности и нужности.
Тема архитектур очень холливарная и часто усыплена карго-культами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Скиллы vs Грейды: никогда не бегайте за лычками
Прочитал пост у Стаса Цыганова и сразу внутри поднялась острая тема.
Во-первых, грейды не отражают скиллов. В книге "Growth as a Mobile Engineer" мы уже комментировали тему в чем разница роста по карьерной и профессиональной лестнице. Это два разных направления, где ваши скиллы никак не отражают вашу позицию и наоборот. Также мы уже проголосовали, что грейд имеет самую маленькую ценность для определения экспертности и интереса.
Во-вторых, матрицы компетенций не работают. Во многих компаниях есть такой инструмент как "матрица компетенций". Есть ошибочное мнение, что этот инструмент отражает вашу ценность. Но чаще это просто грубый набросок минимальных скиллов, которыми должен обладать разработчик. Эти навыки устаревают или с ними могут быть не согласны другие руководители, инженеры. Поэтому, они всегда имеют заранее устаревшую позицию.
Нам не дадут повышение просто потому, что мы стали "лучше". Почти всегда мы должны своими навыками доказать свою эффективность. Ждать, когда манагер принесет крутые задачи, для доказания нашей пользы — один из выходов. Но эффективен ли он?
В-третьих. На работах нет развития. Оно есть только внутри нас. Как бы вам не говорили, что рабочие задачи дают лучший опыт, но это чаще не так. В ит много своих инфо-пузырей, где одна тусовка спорит с другой. Каждая из них считает других лоу-скиллами. Где есть реформы и сокращения. Где одни команды переписывают старое легаси за другой. Где вчерашнее заменится сегодняшним, а сегодняшнее завтрашним. У каждой из тусовок есть своя матрица компетенций и ей тычат, что она более "правильная".
Я же считаю, что мы все просто "другие". Где-то важны одни скилы, где-то другие. Вопрос скиллсетов определяется окружением и личными предподчениями(а также размером дохода 😄 )
Поэтому, мы с коммьюнити сделаем "свою матрицу". Она не будет обязательной и догматичной. Она будет сбором хард и софт навыков, которые, по мнению комьюнити, нужны разработчикам. За что они ценятся и какие конкретно навыки нужны
Это будут рекомендации, а что делать с этими рекомендациями и куда их применять, каждый сам решит
Прочитал пост у Стаса Цыганова и сразу внутри поднялась острая тема.
Во-первых, грейды не отражают скиллов. В книге "Growth as a Mobile Engineer" мы уже комментировали тему в чем разница роста по карьерной и профессиональной лестнице. Это два разных направления, где ваши скиллы никак не отражают вашу позицию и наоборот. Также мы уже проголосовали, что грейд имеет самую маленькую ценность для определения экспертности и интереса.
Во-вторых, матрицы компетенций не работают. Во многих компаниях есть такой инструмент как "матрица компетенций". Есть ошибочное мнение, что этот инструмент отражает вашу ценность. Но чаще это просто грубый набросок минимальных скиллов, которыми должен обладать разработчик. Эти навыки устаревают или с ними могут быть не согласны другие руководители, инженеры. Поэтому, они всегда имеют заранее устаревшую позицию.
А самое главное, что матрица может давать ложную надежду, что вот прокачаю эти скиллы и ура – следующий грейд.
Нам не дадут повышение просто потому, что мы стали "лучше". Почти всегда мы должны своими навыками доказать свою эффективность. Ждать, когда манагер принесет крутые задачи, для доказания нашей пользы — один из выходов. Но эффективен ли он?
В-третьих. На работах нет развития. Оно есть только внутри нас. Как бы вам не говорили, что рабочие задачи дают лучший опыт, но это чаще не так. В ит много своих инфо-пузырей, где одна тусовка спорит с другой. Каждая из них считает других лоу-скиллами. Где есть реформы и сокращения. Где одни команды переписывают старое легаси за другой. Где вчерашнее заменится сегодняшним, а сегодняшнее завтрашним. У каждой из тусовок есть своя матрица компетенций и ей тычат, что она более "правильная".
Я же считаю, что мы все просто "другие". Где-то важны одни скилы, где-то другие. Вопрос скиллсетов определяется окружением и личными предподчениями
Поэтому, мы с коммьюнити сделаем "свою матрицу". Она не будет обязательной и догматичной. Она будет сбором хард и софт навыков, которые, по мнению комьюнити, нужны разработчикам. За что они ценятся и какие конкретно навыки нужны
Это будут рекомендации, а что делать с этими рекомендациями и куда их применять, каждый сам решит
Please open Telegram to view this post
VIEW IN TELEGRAM
Потихоньку начинаю открывать для себя другие площадки. Иногда меня зовут на интервью, подкасты, митапы. Пока живой формат для меня непривычен и часто отказываюсь. Мне проще выражать мысли через текст. Я слишком долго был наедине с компьютерами и общался с ними через клавиатуру. Ненавижу голосовые и созвоны.
Сейчас взял цель улучшить навыки речи. Так как нашел проблему, что не могу выразить устно и 50% своих мыслей. Время усердной работы над собой. Мне есть что сказать.
У меня накопилась экспертиза, мнения, опыт и эмоции по многим темам. Какие-то проблемы хотелось бы подсветить, какие-то решить, где-то предложить решения.
Самые острый вопрос — это вопрос найма. К нему все меньше доверия и все больше растут недовольства среди программистов. Можно ли сказать, что найм сломан? Не знаю, но я скорее скажу, что нет прозрачности, согласованности и понимания ожиданий. Да и к сожалению, чаще большинство собесов устроены на оценку твоих устных навыков речи, а не написания кода. От чего страдают по-настоящему скилловые разработчики, которые привыкли писать код, а не говорить.
Кто-то скажет, что проходить собесы — это отдельный навык. Но я скажу, что и проводить собесы хорошо сразу не научишься.
Поэтому я начинаю серию внутренних докладов для комьюнити. Одна из основных целей — это научиться понятно и доступно доносить инфу в устной форме, а также потренироваться для крупных площадок, куда я постепенно буду приносить свои наработки.
В этом докладе я расскажу о процессах собеседований:
Изначально этот доклад рассчитывался как микро-вступление к предстоящим мок-собесам. Но становится гораздо больше.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM