Профессия инженер

Карьерная карта разработчика с упором на мобильную разработку

Начать. Это бесплатно
или регистрация c помощью Вашего email-адреса
Rocket clouds
Профессия инженер создатель Mind Map: Профессия инженер

1. Паттерны проектирования

1.1. SOLID

1.2. Понимание каждого паттерна

1.3. Умение применять в платформенном коде

1.4. Понимание того, что не все они нужны/важны

2. Алгоритмы

2.1. Криптография

2.2. Сортировка

3. Устройство процессора/ядра/диска

4. iOS разработка

4.1. Swift skills

4.1.1. Generics

4.1.2. protocols, extensions

4.1.3. what's new in Swift version XYZ

4.1.4. Server-side swift

4.1.5. Basic Swift SOLID

4.2. UIKit

4.2.1. UIControls, UIScrollView subclasses

4.2.2. Custom UI Transitions

4.2.3. Percent-based transitions

4.2.4. 60 fps scrolling

4.3. CoreAnimation

4.3.1. Layer manipulations, shadows, gradients

4.3.2. spring animations

4.3.3. Drawing custom layers

4.4. Data layer

4.4.1. Data

4.4.1.1. CoreData

4.4.1.2. UserDefaults

4.4.1.3. Realm

4.4.2. IPA security

4.4.3. App Extensions

4.4.4. Memory

4.4.4.1. ARC

4.4.4.2. retention cycle, weak, unowned

4.4.4.3. compiler annotations

4.4.5. Obj-C

4.4.5.1. method swizzling

4.4.5.2. reflection

4.4.5.3. InterOperability

4.5. QA & DevOps

4.5.1. Code Signing

4.5.1.1. Provisioning profiles

4.5.1.2. Certificate management

4.5.2. Xcode

4.5.2.1. how Xcode-build works

4.5.2.2. Schemes, Targets, Configs

4.5.2.3. Build Phases

4.5.2.4. pre-main/post-main launch steps

4.5.3. CI/CD

4.5.3.1. fastlane

4.5.3.2. Gitlab CI

4.5.3.3. Shell scripting

4.5.3.4. Релизная политика приложения

4.5.4. Testing

4.5.4.1. Unit-testing with XCTest

4.5.4.2. RxTest

4.5.4.3. XCUITest

4.6. Architecture

4.6.1. Clean architecture

4.6.2. Modular architecture

4.6.3. MVP, MVVM, VIPER

4.7. Product development

4.7.1. Firebase Analytics

4.7.2. Push notifications

4.7.3. A/B testing

4.7.4. Deep linking

4.8. Functional

4.8.1. RxSwift

4.8.2. RxCocoa

4.8.3. Combine

4.9. Code sharing

4.9.1. creating private Pod

4.9.2. creating embedded CocoaTouch Framework

4.9.3. creating Carthage library

5. Android разработка

5.1. Java & Kotlin

5.2. Data Layer

5.2.1. Database

5.2.1.1. Room

5.2.1.2. Realm

5.2.1.3. SQLite

5.2.2. ContentProvider

5.2.3. SharedPreference

5.2.4. Service

5.3. Architecture

5.3.1. MVC, MVP, MVVM

5.3.2. Clean Architecture

5.3.3. Modular Architecture

5.4. QA & DevOps

5.4.1. CI/CD

5.4.2. Gradle

5.4.3. Testing

5.4.3.1. Unit Testing

5.4.3.2. Espresso

5.5. UI

5.5.1. Animations

5.5.2. Transitions

5.5.3. Custom View

5.5.4. XML

5.5.5. Notification

5.6. Functional

5.6.1. RxJava

5.7. Product development

5.7.1. Firebase Analytics

5.7.2. Push notifications

5.7.3. A/B testing

5.7.4. Deep linking

6. Hard Engineering

6.1. Git

6.1.1. Политики ветвления

6.1.1.1. Git Flow

6.1.1.2. Trunk-based development

6.1.2. Merge vs Rebase

6.1.3. How to undo things in git

6.1.4. Git submodules & subtrees

6.2. OS

6.2.1. Понимание процесс/поток

6.2.2. Heap

6.2.3. Что происходит в системе, когда я запускаю ABC

6.2.4. Виртуальная память

6.2.5. Компилятор vs интерпретатор

6.3. Tooling

6.3.1. unix commands

6.3.2. Shell scripting

6.3.3. Python/Ruby

6.4. Internet

6.4.1. TCP/IP suite

6.4.2. Как работает интернет

6.4.3. Информационная безопасность

6.5. Проектирование

6.5.1. Блок схемы

6.5.2. State machines

6.5.3. Dependency and ownership graphs

6.6. Командная работа

6.6.1. Навык код ревью

6.6.2. Проведение технического интервью

6.6.3. Написание candidate review

6.6.4. Технический менторинг

7. Soft Engineering

7.1. Оценивание/приоритизация задач

7.2. Навык декомпозиции задач, отрисовка схем

7.3. Публичные выступления на техническую тему

7.4. Английский язык

7.5. Умение писать анализы, статей

7.6. Написание технических требований

7.7. Ведение/участие в совещаниях, этикет совещаний

7.8. Ведение профессионального журнала