Newbies often ask themselves: "What do I need to know to become a developer?" Job postings can have a lot of incomprehensible words. Programming books are packed with so much information that it seems you have to start studying the topic from childhood. On top of all that, Android development is now at a point where you need to know two languages: Java and Kotlin. We’re going to try to make a "knowledge roadmap for beginners" — exactly what you need to know in order to land your first job. First and foremost is Core Java. Yes, Java is the best place to start at present. In my view, CodeGym is the best way to do this. There's no need to be distracted by anything else until you thoroughly work through the basic stuff. At the same time, you'll have a big advantage if you can find a mentor who can give you hints and explain things. Then you can try the Android SDK. First, you need to figure out how to use TextView, EditText, Layouts (Frame, Linear, Relative), ImageView, and Button. After that, proceed to RecyclerView. At this stage, practice is your everything. You need to try everything, see how it works, what characteristics these components have, and how they differ. Then you can go deeper and figure out Activity and Fragments. Then lifecycle and launch modes. Also data transfer between two Activities (Intent) and two Fragments (Bundle). At this point, you're ready to write something a little more complicated than a calculator. You need to write a small project that consists of several screens. The main thing is to use lots of components to figure out how they interact with each other. And again, it will be a big plus if someone sees your code and can make suggestions. Now you're ready to try Kotlin. In addition, you should make your project interact with the REST API in some way. The Retrofit library is used to do this. There are a lot of tutorials about it. There are also a lot of open APIs that you can practice on (for example, Instagram, Facebook, and many others). The end result should be something that downloads data from a server and displays it on the screen. The Glide library (or, alternatively, Picasso) is also useful here. That's the nuts and bolts of it. The next step is to tackle design patterns. Google promotes MVVM for Android, so you ought to try it. Also, check out what "clean architecture" means. And to top it all off — dependency injection. At this point, you could try to go to some interviews. The Internet is chock full of articles and examples on each of these topics. As you study, remember that understanding how and why things work is still more important than memorizing terminology. It's also important to be able to use a debugger to track down errors. And this is only possible with a lot of practice. This process can be completed in six months. But that's only if you devote sufficient time to your training. All that remains is for me to wish you patience.