• В блоке «вопросы на собесе» добавились вопросы с вариантами ответа, чтобы нас запутать (+ правильный ответ). Также добавились новые вопросы и лаконичные ответы на них.
• Ускорилась загрузка страниц за счет оптимизации картинок.
Новая страница – Скрининг от HR c вопросиками про прошлый опыт и будущую работу.
Пополнился список ключевых навыков для резюме.
Решение 10 задач с литкода:
• Строки: Find the Index of the First Occurrence in a String, Length of Last Word, Valid Palindrome.
• Массивы: Remove Duplicates from Sorted Array, Remove Element, How Many Numbers Are Smaller Than the Current Number, Sum of Unique Elements, Merge Sorted Array.
• Связные списки: Remove Duplicates from Sorted List.
• Бинарный поиск: Search Insert Position.
Обновлено описание Sequences: отличие от коллекций, методы asSequence, map, filter, generateSequence.
Обновлено описание Coroutine Dispatchers, CoroutineName, билдеров launch и async, функций runCatching и runBlocking, suspend и Continuation.
Функция suspendCoroutine.
Синхронизация в корутинах, класс Mutex.
Обновлено описание метода collect у Flow.
Обновлено описание inline-функций и reified.
Обновлено описание sealed class.
Ограничения у Extension Functions.
Подробнее про методы data-класса.
Обновлено описание аннотаций @JvmStatic, @JvmOverloads, @JvmField и @JvmInline.
Добавлено описание аннотаций @JvmName, @JvmSynthetic и @JvmDefault.
GC: Reference Counting.
ThreadPool: FixedThreadPool, CachedThreadPool, SingleThreadExecutor, ScheduledThreadPool.
Что такое String Pool.
Инфа про алгоритмическую сложность операций доступа/вставки/удаления элементов в ArrayList и LinkedList.
Операторы управления потоками: doOnNext, doOnComplete, doOnError, doAfterTerminate, doOnDispose.
Операторы трансформации: just, fromIterable, filter, skip, skipLast, take, takeLast, concat, combineLatest, join, onErrorResumeNext, onErrorReturnItem, retry, retryWhen, delay, debounce, scan.
Обновлен раздел про ООП - теперь с примерами кода: class, abstract class, interface, наследование, композиция, агрегация.
Обновлено описание принципов SOLID.
Что такое сигнатура метода.
Как работает UDF.
Reducer и Middleware в MVI.
Приоритеты процессов в Android.
Аннотации для потоков @MainThread, @UiThread и @WorkerThread.
View: методы invalidate, postInvalidate, requestLayout, forceLayout, onLayout.
MotionLayout.
ViewStub.
WebView.
Сервисы: Bound, IBinder, onBind, onUnbind.
Activity: ActivityManager и его методы, taskAffinity, OnBackPressedDispatcher, TaskStackBuilder, Launch Modes.
Фрагменты: методы add и replace.
AsyncLayoutInflater и параметр attachToRoot.
Обновлен раздел про Hilt: Scopes, ленивая инициализация через Lazy и Provider, аннотации @Named, @Qualifier, @IntoSet, @IntoMap, @Subcomponent, @Binds и @Provides.
Adaptive Layouts: BoxWithConstraints, NavigationSuiteScaffold, ListDetailPaneScaffold, SupportingPaneScaffold, NavigableListDetailPaneScaffold.
Обновлен раздел про рекомпозицию и жизненный цикл Composable-функций.
Обновлено описание SideEffects.
BackHandler.
#roadmap@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Стал ли я умнее? Отнюдь.
Перестал понимать математику, когда там появились буквы. На парах хоть и сидел на первой парте, но больше был озабочен сколько шариков из бумаги мы с корешем успеем накидать преподу под ноги пока не спалимся. Поэтому операции инкремента, декремента и остатка от деления изучались на рабочем проекте.
Задачи на алгосы редко спрашивают на собеседованиях. Чаще дают лайв-кодинг а-ля джун накостылял и ушел в отпуск - разбирайся. Но спрашивают. Например, в Озоне, Авито и Сбере. Попутно с собесами начал готовиться. Каждый день по задаче уровня изи. Первые откровения:
• Алгоритмы работают со структурами данных: массив, связный список, стек, очередь, хэш-таблица, дерево, граф, куча и др. Логичнее сначала минимально разобраться в их устройстве. Например, в связном списке элементы хранят ссылку на следующий/предыдущий элементы. А в очереди элементы добавляются в конец и удаляются из начала.
• Вычислительная сложность алгоритмов может быть временной и пространственной. Как она считают – до сих пор без понятия. Для этого целые курсы придуманы.
• Чтобы упростить себе жизнь, для вычисления сложности придумали О-Нотацию. Я на начальной стадии ее понимания.
• Также алгоритмы можно оптимизировать - находить баланс между временной и пространственной сложностью, так как улучшение одного показателя ухудшает другой.
В категории изи на литкоде в первой сотне преобладают задачи на массивы, связные списки и деревья. Вопреки ожиданию, "вертеть деревья" оказалось весьма просто: поиск минимальной глубины дерева, определение сбалансированности. Моя любимая категория теперь.
Непосредственно о собесах: если мне сейчас дать поискать самый длинный палиндром в строке, только зря потрачу время интервьюера. Но со второго раза мой велосипед поедет. Проблема в том, что время не бесконечное, как и количество вакансий на рынке. Поэтому работающая рекомендация: сделать минимальный предтрен ChatGPT (язык, код с комментами, воды поменьше, оплаченный лимит) и быстрыми ручками скормить ему скриншот алгоритмической задачи из яндекс кода или куда направят на интервью. Только не копируй условие, а делай скриншот.
Если времени на выявление общих закономерностей и структур больше: плейлист тренировка по алгоритмам яндекса, курс основы алгоритмов, курс подготовка к алгоритмическому собеседованию.
Увидимся через месяц
#leetcode@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
• Теперь для всех 682 вопросов в блоке Вопросы на собесе доступны правильные ответы.
Решение 20 задач с литкода:
• Строки: Add Binary.
• Массивы: Plus One, Pascal's Triangle, Pascal's Triangle II, Best Time to Buy and Sell Stock, Majority Element.
• Связные списки: Intersection of Two Linked Lists.
• Математика: Climbing Stairs, Excel Sheet Column Title, Excel Sheet Column Number.
• Манипуляции с битами: Reverse Bits.
• Деревья: Binary Tree Inorder Traversal, Same Tree, Symmetric Tree, Maximum Depth of Binary Tree, Convert Sorted Array to Binary Search Tree, Balanced Binary Tree, Minimum Depth of Binary Tree, Path Sum, Binary Tree Preorder Traversal, Binary Tree Postorder Traversal.
Новый раздел.
Упорядочены текущие задачи.
Добавлены 2 новые задачи.
Упорядочены текущие задачи.
Добавлено 14 новых задач.
Добавлена 1 новая задача.
Отдельная страница для Object.
Отдельная страница для атомарных классов: AtomicInteger, AtomicLong, AtomicBoolean, AtomicReference, AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray, AtomicMarkableReference, AtomicStampedReference.
Виды клонирования.
ReadWriteLock.
CountDownLatch.
CyclicBarrier.
Обновлено описание коллекций: Set, HashSet, LinkedHashSet, TreeSet, SortedSet, NavigableSet.
Функции высшего порядка.
Анонимные функции.
Coroutines: joinAll, yield, ensureActive, limitedParallelism.
Flow: chunked.
Scope: takeIf, takeUnless, repeat, todo, this, it.
Улучшено описание null safety, if, varargs, lateinit, const, var, val, get, set, tilerec, do, while, for, break, continue.
Обновлена страница Object: data object, companion object, анонимные объекты, объектные выражения.
Добавлены операторы для коллекций.
Переехал в отдельный раздел.
Обновлено описание Intent: Intent Resolution, Intent Filters, мутабельный и иммутабельный PendingIntent.
Отдельная страница для RecyclerView.
Добавился контент про тестирование.
Network: REST, Header, Body, Path, Query, Get, Post, Put, Patch, Delete.
Архитектура: DRY, KISS, YAGNI, Trunk Based Development.
BroadcastReceiver: системные типы.
Activity: isFinishing.
Новая страница Media3.
Отдельная страница для CompositionLocal.
Описание Layout.
Отдельный раздел.
Добавлено 7 Android-библиотек.
Добавлено 6 KMP-библиотек.
#roadmap@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
Первая статья про собеседования на мобильного Android-разрабатывателя в 2024 году.
Месяц назад вышел на рынок. Прошел собеседования в 29 компаний. Везде просил полную удаленку, печеньки и минимальную зарплату 400 000₽. Что из этого получилось, ожидания от рынка, что хотел, где искал, процесс, личная статистика, экономическая картина и предварительные выводы в статье:
Please open Telegram to view this post
VIEW IN TELEGRAM
Вторая статья про Android-собеседования. А именно про этап hr-скрининга.
Статистика, описание формата, все вопросы которые спрашивают, что хотят услышать в ответ и какие вопросы можно задать самому.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from IT менторы - отзывы на офферы
Результаты конкурса + новый конкурс
1 место @SergeyFilichkin
2 место @QAconqueror
3 место @michaelbel
(больше никто вопросов не закинул, хотя была возможность бесплатно оказаться на 4 и 5 месте или получить 50usdt. Они возвращаются в общий пул аукциона менторов)
Конкурс на следующий месяц:
Репост моих видео на ютубе себе в каналы телеграма
Можно репостнуть пост из ОМ целиком. Можно написать свой текст и опубликовать его, вставив ссылку на видео. Если вам удастся разместить ссылку на видео в чужом крупном канале и вы сможете это подтвердить, мы засчитаем эти голоса.
Результат будет подсчитываться сложением счетчика просмотров телеграмма. Например:
1. Репост одного видео — 4395 просмотров
2. Репост трёх видео — в сумме всех репостов 4028 просмотров
Победил канал под №1
5 победителей по большему количеству просмотров получают на выбор что-то одно:
- место в топе таблицы менторов
- 50 usdt (5к рублей)
- подписку Волчара на сообщество на полгода
За Анонсами видео следите в телеграм канале Осознанная меркантильность
1 место @SergeyFilichkin
2 место @QAconqueror
3 место @michaelbel
(больше никто вопросов не закинул, хотя была возможность бесплатно оказаться на 4 и 5 месте или получить 50usdt. Они возвращаются в общий пул аукциона менторов)
Конкурс на следующий месяц:
Репост моих видео на ютубе себе в каналы телеграма
Можно репостнуть пост из ОМ целиком. Можно написать свой текст и опубликовать его, вставив ссылку на видео. Если вам удастся разместить ссылку на видео в чужом крупном канале и вы сможете это подтвердить, мы засчитаем эти голоса.
Результат будет подсчитываться сложением счетчика просмотров телеграмма. Например:
1. Репост одного видео — 4395 просмотров
2. Репост трёх видео — в сумме всех репостов 4028 просмотров
Победил канал под №1
5 победителей по большему количеству просмотров получают на выбор что-то одно:
- место в топе таблицы менторов
- 50 usdt (5к рублей)
- подписку Волчара на сообщество на полгода
За Анонсами видео следите в телеграм канале Осознанная меркантильность
IT менторы - отзывы на офферы
Результаты конкурса + новый конкурс 1 место @SergeyFilichkin 2 место @QAconqueror 3 место @michaelbel (больше никто вопросов не закинул, хотя была возможность бесплатно оказаться на 4 и 5 месте или получить 50usdt. Они возвращаются в общий пул аукциона менторов)…
Please open Telegram to view this post
VIEW IN TELEGRAM
За этот месяц решена 31 задача уровня изи. 9 решений выбили 100% по времени выполнения. Удивительным открытием стало наличие задач: «Напиши SQL-запрос, чтобы вытащить фамилию человека из таблицы Person» или «Напиши bash-скрипт для вывода телефонных номеров из текстового файла». Пока такое пропускаю.
Поднялся (или опустился) в рейтинге с 3 000 000+ места до 1 408 767. Также мне влепили почетный бейдж 50 Days Badge 2024 за полтора месяца решения задачек.
Многие задачи решаются при помощи рекурсии. Хотя в обычной практике ни разу ее не применял. Знаешь ли ты про такой оператор в котлин как
tilerec?Еще мне написал какой-то тип, чтобы заскамить на покупку футболки с моими квадратиками на гитхабе. Разве этим кого-то впечатлишь? Статистика там рисуется одним скриптом. Приглашаю через год посмотреть на мой литкод.
#leetcode@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
• Cтруктура всех страниц.
• Новые обложки от DALL·E.
• 340 новых вопросов с собеседований (1031 всего).
• Поиск и фильтры для списка решенных задач с литкода.
• Новые разделы: DevOps и Firebase.
• Отдельные страницы для ContentProvider, Lifecycle, Manifest, Startup и Actions.
Добавлено 10 новых задач.
Обновлено описание Agile: Scrum и Kanban.
STAR – метод ответов на поведенческом интервью.
OKR – методика управления целями и результатами.
Потокобезопасность.
Хеширование и SHA-256.
TCP и UDP.
Cookies и User-Agent.
Решение 20 задач с литкода:
• Математика: Happy Number, Add Digits, Ugly Number, Nim Game, Power of Three.
• Манипуляции с битами: Number of 1 Bits, Power of Two.
• Массивы: Summary Ranges, Missing Number, Move Zeroes, Range Sum Query - Immutable.
• Связные списки: Remove Linked List Elements, Reverse Linked List, Palindrome Linked List.
• Строки: Isomorphic Strings, Word Pattern.
• Деревья: Count Complete Tree Nodes, Invert Binary Tree, Binary Tree Paths.
• Бинарный поиск: First Bad Version.
CI и CD.
Описание GitHub Actions и workflow-команд: on, concurrency, jobs.
Описание GitLab CI, Bitrise, Fastlane, CircleCI, Jenkins, Travis CI, TeamCity.
Кейворд для функций: void.
Кейвордов для классов: class, new, extends, implements.
Описание статической и динамической загрузки классов.
Описание дженериков.
Concurrent: интерфейсы Runnable и Callable.
ConcurrentHashMap: методы putIfAbsent, computeIfPresent и replace.
Обновилось описание Disposable.
Операторы: share, timer и timeout.
Обновилось описание исключений: Throwable, Error, Exception, try, catch, finally, throw и Throws.
Обновилось описание типов: Any, Unit и Notning.
Обновилось описание классов: constructor и secondary constructor.
Обновилось описание блока init.
Обновилось описание кейвордов для функций: fun, operator и super.
Обновилось описание кейвордов: package, import, interface, abstract и typealias.
Обновилось описание модификаторов: public, protected, private, open и final.
Обновилось описание смарткастов: is и as.
Обновилось описание enum-классов.
Обновилось описание типов: Boolean, Char и CharSequence.
Описание DSL.
Метод thread.
Лейблы для циклов.
Операторы коллекций: distinct, associate и associateBy.
Методы каналов: receiveAsFlow и consumeAsFlow.
Обновилось описание билдеров Flow: flow, flowOf, asFlow, channelFlow, callbackFlow.
Описание MainScope.
Операторы корутин: delay и awaitAll.
Обновилось описание всех диспетчеров в корутинах.
Обновилось описание понятий в корутинах: NonCancellable, CancellationException, CoroutineExceptionHandler, lifecycleScope, viewModelScope, rememberCoroutineScope.
Описание системных контент-провайдеров.
Releases: Что нового в Android 15.
Manifest: описание тегов: <application/>, <activity/>, <service/>, <receiver/>, <provider/>.
Network: описание WebSockets.
Activity: описание лаунчмода singleInstancePerTask.
Fragment: описание FragmentFactory и параметров POP_BACK_STACK_INCLUSIVE и POP_BACK_STACK_EXCLUSIVE.
RecyclerView: описание Adapter, ListAdapter, ConcatAdapter, ViewHolder, ItemAnimator, ItemDecoration, LayoutManager и SnapHelper.
UI: описание SplashScreen.
Test: описание библиотеки Turbine.
Startup: описание Initializer.
Room: обновилось описание ForeignKey.
Navigation: описание Type safety navigation.
Обновилось описание produceState.
Обновилось описание CompositionLocalProvider и staticCompositionLocalOf.
Описание LocalContext, LocalDencity, LocalConfiguration, LocalWindowInfo, LocalLayoutDirection, LocalAccessibilityManager, LocalClipboardManager, LocalFocusManager, LocalHapticFeedback, LocalSoftwareKeyboardController, LocalUriHandler, LocalTextStyle.
Описание LazyColumn.
Описание MaterialTheme.
Описание Detekt.
Описание BuildConfig.
Создание блоков кода с помощью region и endregion.
Добавлены 2 Android-библиотеки.
Добавлены 2 KMP-библиотеки.
Добавлены 8 Actions.
#roadmap@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
Третья статья про Android-собеседования. О том, что ждать на техсобесе – теория, лайвкодинг, алгоритмическая задача, систем дизайн.
Разберемся, как основательно подготовиться и что именно нужно учить.
Please open Telegram to view this post
VIEW IN TELEGRAM
Полный гайд по Telegra.ph
Телеграф – это альтернатива постам в Telegram с меньшими ограничениями. Позволяет создавать длинные статьи, вставлять изображения, видео и ссылки, а также использовать Instant View для быстрой загрузки. В отличие от обычных постов, где есть лимиты на размер и медиа, Телеграф даёт больше свободы для контента. В статье – все возможности сервиса.
🐗 telegra.ph/telegraph-11-02-27
Телеграф – это альтернатива постам в Telegram с меньшими ограничениями. Позволяет создавать длинные статьи, вставлять изображения, видео и ссылки, а также использовать Instant View для быстрой загрузки. В отличие от обычных постов, где есть лимиты на размер и медиа, Телеграф даёт больше свободы для контента. В статье – все возможности сервиса.
Please open Telegram to view this post
VIEW IN TELEGRAM