Skip to content

Instantly share code, notes, and snippets.

@caiocesarf
Created April 15, 2020 13:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save caiocesarf/04f6ccc9da7a64d2b6a8738a170cad33 to your computer and use it in GitHub Desktop.
Save caiocesarf/04f6ccc9da7a64d2b6a8738a170cad33 to your computer and use it in GitHub Desktop.
# **Android Developer Roadmap**
> Disclaimer: Basically, each skill with its branches was assigned the
> suffix _Basic_, _Intermediate_ or _Advanced_ to determine the level of
> knowledge, in addition to the type (_Practical_ or _Theoretical_). For
> higher levels of professional qualification (Middle / Senior), practical
> knowledge is assumed in the skills of the lower levels. Example: A
> junior developer should not necessarily have practical knowledge of
> the design pattern Delegate, he could only be theoretical - having
> seen it in analysis, for example. But a middle developer would need
> not only to know theoretically but to have already implemented a
> Delegate design pattern. Therefore, to master something, it is not
> only necessary to know, but to apply the concept.
## **Junior Level**
Support application development while increasing your knowledge of the platform, development environment and language. It has more focus on analysis, development and resolution of problems of low and medium complexity, with little or no involvement in structural changes of the application. Requires assistance from senior and middle developers to make decisions.
- Language
-
- Data Structure
- Stack (Practical)
- Queue (Practical)
- Tree (Theoretical)
- Dictionary (Theoretical)
- [Design Patterns](https://sourcemaking.com/design_patterns)
- Singleton (Theoretical)
- Strategy (Theoretical)
- Delegate (Practical)
- Data Persistence
- Keyed Archiver
- Serialize
- Sqlite
- Queries (Practical)
- INSERT
- DELETE
- UPDATE
- SELECT
- ALTER
- Software Architecture Styles (Practical)
- MVC
- MVP
- REST
- Software Architecture Principles
- Agile Development
- [Frameworks](https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html#//apple_ref/doc/uid/10000183i)
- UI
- Foundation
- Application Construction
- Human Interface Guideline
- Storyboard
- Interface Builder (Practical)
- Assets
- Constraints
- View Life-cycle
- Development Tools
- [Android Studio](pratical)
- [Debugg]
- Git (Practical)
- clone
- pull
- add
- commit
- push
- reset
- status
-
- Carthage
- Programming Paradigms (Practical)
- Structured
- Object Oriented
- Communication
- HTTP Protocol
- JSON
- XML
## **Middle Level**
Development of complete applications, which includes tests and integration with other platforms. He has a comprehensive knowledge of the platform and total language, requires improving his knowledge of architecture. It requires little help, being able to make decisions alone at the code level, but requiring assistance from seniors to make structural changes in projects.
- Languages
- [Java/Kotlin (Theoretical)]
- Casting
- [Dependency Injection]
- Operational System
- Database
- [CoreData]
- Realm
- Cloud
- Firebase
- [Design Patterns](https://sourcemaking.com/design_patterns) (Theoretical)
- [Observer](https://www.swiftbysundell.com/articles/observers-in-swift-part-1/)
- Chain Of Responsibility
- Adapter
- Builder
- Factory Method
- Prototype
- Software Architecture Styles
- MVVM (Theoretical)
- VIPER (Theoretical)
- Software Architecture Principles
- [S.O.L.I.D.](http://www.butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod)
- Frameworks
- UI
- Application Construction
- Programmatically (Practical)
- Constraints
- Multi-touch Event Handling
- Push Notifications
- Deep Link
- Development Tools
- Android Studio
- Gradle
- Git (Practical)
- log
- cherry pick
- rebase
- [rebase interactive](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History)
- pick
- squash
- [stash](https://git-scm.com/docs/git-stash)
- push
- pop
- [bisect](https://git-scm.com/docs/git-bisect)
- revert
- Continuous Integration
- Fastlane
- Jenkins
- Bitrise
- SonarQube
- Analytics
- CrashAnalytics
- [Tests]
- Junit
- Code Coverage
- UI Test
- [Accessibility](https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/iPhoneAccessibility/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008785)
- Mocks
- Quick
- Nimble
- Programming Paradigms (Practical)
- Functional
- [Reactive]
- [Concorrente]
- Communication
- MQ
- Socket
- TCP/IP Protocol
## **Senior Level**
Complete application development with autonomy. Knowledge reference about the platform, architecture and language. Deals with bug fixes and construction of complex solutions and achieve strategic alignment with project applicants.
- Languages
- [Creating Frameworks]
- [Apple Style Guide](https://help.apple.com/applestyleguide/)
- Design Patterns
- Visitor
- Bridge
- Memento
- Flyweight
- Façade
- Decorator
- Composite
- Command
- Compatibility Management
- Software Architecture Principles
- Clean Code
- Clean Architecture
- The Pragmatic Programmer
- Efficiency
- [Energy]
- [Memory]
- Error Analysis
- Dump Analysis
- App Store
- Review Guideline
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment