ermolnik666
Kotlin puzzlers 2
Kotlin puzzlers
Правильный ответ после 10 комментариев
Жизнь IT-шника наоборот
Жизнь IT-шника наоборот
Представьте на секунду, как бы было, если бы в мире IT все шло вспять? Начинаешь карьеру седым синьором и заканчиваешь азбукой в песочнице.
Начинаем с сказочного отдыха
Твой банковский счет позволяет тебе валяться на пляже в тайланде и попивать тайский ром, закусывая стейком Вагю
Продолжаем максимальной синьорностостью
Ты начинаешь работу с уже набитым багажом знаний и опыта. Так сказать, младенец с мозгами профессора. Какой сенсей! Раздавать советы, вести за собой команды и не париться по пустякам, потому что ты уже все видел и все знаешь.
Возвращение к подростковым мечтам
По мере "омоложения" возвращается энтузиазм и кажется, что все возможно. Ты начинаешь пробовать, экспериментировать, воплощать в жизнь самые смелые идеи. В это время твои проекты — это что-то с чем-то, ведь ты и рискнуть не боишься.
Страсть юности
Когда ты достигаешь середины своего уникального пути, ощущения как от первой любви. Хочется учиться, делиться, вдохновлять и быть вдохновленным. Ты вдыхаешь жизнь
Не забудь подписаться на сообщество :)
Бесплатный курс по Android разработке Jetpack Compose
Всем привет, в продолжении моего Android Roadmap, курс по Jetpack Compose.
Мы в Android Academy подумали и решили, что стоит взять популярную тему, залезть в нее поглубже, хорошенько разобраться и поделиться своими знаниями. Так мы пришли к идее запуска нового курса!
О чём курс?
Как многие из вас догадались, мы выбрали Jetpack Compose. Как говорится: “Готовь сани летом, а телегу зимой”. Мы верим, что за Jetpack Compose будущее Android-разработки.
Курс бесплатный!
В новом курсе вас ждет новый формат: каждая тема состоит из лекции с теорией и практической части с пояснениями для закрепления изученного материала.
Также мы организовали сервер в Discord для обсуждения лекций, решения различных вопросов и просто to have fun. Мы пришлем ссылку на сервер после регистрации на курс.
Программа курса
Запланировано 7 лекций.
1. Compose Starter Pack
2. State
3. Animations
4. Navigation
5. Migration of existing app
6. UI Testing
7. Advanced state and side effects
Когда курс?
Стартуем в середине февраля! Курс пройдет с середины февраля по середину апреля.
Регистрация
Для регистрации напишите боту Oh My Event! в Telegram о том, что вы хотите к нам присоединиться.
Переходите по ссылке и следуйте инструкциям. Как только получите сообщение об успехе, вы в списках! Мы напишем вам о дальнейших шагах через бота.
Почему Android Academy?
Jetpack Compose от Android Academy — это больше, чем курс. Android Academy — это сообщество профессионалов своего дела, которые не только развиваются сами, но и помогают делать это другим. У нас есть такие курсы как Android Fundamentals, Android Advanced, серия встреч Interview Preparation и даже Mentors’ Club, выходящий далеко за рамки разработки под Android.
Какой итог?
Вы изучите основы Jetpack Compose на реальном приложении
Познакомитесь с огромным количеством экспертов
Станете частью драйвового комьюнити Android-разработчиков, где все рады помогать друг другу
Как стать Android разработчиком в 2023
И так, давайте начнем с того, что должен знать и уметь человек, чтобы стать Android разработчиком? Скиллсет будем смотреть по вот этому Roadmap
Язык. Kotlin
Основные компоненты Android
Верстка
Работа с сетью
Работа с БД
Работа с многопоточностью
Работа в фоне
Виды архитектур
DI
Анимации
Тестирование
GIT
Agile, таск-треккеры, документация
Далее будет разбор каждого из пунктов с курсами/книгами/материалами для изучения. Это будет моя личная субъективная подборка, не является рекламой)
Kotlin
Каждый год я делал подобные статьи и всегда писал, что нужно изучать Kotlin, с оговоркой, что есть Java и начинать нужно с нее и, кажется в 2023 году Java уже практически полностью потеряла актуальность в Android разработке. Проектов на Java уже не осталось, но на собеседованиях деды все еще любят поспрашивать "А как оно там работает?". Практической пользы в изучении Java стало меньше, но это все еще очень полезно для общего понимания.
И так, как изучать Kotlin? Есть два основных ресурса https://kotlinlang.org/ и его аналог на русском https://kotlinlang.ru/ . Для того чтобы изучать язык даже не потребуется компьютер, потому что у языка есть отличный Playground, который позволяет запускать программы в браузере и оттачивать свои навыки даже с мобильного телефона. Вам необходимо полностью проштудировать эти ресурсы
Так же очень полезно будет просмотреть этот видео-урок про Kotlin
В формате книги наиболее актуален "Kotlin in action" Дмитрий Жемеров, Светлана Исакова
Основные компоненты Android
Основных компонентов в Android 4 - это Activity, Service, Broadcast Receiver, Content Provider. Называются они основными поскольку они могут являться точками входа в ваше будущее приложение. Нам нужно разобраться что они делают и для чего они нужны.
Про работу Activity и прочих UI компонентов рекомендую это видео
Про работу Service - видео
Content Provider -- урок на StartAndroid и официальная документация
BroadcastReceiver -- урок на Fandroid
Со всеми компонентами нужно попрактиковаться и посмотреть как они работают
Верстка
Сейчас переломный момент -- существует два подхода к верстке: XML и Compose. В моменте, практически все проекты все еще написаны на XML и Compose сейчас можно встретить довольно редко в коммерческой разработке, но тут все динамично меняется и, думаю, к концу года уже большое количество компаний будет использовать оба подхода либо уже полностью перейдут на верстку через Jetpack Compose
Для изучения подхода к верстке через XML отлично подойдет это видео.
Для изучения Compose лучше всего подойдут официальные туториалы от Google, Видео-курс Алексея Гладкова, а так же вот такой репозиторий с кучей полезных ссылок для изучения Compose.
Работа с сетью
Существует несколько подходов к построению сетевого взаимодействия: REST, SOAP, RPC, GraphQL. В вашем проекте может использоваться любой, но чаще всего это будет REST. Обязательно нужно изучить базовые концепции этого подхода. Исчерпывающей статьи на эту тему у меня нет, поэтому тут придется погуглить и почитать все подряд для того, чтобы сформировались общие знания. Для более базового понимания как все это работает советую изучить Сетевую модель OSI
И так, на проекте у вас скорее всего будет REST и одна из основных Android-библиотек: либо Okhttp+Retrofit, либо Ktor.
Так же вам нужно будет изучить как работает сериализация в Android. В чем разница Serializable от Parcelable и попрактиковаться с одной из библиотек, которая позволяет сериализовать Json в Kotlin и наоборот. Библиотек много, но по факту все делают примерно одно и тоже, но с разной степенью эффективности. Названия библиотек -- Kotlin Serialization, Gson, Jackson. В целом, для изучения особой разницы нет -- берите любую
Работа с базой данных
В андроид есть две основные БД Sqlite (Room), Realm. Google продвигает библиотеку Room, а значит скорее всего на своей потенциальной работе вы скорее всего будете использовать именно его.
Базово этих знаний будет достаточно для разработки, если вы хотите понять как все это работает значительно глубже советую отложить себе в закладки книжку с кабанчиком. Небольшой спойлер -- для новичка она будет неподъемной, и вы будете возвращаться к ней и перечитывать еще несколько лет подряд, после того как найдете работу
Работа с многопоточностью
В Android есть три основных подхода к многопоточности: нативные Thread, RxJava, Kotlin Coroutines. Здесь вам нужно обязательно выучить базовые концепции многопоточности. Выбор между RxJava и Kotlin Coroutines довольно сложный, в идеале надо на базовом уровне уметь пользоваться обеими библиотеками, поскольку компании все еще используют разные подходы, и универсального решения тут нет.
Книга для изучения базовых концепций
Работа в фоне
Важно изучить способы запуска задач фоново через Service и Workmanager, методы обмена данными между этими задачами и основным приложением, а так же ограничения, которые есть в системе Android. Видео-урок на эти темы
Виды архитектур
Это самая холиварная тема, архитектур довольно много, универсального и правильного решения нет -- каждый развлекается как он хочет. Вам важно разобраться в базовых концепциях MVC/MVP/MVVM/MVI, понять как они работают и попрактиковаться в реализации. Видео-урок об основных архитектурах. После просмотра рекомендую зайти на Github и в просто скачать основные реализации по поисковым запросам MVP Android, MVVM Android, MVI Android etc. Так же нужно разобраться с основными концепциями SOLID, DRY, KISS, Clean Architecture и основными паттернами программирования
DI
В Android довольно много реализаций Dependency Injection: Dagger, Hilt, Koin, Toothpick, ручное создание DI через фабрики. Я считаю, что правильнее всего разобраться с Dagger, это наиболее сложная реализация, но если вы поймете эти концепции, разобраться как работают другие библиотеки -- труда не составит
Ссылочки -- Обзорное видео по основным DI библиотекам, Курс по Dagger 2, Видео об внутреннем устройстве Dagger 2
Анимации
Чаще всего эту тему опускают, потому что в большинстве компаний нет времени на укарашалки в виде анимаций и, скорее всего, для старта можно эту тему изучать и вернуться к ней чуть позже, но, в любом случае, моя задача предоставить материалы для изучения
Тестирование
Аналогично предыдущей теме, с написанием Unit/UI тестов вы стоклнетесь только, если придете в достаточно крутую компанию, которая уделяет время качеству приложений. В небольших командах на 2-5 разработчика, чаще всего написание тестов экономически нецелесообразно, поэтому в очень многих компаниях тесты практически не пишут
GIT
Обычно для начала работы достаточно разобраться с базовыми операциями -- clone, pull, checkout, add, commit, push, cherry-pick. Просто заводим приватный репозиторий на Github и пробуем выполнять все команды
У Git-a есть прекрасная документация, где есть абсолютно все, что нужно
Agile, таск трекеры, докментация и тд
Чаще всего у компаний свое представление и реализация Agile/Scrum, поэтому об этом вам скорее всего уже расскажут, после того как вы устроитесь на работу. Базовые концепции Scrum можно прочитать вот в этой книжке
Либо в более короткой версии Scrum guide
Таск треккеры, сервисы документации -- некоторые компании требуют чтобы у вас был опыт работы с Jira, Confluence, Trello и тд. Какой в этом практический смысл -- не знаю, вся задача разработчика при работе с таск-трекером это своевременно двигать задачки из колонки слева в колонки справа. Какие-то более сложные настройки на старте вам все равно не доверят, поэтому советую просто запустить любую демо версию таск-трекера и посмотреть какие функции у него есть. По сервисам документации -- аналогично, вести в них документацию не сложнее, чем писать ее в Word
Практика
И теперь самое важное, мы изучили все теоретические материалы и теперь нам нужно отточить практические навыки. Работодатель будет требовать от вас примеры работ, но где их взять? Начать стоит с разработки стандартных приложений -- Cinema App, Weather App, Currency Converter etc. Для этого идем на Behance (либо любой другой сервис с дизайн макетами), вводим там одно из вышеперечисленных названий и ищем макеты. Находим открытую API платформу, ссылок тут уже не будет -- если вы изучили все вышеперечисленное и дошли до этого момента, то скорее всего вы справитесь с этой задачей без моей помощи :)
Берем API, берем макеты и начинаем кодить! Пробуем реализовывать разные подходы, все это оставляем в своем портфолио на Github, когда вы пойдете на собеседование и вас попросят реализовать тестовое задание, то у вас скорее всего уже будет готовая реализация на их задачу и вы сразу же будете в более выгодном положении на фоне других кандидатов.
По ходу изучения всего этого материала, вы, однозначно, столкнетесь с кучей разнообразных проблем -- это нормально, все мы когда-то сидели и тупили над элементарными вещами. Главное делать, практиковаться и не останавливаться
Для тех, кто дочитал до конца, хотел бы запустить небольшой эксперимент: вы делаете любой тестовый проект -- я помогаю его вам доработать до приемлемого состояния. Не знаю какой будет спрос, но на всякий случай ограничиваю первыми пятью, кто разработает приложение и напишет мне -- https://t.me/se_development :)
Новый год еще не наступил, а кот уже готов
Нахрюкался и намяукался
Люди, как вы не справляетесь?
Парень, 24 года
После института устроился по специальности инженером по автоматизации производства, спустя примерно год понял, что-то не то — не моё это.
Помимо фул тайма на основной работе начал усиленно пробовать все что можно: собирал сайты на cms-ках вордпрессе, джумле, поисковая оптимизация под них. Потом решил заняться мобильной разработкой, тут тоже попробовал все что можно: iOS android, unity3d, react native и под каждую платформу есть завершённые проекты в сторах.
На второй год начал фрилансить по мобильной разработке, то есть 160 Часов на основной и ещё 100-160 Часов фриланса, в среднем выходило около 250 Часов работы в месяц на протяжении всего 2017 года.
Сейчас работаю руководителем разработки мобильных приложений.
Живу в регионах, катаю в Москву. Встаю в 5.30, домой приезжаю в 20.00
По дороге на работу и обратно успеваю потестить новые технологии, почитать профильную литературу.
Ложусь спать обычно в 11, до этого времени достаточно энергии на все.
Может вас просто не прет от того, чем вы занимаетесь? Может стоит попробовать себя в чем-то другом?