В резюме на hh можно указывать навыки и устанавливать для них уровни владения (базовый, средний, продвинутый). Некоторые навыки можно подтверждать, проходя тесты.
Например, для навыка Git доступно 3 теста:
• Базовый – 10 вопросов за 10 минут.
• Средний – 12 вопросов за 15 минут.
• Продвинутый – 15 вопросов за 20 минут.
На каждый вопрос – 5 вариантов ответа, из которых 1 правильный. Копирование запрещено. Если завалить – результат никто не увидит, а следующая попытка будет через месяц. Если сдать – на год выдадут зеленый шильдик. Это сделает резюме более привлекательным для работодателей. Задумано, что нужно тестироваться на тот уровень, который указан у навыка. И снижать его, если не прошел.
Нет смысла учиться-разбираться, в самих тестах отборная дичь, особенно в третьем. Быстрее будет проставить у всех навыков «Продвинутый» уровень и протыкать правильные ответы. Я собрал их все вместе с вопросами в роадмапе.
#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Имя артефакта
Приближается релиз Gradle 9.0, в котором удалят много устаревшего API. Одно из таких изменений – способ задания имени артефактов. Это нужно чтобы генерируемый APK назывался не app.apk, а более осмысленно. Например, содержал номер версии и сборки в названии.
Ранее имя артефакта задавалось в разделе android с помощью archivesBaseName. Теперь переехало в отдельный раздел base и называется archivesName.
Приближается релиз Gradle 9.0, в котором удалят много устаревшего API. Одно из таких изменений – способ задания имени артефактов. Это нужно чтобы генерируемый APK назывался не app.apk, а более осмысленно. Например, содержал номер версии и сборки в названии.
Ранее имя артефакта задавалось в разделе android с помощью archivesBaseName. Теперь переехало в отдельный раздел base и называется archivesName.
Java – один из важнейших навыков для Android-разработчиков. От неё не сбежать: у Kotlin нет собственной виртуальной машины. Этот навык тоже можно подтвердить на hh.
Предлагается 3 уровня тестов. Каждый включает в себя теорию и практику. Если хочется, можно сдать только теорию.
• Базовый
Теория – 10 вопросов за 10 минут.
Практика – 3 задачи за 25 минут.
• Средний
Теория – 12 вопросов за 15 минут.
Практика – 4 задачи за 35 минут.
• Продвинутый
Теория – 13 вопросов за 20 минут.
Практика – 5 задач за 50 минут.
По теории все аналогично Git. Вопрос и 5 вариантов ответа. Они каждый раз идут в рандомном порядке. Нужно набрать большинство правильных ответов. То есть можно и ошибиться. Зеленый шильдик выдадут на год.
С практикой интереснее. Задачи содержат описание, формат ввода и вывода, примеры результатов. Решение нужно накатать на месте в редакторе кода с подсветкой синтаксиса и автодополнением. Запустить, проверить и отправить на аппрув. Не забудь про импорты и точку с запятой в конце строк. Перед тем как идти в бой, hh дает возможность потренироваться на полигоне. Там будет идентичная задача, можно заранее посмотреть формат. Также hh бдит и пугает, что гулять по другим вкладкам браузера нельзя. И что решение будет проверяться не только на тестовых кейсах, но и на скрытых – по ним будет рассчитан результат. Зеленый шильдик выдадут на 3 года.
Чтобы не поймали за жопу рекомендую потратить все время таймера. Будет подозрительно решить 5 задач за 5 минут, а не за 50. Если хочется пальчики размять – вручную перепиши код в редактор, тогда точно засчитают.
ОТВЕТЫ В РОАДМАПЕ
#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
2 8 2 2 1 1
В 2017 году занес гуглу $25 и купил аккаунт разработчика Google Play. Выкладывал туда свои поделки, приложения, библиотеки. Почти всё гугл снес из-за своих постоянно меняющихся правил. Обучение идет веселее, когда творишь не в стол, а на всеобщее обозрение. Я освоил автоматическую публикацию, поэтапную раскатку, правила разных регионов, монетизацию с помощью рекламных баннеров. $100 (минимальная сумма вывода) накапать не успело и я забил.
В 2023 году владельцы аккаунтов начали получать письма счастья – подтверди аккаунт, чтобы он соответствовал обновленной политике требований Play Console или он будет удален вместе со всеми приложениями. Если зарабатываешь деньги – подтверди еще и платежные реквизиты. По интернету начали расходиться нехорошие новости, что подтверждение из РФ не работает, а смски не доходят. Было разрешено выбрать дедлайн проверки и я отложил проблему на далекий 2025 год.
В ноябре 2024 письма возобновились, а уже в январе, за неделю до дедлайна я решил начать шевелиться и узнать чего от меня хотят:
• адрес электронной почты, по которому пользователи Google Play смогут связаться с вами.
• контактный номер телефона и адрес электронной почты, по которым Google сможет связаться с вами.
• официальный документ, удостоверяющий вашу личность.
Подтвердить данные оказалось легко:
1. Выбрать персональный аккаунт (не организация).
2. Платежный профиль – это любая привязанная карта, даже мертвая. Важен адрес, который там указывался. В моем случае – адрес регистрации как в паспорте. Если профиля нет – можно создать новый.
3. В контактную инфу указал почту яндекса – ввел код из письма.
4. В контактный телефон – номер РФ с +7. Сразу получил код подтверждения.
После этих манипуляций на почту падает новое письмо – фейс к осмотру. Требуют любой документ, удостоверяющий личность. На этом этапе меня разворачивали 3 раза. Каждая новая проверка длилась полтора дня. Сначала я загрузил ч/б скан паспорта РФ – нельзя. Затем загрузил цветную фотку страницы с адресом – нельзя, нужна страница с фоткой. Потом загрузил страницу с фоткой – не совпадает адрес. Только когда указал номер дома, учетную запись верифицировали.
Надеюсь, больше никаких писем.
Please open Telegram to view this post
VIEW IN TELEGRAM
В Android-разработке приходится работать с базами данных (Room, SQLite), хранить данные приложения, пользовательские настройки, кэш или историю действий. SQL-запросы используются для создания таблиц, вставки, обновления, удаления и выборки данных. Поэтому этот навык тоже можно подтвердить.
Доступно 3 теста:
• Базовый – 10 вопросов за 15 минут.
• Средний – 12 вопросов за 20 минут.
• Продвинутый – 15 вопросов за 25 минут.
Вопросы по основным аспектам работы с SQL: синтаксис команд (создание, изменение и удаление таблиц), выполнение запросов на выборку данных с использованием операторов SELECT, WHERE, GROUP BY, HAVING, ORDER BY, а также основы соединения таблиц (JOIN). Извлечение нужных данных из базы, работа с агрегатными функциями (COUNT, SUM, AVG, MIN, MAX) и фильтрацией данных.
ОТВЕТЫ В РОАДМАПЕ
#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
ООП – набор принципов, упрощающих разработку и переиспользование кода. Обычно речь про инкапсуляцию, полиморфизм и наследование. Иногда рядом трется абстракция. В Android применяются для обеспечения модульности и гибкости.
Доступно 3 теста:
• Базовый – 10 вопросов за 10 минут.
• Средний – 12 вопросов за 15 минут.
• Продвинутый – 15 вопросов за 20 минут.
Тесты проверяют знание SOLID, модификаторов доступа, классов и интерфейсов. Также оценивается понимание паттернов проектирования, статических методов, абстрактных классов и интерфейсов. Проверяется умение строить код с низкой связанностью, модульностью и соблюдением принципов единой ответственности.
ОТВЕТЫ В РОАДМАПЕ
#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
OKR (Objectives and Key Results) — методология для постановки целей и измерения их достижения через ключевые результаты. Она фокусирует на приоритетах, повышает прозрачность и помогает отслеживать прогресс. В бизнесе OKR улучшает коммуникацию между отделами, согласует приоритеты и ускоряет адаптацию. Применяется в квартальных и годовых планах для устойчивого роста и реализации стратегий.
Доступно 2 теста:
• Базовый – 10 вопросов за 10 минут.
• Средний – 12 вопросов за 15 минут.
Тесты охватывают постановку целей, ключевые результаты, каскадирование, мониторинг прогресса и связь OKR с KPI и MBO. Проверяется умение формулировать измеримые цели, использовать опережающие показатели и адаптировать OKR под разные контексты.
ОТВЕТЫ В РОАДМАПЕ
#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
Scrum – гибкий фреймворк для управления проектами, основанный на итерациях и инкрементах. Он включает роли, события и артефакты, помогая адаптироваться к изменениям, улучшать прозрачность и доставлять ценность пользователю. Используется в IT, маркетинге и разработке продуктов.
Доступно 3 теста:
• Базовый – 10 вопросов за 10 минут.
• Средний – 13 вопросов за 15 минут.
• Продвинутый – 17 вопросов за 20 минут.
Тесты охватывают роли, принципы, события Scrum, инструменты и метрики, включая диаграммы, Velocity и Cycle Time. Проверяются навыки масштабирования (Nexus, LeSS) и адаптация Scrum к бизнес-средам.
ОТВЕТЫ В РОАДМАПЕ
#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
Agile – гибкий подход, помогающий быстро адаптироваться к изменениям и частым релизам. В Android используются Scrum и Kanban для управления задачами и эффективного взаимодействия команды.
Доступно 3 теста:
• Базовый – 10 вопросов за 10 минут.
• Средний – 12 вопросов за 15 минут.
• Продвинутый – 14 вопросов за 20 минут.
Тесты охватывают темы Agile-манифеста, событий и ролей в Agile-команде, масштабирования и коучинга. Проверяются знания о Scrum, Kanban, метриках, фасилитации и управлении проектами.
ОТВЕТЫ В РОАДМАПЕ
#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
Последний навык, который можно подтвердить – английский язык.
Доступно 6 тестов:
• А1 Начальный – 15 вопросов за 20 минут.
• А2 Элементарный – 15 вопросов за 20 минут.
• B1 Средний – 15 вопросов за 20 минут.
• B2 Средне-продвинутый – 15 вопросов за 23 минуты.
• С1 Продвинутый – 15 вопросов за 23 минуты.
• С2 В совершенстве – 17 вопросов за 23 минуты.
Тесты начинаются с основ: единственное и множественное число, глагол to be. Затем усложняются: времена глаголов, пассивный залог, сложные синтаксические конструкции. Включают фразовые глаголы, речевые обороты, анализ текста. В каждом тесте — задания с аудированием.
ОТВЕТЫ В РОАДМАПЕ
#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
Список всех постов про подтверждение навыков на hh. Ниже – все что можно за уши притянуть к профессии Android-разработчика.
🐗 Git
🐗 Java
🐗 SQL
🐗 ООП
🐗 OKR
🐗 Scrum
🐗 Agile Project Management
🐗 Английский язык
#hhskills@foundout
#hhskills@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
За январь решена 31 задача уровня изи. В рейтинге уже на 708 695 месте. Количество решенных задач перевалило за 150.
• Valid Palindrome II
• Binary Number with Alternating Bits
• Count Binary Substrings
• Degree of an Array
• Search in a Binary Search Tree
• Binary Search
• To Lower Case
• 1-bit and 2-bit Characters
• Find Pivot Index
• Self Dividing Numbers
• Find Smallest Letter Greater Than Target
• Min Cost Climbing Stairs
• Largest Number At Least Twice of Others
• Shortest Completing Word
• Prime Number of Set Bits in Binary Representation
• Jewels and Stones
• Minimum Distance Between BST Nodes
• Rotate String
• Unique Morse Code Words
• Number of Lines To Write String
• Largest Triangle Area
• Most Common Word
• Shortest Distance to a Character
• Goat Latin
• Positions of Large Groups
• Flipping an Image
• Rectangle Overlap
• Backspace String Compare
• Buddy Strings
• Lemonade Change
• Binary Gap
#leetcode@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
BOM-зависимости в Android
Управление зависимостями влияет на стабильность проекта. Разные версии библиотек могут конфликтовать, вызывая ошибки сборки. BOM (Bill of Materials) решает эту проблему, автоматически подбирая совместимые зависимости.
Как работает
• Прописывается в version catalog.
• Артефакт -bom подключается в dependencies через platform(...).
• Зависимости подключаются без явного указания версии (весь список библиотек автоматически не добавится).
• Отдельные версии указываются вручную – BOM их не переопределит.
• Для тестов BOM подключается через testImplementation(platform(...)) и androidTestImplementation(platform(...)).
Спецификаии BOM
• stable (-bom) включает последние стабильные версии каждой библиотеки.
• beta (-bom-beta) включает бета-, релиз-кандидаты (RC) или стабильные версии каждой библиотеки.
• alpha (-bom-alpha) включает альфа-, бета-, RC- или стабильные версии каждой библиотеки.
Версия определяются добавлением суффикса -alpha и -beta к имени артефакта. У стабильной версии его нет.
Какие библиотеки имеют BOM-версию
Посмотреть список можно на специальной странице в каталоге артефактов Maven. Среди них:
• Compose
• Firebase
• Kotlin
• Coroutines
• Koin
• Koin Annotations
• Okhttp
• JUnit 5
• Mockito
Если нажать на номер версии и отмотать до вкладки Managed Dependencies, можно увидеть список всех зависимостей, входящих в BOM.
Управление зависимостями влияет на стабильность проекта. Разные версии библиотек могут конфликтовать, вызывая ошибки сборки. BOM (Bill of Materials) решает эту проблему, автоматически подбирая совместимые зависимости.
Как работает
• Прописывается в version catalog.
• Артефакт -bom подключается в dependencies через platform(...).
• Зависимости подключаются без явного указания версии (весь список библиотек автоматически не добавится).
• Отдельные версии указываются вручную – BOM их не переопределит.
• Для тестов BOM подключается через testImplementation(platform(...)) и androidTestImplementation(platform(...)).
Спецификаии BOM
• stable (-bom) включает последние стабильные версии каждой библиотеки.
• beta (-bom-beta) включает бета-, релиз-кандидаты (RC) или стабильные версии каждой библиотеки.
• alpha (-bom-alpha) включает альфа-, бета-, RC- или стабильные версии каждой библиотеки.
Версия определяются добавлением суффикса -alpha и -beta к имени артефакта. У стабильной версии его нет.
Какие библиотеки имеют BOM-версию
Посмотреть список можно на специальной странице в каталоге артефактов Maven. Среди них:
• Compose
• Firebase
• Kotlin
• Coroutines
• Koin
• Koin Annotations
• Okhttp
• JUnit 5
• Mockito
Если нажать на номер версии и отмотать до вкладки Managed Dependencies, можно увидеть список всех зависимостей, входящих в BOM.
Какую Activity использовать в Android
В Android четыре часто используемых класса активити:
• Activity
• ComponentActivity
• FragmentActivity
• AppCompatActivity
По иерархии идут последовательно. Activity – базовый класс. ComponentActivity наследует androidx.core.app.ComponentActivity, который нельзя использовать в коде. Добавлен гуглом как промежуточный слой между android.app.Activity и androidx.activity.ComponentActivity, чтобы менять код без поломок. Далее идут FragmentActivity и AppCompatActivity.
Activity
Базовый класс для создания активити в Android.
• Управляет жизненным циклом.
• Отображает UI (setContentView, findViewById).
• Обрабатывает действия пользователя (onBackPressed).
• Запускает другие компоненты через Intent, получает результаты.
• Сохраняет и восстанавливает состояние (onSaveInstanceState, onRestoreInstanceState).
• Настраивает окно и тему (getWindow, setTheme).
• Получает доступ к ресурсам и конфигурации (getResources, onConfigurationChanged).
ComponentActivity
Добавляет поддержку компонентов AndroidX.
• Поддерживает LifecycleOwner, подписывается на изменения (LifecycleObserver).
• Сохраняет и восстанавливает состояние (SavedStateRegistry).
• Управляет ViewModel (getViewModelStore).
• Регистрирует обработчик кнопки «Назад» (OnBackPressedDispatcher).
• Отображает контент под SystemBars (enableEdgeToEdge).
• Получает результаты активити и пермишенов (registerForActivityResult).
• Устанавливает UI для Compose (setContent).
FragmentActivity
Работает с фрагментами.
• Управляет фрагментами (getSupportFragmentManager).
• Вызывает onAttachFragment, когда фрагмент присоединяется к активити.
• Передаёт результаты пермишенов во фрагменты (onRequestPermissionsResult).
• Обрабатывает результаты активити внутри фрагментов (onActivityResult).
• Сохраняет состояние фрагментов при изменении конфигурации.
• Поддерживает BiometricPrompt для биометрической аутентификации.
AppCompatActivity
Добавляет поддержку обратной совместимости.
• Управляет ActionBar и Toolbar, обрабатывает кнопку «Назад» (onSupportNavigateUp).
• Поддерживает обратную совместимость (AppCompatDelegate), позволяя использовать ActionBar, темы и стили MaterialComponents на старых андроидах (до API 21).
• Автоматически переключает тему (DayNight), подстраиваясь под настройки устройства или время суток.
• Меняет локаль приложения без перезапуска (setApplicationLocales).
Что использовать
• ComponentActivity – если UI на Compose.
• FragmentActivity – если UI на фрагментах.
• AppCompatActivity – если UI на фрагментах, меняется тема и нужна обратная совместимость.
• Activity – если не используются MaterialComponents, UI самописный, код на плюсах.
В Android четыре часто используемых класса активити:
• Activity
• ComponentActivity
• FragmentActivity
• AppCompatActivity
По иерархии идут последовательно. Activity – базовый класс. ComponentActivity наследует androidx.core.app.ComponentActivity, который нельзя использовать в коде. Добавлен гуглом как промежуточный слой между android.app.Activity и androidx.activity.ComponentActivity, чтобы менять код без поломок. Далее идут FragmentActivity и AppCompatActivity.
Activity
Базовый класс для создания активити в Android.
• Управляет жизненным циклом.
• Отображает UI (setContentView, findViewById).
• Обрабатывает действия пользователя (onBackPressed).
• Запускает другие компоненты через Intent, получает результаты.
• Сохраняет и восстанавливает состояние (onSaveInstanceState, onRestoreInstanceState).
• Настраивает окно и тему (getWindow, setTheme).
• Получает доступ к ресурсам и конфигурации (getResources, onConfigurationChanged).
ComponentActivity
Добавляет поддержку компонентов AndroidX.
• Поддерживает LifecycleOwner, подписывается на изменения (LifecycleObserver).
• Сохраняет и восстанавливает состояние (SavedStateRegistry).
• Управляет ViewModel (getViewModelStore).
• Регистрирует обработчик кнопки «Назад» (OnBackPressedDispatcher).
• Отображает контент под SystemBars (enableEdgeToEdge).
• Получает результаты активити и пермишенов (registerForActivityResult).
• Устанавливает UI для Compose (setContent).
FragmentActivity
Работает с фрагментами.
• Управляет фрагментами (getSupportFragmentManager).
• Вызывает onAttachFragment, когда фрагмент присоединяется к активити.
• Передаёт результаты пермишенов во фрагменты (onRequestPermissionsResult).
• Обрабатывает результаты активити внутри фрагментов (onActivityResult).
• Сохраняет состояние фрагментов при изменении конфигурации.
• Поддерживает BiometricPrompt для биометрической аутентификации.
AppCompatActivity
Добавляет поддержку обратной совместимости.
• Управляет ActionBar и Toolbar, обрабатывает кнопку «Назад» (onSupportNavigateUp).
• Поддерживает обратную совместимость (AppCompatDelegate), позволяя использовать ActionBar, темы и стили MaterialComponents на старых андроидах (до API 21).
• Автоматически переключает тему (DayNight), подстраиваясь под настройки устройства или время суток.
• Меняет локаль приложения без перезапуска (setApplicationLocales).
Что использовать
• ComponentActivity – если UI на Compose.
• FragmentActivity – если UI на фрагментах.
• AppCompatActivity – если UI на фрагментах, меняется тема и нужна обратная совместимость.
• Activity – если не используются MaterialComponents, UI самописный, код на плюсах.
Теперь в роадмапе будут складироваться решения алгоритмических задач в сервисе CodeRun от Яндекса. Это онлайн-тренажер с задачами по направлениям: фронтенд, бэкенд, аналитика данных, машинное обучение и мобильная разработка.
Как и на LeetCode, задачи делятся на три уровня сложности, содержат условие и ограничения по времени и памяти. Но сложность здесь значительно выше – ориентирована на олимпиадников.
Входные данные передаются не через параметры функции, а вводятся через консоль. Результат тоже нужно выводить в консоль. Проверить код перед отправкой нельзя.
Система ведёт две категории решений: отправленные и верные. Каждое решение проверяется на десятках тестов и может неожиданно провалиться, например, на 95-м. Ошибку при этом не указывают – догадайся сам. Поэтому важно учитывать любые возможные форматы входных данных.
• Средний элемент
• Самый дешевый путь
• Вывести маршрут максимальной стоимости
• Ход конём
• Поиск в глубину
• Компоненты связности
• Списывание
• Топологическая сортировка
• Поиск цикла
• Длина кратчайшего пути
• Блохи
• Значение логического выражения
• Гистограмма и прямоугольник
• Гоблины и шаманы
• Тупики
• Разложение в сумму кубов
• Расстояние по Левенштейну
• Космический мусорщик
• Распил брусьев
• Площадь комнаты
• Откуда достижима первая вершина
• Самое частое слово
• Номер появления слова
• Словарь синонимов
• Злые свинки
• Черепахи
• Инопланетный геном
• OpenCalculator
• Количество слов в тексте
• Кубики
#coderun@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM