Android Mobile | YeaHub
488 subscribers
285 photos
21 videos
472 links
Теория, подготовка к интервью и курсы для Android разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
Forwarded from YeaHub
👩‍💻 Android Разработчик | Полный разбор профессии

В этом видео мы подробно разбираем профессию Android-разработчик: кто это, чем занимается, какие навыки нужны и сколько можно зарабатывать. Наш гость — сеньор Android-разработчик с опытом работы в Яндекс, МТС и Wildberries, который делится личным опытом: как пройти путь от новичка до ведущего специалиста всего за 5 лет.

Вы узнаете:
— Что делает Android-разработчик и как выглядит его рабочий день
— Какие качества и навыки нужны для успешного старта
— Сколько времени потребуется на обучение и с чего лучше начинать
— Какие инструменты и технологии нужно знать
— Топ-3 ресурса для старта Android-разработки
— Советы для первого проекта и развития карьеры

Если вы хотите стать Android-разработчиком или просто интересуетесь IT-профессиями, это видео точно для вас!

Подпишитесь на канал, чтобы не пропустить новые видео про карьеру в IT и обучение программированию.

https://yeahub.ru/ - тренажер для подготовки к собеседованиям
https://t.me/yeahub_android_mobile - канал YeaHub в Android

https://t.me/gulyaev_it - телеграмм-канал Антона об Android и IT
https://www.youtube.com/@gulyaev_it - ютуб-канал Антона

#it #android #kotlin #программирование #разработка #собеседование #трудоустройство

https://www.youtube.com/watch?v=ss5cjY7SPXY
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥2👍1
#Собес #docker_build #dockerfile #image
🤔 Как создать Docker-образ с использованием Dockerfile?

💬 Кратко:

Чтобы создать Docker-образ, необходимо использовать команду docker build, указав путь к каталогу, содержащему Dockerfile. Например, docker build -t myimage:tag . создаст образ с именем myimage и тегом tag из текущего каталога.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#tool #графы
📚 Терялся в собственном коде?

Встречай Gitvizz, инструмент, который мгновенно превращает кодовую базу в интерактивные графы, чтобы наглядно увидеть, как всё связано

Перейти к материалу

👉 База вопросов 👉 Новости
#Собес #operator_overloading, #operator #custom_types
🤔 Объясните концепцию перегрузки операторов в Kotlin.

💬 Кратко:

Перегрузка операторов в Kotlin позволяет определять, как операторы (например, +, -, *) работают с пользовательскими классами. Для этого используется модификатор operator перед функцией, которая описывает поведение оператора. Это улучшает читаемость кода и делает пользовательские классы более интуитивными в использовании.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Полный гайд на LIVECODING для любого языка программирования 📹

На 60-80% собеседований проходит секция лайвкодинга - решения задачи в прямом эфире. Лайвкодинг разделяется на алгоритмы и платформенные задачи. Сам план решения к ним похожий. На своём опыте заметил, что у большинства ребят, которые приходят что с опытом, что без опыта, есть проблемы как в подходе к решению таких задач, так и на разных этапах решения задачи.

Я выделил все в один большой гайд, просмотрев и следуя которому, у тебя получится:
1. Правильно вести себя на лайвкодинге
2. Подготовиться к лайвкодингу
3. Проверить себя перед походом на собеседование


https://www.youtube.com/watch?v=-tbPNuLaWuc

Авторская диаграмма полного гайда на лайвкодинг

🚀 Пост Guru Android: @kishmyak
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#Собес #data_class #kotlin #android

🤔 Senior Android-разработчик (Kotlin) в компанию АВТОТЕХ

Техническое собеседование. Осень 2024. Просил 300-350к. Опыт в резюме 5 лет. Было много вопросов, которые основаны на реальных кейсах.

💬 Вопросы:

- В каких ситуациях стоит применять корутины?

- В чём разница между Flow и LiveData, как ту же логику организовать?

- Что такое «зомби-процессы» и как они соотносятся с потоками (threads)?

- Как корутины ведут себя при использовании бесконечного цикла (например, while(true))?

- В чём разница между inline, noinline и crossinline?

👉 Все вопросы из этого собеседования (22)

📣 Хочешь больше собесов?
Подпишись на наш главный канал
1
#Собес #git #rebase #commit
🤔 Как работает git rebase?

💬 Кратко:

git rebase перемещает одну ветку поверх другой, копируя коммиты и переписывая их базу. Он берёт набор коммитов, начиная с точки ветвления, и последовательно применяет их к новой базе, создавая новые коммиты с теми же изменениями, но другим родителем. Это позволяет получить линейную историю без merge-коммитов.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#course #ии
📚 Мини-курс о применении ИИ в разработке

Он рассчитан на начинающих, пройти его можно всего за час. Конспекты доступны на русском языке

Перейти к материалу

👉 База вопросов 👉 Новости
#Собес #inline #noinline #crossinline
🤔 В чём разница между inline, noinline и crossinline?

💬 Кратко:

inline заставляет компилятор встраивать тело функции и её лямбд в место вызова, избавляя от создания объектов. noinline отключает инлайнинг для конкретного параметра-лямбды внутри inline-функции. crossinline запрещает использование return из лямбды, гарантируя, что она не будет немедленно вызывать выход из родительской функции.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
1
Чистая архитектура экрана 🤩

Архитектура — это набор правил и подходов, которые определяют, как строить приложения. Хорошая архитектура позволяет бизнесу сократить расходы на разработку, поддержку и исправление продукта.

Разделение на слои

Чистая архитектура подразумевает разбивку приложения на слои, каждый из которых отвечает за свою функциональность. Это подход способствует соблюдению принципов SOLID, четко определяет зоны ответственности и уменьшает стоимость изменений.

Структура слоёв в Android-приложении

В контексте Android-приложений распространённая архитектура основывается на трёх слоях:

1. Presentation (Представление): отвечает за пользовательский интерфейс и взаимодействие с пользователем.
2. Domain (Доменная логика): управляет бизнес-логикой и функциональностью системы.
3. Data (Данные): обеспечивает доступ к внешним системам и хранение данных.


Аналогия с автомобилем 🛞

Для лучшего понимания, рассмотрим пример с автомобилем:

- Presentation — руль, педали и приборная панель, которые позволяют водителю взаимодействовать с автомобилем.
- Domain — двигатель, трансмиссия, коробка передач и колёса, которые обеспечивают движение и функциональность автомобиля.
- Data — системы подачи воздуха и топлива, необходимые для работы двигателя.

Взаимозависимость слоёв

В Android-архитектуре:

- Presentation слой зависит от Domain слоя, так как пользовательский интерфейс должен вызывать бизнес-логику для выполнения действий.
- Data слой также зависит от Domain слоя, предоставляя ему доступ к данным и внешним системам.

Наиболее важным слоем является Domain, поскольку его изменение приведёт к изменению функциональности приложения. Поэтому доменный слой должен быть независим от других слоёв. 

Принцип инверсии зависимостей (D из SOLID)

Для реализации такого подхода используется принцип инверсии зависимостей (Dependency Inversion Principle). Это позволяет нам снижать связность между компонентами, что, упрощает тестирование и поддержку кода.

Таким образом, соблюдение чистой архитектуры и принципа разделения на слои в процессе разработки Android-приложений обеспечивает гибкость, масштабируемость и лёгкость в обслуживании.

На скрине приложил базу, которая основана на всей информации из поста 👨‍💻

🚀 Пост Guru Android: @kishmyak
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #kotlin #sealed #class

🤔 Middle Android-разработчик (Kotlin) в компанию Ютека

Техническое собеседование. Осень 2024. 200к+. Опыт в резюме 3 года 3 месяца. В конце был большой блок лайвкодинга.

💬 Вопросы:

- Чем Kotlin выигрывает у Java в контексте Android-разработки?

- Что такое sealed-классы и для чего они применяются?

- Как ту же логику организовать через LiveData и в чём отличие от Flow?

- При использовании Flow, какой Dispatcher вы бы выбрали для работы с UI и для фоновых задач?

- Какими способами можно запустить корутину в Kotlin?

👉 Все вопросы из этого собеседования (11)

📣 Хочешь больше собесов?
Подпишись на наш главный канал
1
#Собес #git_status
🤔 Что делает команда git status?

💬 Кратко:

Команда git status показывает текущее состояние репозитория. Она отображает информацию о файлах, которые были изменены, добавлены в индекс или остаются незамеченными. Это помогает понять, какие шаги нужно выполнить дальше.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
1
#tool #графы
📚 Терялся в собственном коде?

Встречай Gitvizz, инструмент, который мгновенно превращает кодовую базу в интерактивные графы, чтобы наглядно увидеть, как всё связано

Перейти к материалу

👉 База вопросов 👉 Новости
#Собес #flow #state #shared
🤔 Чем SharedFlow отличается от StateFlow с точки зрения поведения и буферизации?

💬 Кратко:

StateFlow хранит только последнее значение и гарантирует его получение новыми подписчиками. SharedFlow может буферизировать несколько значений и не имеет обязательного начального состояния.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
👍1
Threads | Потоки в Kotlin & Java

