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

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

Get Started. It's Free
or sign up with your email address
Профессия инженер by Mind Map: Профессия инженер

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

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

2.1. SOLID

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

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

2.4. И наконец понимание того, что не все они нужны/важны

3. Алгоритмы

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

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

3.3. Программирование на hackerrank.com или leetcode.com

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.1.6. Swift memory management

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.1.4. NSCache

4.4.1.5. FileManager

4.4.2. IPA security

4.4.3. App Extensions

4.4.3.1. NotificationServiceExtension

4.4.3.2. Share widget extension

4.4.4. Memory

4.4.4.1. ARC

4.4.4.2. retention cycle, weak, unowned

4.4.5. compiler annotations

4.4.6. Obj-C

4.4.6.1. method swizzling

4.4.6.2. reflection

4.4.6.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.1.3. Working with Fastlane Match

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.3. CI/CD

4.5.3.1. fastlane

4.5.3.1.1. pre-main/post-main launch steps

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.5.5. MVP, MVVM, VIPER

4.6. Architecture

4.6.1. Clean architecture

4.6.2. Modular architecture

4.7. Product development

4.7.1. Firebase Analytics

4.7.2. Push notifications

4.7.3. A/B testing

4.8. Deep linking

4.9. Functional

4.9.1. RxSwift

4.9.2. RxCocoa

4.9.3. Combine

4.9.4. Unidirectional architectures

4.9.4.1. ReSwift

4.9.4.2. Redux

4.10. Code sharing

4.10.1. creating private Pod

4.10.2. creating Carthage library

4.10.3. creating embedded CocoaTouch Framework

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.1.1. 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.2.6. High level знания процессора, ядер, кэша и оперативной памяти

6.3. Tooling

6.3.1. написание Bash скриптов

6.3.2. Написание Python скриптов

6.4. Internet

6.4.1. TCP/IP suite

6.4.1.1. Понимание HTTP/s

6.4.1.2. Отличие TCP vs UDP

6.4.1.3. Базовые знания TCP/IP suite в виде слоев программного обеспечения

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

6.4.2.1. Что такое DNS и мировая сеть DNS

6.4.2.2. У тебя 5 минут. Расскажи что происходит, когда я вбиваю yandex.ru

6.4.3. Network security

6.4.3.1. Spoofing

6.4.3.2. MITM attacks

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.5.1. Ведение/участие в совещаниях, этикет совещаний

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