Ранее рассмотренные темы: грейды общими словами, хард-скиллы, грейды full-stack и back-end разработчиков, грейды front-end программистов
Взглянем на последний пример: грейды android разработчика с языками: Java, Kotlin
Итак, с разбивкой по уровням
- Джуниор
Комментарии: принимаем на этот уровень новичков без значимого опыта. На этот уровень не подымаются по системе грейдов.
- Джуниор+
- Средний уровень знания в следующих технологиях и инструментах: Kotlin / Git / Android SDK
- Базовое понимание Activity, Service, Broadcast Receiver, Content Provider
Комментарии: по сути, это основы. С чего начинают android разработчики приложений.
- Джуниор++
- Разбирается в основном проекте
- Начальные знания языка Java
- Сильная экспертиза в следующих технологиях и инструментах:
- REST API, Firebase, ViewModel, Lifecycle, coroutines, Retrofit, Okhttp, Room, Flow / RxJava, xml
Комментарии: чтобы подняться на этот уровень, начинаем углубляться в android разработку. Разбираемся в самых необходимых библиотеках и подходах. Изучаем Java (уже считается легаси)
- Мидл
- Разбирается в основном проекте на уровне, что может пояснять бизнес процессы коллегам
- Помощь менеджерам в формировании более полных требований с технической точки зрения
- Уверенное знание Java и Kotlin
- Сильная экспертиза в следующих технологиях и инструментах: Dagger 2, Hilt, MVI, MVC / MVP / MVVM
- Базовое понимание Compose
- Создание модулей Dagger 2 или Hilt,
- Создание архитектурных компонентов в связке ViewModel + View или Presenter + View
Комментарии: Мидл разработчик должен обладать более высокими компетенциями, чем Джуниор. Он может принимать «решения». Например, разрабатывать архитектуру новых экранов с процессами. Так же, он более самостоятелен в работе и, постепенно, становится экспертом в своей области. Владеет более сложными технологиями. Значительно углубляемся в основные языки. Применяет подходы на практике
- Мидл+
- Приличная экспертиза по непрофильным android проектам. Уверенное выполнение задач
- Сильная экспертиза в следующих технологиях и инструментах: Android Jetpack, Gradle
- Уверенное знание Compose, Recomposition, State
- Созданы оптимизированные сборки приложений, с использованием инструментария обфускации ProGuard
- Знание и применение Unit тестов
- Придерживается принципов программирования: YAGNI (You Ain’t Gonna Need It)
Комментарии: Еще глубже погружаемся в разработку. Работаем с пакетными менеджерами и сборками. Экспертиза мидлов не ограничивается кодированием, т.е. активно применяет общепринятые принципы программирования и чистого кода
- Мидл++
- Разбираться в бизнес-процессах одного из непрофильных продуктов на уровне чтобы передать знания
- Сильная экспертиза в следующих технологиях и инструментах: Android runtime (art) and dalvik, Application security, Memory Management
- Умение использовать функционал Window Manager, Package Manager, Telephony Manager и Native C/C++ Libraries
- Необходимо выполнить одно из условий: «Написать таск с использованием HWAddressSanitizer» ИЛИ «Создать сервис по анализу и оптимизации расхода памяти» ИЛИ «Провести оптимизация приложения с использованием garbage collection»
- Выполненное условие должно привести к количественной оптимизациии в минимум 20%. Например, сервис оптимизирует количество запросов за одную сессию, уменьшив их на 20%. Или количество используемой оперативной памяти снижено на 20%.
- Придерживается принципам программирования: KISS (Keep It Simple, Stupid)
Комментарии: Более сложные технологии для android, которые увеличивают гибкость реализации задач. Вопросы хорошего кода, безопасного и понятного кода, который легко поддерживать. Огромная польза от ускорения приложений
- Сеньор
- Не менее 5 лет работы в программировании (включая предыдущий опыт)
- Сильная экспертиза в следующих технологиях и инструментах: Graphics architecture (Canvas, Custom View)
- Написан новый крупный компонет или приложение. Или сделан рефакторинг крупного приложения.
- Наставничество: ученик был повышен с Джуна+ или Джуна++ до Мидла
- Придерживается принципам программирования: DRY (Don’t Repeat Yourself)
Комментарии: преодолеваем новый рубеж (сеньор), усложняются требования, увеличивается отдача от программиста. В теории, можно изучить все предыдущие технологии и даже чуть попробовать их на практике, но без опыта, без большого количества рассмотренных задач, кандидат не сможет заслуженно называться сеньором. Так же, данный грейд подразумевает наставничество. Кроме опыта самого разработчика, наставничество приносит большую пользу компании
- Сеньор+
- Сильная экспертиза в следующих технологиях и инструментах: Multi-module architecture, HIDL
- Создан модульный компонент приложения
- Написана статья об этом компоненте на общедоступном айти ресурсе с большой аудиторией (habr или чтото подобное) от корпоративного аккаунта, на этом грейде или ранее
- Занимается релизами в проекте над которым работают 2+ человек
- Наставник 2+ человек, делает код ревью их кода
- Придерживается принципам программирования: SOLID
Комментарии: добавляем очень перспективные технологии, которые должны двинуть разработку за новые горизонты. Еще больше наставничества. А так же социальная активность от имени компании. Все в выигрыше.
- Сеньор++
- Сильная экспертиза в следующих технологиях и инструментах: Hardware abstraction layer, AIDL
- Создана полезная для проекта библиотека для Java/Kotlin приложений, опубликована на GitHub или аналогичном ресурсе
- Написана статья об этой библиотеке на общедоступном айти ресурсе с большой аудиторией (habr или чтото подобное) от корпоративного аккаунта, на этом грейде или ранее
- Наставничество: ученик был повышен с Мидла до Мидла++
Комментарии: еще больше взаимной пользы. И программисту и компании