Заметил, что эта тема вызывает сложности на работе и на собеседованиях как у начинающих, так и у опытных разработчиков. Также увидел закономерность, что эту тему приходится объяснять на личных консультациях каждому ученику.

Записал видео-лекцию "Полный гайд на потоки Kotlin/Java для собеседования", где подробно рассказываю о всем, чтобы у тебя сформировалось понимание этой темы:

1. Как работают в связке процессор + ОС + JVM
2. Что такое JMM
3. Проблемы потоков и как их решить на практике
4. Для чего в android-разработке используются потоки

🚀 Пост Guru Android: @kishmyak
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
#Собес #kotlin #class #dispatcher

🤔 Middle+ Android разработчик в компанию Сбер

Техническое собеседование. Лето 2024. Вилка: 300к+. Опыт в резюме: 3+ года. Проект: СберЗвук.

💬 Вопросы:

- Почему в проекте были только UI-тесты? Как покрывали бизнес-логику?

- Как вы тестировали UI-компоненты на Compose? Какие фреймворки применяли?

- Как избежать deadlock/livelock при работе с блокировками?

- Когда synchronized недостаточно для предотвращения гонки потоков?

- Какие примитивы синхронизации (synchronized, Atomic, семафоры) вы использовали?

👉 Все вопросы из этого собеседования (17)

📣 Хочешь больше собесов?
Подпишись на наш главный канал
#Собес #git_clone
🤔 Что делает Git-клон?

💬 Кратко:

Команда git clone создаёт копию существующего репозитория, включая всю историю изменений, файлы и ветки. Это используется, чтобы начать работу с проектом, который уже находится в удалённом репозитории.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#tool #графы
📚 Терялся в собственном коде?

Встречай Gitvizz, инструмент, который мгновенно превращает кодовую базу в интерактивные графы, чтобы наглядно увидеть, как всё связано

Перейти к материалу

👉 База вопросов 👉 Новости
Forwarded from YeaHub
[Версия 1.3.0] - Обновление платформы

Мы продолжаем развивать YeaHub, чтобы сделать обучение ещё удобнее, эффективнее и интереснее. В этом обновлении — важные и давно ожидаемые улучшения 👇

🔹 Навыки и ключевые слова из вакансий HH
Мы запустили сервис, который помогает прокачать резюме с помощью популярных навыков и ключевых слов, встречающихся в вакансиях. Это поможет вам выше ранжироваться в поиске среди кандидатов и увеличит конверсию откликов.
https://yeahub.ru/hh-analytics?page=1&mode=skills&specialization=11

🔹 Исправления и улучшения
Мы учли вашу обратную связь: исправили баги, улучшили интерфейс и сделали работу с платформой ещё комфортнее 🧠

🔥 Скоро
1. Сервис Лайвкодинга с реальными задачами с собеседований

👉 Обучайтесь, общайтесь, растите вместе с https://yeahub.ru

#release #news #update #yeahub
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
#Собес #ci-cd #bitrise #automation
🤔 Как вы автоматизировали CI/CD в Bitrise? Какие шаги включал пайплайн?

💬 Кратко:

Типичные шаги:

- Сборка (Gradle).
- Тесты (Unit, UI).
- Подписание APK.
- Деploy в Firebase App Distribution.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
1
Что отличает хорошего инженера от плохого? 👨‍💻

Хороший инженер использует технологию как инструмент для решения задачи, здесь очень уместна аналогия на человека который работает руками. Он забивает гвоздь молотком, а не отверткой, потому что он знает, что молотком это будет сделать быстрее.

Хороший инженер решает задачи бизнеса, поэтому находит баланс между качеством и скоростью разработки, а также использует нужные инструменты и проектирует архитектуру.
Для плохого инженера добавить новую технологию, потому что она “хайповая“ - норма. Или подстелить соломку везде и опоздать с дедлайном на месяц - тоже.


Почему важно использовать подходящие инструменты и находить баланс? Потому что так ты сможешь сэкономить свое время, а также быть более ценным → твоя команда сделает больше → бизнесу будет выгодно больше инвестировать в твою команду → ты получишь больше денег, PROFIT

А как понять какую технологию использовать и насколько проработать архитектуру? Здесь нужно опираться на свой опыт или опыт коллег, развивать свою насмотренность, тогда ты будешь понимать где находятся повышенные риски и знать, как их обойти.

🚀 Пост Guru Android: @kishmyak
Please open Telegram to view this post
VIEW IN TELEGRAM