랭귀지: 자바와 코틀린을 배우세요(코틀린을 필요하시다면). 코틀린은 functional programming. 개념이 들어가 있기 때문에 functional programming이 기본적인 개념에 대해 알아두시면 도움이 될 것 같구요. 스레딩에 대해서 잘 아시면 정말 좋구요. 코틀린을 하실거면 Coroutine 을 배우셔도 좋습니다. 자바의 경우는 Rx를 많이 쓰기 때문에 라이브러리지만 한번 익혀두면 두고 두고 사용하실 수 있습니다.
Data Structure + Alorithm: 기본적인 부분에 대해서는 공부를 하는 게 좋습니다. Data Structure는 자주 쓰는 Array, List, Map, Set, Linked List 정도는 잘 알아두는 것이 좋구요. Conconrrency를 지원하는 타입들에 어떤 것들이 있는 지 정도는 알아두시면 좋죠.
OOP: 기본적인 OOP의 원칙. 추상황, 일반화, 캡슐화 등등과 디자인 패턴 MVC, MVP, MVVM 등등의 개념. Clean Architecture까지 보시면 좋구요. 많이 사용되는 개념인 SOLID, 기본적으로 사용하게 되는 Dependency Injection 등도 봐두시면 좋겠네요.
Gang of Four의 25가지 디자인패턴까지 한번 봐두시면 금상첨화겠죠. 그리고 Gang of Four, Clean Code, Clen Architecture, Refactoring. 등등 많은 훌륭한 책들이 있습니다. 여력이 되신다면 읽어보시면 좋을 것같습니다.
안드로이드: 기본 컴포넌트, 액티비티, 프레그먼트, 서비스 등에 대해 잘 살펴보세요. 특히 라이프사이클은 복잡하면서도 꼭 알아야 되는 부분이므로 짚고 넘어가세요. 또한 안드로이드의 기본적인 특성들 (메인스레드, 백그라운드 스레드, 라이프사이클 등) 에 대해서 깊이 있게 파시면 좋을 것 같구요. 테스트 작성법도 익혀두시면 쓸모가 있을겁니다.
멀티모듈 프로젝트는 가능하시면 나중에 한번 해보시구요. 좀 더 최근 경향을 배우고 싶으시면 Kotlin을 이용한 Multiplatform Mobile이나 Jetpack Compose를 한번 경험해 보시면 좋겠지만, 이 둘은 나중에 천천히 하셔도 될 것 같습니다.
이외에 모든 개발자에게 요구되어지는 Git 사용법이라던가, SSL 동작원리, REST API 등등에 대해서
코드 측면에서느 Github같은데서 오픈소스 라이브러리의 소스코드와 안드로이 SDK의 소스코드를 보면서 공부하는 것도 좋은 방법이라고 생각합니다. 가능하시다면 오픈소스 프로젝트에 참여해 보는 것도 아주 좋은 방법이리라 생각합니다.
첫번째, 두번째는 기초에 해당하니까 마지막 보다 좀 더 많은 시간을 투자하셔서 공부하시길 바래요. 공부할거는 아주 많습니다.