Как решать алгоритмы?
Уже почти 40 дней ежедневных алгосов. Нужно оптимизировать подходы. Найти короткие дороги для обучения в оставшихся 300. Не чувствовать себя шариком для пинг-понга, прыгая из стороны в сторону к темам.
Даже 100-200 задач считаю — это не та экспертиза, с которой я могу претендовать на советы. Вместо создания велосипеда начал искать роадмапы в интернете. Тут спасибо всем, кто помог❤️
Ориентироваться в обучении на собесы — плохо на дальной дистанции. Но необходимо для рефреша уже старых знаний на короткой.
Собесы хрупки и зависят от качества интервьюера, процессов, апрувнутых задач. Все это легко подвергается инфляции. Год назад тебя спрашивали так, а уже завтра все легко поменялось придя на место новый интервьюер. Поэтому лучше искать проверенные методики обучения.
Проблема многих собеседований — точечные задачи. Вместо того, чтобы спрашивать общие знания и понимать эрудицию, опыт и склад ума, то во многих собесах дают задачи из ограниченного списка. А плохой интервьюер вообще не задает ничего по теории и о самих алгосах. Хрупкость таких собесов в их возможности хакнуть. Достаточно лишь зайти на литкод и решить не думая самые популярные задачи, не понимая основы и множества других техник. Ну либо тупо слить базу.
Через час ты уже забудешь как решал это и не разберешься в своем же коде.
В хороших процессах этого будет недостаточно и интервьюер легко выведет из равновесия, затронув дно знаний или рассыпет хорошую выдуманную легенду. Поэтому для позиций, где требуются технически-сильные кандидаты оценивают не только факт решения, но и процесс.
Подготовил список найденных советов:
1. LeetCode DataStructure Study Plan
2. Roadmap базовых техник
3. 150 лучших практик от литкода
Уже почти 40 дней ежедневных алгосов. Нужно оптимизировать подходы. Найти короткие дороги для обучения в оставшихся 300. Не чувствовать себя шариком для пинг-понга, прыгая из стороны в сторону к темам.
Даже 100-200 задач считаю — это не та экспертиза, с которой я могу претендовать на советы. Вместо создания велосипеда начал искать роадмапы в интернете. Тут спасибо всем, кто помог
Ориентироваться в обучении на собесы — плохо на дальной дистанции. Но необходимо для рефреша уже старых знаний на короткой.
Собесы хрупки и зависят от качества интервьюера, процессов, апрувнутых задач. Все это легко подвергается инфляции. Год назад тебя спрашивали так, а уже завтра все легко поменялось придя на место новый интервьюер. Поэтому лучше искать проверенные методики обучения.
Проблема многих собеседований — точечные задачи. Вместо того, чтобы спрашивать общие знания и понимать эрудицию, опыт и склад ума, то во многих собесах дают задачи из ограниченного списка. А плохой интервьюер вообще не задает ничего по теории и о самих алгосах. Хрупкость таких собесов в их возможности хакнуть. Достаточно лишь зайти на литкод и решить не думая самые популярные задачи, не понимая основы и множества других техник. Ну либо тупо слить базу.
Через час ты уже забудешь как решал это и не разберешься в своем же коде.
В хороших процессах этого будет недостаточно и интервьюер легко выведет из равновесия, затронув дно знаний или рассыпет хорошую выдуманную легенду. Поэтому для позиций, где требуются технически-сильные кандидаты оценивают не только факт решения, но и процесс.
Подготовил список найденных советов:
1. LeetCode DataStructure Study Plan
2. Roadmap базовых техник
3. 150 лучших практик от литкода
Please open Telegram to view this post
VIEW IN TELEGRAM
LeetCode
Study Plan - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
👍14🔥1😁1🐳1
This media is not supported in your browser
VIEW IN TELEGRAM
💎 Новая сборка симулятора
Версия: 1 (15)
⚡️ Новый подгон — первый тренажер! Теперь можно проверить себя на самом популярном вопросе всех собесов про многопоточность. Очередь рандомная и каждый заход будет другим от предыдущего.
А также:
- Добавили локализацию — выходим на международный рынок🤖
- Небольшое изменение дизайна чата
- Поправили баги
- Доработали фильтрацию
- Изменили экран ачивок
💎 Что ожидать дальше
- Новые тренажеры
- Улучшение собесов
- Создание новых багов
Версия: 1 (15)
А также:
- Добавили локализацию — выходим на международный рынок
- Небольшое изменение дизайна чата
- Поправили баги
- Доработали фильтрацию
- Изменили экран ачивок
- Новые тренажеры
- Улучшение собесов
- Создание новых багов
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡8🔥6🐳2😱1
Не вступайте в диалог с террористами
Когда вас забанят тут в комментариях, то вспомните этот пост. Я всегда за открытые мнения, но есть границы, после которых нет диалога. Давно хотел написать пост, чтобы сэкономить время на аргументацию, но время только пришло.
Любая система несовершена. Каждый из нас берет на себя одну из двух ролей: законопослушника или террориста. Закон и правила формируют порядок. Помогают нам не скатиться в животных. Животных, двигающихся ради своей выгоды и переступающих любые нормы.
Человек, который игнорирует правила и законы, для меня преступник. Человек, который ничего не предлагает и создает хаос — террорист. Преступник всегда будет жертвой. Он может обокрасть тебя, навредить твоему близкому и все его оправдания будут: «Не мы такая. Жизнь такая». Его жажда крови и склонность к рецидиву будут только увеличиваться.
Этот человек — угроза. С ним нет переговоров.
Сложные времена приводят к романтизации бандитской жизни. Опыт жизни научил меня, что с преступниками нет диалогов. Каждый их шаг будет переступать следующую грань, а в словах искупления нет расскаяния.
Никто не выполнит обязательства человека, который взял заложников в плен и требует сумку с деньгами и самолет, переустановку правил игры, политических решений.
Террористические организации и оправдание терроризма не принимаются и никогда не были эффективными. Многие просто пересмотрели фильм «Джокер»
«Ты сер, а я, приятель, сед, И волчью вашу я давно натуру знаю; А потому обычай мой: С волками иначе не делать мировой, Как снявши шкуру с них долой». И тут же выпустил на Волка гончих стаю. И. А. Крылов. Волк на псарне
Надеюсь, больше ни у кого вопросов не будет
Когда вас забанят тут в комментариях, то вспомните этот пост. Я всегда за открытые мнения, но есть границы, после которых нет диалога. Давно хотел написать пост, чтобы сэкономить время на аргументацию, но время только пришло.
Любая система несовершена. Каждый из нас берет на себя одну из двух ролей: законопослушника или террориста. Закон и правила формируют порядок. Помогают нам не скатиться в животных. Животных, двигающихся ради своей выгоды и переступающих любые нормы.
Человек, который игнорирует правила и законы, для меня преступник. Человек, который ничего не предлагает и создает хаос — террорист. Преступник всегда будет жертвой. Он может обокрасть тебя, навредить твоему близкому и все его оправдания будут: «Не мы такая. Жизнь такая». Его жажда крови и склонность к рецидиву будут только увеличиваться.
Этот человек — угроза. С ним нет переговоров.
Сложные времена приводят к романтизации бандитской жизни. Опыт жизни научил меня, что с преступниками нет диалогов. Каждый их шаг будет переступать следующую грань, а в словах искупления нет расскаяния.
Никто не выполнит обязательства человека, который взял заложников в плен и требует сумку с деньгами и самолет, переустановку правил игры, политических решений.
Террористические организации и оправдание терроризма не принимаются и никогда не были эффективными. Многие просто пересмотрели фильм «Джокер»
Надеюсь, больше ни у кого вопросов не будет
👎17🫡9👍8🍌3😁2🦄2🔥1 1
Решение проблемы Data Races с Actors
Мы почти не затрагивали современные технологии. Ни SwiftUI, ни Swift Concurrency.
Говорят, нужно много смертей лабораторных крыс во имя науки для нормальной работы на проде. Хотя издалека уже надо заходить и аккуратно тыкать палкой это. Смотреть на реакцию и записывать в блокнот поведение, как на инопланетное нечто.
В статье автор разбирает решение проблемы гонки данных старыми и новыми техниками
Мы почти не затрагивали современные технологии. Ни SwiftUI, ни Swift Concurrency.
Говорят, нужно много смертей лабораторных крыс во имя науки для нормальной работы на проде. Хотя издалека уже надо заходить и аккуратно тыкать палкой это. Смотреть на реакцию и записывать в блокнот поведение, как на инопланетное нечто.
В статье автор разбирает решение проблемы гонки данных старыми и новыми техниками
👍6🍌1
Forwarded from iOS Dev
Обнаружение джейлбрейка iOS в 2023 году: необходимость, способы, примеры
🧑💻 Джейлбрейк — это использование эксплойта для повышения привилегий для снятия программных ограничений, наложенных Apple, среди которых:
1️⃣ Модификация операционной системы (обеспечивается «заблокированным загрузчиком»).
2️⃣ Установка неофициально одобренных приложений (известных как «твики») путем загрузки неопубликованных приложений с использованием менеджеров пакетов, таких как Cydia или Sileo.
3️⃣ Предоставление пользователю повышенных привилегий уровня администратора (рут-доступа).
Всё это может влиять на уровень безопасности приложений.
📖 В этом материале Marco Eidinger рассказывает, какие существуют методы обнаружения, и делится примерами кода для предотвращения такого доступа в ваших приложениях.
@iOS Dev
1️⃣ Модификация операционной системы (обеспечивается «заблокированным загрузчиком»).
2️⃣ Установка неофициально одобренных приложений (известных как «твики») путем загрузки неопубликованных приложений с использованием менеджеров пакетов, таких как Cydia или Sileo.
3️⃣ Предоставление пользователю повышенных привилегий уровня администратора (рут-доступа).
Всё это может влиять на уровень безопасности приложений.
📖 В этом материале Marco Eidinger рассказывает, какие существуют методы обнаружения, и делится примерами кода для предотвращения такого доступа в ваших приложениях.
@iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3💯3🆒1
Превратности диспетчеризации в Swift
Один из ближайших тренажеров в симуляторе — диспетчеризация. Во многих статьях рассматривается только дефолтный пример с удалением метода в протоколе и одним классом. Редко кто копает в сторону Message Dispatch.
Помимо сообщений в статье есть другие интересные примеры с цепочной наследования и подписки на протоколы
Один из ближайших тренажеров в симуляторе — диспетчеризация. Во многих статьях рассматривается только дефолтный пример с удалением метода в протоколе и одним классом. Редко кто копает в сторону Message Dispatch.
Помимо сообщений в статье есть другие интересные примеры с цепочной наследования и подписки на протоколы
Хабр
Превратности диспетчеризации в Swift
Всем привет, меня зовут Сергей, я работаю в компании Joy Dev в должности iOS TeamLead. Эта статья - моя “проба пера” на Хабре. В ней, вместе с обзором видов диспетчеризации в Swift, мы рассмотрим...
👍6🍌4⚡1🐳1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤🔥6👍6
Паттерн Decorator для репозитория кэширования и инвалидации кэша.
Одна из практически полезных статей про паттерны и главный вопрос программирования.
Кейс крайне полезный. Всегда важно кэшировать и данные для уменьшение нагрузки и ускорение апки.
Так еще это и проектировать с красотой.
Одна из практически полезных статей про паттерны и главный вопрос программирования.
Кейс крайне полезный. Всегда важно кэшировать и данные для уменьшение нагрузки и ускорение апки.
Так еще это и проектировать с красотой.
👍9🍌2
Дефолтное значение для словарей
Мало кто знает, но очень удобная вещь для решение алгосов на литкоде.
Спасет тысячу нервов и один горящий зад
Мало кто знает, но очень удобная вещь для решение алгосов на литкоде.
Спасет тысячу нервов и один горящий зад
👍10🍌3🦄2🐳1
На ютубе критично мало интересных форматов c задачами. Либо это индус и его пересказ боливудских фильмов. Либо неуверенные джуны, с пересказом самого заезженного решения. В таком формате теряется могучая сила видео. Тупой пересказ текста сложно принимается мозгом.
Есть куча крючков с музыкальными вставками, емкой речью и всеми другими плюшками, которые дают хороший монтаж, приятный автор и режиссура. Видео перестает быть плоским и открывает дополнительные плоскости для удержания внимания.
Вот топ видос, где все без воды и облегченно решаем вместе алгосики. Включаем в режиме "картинка в картинка" и алгоритмы становятся легким подкастом на фоне. Ведь нужно все упрощать.
Если этот пост наберет десять тысяч лайков, то устроим решение задач на раздевание
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Leetcode Паттерны Влад Тен – Алгоритмы Buy Sell Stock + Cyclic Sort
Полезные статьи и видео по разным направлениям разработки от инженеров Авито можно найти на сайте AvitoTech: https://bit.ly/3mIUOSx
Курс про Паттерны и практики написания кода для начинающих и middle-разработчиков от команды AvitoTech: https://bit.ly/3jCkyle…
Курс про Паттерны и практики написания кода для начинающих и middle-разработчиков от команды AvitoTech: https://bit.ly/3jCkyle…
👍12.8K🍌4⚡1
Ладно
Предыдущий пост кто-то хакнул и захотел совместить приятное с полезным.
Если серьезно, то я пару раз думал создать что-то интересное. Например, мы созваниваемся раз в 2 недели на алгобаттл. Берём самые рандомные изи задачи и пару экспертов. Устраиваем батл между ними и публика оценивает. Проигравшийпоказывает жопу выполняет желание публики.
Ну или предлагайте свой формат. Замутим тестовые созвоны
Предыдущий пост кто-то хакнул и захотел совместить приятное с полезным.
Если серьезно, то я пару раз думал создать что-то интересное. Например, мы созваниваемся раз в 2 недели на алгобаттл. Берём самые рандомные изи задачи и пару экспертов. Устраиваем батл между ними и публика оценивает. Проигравший
Ну или предлагайте свой формат. Замутим тестовые созвоны
🦄7🍌4👍1🐳1
Что юзаете для написания layout?
Anonymous Poll
8%
PinLayout
4%
Textture (AsyncDisplayKit)
0%
EasyLayout
52%
SnapKit
2%
EasyPeasy
1%
Stevia
1%
TinyConstraints
9%
Написали свое
45%
Никаких оберток над
🍌4
окей, гугл. а есть в мск не coffee and code, а beer and code в барах?
beer > coffee
beer > coffee
💊16🐳4👍3
ну, короче, ищу желающих быть организаторами beer & code moscow 😬
Please open Telegram to view this post
VIEW IN TELEGRAM
🍾12💊4🫡3
еще думаю в грузию в марте приехать. посоветуйте че там делать вообще кроме киндзмараули пить
Паттерн Decorator
⏺ lvl: mid
Когда вам задают вопрос про Open-Closed принцип, то говорите про паттерн декоратор. Extensions (расширения) в свифте не являются расширением функциональности и никак к принципу SOLID не относятся.
Назначение
Динамически добавляет объекту новые обязанности. Является гибкой альтернативой порождению подклассов с целью расширения функциональности.
Мотивация
Когда нужно возложить дополнительные обязанности на отдельный объект, а не на класс в целом.
Наследование — это первое, что приходит в голову многим программистам, когда нужно расширить какое-то существующее поведение. Но механизм наследования имеет несколько досадных проблем.
- Он статичен. Вы не можете изменить поведение существующего объекта. Для этого вам надо создать новый объект, выбрав другой подкласс.
- Он не разрешает наследовать поведение нескольких классов одновременно. Из-за этого вам приходится создавать множество подклассов-комбинаций для получения совмещённого поведения.
Одним из способов обойти эти проблемы является замена наследования агрегацией, либо композицией. Это когда один объект содержит ссылку на другой и делегирует ему работу, вместо того, чтобы самому наследовать его поведение. Как раз на этом принципе построен паттерн Декоратор.
Когда вам задают вопрос про Open-Closed принцип, то говорите про паттерн декоратор. Extensions (расширения) в свифте не являются расширением функциональности и никак к принципу SOLID не относятся.
Назначение
Динамически добавляет объекту новые обязанности. Является гибкой альтернативой порождению подклассов с целью расширения функциональности.
Мотивация
Когда нужно возложить дополнительные обязанности на отдельный объект, а не на класс в целом.
Наследование — это первое, что приходит в голову многим программистам, когда нужно расширить какое-то существующее поведение. Но механизм наследования имеет несколько досадных проблем.
- Он статичен. Вы не можете изменить поведение существующего объекта. Для этого вам надо создать новый объект, выбрав другой подкласс.
- Он не разрешает наследовать поведение нескольких классов одновременно. Из-за этого вам приходится создавать множество подклассов-комбинаций для получения совмещённого поведения.
Одним из способов обойти эти проблемы является замена наследования агрегацией, либо композицией. Это когда один объект содержит ссылку на другой и делегирует ему работу, вместо того, чтобы самому наследовать его поведение. Как раз на этом принципе построен паттерн Декоратор.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2💊2